diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/battle_2.s | 6434 | ||||
-rw-r--r-- | asm/battle_9.s | 38 | ||||
-rw-r--r-- | asm/battle_anim_81258BC.s | 732 | ||||
-rw-r--r-- | asm/battle_anim_813F0F4.s | 18 | ||||
-rwxr-xr-x | asm/battle_intro.s | 2 | ||||
-rw-r--r-- | asm/contest_link_80C2020.s | 16 | ||||
-rwxr-xr-x | asm/dark.s | 2 | ||||
-rwxr-xr-x | asm/ice.s | 2 | ||||
-rw-r--r-- | asm/pokemon_item_effect.s | 4 | ||||
-rwxr-xr-x | asm/psychic.s | 6 | ||||
-rw-r--r-- | asm/roulette.s | 9658 | ||||
-rw-r--r-- | asm/roulette_util.s | 779 |
12 files changed, 44 insertions, 17647 deletions
diff --git a/asm/battle_2.s b/asm/battle_2.s deleted file mode 100644 index 5a751ba55..000000000 --- a/asm/battle_2.s +++ /dev/null @@ -1,6434 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8012324 -sub_8012324: @ 8012324 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, _08012340 @ =gBattleCommunication - movs r1, 0 - strb r1, [r0, 0x4] - ldr r0, _08012344 @ =gActiveBank - strb r1, [r0] - ldr r0, _08012348 @ =gNoOfAllBanks - bl _08012F74 - .align 2, 0 -_08012340: .4byte gBattleCommunication -_08012344: .4byte gActiveBank -_08012348: .4byte gNoOfAllBanks -_0801234C: - ldr r4, _08012374 @ =gActiveBank - ldrb r0, [r4] - bl GetBankIdentity - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08012378 @ =gBattleCommunication - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bls _08012368 - bl _08012F66 -_08012368: - lsls r0, 2 - ldr r1, _0801237C @ =_08012380 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012374: .4byte gActiveBank -_08012378: .4byte gBattleCommunication -_0801237C: .4byte _08012380 - .align 2, 0 -_08012380: - .4byte _0801239C - .4byte _080124C8 - .4byte _08012A28 - .4byte _08012DA8 - .4byte _08012E50 - .4byte _08012E94 - .4byte _08012F38 -_0801239C: - ldr r4, _08012434 @ =gSharedMem - ldr r0, _08012438 @ =gActiveBank - ldrb r0, [r0] - ldr r1, _0801243C @ =0x00016068 - adds r0, r1 - adds r0, r4 - movs r1, 0x6 - strb r1, [r0] - ldr r0, _08012440 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080123F8 - movs r1, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _080123F8 - eors r5, r1 - adds r0, r5, 0 - bl GetBankByPlayerAI - ldr r2, _08012444 @ =0x000160a6 - adds r1, r4, r2 - ldrb r1, [r1] - ldr r2, _08012448 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080123F8 - ldr r4, _0801244C @ =gBattleCommunication - adds r0, r5, 0 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x4 - beq _080123F8 - bl _08012F66 -_080123F8: - ldr r0, _08012434 @ =gSharedMem - ldr r3, _08012444 @ =0x000160a6 - adds r0, r3 - ldrb r3, [r0] - ldr r1, _08012448 @ =gBitTable - ldr r4, _08012438 @ =gActiveBank - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ands r3, r0 - cmp r3, 0 - beq _08012468 - ldr r0, _08012450 @ =gActionForBanks - adds r0, r2, r0 - movs r1, 0xD - strb r1, [r0] - ldr r0, _08012440 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08012454 - ldr r0, _0801244C @ =gBattleCommunication - ldrb r1, [r4] - adds r1, r0 - movs r0, 0x4 - strb r0, [r1] - bl _08012F66 - .align 2, 0 -_08012434: .4byte gSharedMem -_08012438: .4byte gActiveBank -_0801243C: .4byte 0x00016068 -_08012440: .4byte gBattleTypeFlags -_08012444: .4byte 0x000160a6 -_08012448: .4byte gBitTable -_0801244C: .4byte gBattleCommunication -_08012450: .4byte gActionForBanks -_08012454: - ldr r0, _08012464 @ =gBattleCommunication - ldrb r1, [r4] - adds r1, r0 - movs r0, 0x3 - strb r0, [r1] - bl _08012F66 - .align 2, 0 -_08012464: .4byte gBattleCommunication -_08012468: - ldr r1, _0801249C @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - bne _08012488 - movs r0, 0x80 - lsls r0, 15 - ands r1, r0 - cmp r1, 0 - beq _080124A8 -_08012488: - ldr r0, _080124A0 @ =gActionForBanks - adds r0, r2, r0 - strb r3, [r0] - ldr r1, _080124A4 @ =gBattleCommunication - ldrb r0, [r4] - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - bl _08012F66 - .align 2, 0 -_0801249C: .4byte gBattleMons -_080124A0: .4byte gActionForBanks -_080124A4: .4byte gBattleCommunication -_080124A8: - ldr r0, _080124C0 @ =gActionForBanks - ldrb r1, [r0] - ldr r0, _080124C4 @ =gBattleBufferB - ldrb r2, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r2, r0 - movs r0, 0 - bl Emitcmd18 - bl _08012E32 - .align 2, 0 -_080124C0: .4byte gActionForBanks -_080124C4: .4byte gBattleBufferB -_080124C8: - ldr r4, _08012520 @ =gBattleExecBuffer - ldr r1, _08012524 @ =gBitTable - ldr r3, _08012528 @ =gActiveBank - ldrb r5, [r3] - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r1, [r4] - ands r1, r0 - mov r8, r3 - cmp r1, 0 - beq _080124F6 - bl _08012F66 -_080124F6: - ldr r2, _0801252C @ =gActionForBanks - adds r2, r5, r2 - ldr r1, _08012530 @ =gBattleBufferB - lsls r0, r5, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldrb r0, [r3] - lsls r0, 9 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xC - bls _08012514 - b _08012968 -_08012514: - lsls r0, 2 - ldr r1, _08012534 @ =_08012538 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012520: .4byte gBattleExecBuffer -_08012524: .4byte gBitTable -_08012528: .4byte gActiveBank -_0801252C: .4byte gActionForBanks -_08012530: .4byte gBattleBufferB -_08012534: .4byte _08012538 - .align 2, 0 -_08012538: - .4byte _0801256C - .4byte _080126B4 - .4byte _080126E0 - .4byte _08012968 - .4byte _08012968 - .4byte _080128B0 - .4byte _08012908 - .4byte _08012968 - .4byte _08012968 - .4byte _08012968 - .4byte _08012968 - .4byte _08012968 - .4byte _0801292C -_0801256C: - bl AreAllMovesUnusable - lsls r0, 24 - cmp r0, 0 - beq _080125D0 - ldr r0, _080125B4 @ =gBattleCommunication - ldr r2, _080125B8 @ =gActiveBank - ldrb r1, [r2] - adds r1, r0 - movs r4, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r3, _080125BC @ =gSharedMem - ldrb r0, [r2] - ldr r1, _080125C0 @ =0x00016060 - adds r0, r1 - adds r0, r3 - strb r4, [r0] - ldrb r0, [r2] - ldr r4, _080125C4 @ =0x00016094 - adds r0, r4 - adds r0, r3 - movs r1, 0x3 - strb r1, [r0] - ldrb r1, [r2] - ldr r0, _080125C8 @ =0x00016010 - adds r2, r1, r0 - adds r2, r3 - ldr r0, _080125CC @ =gBattleBufferB - lsls r1, 9 - adds r0, 0x3 - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2] - bl _08012F90 - .align 2, 0 -_080125B4: .4byte gBattleCommunication -_080125B8: .4byte gActiveBank -_080125BC: .4byte gSharedMem -_080125C0: .4byte 0x00016060 -_080125C4: .4byte 0x00016094 -_080125C8: .4byte 0x00016010 -_080125CC: .4byte gBattleBufferB -_080125D0: - ldr r1, _080125FC @ =gDisableStructs - ldr r5, _08012600 @ =gActiveBank - ldrb r4, [r5] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r2, [r0, 0x6] - cmp r2, 0 - beq _0801260C - ldr r1, _08012604 @ =gChosenMovesByBanks - lsls r0, r4, 1 - adds r0, r1 - strh r2, [r0] - ldr r1, _08012608 @ =gBattleCommunication - ldrb r0, [r5] - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - bl _08012F90 - .align 2, 0 -_080125FC: .4byte gDisableStructs -_08012600: .4byte gActiveBank -_08012604: .4byte gChosenMovesByBanks -_08012608: .4byte gBattleCommunication -_0801260C: - add r2, sp, 0x4 - ldr r3, _080126AC @ =gBattleMons - movs r1, 0x58 - adds r0, r4, 0 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x10] - ldrb r0, [r5] - muls r0, r1 - adds r0, r3 - adds r0, 0x21 - ldrb r0, [r0] - strb r0, [r2, 0x12] - ldrb r0, [r5] - muls r0, r1 - adds r0, r3 - adds r0, 0x22 - ldrb r0, [r0] - strb r0, [r2, 0x13] - movs r4, 0 - mov r1, sp - adds r1, 0xC - str r1, [sp, 0x18] - add r2, sp, 0x10 - mov r10, r2 - mov r8, r3 - adds r7, r5, 0 - movs r6, 0x58 - movs r3, 0xC - add r3, r8 - mov r9, r3 - add r5, sp, 0x4 -_0801264E: - lsls r2, r4, 1 - ldrb r0, [r7] - muls r0, r6 - adds r0, r2, r0 - add r0, r9 - ldrh r0, [r0] - strh r0, [r5] - ldr r0, [sp, 0x18] - adds r3, r0, r4 - ldrb r0, [r7] - muls r0, r6 - adds r0, r4, r0 - mov r1, r8 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - adds r2, r1 - add r2, r9 - ldrh r0, [r2] - add r1, r8 - adds r1, 0x3B - ldrb r1, [r1] - lsls r2, r4, 24 - lsrs r2, 24 - bl CalculatePPWithBonus - mov r2, r10 - adds r1, r2, r4 - strb r0, [r1] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0801264E - ldr r0, _080126B0 @ =gBattleTypeFlags - ldrb r0, [r0] - movs r1, 0x1 - ands r1, r0 - movs r0, 0 - movs r2, 0 - add r3, sp, 0x4 - bl Emitcmd20 - b _0801289E - .align 2, 0 -_080126AC: .4byte gBattleMons -_080126B0: .4byte gBattleTypeFlags -_080126B4: - ldr r0, _080126D0 @ =gBattleTypeFlags - ldrh r1, [r0] - ldr r0, _080126D4 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _080126C2 - b _08012908 -_080126C2: - ldr r1, _080126D8 @ =gUnknown_02024C1C - mov r3, r8 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, _080126DC @ =BattleScript_ActionSelectionItemsCantBeUsed - b _080129CC - .align 2, 0 -_080126D0: .4byte gBattleTypeFlags -_080126D4: .4byte 0x00000902 -_080126D8: .4byte gUnknown_02024C1C -_080126DC: .4byte BattleScript_ActionSelectionItemsCantBeUsed -_080126E0: - ldr r3, _08012738 @ =gSharedMem - ldr r5, _0801273C @ =gActiveBank - ldrb r0, [r5] - ldr r4, _08012740 @ =0x00016064 - adds r1, r0, r4 - adds r1, r3 - ldr r2, _08012744 @ =gBattlePartyID - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r7, _08012748 @ =gBattleMons - ldrb r2, [r5] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _0801274C @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - bne _08012722 - ldr r0, _08012750 @ =gStatuses3 - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - lsls r0, 3 - ands r1, r0 - cmp r1, 0 - beq _08012758 -_08012722: - lsls r0, r2, 1 - adds r0, r2 - ldr r2, _08012754 @ =0x0001606c - adds r1, r3, r2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x6 - b _0801286C - .align 2, 0 -_08012738: .4byte gSharedMem -_0801273C: .4byte gActiveBank -_08012740: .4byte 0x00016064 -_08012744: .4byte gBattlePartyID -_08012748: .4byte gBattleMons -_0801274C: .4byte 0x0400e000 -_08012750: .4byte gStatuses3 -_08012754: .4byte 0x0001606c -_08012758: - str r1, [sp] - movs r0, 0xC - adds r1, r2, 0 - movs r2, 0x17 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080127E0 - ldrb r1, [r5] - str r4, [sp] - movs r0, 0xC - movs r2, 0x47 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080127A8 - ldrb r0, [r5] - muls r0, r6 - adds r1, r0, r7 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080127A8 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080127A8 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - bne _080127E0 -_080127A8: - ldr r5, _08012808 @ =gActiveBank - ldrb r1, [r5] - movs r0, 0 - str r0, [sp] - movs r0, 0xF - movs r2, 0x2A - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08012818 - ldr r2, _0801280C @ =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - beq _080127E0 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _08012818 -_080127E0: - subs r1, r4, 0x1 - lsls r1, 4 - movs r0, 0x4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08012810 @ =gLastUsedAbility - ldrb r3, [r0] - ldr r0, _08012808 @ =gActiveBank - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - ldr r2, _08012814 @ =gSharedMem + 0x1606C - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r2, 0x6 - bl EmitChoosePokemon - b _0801289E - .align 2, 0 -_08012808: .4byte gActiveBank -_0801280C: .4byte gBattleMons -_08012810: .4byte gLastUsedAbility -_08012814: .4byte gSharedMem + 0x1606C -_08012818: - ldr r0, _08012830 @ =gActiveBank - ldrb r1, [r0] - mov r8, r0 - cmp r1, 0x2 - bne _08012840 - ldr r0, _08012834 @ =gActionForBanks - ldrb r0, [r0] - cmp r0, 0x2 - bne _08012840 - ldr r3, _08012838 @ =gSharedMem - ldr r4, _0801283C @ =0x00016068 - b _08012854 - .align 2, 0 -_08012830: .4byte gActiveBank -_08012834: .4byte gActionForBanks -_08012838: .4byte gSharedMem -_0801283C: .4byte 0x00016068 -_08012840: - mov r2, r8 - ldrb r0, [r2] - cmp r0, 0x3 - bne _08012884 - ldr r0, _08012874 @ =gActionForBanks - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _08012884 - ldr r3, _08012878 @ =gSharedMem - ldr r4, _0801287C @ =0x00016069 -_08012854: - adds r0, r3, r4 - ldrb r2, [r0] - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - ldr r1, _08012880 @ =0x0001606c - adds r3, r1 - adds r0, r3 - str r0, [sp] - movs r0, 0 - movs r1, 0 -_0801286C: - movs r3, 0 - bl EmitChoosePokemon - b _0801289E - .align 2, 0 -_08012874: .4byte gActionForBanks -_08012878: .4byte gSharedMem -_0801287C: .4byte 0x00016069 -_08012880: .4byte 0x0001606c -_08012884: - ldr r0, _080128A8 @ =gActiveBank - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - ldr r1, _080128AC @ =gSharedMem + 0x1606C - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0x6 - movs r3, 0 - bl EmitChoosePokemon -_0801289E: - ldr r0, _080128A8 @ =gActiveBank - ldrb r0, [r0] - bl MarkBufferBankForExecution - b _08012968 - .align 2, 0 -_080128A8: .4byte gActiveBank -_080128AC: .4byte gSharedMem + 0x1606C -_080128B0: - bl PlayerPartyAndPokemonStorageFull - lsls r0, 24 - cmp r0, 0 - beq _08012968 - ldr r1, _080128EC @ =gUnknown_02024C1C - ldr r2, _080128F0 @ =gActiveBank - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _080128F4 @ =BattleScript_PrintFullBox - str r1, [r0] - ldr r0, _080128F8 @ =gBattleCommunication - ldrb r1, [r2] - adds r1, r0 - movs r3, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r1, _080128FC @ =gSharedMem - ldrb r0, [r2] - ldr r4, _08012900 @ =0x00016060 - adds r0, r4 - adds r0, r1 - strb r3, [r0] - ldrb r0, [r2] - ldr r2, _08012904 @ =0x00016094 - adds r0, r2 - adds r0, r1 - strb r3, [r0] - b _08012F90 - .align 2, 0 -_080128EC: .4byte gUnknown_02024C1C -_080128F0: .4byte gActiveBank -_080128F4: .4byte BattleScript_PrintFullBox -_080128F8: .4byte gBattleCommunication -_080128FC: .4byte gSharedMem -_08012900: .4byte 0x00016060 -_08012904: .4byte 0x00016094 -_08012908: - ldr r4, _08012924 @ =gActiveBank - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - ldr r0, _08012928 @ =gSharedMem + 0x1606C - adds r1, r0 - movs r0, 0 - bl EmitOpenBag - ldrb r0, [r4] - bl MarkBufferBankForExecution - b _08012968 - .align 2, 0 -_08012924: .4byte gActiveBank -_08012928: .4byte gSharedMem + 0x1606C -_0801292C: - ldr r4, _08012964 @ =gBattleCommunication - mov r3, r8 - ldrb r1, [r3] - adds r1, r4 - movs r5, 0 - movs r0, 0x6 - strb r0, [r1] - ldrb r0, [r3] - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - strb r5, [r0] - movs r0, 0 - bl Emitcmd50 - mov r4, r8 - ldrb r0, [r4] - bl MarkBufferBankForExecution - b _08012F90 - .align 2, 0 -_08012964: .4byte gBattleCommunication -_08012968: - ldr r0, _08012994 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0xA - ands r0, r1 - cmp r0, 0x8 - bne _080129A8 - ldr r0, _08012998 @ =gBattleBufferB - ldr r4, _0801299C @ =gActiveBank - ldrb r1, [r4] - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bne _080129A8 - ldr r0, _080129A0 @ =BattleScript_PrintCantRunFromTrainer - bl b_call_bc_move_exec - ldr r1, _080129A4 @ =gBattleCommunication - ldrb r0, [r4] - adds r0, r1 - b _08012BFE - .align 2, 0 -_08012994: .4byte gBattleTypeFlags -_08012998: .4byte gBattleBufferB -_0801299C: .4byte gActiveBank -_080129A0: .4byte BattleScript_PrintCantRunFromTrainer -_080129A4: .4byte gBattleCommunication -_080129A8: - bl CanRunFromBattle - lsls r0, 24 - cmp r0, 0 - beq _08012A14 - ldr r0, _080129F4 @ =gBattleBufferB - ldr r3, _080129F8 @ =gActiveBank - ldrb r2, [r3] - lsls r1, r2, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bne _08012A14 - ldr r1, _080129FC @ =gUnknown_02024C1C - lsls r0, r2, 2 - adds r0, r1 - ldr r1, _08012A00 @ =BattleScript_PrintCantEscapeFromBattle -_080129CC: - str r1, [r0] - ldr r0, _08012A04 @ =gBattleCommunication - ldrb r1, [r3] - adds r1, r0 - movs r2, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r1, _08012A08 @ =gSharedMem - ldrb r0, [r3] - ldr r4, _08012A0C @ =0x00016060 - adds r0, r4 - adds r0, r1 - strb r2, [r0] - ldrb r0, [r3] - ldr r3, _08012A10 @ =0x00016094 - adds r0, r3 - adds r0, r1 - strb r2, [r0] - b _08012F90 - .align 2, 0 -_080129F4: .4byte gBattleBufferB -_080129F8: .4byte gActiveBank -_080129FC: .4byte gUnknown_02024C1C -_08012A00: .4byte BattleScript_PrintCantEscapeFromBattle -_08012A04: .4byte gBattleCommunication -_08012A08: .4byte gSharedMem -_08012A0C: .4byte 0x00016060 -_08012A10: .4byte 0x00016094 -_08012A14: - ldr r2, _08012A20 @ =gBattleCommunication - ldr r0, _08012A24 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012A20: .4byte gBattleCommunication -_08012A24: .4byte gActiveBank -_08012A28: - ldr r4, _08012A6C @ =gBattleExecBuffer - ldr r1, _08012A70 @ =gBitTable - ldr r3, _08012A74 @ =gActiveBank - ldrb r5, [r3] - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r1, [r4] - ands r1, r0 - mov r8, r3 - cmp r1, 0 - beq _08012A54 - b _08012F66 -_08012A54: - ldr r1, _08012A78 @ =gActionForBanks - adds r0, r5, r1 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x9 - bls _08012A62 - b _08012F66 -_08012A62: - lsls r0, 2 - ldr r1, _08012A7C @ =_08012A80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012A6C: .4byte gBattleExecBuffer -_08012A70: .4byte gBitTable -_08012A74: .4byte gActiveBank -_08012A78: .4byte gActionForBanks -_08012A7C: .4byte _08012A80 - .align 2, 0 -_08012A80: - .4byte _08012AA8 - .4byte _08012BB0 - .4byte _08012BE8 - .4byte _08012CE0 - .4byte _08012D04 - .4byte _08012D18 - .4byte _08012D2C - .4byte _08012D5C - .4byte _08012D70 - .4byte _08012D94 -_08012AA8: - ldr r0, _08012AC8 @ =gBattleBufferB - mov r1, r8 - ldrb r4, [r1] - lsls r1, r4, 9 - adds r2, r0, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r6, r0, 0 - cmp r1, 0x9 - bgt _08012ACC - cmp r1, 0x3 - blt _08012ACC - adds r0, r4, r3 - strb r1, [r0] - b _08012F90 - .align 2, 0 -_08012AC8: .4byte gBattleBufferB -_08012ACC: - adds r3, r6, 0 - mov r5, r8 - ldrb r4, [r5] - lsls r1, r4, 9 - adds r7, r3, 0x2 - adds r0, r1, r7 - ldrb r2, [r0] - adds r3, 0x3 - mov r9, r3 - add r1, r9 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - ldr r0, _08012AF4 @ =0x0000ffff - cmp r2, r0 - bne _08012AFC - ldr r0, _08012AF8 @ =gBattleCommunication - adds r0, r4, r0 - b _08012BFE - .align 2, 0 -_08012AF4: .4byte 0x0000ffff -_08012AF8: .4byte gBattleCommunication -_08012AFC: - bl sub_8015894 - lsls r0, 24 - cmp r0, 0 - beq _08012B48 - ldr r0, _08012B38 @ =gBattleCommunication - ldrb r1, [r5] - adds r1, r0 - movs r2, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r3, _08012B3C @ =gSharedMem - ldrb r0, [r5] - ldr r4, _08012B40 @ =0x00016060 - adds r0, r4 - adds r0, r3 - strb r2, [r0] - ldrb r0, [r5] - lsls r0, 9 - adds r1, r6, 0x1 - adds r0, r1 - strb r2, [r0] - ldrb r0, [r5] - ldr r1, _08012B44 @ =0x00016094 - adds r0, r1 - adds r0, r3 - movs r1, 0x1 - strb r1, [r0] - b _08012F90 - .align 2, 0 -_08012B38: .4byte gBattleCommunication -_08012B3C: .4byte gSharedMem -_08012B40: .4byte 0x00016060 -_08012B44: .4byte 0x00016094 -_08012B48: - ldr r6, _08012B98 @ =gSharedMem - mov r2, r8 - ldrb r0, [r2] - ldr r2, _08012B9C @ =0x0001608c - adds r1, r0, r2 - adds r1, r6 - lsls r0, 9 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08012BA0 @ =gChosenMovesByBanks - mov r4, r8 - ldrb r3, [r4] - lsls r5, r3, 1 - adds r5, r0 - ldr r4, _08012BA4 @ =gBattleMons - adds r2, r3, r2 - adds r2, r6 - ldrb r0, [r2] - lsls r0, 1 - movs r1, 0x58 - muls r1, r3 - adds r0, r1 - adds r4, 0xC - adds r0, r4 - ldrh r0, [r0] - strh r0, [r5] - mov r1, r8 - ldrb r0, [r1] - ldr r2, _08012BA8 @ =0x00016010 - adds r1, r0, r2 - adds r1, r6 - lsls r0, 9 - add r0, r9 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08012BAC @ =gBattleCommunication - mov r3, r8 - ldrb r1, [r3] - b _08012E3C - .align 2, 0 -_08012B98: .4byte gSharedMem -_08012B9C: .4byte 0x0001608c -_08012BA0: .4byte gChosenMovesByBanks -_08012BA4: .4byte gBattleMons -_08012BA8: .4byte 0x00016010 -_08012BAC: .4byte gBattleCommunication -_08012BB0: - ldr r2, _08012BD8 @ =gBattleBufferB - ldr r5, _08012BDC @ =gActiveBank - ldrb r4, [r5] - lsls r1, r4, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - bne _08012BCE - b _08012F60 -_08012BCE: - ldr r0, _08012BE0 @ =gLastUsedItem - strh r3, [r0] - ldr r0, _08012BE4 @ =gBattleCommunication - ldrb r1, [r5] - b _08012E3C - .align 2, 0 -_08012BD8: .4byte gBattleBufferB -_08012BDC: .4byte gActiveBank -_08012BE0: .4byte gLastUsedItem -_08012BE4: .4byte gBattleCommunication -_08012BE8: - ldr r4, _08012C04 @ =gBattleBufferB - ldr r7, _08012C08 @ =gActiveBank - ldrb r2, [r7] - lsls r0, r2, 9 - adds r1, r4, 0x1 - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0x6 - bne _08012C10 - ldr r0, _08012C0C @ =gBattleCommunication - adds r0, r2, r0 -_08012BFE: - movs r1, 0 - strb r1, [r0] - b _08012F66 - .align 2, 0 -_08012C04: .4byte gBattleBufferB -_08012C08: .4byte gActiveBank -_08012C0C: .4byte gBattleCommunication -_08012C10: - ldr r0, _08012CC4 @ =gSharedMem - mov r12, r0 - ldr r3, _08012CC8 @ =0x00016068 - adds r0, r2, r3 - add r0, r12 - strb r1, [r0] - ldr r0, _08012CCC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08012CBE - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - ldr r5, _08012CD0 @ =0x0001606c - adds r1, r5 - add r1, r12 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - lsls r2, r0, 1 - adds r2, r0 - adds r2, r5 - add r2, r12 - lsls r0, 9 - adds r6, r4, 0x2 - adds r0, r6 - ldrb r1, [r0] - movs r3, 0xF0 - adds r0, r3, 0 - ands r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - ldr r2, _08012CD4 @ =0x0001606d - adds r1, r2 - add r1, r12 - lsls r0, 9 - adds r4, 0x3 - mov r8, r4 - add r0, r8 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r4, 0x2 - eors r0, r4 - lsls r1, r0, 1 - adds r1, r0 - adds r1, r5 - add r1, r12 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - eors r0, r4 - lsls r1, r0, 1 - adds r1, r0 - adds r1, r5 - add r1, r12 - ldrb r0, [r7] - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - ands r3, r0 - lsrs r3, 4 - ldrb r0, [r1] - orrs r3, r0 - strb r3, [r1] - ldrb r0, [r7] - eors r4, r0 - lsls r1, r4, 1 - adds r1, r4 - ldr r3, _08012CD8 @ =0x0001606e - adds r1, r3 - add r1, r12 - ldrb r0, [r7] - lsls r0, 9 - add r0, r8 - ldrb r0, [r0] - strb r0, [r1] -_08012CBE: - ldr r0, _08012CDC @ =gBattleCommunication - ldrb r1, [r7] - b _08012E3C - .align 2, 0 -_08012CC4: .4byte gSharedMem -_08012CC8: .4byte 0x00016068 -_08012CCC: .4byte gBattleTypeFlags -_08012CD0: .4byte 0x0001606c -_08012CD4: .4byte 0x0001606d -_08012CD8: .4byte 0x0001606e -_08012CDC: .4byte gBattleCommunication -_08012CE0: - ldr r2, _08012CF8 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - str r0, [r2] - ldr r2, _08012CFC @ =gBattleCommunication - ldr r0, _08012D00 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012CF8: .4byte gHitMarker -_08012CFC: .4byte gBattleCommunication -_08012D00: .4byte gActiveBank -_08012D04: - ldr r2, _08012D10 @ =gBattleCommunication - ldr r0, _08012D14 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D10: .4byte gBattleCommunication -_08012D14: .4byte gActiveBank -_08012D18: - ldr r2, _08012D24 @ =gBattleCommunication - ldr r0, _08012D28 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D24: .4byte gBattleCommunication -_08012D28: .4byte gActiveBank -_08012D2C: - ldr r2, _08012D50 @ =gBattleBufferB - ldr r0, _08012D54 @ =gActiveBank - ldrb r4, [r0] - lsls r1, r4, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - bne _08012D4A - b _08012F60 -_08012D4A: - ldr r1, _08012D58 @ =gBattleCommunication - adds r1, r4, r1 - b _08012E3E - .align 2, 0 -_08012D50: .4byte gBattleBufferB -_08012D54: .4byte gActiveBank -_08012D58: .4byte gBattleCommunication -_08012D5C: - ldr r2, _08012D68 @ =gBattleCommunication - ldr r0, _08012D6C @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D68: .4byte gBattleCommunication -_08012D6C: .4byte gActiveBank -_08012D70: - ldr r2, _08012D88 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - str r0, [r2] - ldr r2, _08012D8C @ =gBattleCommunication - ldr r0, _08012D90 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D88: .4byte gHitMarker -_08012D8C: .4byte gBattleCommunication -_08012D90: .4byte gActiveBank -_08012D94: - ldr r2, _08012DA0 @ =gBattleCommunication - ldr r0, _08012DA4 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012DA0: .4byte gBattleCommunication -_08012DA4: .4byte gActiveBank -_08012DA8: - ldr r3, _08012E10 @ =gBattleExecBuffer - ldr r4, _08012E14 @ =gBitTable - ldr r0, _08012E18 @ =gActiveBank - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - beq _08012DD2 - b _08012F66 -_08012DD2: - ldr r0, _08012E1C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x41 - ands r0, r1 - cmp r0, 0x1 - bne _08012E06 - movs r1, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - bne _08012E06 - adds r0, r5, 0 - eors r0, r1 - bl GetBankByPlayerAI - ldr r1, _08012E20 @ =gSharedMem - ldr r2, _08012E24 @ =0x000160a6 - adds r1, r2 - ldrb r1, [r1] - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08012E28 -_08012E06: - movs r0, 0 - movs r1, 0 - bl EmitLinkStandbyMsg - b _08012E30 - .align 2, 0 -_08012E10: .4byte gBattleExecBuffer -_08012E14: .4byte gBitTable -_08012E18: .4byte gActiveBank -_08012E1C: .4byte gBattleTypeFlags -_08012E20: .4byte gSharedMem -_08012E24: .4byte 0x000160a6 -_08012E28: - movs r0, 0 - movs r1, 0x1 - bl EmitLinkStandbyMsg -_08012E30: - ldr r4, _08012E48 @ =gActiveBank -_08012E32: - ldrb r0, [r4] - bl MarkBufferBankForExecution - ldr r0, _08012E4C @ =gBattleCommunication - ldrb r1, [r4] -_08012E3C: - adds r1, r0 -_08012E3E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08012F66 - .align 2, 0 -_08012E48: .4byte gActiveBank -_08012E4C: .4byte gBattleCommunication -_08012E50: - ldr r3, _08012E84 @ =gBattleExecBuffer - ldr r1, _08012E88 @ =gBitTable - ldr r0, _08012E8C @ =gActiveBank - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - bne _08012F66 - ldr r1, _08012E90 @ =gBattleCommunication - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08012F66 - .align 2, 0 -_08012E84: .4byte gBattleExecBuffer -_08012E88: .4byte gBitTable -_08012E8C: .4byte gActiveBank -_08012E90: .4byte gBattleCommunication -_08012E94: - ldr r2, _08012EB8 @ =gSharedMem - ldr r5, _08012EBC @ =gActiveBank - ldrb r1, [r5] - ldr r3, _08012EC0 @ =0x00016060 - adds r0, r1, r3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08012ECC - ldr r0, _08012EC4 @ =gBattleCommunication - adds r0, r1, r0 - ldr r4, _08012EC8 @ =0x00016094 - adds r1, r4 - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - b _08012F66 - .align 2, 0 -_08012EB8: .4byte gSharedMem -_08012EBC: .4byte gActiveBank -_08012EC0: .4byte 0x00016060 -_08012EC4: .4byte gBattleCommunication -_08012EC8: .4byte 0x00016094 -_08012ECC: - ldr r0, _08012F20 @ =gBankAttacker - strb r1, [r0] - ldr r7, _08012F24 @ =gBattlescriptCurrInstr - ldr r6, _08012F28 @ =gUnknown_02024C1C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r4, [r0] - str r4, [r7] - ldr r3, _08012F2C @ =gBattleExecBuffer - ldr r1, _08012F30 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - bne _08012F12 - ldr r0, _08012F34 @ =gBattleScriptingCommandsTable - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_08012F12: - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - b _08012F66 - .align 2, 0 -_08012F20: .4byte gBankAttacker -_08012F24: .4byte gBattlescriptCurrInstr -_08012F28: .4byte gUnknown_02024C1C -_08012F2C: .4byte gBattleExecBuffer -_08012F30: .4byte gBitTable -_08012F34: .4byte gBattleScriptingCommandsTable -_08012F38: - ldr r3, _08012FA0 @ =gBattleExecBuffer - ldr r1, _08012FA4 @ =gBitTable - ldr r0, _08012FA8 @ =gActiveBank - ldrb r4, [r0] - lsls r0, r4, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r3, [r3] - ands r3, r0 - cmp r3, 0 - bne _08012F66 -_08012F60: - ldr r0, _08012FAC @ =gBattleCommunication - adds r0, r4, r0 - strb r3, [r0] -_08012F66: - ldr r0, _08012FA8 @ =gActiveBank - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, _08012FB0 @ =gNoOfAllBanks - lsls r1, 24 - lsrs r1, 24 -_08012F74: - adds r2, r0, 0 - ldrb r0, [r2] - cmp r1, r0 - bcs _08012F80 - bl _0801234C -_08012F80: - ldr r0, _08012FAC @ =gBattleCommunication - ldrb r0, [r0, 0x4] - ldrb r2, [r2] - cmp r0, r2 - bne _08012F90 - ldr r1, _08012FB4 @ =gBattleMainFunc - ldr r0, _08012FB8 @ =sub_80133C8 - str r0, [r1] -_08012F90: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08012FA0: .4byte gBattleExecBuffer -_08012FA4: .4byte gBitTable -_08012FA8: .4byte gActiveBank -_08012FAC: .4byte gBattleCommunication -_08012FB0: .4byte gNoOfAllBanks -_08012FB4: .4byte gBattleMainFunc -_08012FB8: .4byte sub_80133C8 - thumb_func_end sub_8012324 - - thumb_func_start sub_8012FBC -sub_8012FBC: @ 8012FBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08012FE8 @ =gUnknown_02024A76 - adds r4, r0, r2 - ldrb r5, [r4] - adds r2, r1, r2 - ldrb r3, [r2] - strb r3, [r4] - strb r5, [r2] - ldr r2, _08012FEC @ =gTurnOrder - adds r0, r2 - ldrb r5, [r0] - adds r1, r2 - ldrb r2, [r1] - strb r2, [r0] - strb r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08012FE8: .4byte gUnknown_02024A76 -_08012FEC: .4byte gTurnOrder - thumb_func_end sub_8012FBC - - thumb_func_start GetWhoStrikesFirst -GetWhoStrikesFirst: @ 8012FF0 - 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 r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _080130B8 - ldr r1, [sp, 0x8] - str r1, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _080130B8 - ldr r1, _08013070 @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r3, [r0] - cmp r3, 0x21 - bne _0801305C - ldr r0, _08013074 @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801306C -_0801305C: - cmp r3, 0x22 - bne _08013078 - ldr r0, _08013074 @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08013078 -_0801306C: - movs r3, 0x2 - b _0801307A - .align 2, 0 -_08013070: .4byte gBattleMons -_08013074: .4byte gBattleWeather -_08013078: - movs r3, 0x1 -_0801307A: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, _080130B0 @ =gBattleMons - adds r0, r2 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x21 - bne _0801309A - ldr r0, _080130B4 @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _080130AA -_0801309A: - cmp r2, 0x22 - bne _080130BA - ldr r0, _080130B4 @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _080130BA -_080130AA: - movs r7, 0x2 - b _080130BC - .align 2, 0 -_080130B0: .4byte gBattleMons -_080130B4: .4byte gBattleWeather -_080130B8: - movs r3, 0x1 -_080130BA: - movs r7, 0x1 -_080130BC: - ldr r1, _08013100 @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r4, r0, r1 - ldrh r0, [r4, 0x6] - muls r3, r0 - ldr r2, _08013104 @ =gStatStageRatios - movs r1, 0x1B - ldrsb r1, [r4, r1] - lsls r1, 1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl __divsi3 - mov r8, r0 - ldrh r0, [r4, 0x2E] - cmp r0, 0xAF - bne _0801310C - ldr r1, _08013108 @ =gEnigmaBerries - mov r3, r9 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - ldrb r5, [r0, 0x1A] - b _08013120 - .align 2, 0 -_08013100: .4byte gBattleMons -_08013104: .4byte gStatStageRatios -_08013108: .4byte gEnigmaBerries -_0801310C: - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r5, r0, 24 -_08013120: - ldr r0, _080131DC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08013154 - ldr r0, _080131E0 @ =0x00000809 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08013154 - mov r0, r9 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08013154 - movs r0, 0x6E - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0x64 - bl __udivsi3 - mov r8, r0 -_08013154: - cmp r6, 0x18 - bne _0801315E - mov r2, r8 - lsrs r2, 1 - mov r8, r2 -_0801315E: - ldr r1, _080131E4 @ =gBattleMons - movs r0, 0x58 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801317C - mov r0, r8 - lsrs r0, 2 - mov r8, r0 -_0801317C: - cmp r6, 0x1A - bne _08013198 - ldr r0, _080131E8 @ =gRandomTurnNumber - ldrh r4, [r0] - lsls r0, r5, 16 - subs r0, r5 - movs r1, 0x64 - bl __divsi3 - cmp r4, r0 - bge _08013198 - movs r1, 0x1 - negs r1, r1 - mov r8, r1 -_08013198: - ldr r1, _080131E4 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r4, r0, r1 - ldrh r0, [r4, 0x6] - adds r3, r0, 0 - muls r3, r7 - ldr r2, _080131EC @ =gStatStageRatios - movs r1, 0x1B - ldrsb r1, [r4, r1] - lsls r1, 1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl __divsi3 - adds r7, r0, 0 - ldrh r0, [r4, 0x2E] - cmp r0, 0xAF - bne _080131F4 - ldr r1, _080131F0 @ =gEnigmaBerries - mov r3, r10 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - ldrb r5, [r0, 0x1A] - b _08013208 - .align 2, 0 -_080131DC: .4byte gBattleTypeFlags -_080131E0: .4byte 0x00000809 -_080131E4: .4byte gBattleMons -_080131E8: .4byte gRandomTurnNumber -_080131EC: .4byte gStatStageRatios -_080131F0: .4byte gEnigmaBerries -_080131F4: - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r5, r0, 24 -_08013208: - ldr r0, _08013280 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08013238 - ldr r0, _08013284 @ =0x00000809 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08013238 - mov r0, r10 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08013238 - movs r0, 0x6E - muls r0, r7 - movs r1, 0x64 - bl __udivsi3 - adds r7, r0, 0 -_08013238: - cmp r6, 0x18 - bne _0801323E - lsrs r7, 1 -_0801323E: - ldr r2, _08013288 @ =gBattleMons - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801325A - lsrs r7, 2 -_0801325A: - cmp r6, 0x1A - bne _08013274 - ldr r0, _0801328C @ =gRandomTurnNumber - ldrh r4, [r0] - lsls r0, r5, 16 - subs r0, r5 - movs r1, 0x64 - bl __divsi3 - cmp r4, r0 - bge _08013274 - movs r7, 0x1 - negs r7, r7 -_08013274: - ldr r2, [sp, 0x4] - cmp r2, 0 - beq _08013290 - movs r3, 0 - b _08013334 - .align 2, 0 -_08013280: .4byte gBattleTypeFlags -_08013284: .4byte 0x00000809 -_08013288: .4byte gBattleMons -_0801328C: .4byte gRandomTurnNumber -_08013290: - ldr r0, _080132B0 @ =gActionForBanks - mov r3, r9 - adds r1, r3, r0 - ldrb r1, [r1] - adds r2, r0, 0 - cmp r1, 0 - bne _080132E4 - ldr r0, _080132B4 @ =gProtectStructs - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _080132B8 - movs r3, 0xA5 - b _080132E6 - .align 2, 0 -_080132B0: .4byte gActionForBanks -_080132B4: .4byte gProtectStructs -_080132B8: - ldr r1, _080132D8 @ =gSharedMem - ldr r0, _080132DC @ =0x0001608c - add r0, r9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - mov r3, r9 - muls r3, r1 - adds r1, r3, 0 - adds r0, r1 - ldr r1, _080132E0 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldrh r3, [r0] - b _080132E6 - .align 2, 0 -_080132D8: .4byte gSharedMem -_080132DC: .4byte 0x0001608c -_080132E0: .4byte gBattleMons -_080132E4: - movs r3, 0 -_080132E6: - mov r1, r10 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08013334 - ldr r0, _08013304 @ =gProtectStructs - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _08013308 - movs r2, 0xA5 - b _08013336 - .align 2, 0 -_08013304: .4byte gProtectStructs -_08013308: - ldr r1, _08013328 @ =gSharedMem - ldr r0, _0801332C @ =0x0001608c - add r0, r10 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - mov r2, r10 - muls r2, r1 - adds r1, r2, 0 - adds r0, r1 - ldr r1, _08013330 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldrh r2, [r0] - b _08013336 - .align 2, 0 -_08013328: .4byte gSharedMem -_0801332C: .4byte 0x0001608c -_08013330: .4byte gBattleMons -_08013334: - movs r2, 0 -_08013336: - ldr r4, _08013380 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r4 - movs r1, 0x7 - ldrsb r1, [r0, r1] - lsls r3, r2, 1 - cmp r1, 0 - bne _0801335A - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x7] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08013398 -_0801335A: - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x7] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _0801338E - cmp r8, r7 - bne _08013384 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08013384 - movs r3, 0x2 - b _080133B4 - .align 2, 0 -_08013380: .4byte gBattleMoves -_08013384: - cmp r8, r7 - bcs _080133B6 - movs r0, 0x1 - str r0, [sp, 0x8] - b _080133B6 -_0801338E: - cmp r1, r0 - bge _080133B6 - movs r1, 0x1 - str r1, [sp, 0x8] - b _080133B6 -_08013398: - cmp r8, r7 - bne _080133AE - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080133AE - movs r2, 0x2 - str r2, [sp, 0x8] - b _080133B6 -_080133AE: - cmp r8, r7 - bcs _080133B6 - movs r3, 0x1 -_080133B4: - str r3, [sp, 0x8] -_080133B6: - ldr r0, [sp, 0x8] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetWhoStrikesFirst - - thumb_func_start sub_80133C8 -sub_80133C8: @ 80133C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r3, 0 - ldr r0, _0801341C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08013434 - ldr r0, _08013420 @ =gActiveBank - strb r3, [r0] - ldr r4, _08013424 @ =gNoOfAllBanks - mov r8, r0 - ldrb r0, [r4] - cmp r3, r0 - bcc _080133F0 - b _08013622 -_080133F0: - ldr r7, _08013428 @ =gUnknown_02024A76 - ldr r6, _0801342C @ =gActionForBanks - mov r2, r8 - ldr r5, _08013430 @ =gTurnOrder -_080133F8: - adds r1, r3, r7 - ldrb r0, [r2] - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r3, r5 - ldrb r0, [r2] - strb r0, [r1] - adds r3, 0x1 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - cmp r0, r1 - bcc _080133F8 - b _08013622 - .align 2, 0 -_0801341C: .4byte gBattleTypeFlags -_08013420: .4byte gActiveBank -_08013424: .4byte gNoOfAllBanks -_08013428: .4byte gUnknown_02024A76 -_0801342C: .4byte gActionForBanks -_08013430: .4byte gTurnOrder -_08013434: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08013484 - ldr r0, _08013478 @ =gActiveBank - strb r3, [r0] - ldr r1, _0801347C @ =gNoOfAllBanks - mov r8, r0 - adds r2, r1, 0 - ldrb r2, [r2] - cmp r3, r2 - bcs _08013494 - ldr r0, _08013480 @ =gActionForBanks - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x3 - beq _08013492 -_08013456: - mov r7, r8 - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0801347C @ =gNoOfAllBanks - ldrb r1, [r1] - cmp r0, r1 - bcs _08013494 - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08013456 - b _08013492 - .align 2, 0 -_08013478: .4byte gActiveBank -_0801347C: .4byte gNoOfAllBanks -_08013480: .4byte gActionForBanks -_08013484: - ldr r0, _080134FC @ =gActionForBanks - ldrb r0, [r0] - ldr r2, _08013500 @ =gActiveBank - mov r8, r2 - cmp r0, 0x3 - bne _08013494 - strb r3, [r2] -_08013492: - movs r3, 0x5 -_08013494: - cmp r3, 0x5 - bne _08013520 - ldr r6, _08013504 @ =gUnknown_02024A76 - ldr r1, _080134FC @ =gActionForBanks - mov r3, r8 - ldrb r0, [r3] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r6] - ldr r2, _08013508 @ =gTurnOrder - ldrb r0, [r3] - strb r0, [r2] - movs r3, 0x1 - movs r5, 0 - adds r4, r1, 0 - ldr r7, _0801350C @ =gBattleMainFunc - mov r9, r7 - ldr r0, _08013510 @ =bc_80154A0 - mov r12, r0 - ldr r1, _08013514 @ =gSharedMem - mov r10, r1 - ldr r7, _08013518 @ =gNoOfAllBanks - ldrb r7, [r7] - cmp r5, r7 - bge _080134EC - adds r7, r6, 0 - adds r6, r4, 0 - adds r4, r2, 0 - ldr r2, _08013518 @ =gNoOfAllBanks -_080134CE: - mov r0, r8 - ldrb r0, [r0] - cmp r5, r0 - beq _080134E4 - adds r1, r3, r7 - adds r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, r4 - strb r5, [r0] - adds r3, 0x1 -_080134E4: - adds r5, 0x1 - ldrb r1, [r2] - cmp r5, r1 - blt _080134CE -_080134EC: - mov r2, r12 - mov r3, r9 - str r2, [r3] - ldr r1, _0801351C @ =0x0001601d - add r1, r10 - movs r0, 0 - strb r0, [r1] - b _08013632 - .align 2, 0 -_080134FC: .4byte gActionForBanks -_08013500: .4byte gActiveBank -_08013504: .4byte gUnknown_02024A76 -_08013508: .4byte gTurnOrder -_0801350C: .4byte gBattleMainFunc -_08013510: .4byte bc_80154A0 -_08013514: .4byte gSharedMem -_08013518: .4byte gNoOfAllBanks -_0801351C: .4byte 0x0001601d -_08013520: - movs r0, 0 - mov r7, r8 - strb r0, [r7] - ldr r1, _080135B0 @ =gNoOfAllBanks - ldrb r0, [r1] - cmp r0, 0 - beq _08013566 - ldr r6, _080135B4 @ =gActionForBanks - mov r2, r8 - ldr r5, _080135B8 @ =gUnknown_02024A76 - ldr r4, _080135BC @ =gTurnOrder -_08013536: - ldrb r0, [r2] - adds r0, r6 - ldrb r1, [r0] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013554 - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, 0x1 -_08013554: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080135B0 @ =gNoOfAllBanks - ldrb r1, [r1] - cmp r0, r1 - bcc _08013536 -_08013566: - movs r0, 0 - mov r2, r8 - strb r0, [r2] - ldr r7, _080135B0 @ =gNoOfAllBanks - ldrb r0, [r7] - cmp r0, 0 - beq _080135AA - ldr r6, _080135B4 @ =gActionForBanks - ldr r5, _080135B8 @ =gUnknown_02024A76 - ldr r4, _080135BC @ =gTurnOrder -_0801357A: - ldrb r0, [r2] - adds r0, r6 - ldrb r1, [r0] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08013598 - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, 0x1 -_08013598: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080135B0 @ =gNoOfAllBanks - ldrb r1, [r1] - cmp r0, r1 - bcc _0801357A -_080135AA: - movs r5, 0 - b _08013618 - .align 2, 0 -_080135B0: .4byte gNoOfAllBanks -_080135B4: .4byte gActionForBanks -_080135B8: .4byte gUnknown_02024A76 -_080135BC: .4byte gTurnOrder -_080135C0: - adds r4, r5, 0x1 - adds r7, r4, 0 - ldrb r1, [r1] - cmp r7, r1 - bge _08013616 - ldr r6, _08013640 @ =gUnknown_02024A76 - lsls r2, r5, 24 - mov r8, r2 -_080135D0: - ldr r0, _08013644 @ =gTurnOrder - adds r1, r5, r0 - ldrb r3, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - adds r0, r5, r6 - ldrb r2, [r0] - cmp r2, 0x1 - beq _0801360C - adds r0, r4, r6 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0801360C - cmp r2, 0x2 - beq _0801360C - cmp r0, 0x2 - beq _0801360C - adds r0, r3, 0 - movs r2, 0 - bl GetWhoStrikesFirst - lsls r0, 24 - cmp r0, 0 - beq _0801360C - lsls r1, r4, 24 - lsrs r1, 24 - mov r3, r8 - lsrs r0, r3, 24 - bl sub_8012FBC -_0801360C: - adds r4, 0x1 - ldr r0, _08013648 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _080135D0 -_08013616: - adds r5, r7, 0 -_08013618: - ldr r1, _08013648 @ =gNoOfAllBanks - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - blt _080135C0 -_08013622: - ldr r1, _0801364C @ =gBattleMainFunc - ldr r0, _08013650 @ =bc_80154A0 - str r0, [r1] - ldr r0, _08013654 @ =gSharedMem - ldr r7, _08013658 @ =0x0001601d - adds r0, r7 - movs r1, 0 - strb r1, [r0] -_08013632: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013640: .4byte gUnknown_02024A76 -_08013644: .4byte gTurnOrder -_08013648: .4byte gNoOfAllBanks -_0801364C: .4byte gBattleMainFunc -_08013650: .4byte bc_80154A0 -_08013654: .4byte gSharedMem -_08013658: .4byte 0x0001601d - thumb_func_end sub_80133C8 - - thumb_func_start TurnValuesCleanUp -TurnValuesCleanUp: @ 801365C - 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 r1, _080136B4 @ =gActiveBank - movs r0, 0 - strb r0, [r1] - ldr r0, _080136B8 @ =gNoOfAllBanks - ldrb r2, [r0] - adds r5, r1, 0 - cmp r2, 0 - beq _08013754 - ldr r7, _080136BC @ =gProtectStructs - adds r6, r5, 0 - ldr r0, _080136C0 @ =gUnknown_02024AD0 - mov r12, r0 - ldr r1, _080136C4 @ =gDisableStructs - mov r8, r1 - mov r10, r8 -_0801368A: - mov r2, r9 - cmp r2, 0 - beq _080136C8 - ldrb r1, [r6] - lsls r1, 4 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r6] - lsls r1, 4 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _08013724 - .align 2, 0 -_080136B4: .4byte gActiveBank -_080136B8: .4byte gNoOfAllBanks -_080136BC: .4byte gProtectStructs -_080136C0: .4byte gUnknown_02024AD0 -_080136C4: .4byte gDisableStructs -_080136C8: - ldrb r0, [r6] - lsls r0, 4 - adds r2, r0, r7 - movs r1, 0 - mov r4, r10 - movs r3, 0 -_080136D4: - adds r0, r2, r1 - strb r3, [r0] - adds r1, 0x1 - cmp r1, 0xF - bls _080136D4 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x16] - cmp r0, 0 - beq _080136F2 - subs r0, 0x1 - strb r0, [r1, 0x16] -_080136F2: - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x19] - cmp r0, 0 - beq _08013724 - subs r0, 0x1 - strb r0, [r1, 0x19] - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x19] - cmp r0, 0 - bne _08013724 - movs r0, 0x58 - muls r2, r0 - add r2, r12 - ldr r0, [r2] - ldr r1, _0801376C @ =0xffbfffff - ands r0, r1 - str r0, [r2] -_08013724: - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0xA] - cmp r0, 0 - bne _08013742 - movs r0, 0x58 - muls r2, r0 - add r2, r12 - ldr r0, [r2] - ldr r1, _08013770 @ =0xfeffffff - ands r0, r1 - str r0, [r2] -_08013742: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08013774 @ =gNoOfAllBanks - ldrb r1, [r1] - cmp r0, r1 - bcc _0801368A -_08013754: - movs r0, 0 - ldr r2, _08013778 @ =gSideTimer - strb r0, [r2, 0x8] - strb r0, [r2, 0x14] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801376C: .4byte 0xffbfffff -_08013770: .4byte 0xfeffffff -_08013774: .4byte gNoOfAllBanks -_08013778: .4byte gSideTimer - thumb_func_end TurnValuesCleanUp - - thumb_func_start SpecialStatusesClear -SpecialStatusesClear: @ 801377C - push {r4-r6,lr} - ldr r2, _080137C0 @ =gActiveBank - movs r0, 0 - strb r0, [r2] - ldr r0, _080137C4 @ =gNoOfAllBanks - ldrb r1, [r0] - adds r6, r0, 0 - cmp r1, 0 - beq _080137BA - adds r3, r2, 0 - movs r4, 0 - ldr r5, _080137C8 @ =gSpecialStatuses -_08013794: - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r5 - movs r1, 0 -_080137A0: - adds r0, r2, r1 - strb r4, [r0] - adds r1, 0x1 - cmp r1, 0x13 - bls _080137A0 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - cmp r0, r1 - bcc _08013794 -_080137BA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080137C0: .4byte gActiveBank -_080137C4: .4byte gNoOfAllBanks -_080137C8: .4byte gSpecialStatuses - thumb_func_end SpecialStatusesClear - - thumb_func_start bc_80154A0 -bc_80154A0: @ 80137CC - push {r4-r7,lr} - ldr r0, _08013850 @ =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _08013884 - ldr r0, _08013854 @ =gSharedMem - ldr r1, _08013858 @ =0x0001601d - adds r2, r0, r1 - ldr r0, _0801385C @ =gNoOfAllBanks - ldrb r1, [r2] - adds r7, r0, 0 - ldrb r0, [r7] - cmp r1, r0 - bcs _08013884 - ldr r6, _08013860 @ =gActiveBank - ldr r5, _08013864 @ =gBankAttacker - adds r4, r2, 0 - movs r1, 0x84 - lsls r1, 1 - mov r12, r1 -_080137FA: - ldrb r0, [r4] - strb r0, [r5] - strb r0, [r6] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08013868 @ =gChosenMovesByBanks - ldrb r3, [r6] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r12 - bne _0801387C - ldr r1, _0801386C @ =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801387C - ldr r2, _08013870 @ =gDisableStructs - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _0801387C - ldr r0, _08013874 @ =gProtectStructs - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - blt _0801387C - ldr r0, _08013878 @ =BattleScript_FocusPunchSetUp - bl b_call_bc_move_exec - b _080138BE - .align 2, 0 -_08013850: .4byte gHitMarker -_08013854: .4byte gSharedMem -_08013858: .4byte 0x0001601d -_0801385C: .4byte gNoOfAllBanks -_08013860: .4byte gActiveBank -_08013864: .4byte gBankAttacker -_08013868: .4byte gChosenMovesByBanks -_0801386C: .4byte gBattleMons -_08013870: .4byte gDisableStructs -_08013874: .4byte gProtectStructs -_08013878: .4byte BattleScript_FocusPunchSetUp -_0801387C: - ldrb r0, [r4] - ldrb r2, [r7] - cmp r0, r2 - bcc _080137FA -_08013884: - bl b_clear_atk_up_if_hit_flag_unless_enraged - ldr r1, _080138C4 @ =gCurrentMoveTurn - movs r0, 0 - strb r0, [r1] - ldr r1, _080138C8 @ =gFightStateTracker - ldr r0, _080138CC @ =gUnknown_02024A76 - movs r2, 0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080138D0 @ =gDynamicBasePower - movs r3, 0 - strh r2, [r0] - ldr r1, _080138D4 @ =gSharedMem - ldr r2, _080138D8 @ =0x0001601c - adds r0, r1, r2 - strb r3, [r0] - ldr r2, _080138DC @ =gBattleMainFunc - ldr r0, _080138E0 @ =sub_80138F0 - str r0, [r2] - ldr r0, _080138E4 @ =gBattleCommunication - strb r3, [r0, 0x3] - strb r3, [r0, 0x4] - ldr r2, _080138E8 @ =0x00016112 - adds r0, r1, r2 - strb r3, [r0] - ldr r0, _080138EC @ =0x00017130 - adds r1, r0 - strb r3, [r1] -_080138BE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080138C4: .4byte gCurrentMoveTurn -_080138C8: .4byte gFightStateTracker -_080138CC: .4byte gUnknown_02024A76 -_080138D0: .4byte gDynamicBasePower -_080138D4: .4byte gSharedMem -_080138D8: .4byte 0x0001601c -_080138DC: .4byte gBattleMainFunc -_080138E0: .4byte sub_80138F0 -_080138E4: .4byte gBattleCommunication -_080138E8: .4byte 0x00016112 -_080138EC: .4byte 0x00017130 - thumb_func_end bc_80154A0 - - thumb_func_start sub_80138F0 -sub_80138F0: @ 80138F0 - push {r4-r6,lr} - ldr r6, _08013944 @ =gBattleOutcome - ldrb r0, [r6] - ldr r2, _08013948 @ =gFightStateTracker - cmp r0, 0 - beq _08013900 - movs r0, 0xC - strb r0, [r2] -_08013900: - ldr r1, _0801394C @ =gSharedMem - ldr r4, _08013950 @ =gCurrentMoveTurn - ldrb r0, [r4] - ldr r3, _08013954 @ =0x00016057 - adds r5, r1, r3 - strb r0, [r5] - ldr r1, _08013958 @ =gUnknown_081FA640 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0801395C @ =gNoOfAllBanks - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bcc _08013970 - ldr r2, _08013960 @ =gHitMarker - ldr r0, [r2] - ldr r1, _08013964 @ =0xffefffff - ands r0, r1 - str r0, [r2] - ldr r3, _08013968 @ =gBattleMainFunc - ldr r2, _0801396C @ =gUnknown_081FA678 - ldrb r1, [r6] - movs r0, 0x7F - ands r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - b _08013984 - .align 2, 0 -_08013944: .4byte gBattleOutcome -_08013948: .4byte gFightStateTracker -_0801394C: .4byte gSharedMem -_08013950: .4byte gCurrentMoveTurn -_08013954: .4byte 0x00016057 -_08013958: .4byte gUnknown_081FA640 -_0801395C: .4byte gNoOfAllBanks -_08013960: .4byte gHitMarker -_08013964: .4byte 0xffefffff -_08013968: .4byte gBattleMainFunc -_0801396C: .4byte gUnknown_081FA678 -_08013970: - ldrb r0, [r5] - cmp r0, r1 - beq _08013984 - ldr r2, _0801398C @ =gHitMarker - ldr r0, [r2] - ldr r1, _08013990 @ =0xfffffdff - ands r0, r1 - ldr r1, _08013994 @ =0xfff7ffff - ands r0, r1 - str r0, [r2] -_08013984: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0801398C: .4byte gHitMarker -_08013990: .4byte 0xfffffdff -_08013994: .4byte 0xfff7ffff - thumb_func_end sub_80138F0 - - thumb_func_start sub_8013998 -sub_8013998: @ 8013998 - push {r4,lr} - ldr r1, _080139D0 @ =gFightStateTracker - movs r0, 0 - strb r0, [r1] - ldr r0, _080139D4 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080139EC - ldr r1, _080139D8 @ =gBattleTextBuff1 - ldr r4, _080139DC @ =gBattleOutcome - ldrb r0, [r4] - strb r0, [r1] - movs r0, 0 - bl GetBankByPlayerAI - ldr r1, _080139E0 @ =gBankAttacker - strb r0, [r1] - ldr r1, _080139E4 @ =gBattlescriptCurrInstr - ldr r0, _080139E8 @ =gUnknown_081D8E02 - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - b _08013B48 - .align 2, 0 -_080139D0: .4byte gFightStateTracker -_080139D4: .4byte gBattleTypeFlags -_080139D8: .4byte gBattleTextBuff1 -_080139DC: .4byte gBattleOutcome -_080139E0: .4byte gBankAttacker -_080139E4: .4byte gBattlescriptCurrInstr -_080139E8: .4byte gUnknown_081D8E02 -_080139EC: - movs r0, 0x90 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _08013A04 - ldr r1, _080139FC @ =gBattlescriptCurrInstr - ldr r0, _08013A00 @ =gUnknown_081D8E0D - b _08013B46 - .align 2, 0 -_080139FC: .4byte gBattlescriptCurrInstr -_08013A00: .4byte gUnknown_081D8E0D -_08013A04: - movs r0, 0xA - ands r0, r1 - cmp r0, 0x8 - beq _08013A0E - b _08013B42 -_08013A0E: - bl BattleMusicStop - ldr r1, _08013A3C @ =gBattlescriptCurrInstr - ldr r0, _08013A40 @ =BattleScript_LocalTrainerBattleWon - str r0, [r1] - ldr r2, _08013A44 @ =gTrainers - ldr r0, _08013A48 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - subs r0, 0x2 - cmp r0, 0x31 - bls _08013A30 - b _08013B38 -_08013A30: - lsls r0, 2 - ldr r1, _08013A4C @ =_08013A50 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08013A3C: .4byte gBattlescriptCurrInstr -_08013A40: .4byte BattleScript_LocalTrainerBattleWon -_08013A44: .4byte gTrainers -_08013A48: .4byte gTrainerBattleOpponent -_08013A4C: .4byte _08013A50 - .align 2, 0 -_08013A50: - .4byte _08013B24 - .4byte _08013B24 - .4byte _08013B24 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B18 - .4byte _08013B2E - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B18 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B24 - .4byte _08013B24 - .4byte _08013B24 -_08013B18: - ldr r0, _08013B20 @ =0x00000163 - bl PlayBGM - b _08013B48 - .align 2, 0 -_08013B20: .4byte 0x00000163 -_08013B24: - movs r0, 0xD4 - lsls r0, 1 - bl PlayBGM - b _08013B48 -_08013B2E: - movs r0, 0xB1 - lsls r0, 1 - bl PlayBGM - b _08013B48 -_08013B38: - movs r0, 0xCE - lsls r0, 1 - bl PlayBGM - b _08013B48 -_08013B42: - ldr r1, _08013B54 @ =gBattlescriptCurrInstr - ldr r0, _08013B58 @ =BattleScript_PayDayMoneyAndPickUpItems -_08013B46: - str r0, [r1] -_08013B48: - ldr r1, _08013B5C @ =gBattleMainFunc - ldr r0, _08013B60 @ =sub_8013C9C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013B54: .4byte gBattlescriptCurrInstr -_08013B58: .4byte BattleScript_PayDayMoneyAndPickUpItems -_08013B5C: .4byte gBattleMainFunc -_08013B60: .4byte sub_8013C9C - thumb_func_end sub_8013998 - - thumb_func_start sub_8013B64 -sub_8013B64: @ 8013B64 - push {r4,lr} - ldr r1, _08013B9C @ =gFightStateTracker - movs r0, 0 - strb r0, [r1] - ldr r0, _08013BA0 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08013BB8 - ldr r1, _08013BA4 @ =gBattleTextBuff1 - ldr r4, _08013BA8 @ =gBattleOutcome - ldrb r0, [r4] - strb r0, [r1] - movs r0, 0 - bl GetBankByPlayerAI - ldr r1, _08013BAC @ =gBankAttacker - strb r0, [r1] - ldr r1, _08013BB0 @ =gBattlescriptCurrInstr - ldr r0, _08013BB4 @ =gUnknown_081D8E02 - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - b _08013BBE - .align 2, 0 -_08013B9C: .4byte gFightStateTracker -_08013BA0: .4byte gBattleTypeFlags -_08013BA4: .4byte gBattleTextBuff1 -_08013BA8: .4byte gBattleOutcome -_08013BAC: .4byte gBankAttacker -_08013BB0: .4byte gBattlescriptCurrInstr -_08013BB4: .4byte gUnknown_081D8E02 -_08013BB8: - ldr r1, _08013BCC @ =gBattlescriptCurrInstr - ldr r0, _08013BD0 @ =BattleScript_LocalBattleLost - str r0, [r1] -_08013BBE: - ldr r1, _08013BD4 @ =gBattleMainFunc - ldr r0, _08013BD8 @ =sub_8013C9C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013BCC: .4byte gBattlescriptCurrInstr -_08013BD0: .4byte BattleScript_LocalBattleLost -_08013BD4: .4byte gBattleMainFunc -_08013BD8: .4byte sub_8013C9C - thumb_func_end sub_8013B64 - - thumb_func_start sub_8013BDC -sub_8013BDC: @ 8013BDC - push {lr} - ldr r1, _08013C04 @ =gFightStateTracker - movs r0, 0 - strb r0, [r1] - ldr r1, _08013C08 @ =gProtectStructs - ldr r0, _08013C0C @ =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 27 - lsrs r0, 30 - cmp r0, 0x1 - beq _08013C18 - cmp r0, 0x2 - beq _08013C28 - ldr r1, _08013C10 @ =gBattlescriptCurrInstr - ldr r0, _08013C14 @ =BattleScript_GotAwaySafely - b _08013C2C - .align 2, 0 -_08013C04: .4byte gFightStateTracker -_08013C08: .4byte gProtectStructs -_08013C0C: .4byte gBankAttacker -_08013C10: .4byte gBattlescriptCurrInstr -_08013C14: .4byte BattleScript_GotAwaySafely -_08013C18: - ldr r1, _08013C20 @ =gBattlescriptCurrInstr - ldr r0, _08013C24 @ =BattleScript_SmokeBallEscape - b _08013C2C - .align 2, 0 -_08013C20: .4byte gBattlescriptCurrInstr -_08013C24: .4byte BattleScript_SmokeBallEscape -_08013C28: - ldr r1, _08013C38 @ =gBattlescriptCurrInstr - ldr r0, _08013C3C @ =BattleScript_RanAwayUsingMonAbility -_08013C2C: - str r0, [r1] - ldr r1, _08013C40 @ =gBattleMainFunc - ldr r0, _08013C44 @ =sub_8013C9C - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08013C38: .4byte gBattlescriptCurrInstr -_08013C3C: .4byte BattleScript_RanAwayUsingMonAbility -_08013C40: .4byte gBattleMainFunc -_08013C44: .4byte sub_8013C9C - thumb_func_end sub_8013BDC - - thumb_func_start sub_8013C48 -sub_8013C48: @ 8013C48 - ldr r1, _08013C7C @ =gFightStateTracker - movs r0, 0 - strb r0, [r1] - ldr r1, _08013C80 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - ldr r2, _08013C84 @ =gBankAttacker - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, _08013C88 @ =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, _08013C8C @ =gBattlescriptCurrInstr - ldr r0, _08013C90 @ =BattleScript_WildMonFled - str r0, [r1] - ldr r1, _08013C94 @ =gBattleMainFunc - ldr r0, _08013C98 @ =sub_8013C9C - str r0, [r1] - bx lr - .align 2, 0 -_08013C7C: .4byte gFightStateTracker -_08013C80: .4byte gBattleTextBuff1 -_08013C84: .4byte gBankAttacker -_08013C88: .4byte gBattlePartyID -_08013C8C: .4byte gBattlescriptCurrInstr -_08013C90: .4byte BattleScript_WildMonFled -_08013C94: .4byte gBattleMainFunc -_08013C98: .4byte sub_8013C9C - thumb_func_end sub_8013C48 - - thumb_func_start sub_8013C9C -sub_8013C9C: @ 8013C9C - push {r4-r7,lr} - ldr r0, _08013D00 @ =gFightStateTracker - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013D7C - ldr r0, _08013D04 @ =gBattleTypeFlags - ldrh r0, [r0] - ldr r1, _08013D08 @ =0x00000b92 - ands r1, r0 - cmp r1, 0 - bne _08013D4C - ldr r2, _08013D0C @ =gActiveBank - strb r1, [r2] - ldr r0, _08013D10 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r1, r0 - bcs _08013D48 - adds r4, r2, 0 - ldr r6, _08013D14 @ =gBattleMons - movs r5, 0x58 - adds r7, r6, 0 - adds r7, 0x30 -_08013CCE: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08013D36 - ldr r2, _08013D18 @ =gBattleResults - ldrh r0, [r2, 0x6] - cmp r0, 0 - bne _08013D1C - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r2, 0x6] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - adds r0, r2, 0 - adds r0, 0x8 - bl StringCopy - b _08013D36 - .align 2, 0 -_08013D00: .4byte gFightStateTracker -_08013D04: .4byte gBattleTypeFlags -_08013D08: .4byte 0x00000b92 -_08013D0C: .4byte gActiveBank -_08013D10: .4byte gNoOfAllBanks -_08013D14: .4byte gBattleMons -_08013D18: .4byte gBattleResults -_08013D1C: - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r2, 0x26] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - adds r0, r2, 0 - adds r0, 0x14 - bl StringCopy -_08013D36: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08013D68 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08013CCE -_08013D48: - bl sub_80BDEC8 -_08013D4C: - movs r0, 0x3 - bl BeginFastPaletteFade - movs r0, 0x5 - bl FadeOutMapMusic - ldr r1, _08013D6C @ =gBattleMainFunc - ldr r0, _08013D70 @ =sub_8013DA8 - str r0, [r1] - ldr r1, _08013D74 @ =gCB2_AfterEvolution - ldr r0, _08013D78 @ =sub_800F808 - str r0, [r1] - b _08013D96 - .align 2, 0 -_08013D68: .4byte gNoOfAllBanks -_08013D6C: .4byte gBattleMainFunc -_08013D70: .4byte sub_8013DA8 -_08013D74: .4byte gCB2_AfterEvolution -_08013D78: .4byte sub_800F808 -_08013D7C: - ldr r0, _08013D9C @ =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08013D96 - ldr r1, _08013DA0 @ =gBattleScriptingCommandsTable - ldr r0, _08013DA4 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013D96: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013D9C: .4byte gBattleExecBuffer -_08013DA0: .4byte gBattleScriptingCommandsTable -_08013DA4: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8013C9C - - thumb_func_start sub_8013DA8 -sub_8013DA8: @ 8013DA8 - push {lr} - ldr r0, _08013DD0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08013DEA - bl ResetSpriteData - ldr r0, _08013DD4 @ =gLeveledUpInBattle - ldrb r0, [r0] - cmp r0, 0 - beq _08013DCA - ldr r0, _08013DD8 @ =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x1 - beq _08013DE4 -_08013DCA: - ldr r1, _08013DDC @ =gBattleMainFunc - ldr r0, _08013DE0 @ =c4_overworld - b _08013DE8 - .align 2, 0 -_08013DD0: .4byte gPaletteFade -_08013DD4: .4byte gLeveledUpInBattle -_08013DD8: .4byte gBattleOutcome -_08013DDC: .4byte gBattleMainFunc -_08013DE0: .4byte c4_overworld -_08013DE4: - ldr r1, _08013DF0 @ =gBattleMainFunc - ldr r0, _08013DF4 @ =bc_evolution_cutscene -_08013DE8: - str r0, [r1] -_08013DEA: - pop {r0} - bx r0 - .align 2, 0 -_08013DF0: .4byte gBattleMainFunc -_08013DF4: .4byte bc_evolution_cutscene - thumb_func_end sub_8013DA8 - - thumb_func_start bc_evolution_cutscene -bc_evolution_cutscene: @ 8013DF8 - push {r4,r5,lr} - ldr r0, _08013E4C @ =gLeveledUpInBattle - ldrb r1, [r0] - adds r3, r0, 0 - cmp r1, 0 - beq _08013E6E -_08013E04: - movs r5, 0 -_08013E06: - ldrb r2, [r3] - ldr r0, _08013E50 @ =gBitTable - lsls r1, r5, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08013E60 - bics r2, r1 - strb r2, [r3] - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08013E54 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08013E60 - ldr r0, _08013E58 @ =gBattleMainFunc - ldr r1, _08013E5C @ =sub_8013E88 - str r1, [r0] - lsls r3, r5, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r2, 0 - movs r2, 0x81 - bl EvolutionScene - b _08013E74 - .align 2, 0 -_08013E4C: .4byte gLeveledUpInBattle -_08013E50: .4byte gBitTable -_08013E54: .4byte gPlayerParty -_08013E58: .4byte gBattleMainFunc -_08013E5C: .4byte sub_8013E88 -_08013E60: - adds r5, 0x1 - ldr r3, _08013E7C @ =gLeveledUpInBattle - cmp r5, 0x5 - ble _08013E06 - ldrb r0, [r3] - cmp r0, 0 - bne _08013E04 -_08013E6E: - ldr r1, _08013E80 @ =gBattleMainFunc - ldr r0, _08013E84 @ =c4_overworld - str r0, [r1] -_08013E74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08013E7C: .4byte gLeveledUpInBattle -_08013E80: .4byte gBattleMainFunc -_08013E84: .4byte c4_overworld - thumb_func_end bc_evolution_cutscene - - thumb_func_start sub_8013E88 -sub_8013E88: @ 8013E88 - push {lr} - ldr r0, _08013EA0 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _08013EA4 @ =sub_800F808 - cmp r1, r0 - bne _08013E9A - ldr r1, _08013EA8 @ =gBattleMainFunc - ldr r0, _08013EAC @ =bc_evolution_cutscene - str r0, [r1] -_08013E9A: - pop {r0} - bx r0 - .align 2, 0 -_08013EA0: .4byte gMain -_08013EA4: .4byte sub_800F808 -_08013EA8: .4byte gBattleMainFunc -_08013EAC: .4byte bc_evolution_cutscene - thumb_func_end sub_8013E88 - - thumb_func_start c4_overworld -c4_overworld: @ 8013EB0 - push {r4-r6,lr} - ldr r5, _08013F30 @ =gBattleTypeFlags - ldrh r1, [r5] - movs r6, 0x2 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08013ECE - ldr r4, _08013F34 @ =gPlayerParty - adds r0, r4, 0 - bl RandomlyGivePartyPokerus - adds r0, r4, 0 - bl PartySpreadPokerus -_08013ECE: - ldrh r4, [r5] - adds r0, r6, 0 - ands r0, r4 - cmp r0, 0 - beq _08013EE0 - ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08013F2A -_08013EE0: - ldr r1, _08013F3C @ =gSpecialVar_Result - ldr r5, _08013F40 @ =gBattleOutcome - ldrb r0, [r5] - strh r0, [r1] - ldr r3, _08013F44 @ =gMain - ldr r0, _08013F48 @ =0x0000043d - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08013F4C @ =gPreBattleCallback1 - ldr r0, [r0] - str r0, [r3] - movs r0, 0x80 - lsls r0, 3 - ands r0, r4 - cmp r0, 0 - beq _08013F1C - ldr r0, _08013F50 @ =gEnemyParty - bl UpdateRoamerHPStatus - ldrb r0, [r5] - cmp r0, 0x1 - beq _08013F18 - cmp r0, 0x7 - bne _08013F1C -_08013F18: - bl SetRoamerInactive -_08013F1C: - movs r0, 0x5A - bl m4aSongNumStop - ldr r0, _08013F44 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_08013F2A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08013F30: .4byte gBattleTypeFlags -_08013F34: .4byte gPlayerParty -_08013F38: .4byte gReceivedRemoteLinkPlayers -_08013F3C: .4byte gSpecialVar_Result -_08013F40: .4byte gBattleOutcome -_08013F44: .4byte gMain -_08013F48: .4byte 0x0000043d -_08013F4C: .4byte gPreBattleCallback1 -_08013F50: .4byte gEnemyParty - thumb_func_end c4_overworld - - thumb_func_start sub_8013F54 -sub_8013F54: @ 8013F54 - push {lr} - ldr r0, _08013F84 @ =gFightStateTracker - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013F90 - ldr r2, _08013F88 @ =gSharedMem + 0x17140 - adds r1, r2, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - beq _08013F74 - subs r0, 0x1 - strb r0, [r1] -_08013F74: - ldr r0, _08013F8C @ =gBattleMainFunc - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - b _08013FAA - .align 2, 0 -_08013F84: .4byte gFightStateTracker -_08013F88: .4byte gSharedMem + 0x17140 -_08013F8C: .4byte gBattleMainFunc -_08013F90: - ldr r0, _08013FB0 @ =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08013FAA - ldr r1, _08013FB4 @ =gBattleScriptingCommandsTable - ldr r0, _08013FB8 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013FAA: - pop {r0} - bx r0 - .align 2, 0 -_08013FB0: .4byte gBattleExecBuffer -_08013FB4: .4byte gBattleScriptingCommandsTable -_08013FB8: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8013F54 - - thumb_func_start sub_8013FBC -sub_8013FBC: @ 8013FBC - push {lr} - ldr r0, _08013FDC @ =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08013FD8 - ldr r1, _08013FE0 @ =gBattleScriptingCommandsTable - ldr r0, _08013FE4 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013FD8: - pop {r0} - bx r0 - .align 2, 0 -_08013FDC: .4byte gBattleExecBuffer -_08013FE0: .4byte gBattleScriptingCommandsTable -_08013FE4: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8013FBC - - thumb_func_start sub_8013FE8 -sub_8013FE8: @ 8013FE8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0x4 - str r0, [sp] - ldr r7, _08014028 @ =gBankAttacker - ldr r1, _0801402C @ =gTurnOrder - ldr r0, _08014030 @ =gCurrentMoveTurn - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r7] - ldr r1, _08014034 @ =gSharedMem - mov r10, r1 - ldr r0, _08014038 @ =0x000160a6 - add r0, r10 - ldrb r2, [r0] - ldr r1, _0801403C @ =gBitTable - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _08014044 - ldr r1, _08014040 @ =gFightStateTracker - movs r0, 0xC - b _080146CC - .align 2, 0 -_08014028: .4byte gBankAttacker -_0801402C: .4byte gTurnOrder -_08014030: .4byte gCurrentMoveTurn -_08014034: .4byte gSharedMem -_08014038: .4byte 0x000160a6 -_0801403C: .4byte gBitTable -_08014040: .4byte gFightStateTracker -_08014044: - ldr r1, _080140B8 @ =gCritMultiplier - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080140BC @ =0x0001601f - add r1, r10 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080140C0 @ =0x000160e7 - add r0, r10 - strb r2, [r0] - ldr r0, _080140C4 @ =gBattleMoveFlags - strb r2, [r0] - ldr r0, _080140C8 @ =gMultiHitCounter - strb r2, [r0] - ldr r0, _080140CC @ =gBattleCommunication - strb r2, [r0, 0x6] - ldr r3, _080140D0 @ =gCurrMovePos - ldrb r0, [r7] - ldr r2, _080140D4 @ =0x0001608c - adds r0, r2 - add r0, r10 - ldrb r0, [r0] - ldr r4, _080140D8 @ =gUnknown_02024BE5 - strb r0, [r4] - strb r0, [r3] - ldr r1, _080140DC @ =gProtectStructs - ldrb r2, [r7] - lsls r0, r2, 4 - adds r5, r0, r1 - ldrb r1, [r5] - lsls r0, r1, 29 - adds r4, r2, 0 - mov r8, r3 - cmp r0, 0 - bge _080140F0 - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r5] - ldr r2, _080140E0 @ =gCurrentMove - ldr r1, _080140E4 @ =gChosenMove - movs r0, 0xA5 - strh r0, [r1] - strh r0, [r2] - ldr r2, _080140E8 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 4 - orrs r0, r1 - str r0, [r2] - movs r0, 0xA5 - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r7] - ldr r2, _080140EC @ =0x00016010 - adds r1, r2 - b _08014200 - .align 2, 0 -_080140B8: .4byte gCritMultiplier -_080140BC: .4byte 0x0001601f -_080140C0: .4byte 0x000160e7 -_080140C4: .4byte gBattleMoveFlags -_080140C8: .4byte gMultiHitCounter -_080140CC: .4byte gBattleCommunication -_080140D0: .4byte gCurrMovePos -_080140D4: .4byte 0x0001608c -_080140D8: .4byte gUnknown_02024BE5 -_080140DC: .4byte gProtectStructs -_080140E0: .4byte gCurrentMove -_080140E4: .4byte gChosenMove -_080140E8: .4byte gHitMarker -_080140EC: .4byte 0x00016010 -_080140F0: - ldr r1, _08014128 @ =gBattleMons - movs r0, 0x58 - adds r5, r4, 0 - muls r5, r0 - adds r0, r1, 0 - adds r0, 0x50 - adds r0, r5, r0 - ldr r2, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r2 - cmp r0, 0 - bne _08014114 - movs r6, 0x80 - lsls r6, 15 - ands r6, r2 - cmp r6, 0 - beq _08014138 -_08014114: - ldr r3, _0801412C @ =gCurrentMove - ldr r2, _08014130 @ =gChosenMove - ldr r1, _08014134 @ =gLockedMove - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - strh r0, [r3] - b _08014280 - .align 2, 0 -_08014128: .4byte gBattleMons -_0801412C: .4byte gCurrentMove -_08014130: .4byte gChosenMove -_08014134: .4byte gLockedMove -_08014138: - ldr r3, _08014188 @ =gDisableStructs - mov r12, r3 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r2, r0, r3 - ldrh r4, [r2, 0x6] - adds r1, r4, 0 - cmp r1, 0 - beq _08014218 - ldrb r3, [r2, 0xC] - lsls r0, r3, 1 - adds r0, r5 - str r0, [sp, 0x8] - ldr r0, _0801418C @ =gBattleMons - adds r0, 0xC - mov r9, r0 - ldr r0, [sp, 0x8] - add r0, r9 - ldrh r0, [r0] - cmp r1, r0 - bne _080141A0 - ldr r1, _08014190 @ =gCurrentMove - ldr r0, _08014194 @ =gChosenMove - strh r4, [r0] - strh r4, [r1] - ldrb r0, [r2, 0xC] - ldr r2, _08014198 @ =gUnknown_02024BE5 - strb r0, [r2] - mov r3, r8 - strb r0, [r3] - ldrh r0, [r1] - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r7] - ldr r4, _0801419C @ =0x00016010 - adds r1, r4 - b _08014200 - .align 2, 0 -_08014188: .4byte gDisableStructs -_0801418C: .4byte gBattleMons -_08014190: .4byte gCurrentMove -_08014194: .4byte gChosenMove -_08014198: .4byte gUnknown_02024BE5 -_0801419C: .4byte 0x00016010 -_080141A0: - cmp r1, 0 - beq _08014218 - cmp r1, r0 - beq _08014218 - ldr r0, _08014208 @ =gUnknown_02024BE5 - strb r3, [r0] - mov r1, r8 - strb r3, [r1] - ldr r3, _0801420C @ =gCurrentMove - ldr r1, _08014210 @ =gChosenMove - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r5 - add r0, r9 - ldrh r0, [r0] - strh r0, [r1] - strh r0, [r3] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - movs r2, 0 - strh r6, [r0, 0x6] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - strb r2, [r0, 0xC] - ldrb r0, [r7] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0xE] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xE] - ldrh r0, [r3] - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r7] - ldr r3, _08014214 @ =0x00016010 - adds r1, r3 -_08014200: - add r1, r10 - strb r0, [r1] - b _08014280 - .align 2, 0 -_08014208: .4byte gUnknown_02024BE5 -_0801420C: .4byte gCurrentMove -_08014210: .4byte gChosenMove -_08014214: .4byte 0x00016010 -_08014218: - mov r4, r8 - ldrb r0, [r4] - lsls r0, 1 - ldr r4, _0801425C @ =gBankAttacker - ldrb r2, [r4] - movs r1, 0x58 - muls r1, r2 - adds r0, r1 - ldr r1, _08014260 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldr r1, _08014264 @ =gChosenMovesByBanks - lsls r2, 1 - adds r2, r1 - ldrh r3, [r0] - ldrh r2, [r2] - cmp r3, r2 - beq _08014278 - ldr r1, _08014268 @ =gCurrentMove - ldr r0, _0801426C @ =gChosenMove - strh r3, [r0] - strh r3, [r1] - ldrh r0, [r1] - movs r1, 0 - bl GetMoveTarget - ldr r2, _08014270 @ =gSharedMem - ldrb r1, [r4] - ldr r3, _08014274 @ =0x00016010 - adds r1, r3 - adds r1, r2 - strb r0, [r1] - b _08014280 - .align 2, 0 -_0801425C: .4byte gBankAttacker -_08014260: .4byte gBattleMons -_08014264: .4byte gChosenMovesByBanks -_08014268: .4byte gCurrentMove -_0801426C: .4byte gChosenMove -_08014270: .4byte gSharedMem -_08014274: .4byte 0x00016010 -_08014278: - ldr r1, _08014298 @ =gCurrentMove - ldr r0, _0801429C @ =gChosenMove - strh r3, [r0] - strh r3, [r1] -_08014280: - ldr r0, _080142A0 @ =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080142A8 - ldr r0, _080142A4 @ =gBattleResults - ldr r1, _08014298 @ =gCurrentMove - ldrh r1, [r1] - strh r1, [r0, 0x22] - b _080142B0 - .align 2, 0 -_08014298: .4byte gCurrentMove -_0801429C: .4byte gChosenMove -_080142A0: .4byte gBankAttacker -_080142A4: .4byte gBattleResults -_080142A8: - ldr r0, _08014314 @ =gBattleResults - ldr r1, _08014318 @ =gCurrentMove - ldrh r1, [r1] - strh r1, [r0, 0x24] -_080142B0: - ldr r4, _0801431C @ =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08014320 @ =gSideTimer - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r1 - ldrb r0, [r5, 0x8] - adds r3, r4, 0 - cmp r0, 0 - beq _08014330 - ldr r2, _08014324 @ =gBattleMoves - ldr r0, _08014318 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - cmp r0, 0 - bne _08014330 - ldrb r0, [r3] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5, 0x9] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08014330 - ldr r1, _08014328 @ =gBattleMons - ldrb r2, [r5, 0x9] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08014330 - ldr r0, _0801432C @ =gBankTarget - strb r2, [r0] - b _080146AC - .align 2, 0 -_08014314: .4byte gBattleResults -_08014318: .4byte gCurrentMove -_0801431C: .4byte gBankAttacker -_08014320: .4byte gSideTimer -_08014324: .4byte gBattleMoves -_08014328: .4byte gBattleMons -_0801432C: .4byte gBankTarget -_08014330: - ldr r2, _08014454 @ =gBattleTypeFlags - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - ldr r3, _08014458 @ =gBankAttacker - mov r9, r2 - cmp r0, 0 - bne _08014342 - b _0801461C -_08014342: - ldr r1, _0801445C @ =gSideTimer - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r7, [r0, 0x8] - cmp r7, 0 - beq _08014354 - b _08014570 -_08014354: - ldr r2, _08014460 @ =gBattleMoves - ldr r0, _08014464 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08014370 - ldrb r0, [r4, 0x6] - cmp r0, 0x10 - bne _08014370 - b _08014570 -_08014370: - ldr r3, _08014468 @ =gBattleMons - ldr r0, _0801446C @ =gSharedMem - mov r8, r0 - ldr r2, _08014458 @ =gBankAttacker - ldrb r5, [r2] - ldr r1, _08014470 @ =0x00016010 - adds r0, r5, r1 - add r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r2, 0 - cmp r0, 0x1F - bne _08014394 - b _08014570 -_08014394: - ldrb r0, [r4, 0x2] - cmp r0, 0xD - beq _0801439C - b _08014570 -_0801439C: - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08014474 @ =gActiveBank - strb r7, [r1] - ldr r0, _08014478 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r7, r0 - bcs _08014416 - adds r4, r1, 0 - mov r5, r8 -_080143B6: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _08014404 - ldr r0, _08014458 @ =gBankAttacker - ldrb r0, [r0] - ldr r2, _08014470 @ =0x00016010 - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - ldrb r3, [r4] - cmp r0, r3 - beq _08014404 - ldr r1, _08014468 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1F - bne _08014404 - adds r0, r2, 0 - bl BankGetTurnOrder - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r0, r1 - bcs _08014404 - ldrb r0, [r4] - bl BankGetTurnOrder - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_08014404: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08014478 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _080143B6 -_08014416: - ldr r2, [sp] - cmp r2, 0x4 - beq _0801441E - b _08014522 -_0801441E: - ldr r2, _08014460 @ =gBattleMoves - ldr r0, _0801447C @ =gChosenMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - ldr r3, [sp] - ands r3, r0 - cmp r3, 0 - beq _080144A4 - ldr r0, _08014458 @ =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08014484 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014480 - movs r0, 0x1 - b _08014496 - .align 2, 0 -_08014454: .4byte gBattleTypeFlags -_08014458: .4byte gBankAttacker -_0801445C: .4byte gSideTimer -_08014460: .4byte gBattleMoves -_08014464: .4byte gCurrentMove -_08014468: .4byte gBattleMons -_0801446C: .4byte gSharedMem -_08014470: .4byte 0x00016010 -_08014474: .4byte gActiveBank -_08014478: .4byte gNoOfAllBanks -_0801447C: .4byte gChosenMove -_08014480: - movs r0, 0x3 - b _08014496 -_08014484: - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014494 - movs r0, 0 - b _08014496 -_08014494: - movs r0, 0x2 -_08014496: - bl GetBankByPlayerAI - ldr r1, _080144A0 @ =gBankTarget - strb r0, [r1] - b _080144B6 - .align 2, 0 -_080144A0: .4byte gBankTarget -_080144A4: - ldr r2, _080144EC @ =gBankTarget - ldr r1, _080144F0 @ =gSharedMem - ldr r0, _080144F4 @ =gBankAttacker - ldrb r0, [r0] - ldr r4, _080144F8 @ =0x00016010 - adds r0, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] -_080144B6: - ldr r7, _080144FC @ =gAbsentBankFlags - ldrb r0, [r7] - ldr r1, _08014500 @ =gBitTable - mov r8, r1 - ldr r5, _080144EC @ =gBankTarget - ldrb r1, [r5] - lsls r1, 2 - add r1, r8 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _080144D0 - b _080146AC -_080144D0: - ldr r6, _080144F4 @ =gBankAttacker - ldrb r0, [r6] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08014504 - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_080144EC: .4byte gBankTarget -_080144F0: .4byte gSharedMem -_080144F4: .4byte gBankAttacker -_080144F8: .4byte 0x00016010 -_080144FC: .4byte gAbsentBankFlags -_08014500: .4byte gBitTable -_08014504: - ldrb r0, [r6] - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - strb r0, [r5] - ldrb r1, [r7] - ldrb r2, [r5] - lsls r0, r2, 2 - add r0, r8 - b _08014690 -_08014522: - ldr r4, _0801455C @ =gActiveBank - ldr r0, _08014560 @ =gTurnOrder - ldr r2, [sp] - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r0, [r4] - ldr r2, _08014564 @ =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r1, r2 - adds r1, 0x20 - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r2, _08014568 @ =gSpecialStatuses - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldr r1, _0801456C @ =gBankTarget - ldrb r0, [r4] - strb r0, [r1] - b _080146AC - .align 2, 0 -_0801455C: .4byte gActiveBank -_08014560: .4byte gTurnOrder -_08014564: .4byte gBattleMons -_08014568: .4byte gSpecialStatuses -_0801456C: .4byte gBankTarget -_08014570: - mov r4, r9 - ldrh r1, [r4] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0801461C - ldr r2, _080145B4 @ =gBattleMoves - ldr r0, _080145B8 @ =gChosenMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801461C - ldrb r0, [r3] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080145C0 - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080145BC - movs r0, 0x1 - b _080145D2 - .align 2, 0 -_080145B4: .4byte gBattleMoves -_080145B8: .4byte gChosenMove -_080145BC: - movs r0, 0x3 - b _080145D2 -_080145C0: - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080145D0 - movs r0, 0 - b _080145D2 -_080145D0: - movs r0, 0x2 -_080145D2: - bl GetBankByPlayerAI - ldr r1, _0801460C @ =gBankTarget - strb r0, [r1] - ldr r0, _08014610 @ =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, _08014614 @ =gBitTable - ldr r5, _0801460C @ =gBankTarget - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - ldr r0, _08014618 @ =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080146AC - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_0801460C: .4byte gBankTarget -_08014610: .4byte gAbsentBankFlags -_08014614: .4byte gBitTable -_08014618: .4byte gBankAttacker -_0801461C: - ldr r5, _08014660 @ =gBankTarget - ldr r1, _08014664 @ =gSharedMem - adds r2, r3, 0 - ldrb r0, [r2] - ldr r4, _08014668 @ =0x00016010 - adds r0, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r5] - ldr r6, _0801466C @ =gAbsentBankFlags - ldrb r1, [r6] - ldr r7, _08014670 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - ldrb r0, [r2] - str r3, [sp, 0x4] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - ldr r3, [sp, 0x4] - cmp r4, r0 - beq _08014674 - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_08014660: .4byte gBankTarget -_08014664: .4byte gSharedMem -_08014668: .4byte 0x00016010 -_0801466C: .4byte gAbsentBankFlags -_08014670: .4byte gBitTable -_08014674: - ldrb r0, [r3] - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - strb r0, [r5] - ldrb r1, [r6] - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r7 -_08014690: - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - adds r0, r2, 0 -_0801469A: - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - strb r0, [r5] -_080146AC: - ldr r4, _080146E0 @ =gBattlescriptCurrInstr - ldr r3, _080146E4 @ =gBattleScriptsForMoveEffects - ldr r2, _080146E8 @ =gBattleMoves - ldr r0, _080146EC @ =gCurrentMove - 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] - ldr r1, _080146F0 @ =gFightStateTracker - movs r0, 0xA -_080146CC: - strb r0, [r1] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080146E0: .4byte gBattlescriptCurrInstr -_080146E4: .4byte gBattleScriptsForMoveEffects -_080146E8: .4byte gBattleMoves -_080146EC: .4byte gCurrentMove -_080146F0: .4byte gFightStateTracker - thumb_func_end sub_8013FE8 - - thumb_func_start sub_80146F4 -sub_80146F4: @ 80146F4 - push {r4,lr} - ldr r3, _08014764 @ =gBankAttacker - ldr r1, _08014768 @ =gTurnOrder - ldr r0, _0801476C @ =gCurrentMoveTurn - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _08014770 @ =gUnknown_030042A4 - movs r2, 0 - strh r2, [r0] - ldr r0, _08014774 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r1, _08014778 @ =gActionSelectionCursor - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r1, _0801477C @ =gMoveSelectionCursor - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r2, _08014780 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x7 - strb r0, [r2, 0x1] - ldrb r4, [r3] - strb r4, [r2, 0x2] - ldr r1, _08014784 @ =gSharedMem - ldrb r0, [r3] - ldr r3, _08014788 @ =0x00016064 - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - movs r0, 0xFF - strb r0, [r2, 0x4] - ldr r0, _0801478C @ =0x00016003 - adds r1, r0 - strb r4, [r1] - ldr r1, _08014790 @ =gBattlescriptCurrInstr - ldr r0, _08014794 @ =BattleScript_ActionSwitch - str r0, [r1] - ldr r1, _08014798 @ =gFightStateTracker - movs r0, 0xA - strb r0, [r1] - ldr r1, _0801479C @ =gBattleResults - ldrb r0, [r1, 0x2] - cmp r0, 0xFE - bhi _0801475C - adds r0, 0x1 - strb r0, [r1, 0x2] -_0801475C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014764: .4byte gBankAttacker -_08014768: .4byte gTurnOrder -_0801476C: .4byte gCurrentMoveTurn -_08014770: .4byte gUnknown_030042A4 -_08014774: .4byte gUnknown_030042A0 -_08014778: .4byte gActionSelectionCursor -_0801477C: .4byte gMoveSelectionCursor -_08014780: .4byte gBattleTextBuff1 -_08014784: .4byte gSharedMem -_08014788: .4byte 0x00016064 -_0801478C: .4byte 0x00016003 -_08014790: .4byte gBattlescriptCurrInstr -_08014794: .4byte BattleScript_ActionSwitch -_08014798: .4byte gFightStateTracker -_0801479C: .4byte gBattleResults - thumb_func_end sub_80146F4 - - thumb_func_start sub_80147A0 -sub_80147A0: @ 80147A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08014804 @ =gBankAttacker - ldr r2, _08014808 @ =gBankTarget - ldr r1, _0801480C @ =gTurnOrder - ldr r0, _08014810 @ =gCurrentMoveTurn - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r4] - ldr r0, _08014814 @ =gUnknown_030042A4 - movs r2, 0 - strh r2, [r0] - ldr r0, _08014818 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r3, _0801481C @ =gDisableStructs - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - strb r2, [r0, 0x10] - ldr r5, _08014820 @ =gLastUsedItem - ldr r2, _08014824 @ =gBattleBufferB - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - strh r3, [r5] - cmp r3, 0xC - bhi _08014830 - ldr r2, _08014828 @ =gBattlescriptCurrInstr - ldr r1, _0801482C @ =gBattlescriptsForBallThrow - ldrh r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - b _08014A8C - .align 2, 0 -_08014804: .4byte gBankAttacker -_08014808: .4byte gBankTarget -_0801480C: .4byte gTurnOrder -_08014810: .4byte gCurrentMoveTurn -_08014814: .4byte gUnknown_030042A4 -_08014818: .4byte gUnknown_030042A0 -_0801481C: .4byte gDisableStructs -_08014820: .4byte gLastUsedItem -_08014824: .4byte gBattleBufferB -_08014828: .4byte gBattlescriptCurrInstr -_0801482C: .4byte gBattlescriptsForBallThrow -_08014830: - adds r0, r3, 0 - subs r0, 0x50 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0801484C - ldr r0, _08014844 @ =gBattlescriptCurrInstr - ldr r1, _08014848 @ =gBattlescriptsForRunningByItem - b _0801485C - .align 2, 0 -_08014844: .4byte gBattlescriptCurrInstr -_08014848: .4byte gBattlescriptsForRunningByItem -_0801484C: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0801486C - ldr r0, _08014864 @ =gBattlescriptCurrInstr - ldr r1, _08014868 @ =gBattlescriptsForUsingItem -_0801485C: - ldr r1, [r1] - str r1, [r0] - b _08014A8C - .align 2, 0 -_08014864: .4byte gBattlescriptCurrInstr -_08014868: .4byte gBattlescriptsForUsingItem -_0801486C: - ldr r2, _080148A0 @ =gSharedMem - ldrb r0, [r4] - ldr r3, _080148A4 @ =0x00016003 - adds r1, r2, r3 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 25 - ldr r1, _080148A8 @ =0x000160d8 - adds r0, r1 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - mov r8, r4 - ldr r3, _080148AC @ =gBattlescriptCurrInstr - mov r9, r3 - ldr r1, _080148B0 @ =gBattlescriptsForUsingItem - mov r10, r1 - adds r7, r2, 0 - cmp r0, 0x4 - bls _08014896 - b _08014A74 -_08014896: - lsls r0, 2 - ldr r1, _080148B4 @ =_080148B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080148A0: .4byte gSharedMem -_080148A4: .4byte 0x00016003 -_080148A8: .4byte 0x000160d8 -_080148AC: .4byte gBattlescriptCurrInstr -_080148B0: .4byte gBattlescriptsForUsingItem -_080148B4: .4byte _080148B8 - .align 2, 0 -_080148B8: - .4byte _08014A74 - .4byte _08014A74 - .4byte _080148CC - .4byte _08014958 - .4byte _08014A30 -_080148CC: - ldr r2, _08014904 @ =gBattleCommunication - movs r0, 0 - strb r0, [r2, 0x5] - ldr r1, _08014908 @ =gBankAttacker - ldrb r0, [r1] - lsrs r0, 1 - ldr r6, _0801490C @ =0x000160da - adds r0, r6 - adds r0, r7 - ldrb r3, [r0] - movs r0, 0x1 - ands r0, r3 - mov r8, r1 - cmp r0, 0 - beq _08014918 - movs r0, 0x3E - ands r0, r3 - ldr r3, _08014910 @ =gBattlescriptCurrInstr - mov r9, r3 - ldr r1, _08014914 @ =gBattlescriptsForUsingItem - mov r10, r1 - cmp r0, 0 - bne _080148FC - b _08014A74 -_080148FC: - movs r0, 0x5 - strb r0, [r2, 0x5] - b _08014A74 - .align 2, 0 -_08014904: .4byte gBattleCommunication -_08014908: .4byte gBankAttacker -_0801490C: .4byte 0x000160da -_08014910: .4byte gBattlescriptCurrInstr -_08014914: .4byte gBattlescriptsForUsingItem -_08014918: - ldr r3, _08014950 @ =gBattlescriptCurrInstr - mov r9, r3 - ldr r0, _08014954 @ =gBattlescriptsForUsingItem - mov r10, r0 - adds r5, r7, 0 - mov r4, r8 - adds r3, r6, 0 -_08014926: - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r5 - ldrb r1, [r0] - lsrs r1, 1 - strb r1, [r0] - ldrb r0, [r2, 0x5] - adds r0, 0x1 - strb r0, [r2, 0x5] - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08014926 - b _08014A74 - .align 2, 0 -_08014950: .4byte gBattlescriptCurrInstr -_08014954: .4byte gBattlescriptsForUsingItem -_08014958: - ldr r3, _0801498C @ =gBattleCommunication - movs r0, 0x4 - strb r0, [r3, 0x5] - ldr r2, _08014990 @ =gBankAttacker - ldrb r0, [r2] - lsrs r0, 1 - ldr r1, _08014994 @ =0x000160da - mov r12, r1 - add r0, r12 - adds r6, r0, r7 - ldrb r1, [r6] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r8, r2 - cmp r5, 0 - beq _080149A0 - movs r0, 0x5 - strb r0, [r3, 0x5] - ldr r2, _08014998 @ =gBattlescriptCurrInstr - mov r9, r2 - ldr r3, _0801499C @ =gBattlescriptsForUsingItem - mov r10, r3 - b _08014A74 - .align 2, 0 -_0801498C: .4byte gBattleCommunication -_08014990: .4byte gBankAttacker -_08014994: .4byte 0x000160da -_08014998: .4byte gBattlescriptCurrInstr -_0801499C: .4byte gBattlescriptsForUsingItem -_080149A0: - ldr r3, _08014A18 @ =gBattleTextBuff1 - movs r4, 0xFD - strb r4, [r3] - movs r0, 0x5 - strb r0, [r3, 0x1] - movs r2, 0x1 - strb r2, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - ldr r1, _08014A1C @ =gBattleTextBuff2 - strb r4, [r1] - strb r5, [r1, 0x1] - movs r0, 0xD2 - strb r0, [r1, 0x2] - strb r5, [r1, 0x3] - subs r0, 0xD3 - strb r0, [r1, 0x4] - ldrb r0, [r6] - ands r2, r0 - ldr r0, _08014A20 @ =gBattlescriptCurrInstr - mov r9, r0 - ldr r1, _08014A24 @ =gBattlescriptsForUsingItem - mov r10, r1 - adds r6, r3, 0 - cmp r2, 0 - bne _08014A02 - adds r3, r7, 0 - mov r5, r8 - mov r4, r12 - adds r2, r6, 0 -_080149DC: - ldrb r0, [r5] - lsrs r0, 1 - adds r0, r4 - adds r0, r3 - ldrb r1, [r0] - lsrs r1, 1 - strb r1, [r0] - ldrb r0, [r2, 0x2] - adds r0, 0x1 - strb r0, [r2, 0x2] - ldrb r0, [r5] - lsrs r0, 1 - adds r0, r4 - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080149DC -_08014A02: - ldrb r0, [r6, 0x2] - adds r0, 0xE - ldr r2, _08014A28 @ =0x000160a4 - adds r1, r7, r2 - movs r2, 0 - strb r0, [r1] - ldr r3, _08014A2C @ =0x000160a5 - adds r0, r7, r3 - strb r2, [r0] - b _08014A74 - .align 2, 0 -_08014A18: .4byte gBattleTextBuff1 -_08014A1C: .4byte gBattleTextBuff2 -_08014A20: .4byte gBattlescriptCurrInstr -_08014A24: .4byte gBattlescriptsForUsingItem -_08014A28: .4byte 0x000160a4 -_08014A2C: .4byte 0x000160a5 -_08014A30: - ldr r0, _08014A50 @ =gBattleTypeFlags - ldrh r0, [r0] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014A64 - ldr r1, _08014A54 @ =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - ldr r0, _08014A58 @ =gBankAttacker - mov r8, r0 - ldr r1, _08014A5C @ =gBattlescriptCurrInstr - mov r9, r1 - ldr r2, _08014A60 @ =gBattlescriptsForUsingItem - mov r10, r2 - b _08014A74 - .align 2, 0 -_08014A50: .4byte gBattleTypeFlags -_08014A54: .4byte gBattleCommunication -_08014A58: .4byte gBankAttacker -_08014A5C: .4byte gBattlescriptCurrInstr -_08014A60: .4byte gBattlescriptsForUsingItem -_08014A64: - ldr r0, _08014AA0 @ =gBattleCommunication - strb r1, [r0, 0x5] - ldr r3, _08014AA4 @ =gBankAttacker - mov r8, r3 - ldr r0, _08014AA8 @ =gBattlescriptCurrInstr - mov r9, r0 - ldr r1, _08014AAC @ =gBattlescriptsForUsingItem - mov r10, r1 -_08014A74: - mov r2, r8 - ldrb r0, [r2] - lsrs r0, 1 - ldr r3, _08014AB0 @ =0x000160d8 - adds r0, r3 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 2 - add r0, r10 - ldr r0, [r0] - mov r1, r9 - str r0, [r1] -_08014A8C: - movs r0, 0xA - ldr r2, _08014AB4 @ =gFightStateTracker - strb r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08014AA0: .4byte gBattleCommunication -_08014AA4: .4byte gBankAttacker -_08014AA8: .4byte gBattlescriptCurrInstr -_08014AAC: .4byte gBattlescriptsForUsingItem -_08014AB0: .4byte 0x000160d8 -_08014AB4: .4byte gFightStateTracker - thumb_func_end sub_80147A0 - - thumb_func_start sub_8014AB8 -sub_8014AB8: @ 8014AB8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - ldr r1, _08014ADC @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08014AE4 - ldr r1, _08014AE0 @ =gEnigmaBerries - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x7] - b _08014AEE - .align 2, 0 -_08014ADC: .4byte gBattleMons -_08014AE0: .4byte gEnigmaBerries -_08014AE4: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r1, r0, 24 -_08014AEE: - ldr r0, _08014B18 @ =gStringBank - strb r4, [r0] - cmp r1, 0x25 - bne _08014B28 - ldr r2, _08014B1C @ =gLastUsedItem - ldr r1, _08014B20 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x2E] - strh r0, [r2] - ldr r0, _08014B24 @ =gProtectStructs - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - b _08014B50 - .align 2, 0 -_08014B18: .4byte gStringBank -_08014B1C: .4byte gLastUsedItem -_08014B20: .4byte gBattleMons -_08014B24: .4byte gProtectStructs -_08014B28: - ldr r6, _08014B5C @ =gBattleMons - movs r2, 0x58 - adds r0, r4, 0 - muls r0, r2 - adds r3, r0, r6 - adds r0, r3, 0 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x32 - bne _08014B68 - ldr r0, _08014B60 @ =gLastUsedAbility - strb r1, [r0] - ldr r0, _08014B64 @ =gProtectStructs - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 -_08014B50: - orrs r0, r1 - strb r0, [r2, 0x1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - b _08014BC2 - .align 2, 0 -_08014B5C: .4byte gBattleMons -_08014B60: .4byte gLastUsedAbility -_08014B64: .4byte gProtectStructs -_08014B68: - ldr r0, _08014BDC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08014BB6 - movs r1, 0x1 - adds r0, r4, 0 - eors r0, r1 - muls r0, r2 - adds r2, r0, r6 - ldrh r0, [r3, 0x6] - ldrh r1, [r2, 0x6] - cmp r0, r1 - bcs _08014BB0 - lsls r0, 7 - ldrh r1, [r2, 0x6] - bl __divsi3 - adds r4, r0, 0 - ldr r0, _08014BE0 @ =gSharedMem - ldr r1, _08014BE4 @ =0x00016078 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 1 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - bl Random - movs r1, 0xFF - ands r1, r0 - cmp r4, r1 - bls _08014BB6 -_08014BB0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08014BB6: - ldr r1, _08014BE0 @ =gSharedMem - ldr r0, _08014BE4 @ =0x00016078 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08014BC2: - cmp r5, 0 - beq _08014BD4 - ldr r1, _08014BE8 @ =gCurrentMoveTurn - ldr r0, _08014BEC @ =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08014BF0 @ =gBattleOutcome - movs r0, 0x4 - strb r0, [r1] -_08014BD4: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08014BDC: .4byte gBattleTypeFlags -_08014BE0: .4byte gSharedMem -_08014BE4: .4byte 0x00016078 -_08014BE8: .4byte gCurrentMoveTurn -_08014BEC: .4byte gNoOfAllBanks -_08014BF0: .4byte gBattleOutcome - thumb_func_end sub_8014AB8 - - thumb_func_start sub_8014BF4 -sub_8014BF4: @ 8014BF4 - push {r4-r6,lr} - ldr r4, _08014C44 @ =gBankAttacker - ldr r1, _08014C48 @ =gTurnOrder - ldr r5, _08014C4C @ =gCurrentMoveTurn - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _08014C50 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08014C9C - ldr r0, _08014C54 @ =gNoOfAllBanks - ldrb r1, [r0] - strb r1, [r5] - ldr r2, _08014C58 @ =gActiveBank - movs r0, 0 - strb r0, [r2] - lsls r1, 24 - cmp r1, 0 - beq _08014C88 - adds r4, r2, 0 - ldr r6, _08014C5C @ =gActionForBanks - ldr r5, _08014C60 @ =gBattleOutcome -_08014C28: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08014C64 - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08014C76 - ldrb r0, [r5] - movs r1, 0x2 - b _08014C72 - .align 2, 0 -_08014C44: .4byte gBankAttacker -_08014C48: .4byte gTurnOrder -_08014C4C: .4byte gCurrentMoveTurn -_08014C50: .4byte gBattleTypeFlags -_08014C54: .4byte gNoOfAllBanks -_08014C58: .4byte gActiveBank -_08014C5C: .4byte gActionForBanks -_08014C60: .4byte gBattleOutcome -_08014C64: - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08014C76 - ldrb r0, [r5] - movs r1, 0x1 -_08014C72: - orrs r0, r1 - strb r0, [r5] -_08014C76: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08014C94 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08014C28 -_08014C88: - ldr r0, _08014C98 @ =gBattleOutcome - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08014D40 - .align 2, 0 -_08014C94: .4byte gNoOfAllBanks -_08014C98: .4byte gBattleOutcome -_08014C9C: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08014CF4 - ldrb r0, [r4] - bl sub_8014AB8 - lsls r0, 24 - cmp r0, 0 - bne _08014D40 - ldr r1, _08014CDC @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _08014CE0 @ =0xfdffffff - ands r0, r1 - str r0, [r2] - ldr r1, _08014CE4 @ =gBattleCommunication - movs r0, 0x3 - strb r0, [r1, 0x5] - ldr r1, _08014CE8 @ =gBattlescriptCurrInstr - ldr r0, _08014CEC @ =BattleScript_PrintFailedToRunString - str r0, [r1] - ldr r1, _08014CF0 @ =gFightStateTracker - movs r0, 0xA - b _08014D3E - .align 2, 0 -_08014CDC: .4byte gBattleMons -_08014CE0: .4byte 0xfdffffff -_08014CE4: .4byte gBattleCommunication -_08014CE8: .4byte gBattlescriptCurrInstr -_08014CEC: .4byte BattleScript_PrintFailedToRunString -_08014CF0: .4byte gFightStateTracker -_08014CF4: - ldr r1, _08014D1C @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08014D20 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - beq _08014D34 - ldr r1, _08014D24 @ =gBattleCommunication - movs r0, 0x4 - strb r0, [r1, 0x5] - ldr r1, _08014D28 @ =gBattlescriptCurrInstr - ldr r0, _08014D2C @ =BattleScript_PrintFailedToRunString - str r0, [r1] - ldr r1, _08014D30 @ =gFightStateTracker - movs r0, 0xA - b _08014D3E - .align 2, 0 -_08014D1C: .4byte gBattleMons -_08014D20: .4byte 0x0400e000 -_08014D24: .4byte gBattleCommunication -_08014D28: .4byte gBattlescriptCurrInstr -_08014D2C: .4byte BattleScript_PrintFailedToRunString -_08014D30: .4byte gFightStateTracker -_08014D34: - ldr r0, _08014D48 @ =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _08014D4C @ =gBattleOutcome - movs r0, 0x6 -_08014D3E: - strb r0, [r1] -_08014D40: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08014D48: .4byte gNoOfAllBanks -_08014D4C: .4byte gBattleOutcome - thumb_func_end sub_8014BF4 - - thumb_func_start sub_8014D50 -sub_8014D50: @ 8014D50 - ldr r2, _08014D78 @ =gBankAttacker - ldr r1, _08014D7C @ =gTurnOrder - ldr r0, _08014D80 @ =gCurrentMoveTurn - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014D84 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014D88 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _08014D8C @ =gBattlescriptCurrInstr - ldr r0, _08014D90 @ =gBattlescriptsForSafariActions - ldr r0, [r0] - str r0, [r1] - ldr r1, _08014D94 @ =gFightStateTracker - movs r0, 0xA - strb r0, [r1] - bx lr - .align 2, 0 -_08014D78: .4byte gBankAttacker -_08014D7C: .4byte gTurnOrder -_08014D80: .4byte gCurrentMoveTurn -_08014D84: .4byte gUnknown_030042A4 -_08014D88: .4byte gUnknown_030042A0 -_08014D8C: .4byte gBattlescriptCurrInstr -_08014D90: .4byte gBattlescriptsForSafariActions -_08014D94: .4byte gFightStateTracker - thumb_func_end sub_8014D50 - - thumb_func_start sub_8014D98 -sub_8014D98: @ 8014D98 - ldr r2, _08014DD0 @ =gBankAttacker - ldr r1, _08014DD4 @ =gTurnOrder - ldr r0, _08014DD8 @ =gCurrentMoveTurn - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014DDC @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014DE0 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _08014DE4 @ =gNumSafariBalls - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - ldr r1, _08014DE8 @ =gLastUsedItem - movs r0, 0x5 - strh r0, [r1] - ldr r1, _08014DEC @ =gBattlescriptCurrInstr - ldr r0, _08014DF0 @ =gBattlescriptsForBallThrow - ldr r0, [r0, 0x14] - str r0, [r1] - ldr r1, _08014DF4 @ =gFightStateTracker - movs r0, 0xA - strb r0, [r1] - bx lr - .align 2, 0 -_08014DD0: .4byte gBankAttacker -_08014DD4: .4byte gTurnOrder -_08014DD8: .4byte gCurrentMoveTurn -_08014DDC: .4byte gUnknown_030042A4 -_08014DE0: .4byte gUnknown_030042A0 -_08014DE4: .4byte gNumSafariBalls -_08014DE8: .4byte gLastUsedItem -_08014DEC: .4byte gBattlescriptCurrInstr -_08014DF0: .4byte gBattlescriptsForBallThrow -_08014DF4: .4byte gFightStateTracker - thumb_func_end sub_8014D98 - - thumb_func_start sub_8014DF8 -sub_8014DF8: @ 8014DF8 - push {r4-r6,lr} - ldr r3, _08014E68 @ =gBankAttacker - ldr r1, _08014E6C @ =gTurnOrder - ldr r0, _08014E70 @ =gCurrentMoveTurn - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _08014E74 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014E78 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r6, _08014E7C @ =gBattleCommunication - ldr r2, _08014E80 @ =gBattleBufferB - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r6, 0x5] - ldr r1, _08014E84 @ =gLastUsedItem - ldrb r0, [r3] - lsls r0, 9 - adds r2, 0x2 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1] - ldr r2, _08014E88 @ =gSharedMem - ldr r0, _08014E8C @ =0x00016087 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08014E42 - adds r0, 0x1 - strb r0, [r1] -_08014E42: - ldr r0, _08014E90 @ =0x00016088 - adds r4, r2, r0 - ldrb r5, [r4] - adds r3, r5, 0 - cmp r3, 0x1 - bls _08014E9C - ldr r2, _08014E94 @ =gUnknown_081FA70C - ldrb r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - ldrb r6, [r6, 0x5] - adds r0, r6 - adds r0, r2 - ldrb r0, [r0] - cmp r3, r0 - bcs _08014E98 - movs r0, 0x1 - b _08014E9A - .align 2, 0 -_08014E68: .4byte gBankAttacker -_08014E6C: .4byte gTurnOrder -_08014E70: .4byte gCurrentMoveTurn -_08014E74: .4byte gUnknown_030042A4 -_08014E78: .4byte gUnknown_030042A0 -_08014E7C: .4byte gBattleCommunication -_08014E80: .4byte gBattleBufferB -_08014E84: .4byte gLastUsedItem -_08014E88: .4byte gSharedMem -_08014E8C: .4byte 0x00016087 -_08014E90: .4byte 0x00016088 -_08014E94: .4byte gUnknown_081FA70C -_08014E98: - subs r0, r5, r0 -_08014E9A: - strb r0, [r4] -_08014E9C: - ldr r1, _08014EB0 @ =gBattlescriptCurrInstr - ldr r0, _08014EB4 @ =gBattlescriptsForSafariActions - ldr r0, [r0, 0x8] - str r0, [r1] - ldr r1, _08014EB8 @ =gFightStateTracker - movs r0, 0xA - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08014EB0: .4byte gBattlescriptCurrInstr -_08014EB4: .4byte gBattlescriptsForSafariActions -_08014EB8: .4byte gFightStateTracker - thumb_func_end sub_8014DF8 - - thumb_func_start sub_8014EBC -sub_8014EBC: @ 8014EBC - push {r4,r5,lr} - ldr r2, _08014F28 @ =gBankAttacker - ldr r1, _08014F2C @ =gTurnOrder - ldr r0, _08014F30 @ =gCurrentMoveTurn - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014F34 @ =gUnknown_030042A4 - movs r5, 0 - strh r5, [r0] - ldr r0, _08014F38 @ =gUnknown_030042A0 - strh r5, [r0] - ldr r3, _08014F3C @ =gSharedMem - ldr r0, _08014F40 @ =0x00016089 - adds r2, r3, r0 - ldr r1, _08014F44 @ =gUnknown_081FA71B - subs r0, 0x3 - adds r4, r3, r0 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - bls _08014EFA - movs r0, 0x14 - strb r0, [r2] -_08014EFA: - ldr r0, _08014F48 @ =0x00016088 - adds r2, r3, r0 - ldr r1, _08014F4C @ =gUnknown_081FA71F - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - bls _08014F18 - movs r0, 0x14 - strb r0, [r2] -_08014F18: - ldrb r0, [r4] - cmp r0, 0x2 - bhi _08014F54 - adds r0, 0x1 - strb r0, [r4] - ldr r0, _08014F50 @ =gBattleCommunication - strb r5, [r0, 0x5] - b _08014F5A - .align 2, 0 -_08014F28: .4byte gBankAttacker -_08014F2C: .4byte gTurnOrder -_08014F30: .4byte gCurrentMoveTurn -_08014F34: .4byte gUnknown_030042A4 -_08014F38: .4byte gUnknown_030042A0 -_08014F3C: .4byte gSharedMem -_08014F40: .4byte 0x00016089 -_08014F44: .4byte gUnknown_081FA71B -_08014F48: .4byte 0x00016088 -_08014F4C: .4byte gUnknown_081FA71F -_08014F50: .4byte gBattleCommunication -_08014F54: - ldr r1, _08014F70 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] -_08014F5A: - ldr r1, _08014F74 @ =gBattlescriptCurrInstr - ldr r0, _08014F78 @ =gBattlescriptsForSafariActions - ldr r0, [r0, 0x4] - str r0, [r1] - ldr r1, _08014F7C @ =gFightStateTracker - movs r0, 0xA - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08014F70: .4byte gBattleCommunication -_08014F74: .4byte gBattlescriptCurrInstr -_08014F78: .4byte gBattlescriptsForSafariActions -_08014F7C: .4byte gFightStateTracker - thumb_func_end sub_8014EBC - - thumb_func_start bs8_exit_by_flight -bs8_exit_by_flight: @ 8014F80 - push {r4,lr} - ldr r2, _08014FA8 @ =gBankAttacker - ldr r1, _08014FAC @ =gTurnOrder - ldr r4, _08014FB0 @ =gCurrentMoveTurn - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x11 - bl PlaySE - ldr r0, _08014FB4 @ =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _08014FB8 @ =gBattleOutcome - movs r0, 0x4 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014FA8: .4byte gBankAttacker -_08014FAC: .4byte gTurnOrder -_08014FB0: .4byte gCurrentMoveTurn -_08014FB4: .4byte gNoOfAllBanks -_08014FB8: .4byte gBattleOutcome - thumb_func_end bs8_exit_by_flight - - thumb_func_start sub_8014FBC -sub_8014FBC: @ 8014FBC - ldr r3, _08015008 @ =gBankAttacker - ldr r1, _0801500C @ =gTurnOrder - ldr r0, _08015010 @ =gCurrentMoveTurn - ldrb r0, [r0] - adds r0, r1 - ldrb r2, [r0] - strb r2, [r3] - ldr r0, _08015014 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08015018 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _0801501C @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - ldr r2, _08015020 @ =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, _08015024 @ =gBattlescriptCurrInstr - ldr r0, _08015028 @ =gBattlescriptsForSafariActions - ldr r0, [r0, 0xC] - str r0, [r1] - ldr r1, _0801502C @ =gFightStateTracker - movs r0, 0xA - strb r0, [r1] - ldr r1, _08015030 @ =gUnknown_02024A76 - movs r0, 0xC - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_08015008: .4byte gBankAttacker -_0801500C: .4byte gTurnOrder -_08015010: .4byte gCurrentMoveTurn -_08015014: .4byte gUnknown_030042A4 -_08015018: .4byte gUnknown_030042A0 -_0801501C: .4byte gBattleTextBuff1 -_08015020: .4byte gBattlePartyID -_08015024: .4byte gBattlescriptCurrInstr -_08015028: .4byte gBattlescriptsForSafariActions -_0801502C: .4byte gFightStateTracker -_08015030: .4byte gUnknown_02024A76 - thumb_func_end sub_8014FBC - - thumb_func_start bsB_exit_by_move -bsB_exit_by_move: @ 8015034 - push {lr} - bl sub_80173A4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08015050 - ldr r0, _08015054 @ =gSharedMem - ldr r2, _08015058 @ =0x00016059 - adds r0, r2 - strb r1, [r0] - ldr r1, _0801505C @ =gFightStateTracker - movs r0, 0xC - strb r0, [r1] -_08015050: - pop {r0} - bx r0 - .align 2, 0 -_08015054: .4byte gSharedMem -_08015058: .4byte 0x00016059 -_0801505C: .4byte gFightStateTracker - thumb_func_end bsB_exit_by_move - - thumb_func_start sub_8015060 -sub_8015060: @ 8015060 - ldr r1, _08015080 @ =gCurrentMoveTurn - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08015084 @ =gFightStateTracker - ldr r2, _08015088 @ =gUnknown_02024A76 - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - ldr r2, _0801508C @ =gHitMarker - ldr r0, [r2] - ldr r1, _08015090 @ =0xf1e892af - ands r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08015080: .4byte gCurrentMoveTurn -_08015084: .4byte gFightStateTracker -_08015088: .4byte gUnknown_02024A76 -_0801508C: .4byte gHitMarker -_08015090: .4byte 0xf1e892af - thumb_func_end sub_8015060 - - thumb_func_start bsC_8016D70 -bsC_8016D70: @ 8015094 - push {r4,r5,lr} - ldr r1, _0801510C @ =gCurrentMoveTurn - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08015110 @ =gFightStateTracker - ldr r2, _08015114 @ =gUnknown_02024A76 - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - bl SpecialStatusesClear - ldr r2, _08015118 @ =gHitMarker - ldr r0, [r2] - ldr r1, _0801511C @ =0xf1e892af - ands r0, r1 - str r0, [r2] - ldr r0, _08015120 @ =gBattleMoveDamage - movs r4, 0 - str r4, [r0] - ldr r1, _08015124 @ =gSharedMem - ldr r2, _08015128 @ =0x00016002 - adds r0, r1, r2 - strb r4, [r0] - ldr r3, _0801512C @ =0x000160a1 - adds r0, r1, r3 - strb r4, [r0] - ldr r2, _08015130 @ =gMoveHitWith - ldr r5, _08015134 @ =gBankAttacker - ldrb r0, [r5] - lsls r0, 1 - adds r0, r2 - movs r2, 0 - strh r4, [r0] - ldr r3, _08015138 @ =gUnknown_02024C44 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r3 - strh r4, [r0] - ldr r3, _0801513C @ =0x0001601c - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08015140 @ =gDynamicBasePower - strh r4, [r0] - subs r3, 0x10 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08015144 @ =gBattleCommunication - strb r2, [r0, 0x3] - strb r2, [r0, 0x4] - ldr r3, _08015148 @ =0x00016112 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _0801514C @ =0x00017130 - adds r1, r0 - strb r2, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801510C: .4byte gCurrentMoveTurn -_08015110: .4byte gFightStateTracker -_08015114: .4byte gUnknown_02024A76 -_08015118: .4byte gHitMarker -_0801511C: .4byte 0xf1e892af -_08015120: .4byte gBattleMoveDamage -_08015124: .4byte gSharedMem -_08015128: .4byte 0x00016002 -_0801512C: .4byte 0x000160a1 -_08015130: .4byte gMoveHitWith -_08015134: .4byte gBankAttacker -_08015138: .4byte gUnknown_02024C44 -_0801513C: .4byte 0x0001601c -_08015140: .4byte gDynamicBasePower -_08015144: .4byte gBattleCommunication -_08015148: .4byte 0x00016112 -_0801514C: .4byte 0x00017130 - thumb_func_end bsC_8016D70 - - thumb_func_start GetBattleBank -GetBattleBank: @ 8015150 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - cmp r0, 0xA - bhi _080151C8 - lsls r0, 2 - ldr r1, _08015168 @ =_0801516C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08015168: .4byte _0801516C - .align 2, 0 -_0801516C: - .4byte _08015198 - .4byte _080151A0 - .4byte _080151A8 - .4byte _080151C4 - .4byte _080151C8 - .4byte _080151C4 - .4byte _080151C8 - .4byte _080151B0 - .4byte _080151C8 - .4byte _080151C8 - .4byte _080151B4 -_08015198: - ldr r0, _0801519C @ =gBankTarget - b _080151C6 - .align 2, 0 -_0801519C: .4byte gBankTarget -_080151A0: - ldr r0, _080151A4 @ =gBankAttacker - b _080151C6 - .align 2, 0 -_080151A4: .4byte gBankAttacker -_080151A8: - ldr r0, _080151AC @ =gEffectBank - b _080151C6 - .align 2, 0 -_080151AC: .4byte gEffectBank -_080151B0: - movs r2, 0 - b _080151C8 -_080151B4: - ldr r0, _080151BC @ =gSharedMem - ldr r1, _080151C0 @ =0x00016003 - adds r0, r1 - b _080151C6 - .align 2, 0 -_080151BC: .4byte gSharedMem -_080151C0: .4byte 0x00016003 -_080151C4: - ldr r0, _080151D0 @ =gBank1 -_080151C6: - ldrb r2, [r0] -_080151C8: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_080151D0: .4byte gBank1 - thumb_func_end GetBattleBank - - thumb_func_start PressurePPLose -PressurePPLose: @ 80151D4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _08015204 @ =gBattleMons - movs r4, 0x58 - muls r0, r4 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - mov r12, r1 - cmp r0, 0x2E - bne _08015286 - movs r3, 0 - adds r0, r5, 0 - muls r0, r4 - adds r1, 0xC - adds r1, r0, r1 - b _08015210 - .align 2, 0 -_08015204: .4byte gBattleMons -_08015208: - adds r1, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - bgt _08015216 -_08015210: - ldrh r0, [r1] - cmp r0, r2 - bne _08015208 -_08015216: - cmp r3, 0x4 - beq _08015286 - movs r7, 0x58 - adds r2, r5, 0 - muls r2, r7 - adds r0, r3, r2 - mov r6, r12 - adds r6, 0x24 - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _08015232 - subs r0, 0x1 - strb r0, [r1] -_08015232: - mov r0, r12 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _08015286 - ldr r1, _08015290 @ =gDisableStructs - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _08015294 @ =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08015286 - ldr r4, _08015298 @ =gActiveBank - strb r5, [r4] - adds r1, r3, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - muls r0, r7 - adds r0, r6 - adds r0, r3 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl EmitSetAttributes - ldrb r0, [r4] - bl MarkBufferBankForExecution -_08015286: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08015290: .4byte gDisableStructs -_08015294: .4byte gBitTable -_08015298: .4byte gActiveBank - thumb_func_end PressurePPLose - - thumb_func_start sub_801529C -sub_801529C: @ 801529C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x4 - mov r8, r0 - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r4, 0 - ldr r0, _080153BC @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - bge _08015344 - ldr r1, _080153C0 @ =gBattleMons - movs r0, 0x58 - adds r7, r5, 0 - muls r7, r0 - adds r1, 0xC - mov r10, r1 -_080152D2: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - adds r6, r4, 0x1 - cmp r9, r0 - beq _0801533A - ldr r0, _080153C0 @ =gBattleMons - movs r3, 0x58 - adds r1, r4, 0 - muls r1, r3 - adds r1, r0 - adds r1, 0x20 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0x2E - bne _0801533A - movs r2, 0 - adds r0, r5, 0 - muls r0, r3 - adds r1, r4, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x8F - lsls r1, 1 - cmp r0, r1 - beq _08015322 - adds r3, r1, 0 - mov r0, r10 - adds r1, r7, r0 -_08015314: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - bgt _08015322 - ldrh r0, [r1] - cmp r0, r3 - bne _08015314 -_08015322: - cmp r2, 0x4 - beq _0801533A - mov r8, r2 - adds r1, r2, r7 - adds r0, r4, 0 - adds r0, 0x24 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0801533A - subs r0, 0x1 - strb r0, [r1] -_0801533A: - adds r4, r6, 0 - ldr r0, _080153BC @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _080152D2 -_08015344: - mov r1, r8 - cmp r1, 0x4 - beq _080153AC - ldr r6, _080153C0 @ =gBattleMons - movs r3, 0x58 - adds r0, r5, 0 - muls r0, r3 - adds r1, r6, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _080153AC - ldr r1, _080153C4 @ =gDisableStructs - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _080153C8 @ =gBitTable - mov r4, r8 - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080153AC - ldr r4, _080153CC @ =gActiveBank - strb r5, [r4] - mov r1, r8 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - muls r0, r3 - adds r2, r6, 0 - adds r2, 0x24 - adds r0, r2 - add r0, r8 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl EmitSetAttributes - ldrb r0, [r4] - bl MarkBufferBankForExecution -_080153AC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080153BC: .4byte gNoOfAllBanks -_080153C0: .4byte gBattleMons -_080153C4: .4byte gDisableStructs -_080153C8: .4byte gBitTable -_080153CC: .4byte gActiveBank - thumb_func_end sub_801529C - - thumb_func_start sub_80153D0 -sub_80153D0: @ 80153D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r3, r0, 24 - movs r6, 0x4 - movs r1, 0 - ldr r0, _080154C8 @ =gNoOfAllBanks - mov r8, r0 - ldrb r0, [r0] - cmp r1, r0 - bge _08015452 - ldr r7, _080154CC @ =gBattleMons - movs r2, 0x58 - mov r12, r2 - mov r5, r12 - muls r5, r3 - adds r0, r7, 0 - adds r0, 0xC - adds r2, r5, r0 - mov r10, r2 - mov r9, r5 -_08015402: - mov r0, r12 - muls r0, r1 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - adds r4, r1, 0x1 - cmp r0, 0x2E - bne _08015448 - cmp r1, r3 - beq _08015448 - movs r2, 0 - mov r1, r10 - ldrh r0, [r1] - cmp r0, 0xC3 - beq _08015432 - ldr r1, _080154D0 @ =gUnknown_02024A8C - add r1, r9 -_08015424: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - bgt _08015432 - ldrh r0, [r1] - cmp r0, 0xC3 - bne _08015424 -_08015432: - cmp r2, 0x4 - beq _08015448 - adds r6, r2, 0 - adds r0, r6, r5 - ldr r2, _080154D4 @ =gUnknown_02024AA4 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08015448 - subs r0, 0x1 - strb r0, [r1] -_08015448: - adds r1, r4, 0 - mov r0, r8 - ldrb r0, [r0] - cmp r1, r0 - blt _08015402 -_08015452: - cmp r6, 0x4 - beq _080154B6 - ldr r7, _080154CC @ =gBattleMons - movs r5, 0x58 - adds r0, r3, 0 - muls r0, r5 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _080154B6 - ldr r1, _080154D8 @ =gDisableStructs - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _080154DC @ =gBitTable - lsls r0, r6, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080154B6 - ldr r4, _080154E0 @ =gActiveBank - strb r3, [r4] - adds r1, r6, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - muls r0, r5 - adds r2, r7, 0 - adds r2, 0x24 - adds r0, r2 - adds r0, r6 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl EmitSetAttributes - ldrb r0, [r4] - bl MarkBufferBankForExecution -_080154B6: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080154C8: .4byte gNoOfAllBanks -_080154CC: .4byte gBattleMons -_080154D0: .4byte gUnknown_02024A8C -_080154D4: .4byte gUnknown_02024AA4 -_080154D8: .4byte gDisableStructs -_080154DC: .4byte gBitTable -_080154E0: .4byte gActiveBank - thumb_func_end sub_80153D0 - - thumb_func_start unref_sub_80154E4 -unref_sub_80154E4: @ 80154E4 - push {r4,r5,lr} - ldr r0, _08015514 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08015524 - movs r2, 0 - ldr r4, _08015518 @ =gNoOfAllBanks - ldrb r0, [r4] - cmp r2, r0 - bge _08015542 - ldr r3, _0801551C @ =gBattleExecBuffer - ldr r5, _08015520 @ =gBitTable -_08015500: - ldm r5!, {r1} - lsls r1, 28 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r2, 0x1 - ldrb r0, [r4] - cmp r2, r0 - blt _08015500 - b _08015542 - .align 2, 0 -_08015514: .4byte gBattleTypeFlags -_08015518: .4byte gNoOfAllBanks -_0801551C: .4byte gBattleExecBuffer -_08015520: .4byte gBitTable -_08015524: - movs r2, 0 - ldr r4, _08015548 @ =gNoOfAllBanks - ldrb r0, [r4] - cmp r2, r0 - bge _08015542 - ldr r3, _0801554C @ =gBattleExecBuffer - ldr r5, _08015550 @ =gBitTable -_08015532: - ldr r0, [r3] - ldm r5!, {r1} - orrs r0, r1 - str r0, [r3] - adds r2, 0x1 - ldrb r0, [r4] - cmp r2, r0 - blt _08015532 -_08015542: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08015548: .4byte gNoOfAllBanks -_0801554C: .4byte gBattleExecBuffer -_08015550: .4byte gBitTable - thumb_func_end unref_sub_80154E4 - - thumb_func_start MarkBufferBankForExecution -MarkBufferBankForExecution: @ 8015554 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0801557C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08015588 - ldr r2, _08015580 @ =gBattleExecBuffer - ldr r1, _08015584 @ =gBitTable - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _08015598 - .align 2, 0 -_0801557C: .4byte gBattleTypeFlags -_08015580: .4byte gBattleExecBuffer -_08015584: .4byte gBitTable -_08015588: - ldr r2, _0801559C @ =gBattleExecBuffer - ldr r1, _080155A0 @ =gBitTable - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - orrs r1, r0 - str r1, [r2] -_08015598: - pop {r0} - bx r0 - .align 2, 0 -_0801559C: .4byte gBattleExecBuffer -_080155A0: .4byte gBitTable - thumb_func_end MarkBufferBankForExecution - - thumb_func_start sub_80155A4 -sub_80155A4: @ 80155A4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r5, _080155B8 @ =gBattleExecBuffer - ldr r1, _080155BC @ =gBitTable - lsls r0, r7, 2 - adds r6, r0, r1 - b _080155CE - .align 2, 0 -_080155B8: .4byte gBattleExecBuffer -_080155BC: .4byte gBitTable -_080155C0: - lsls r0, r4, 2 - ldr r1, [r6] - lsls r1, r0 - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] - adds r4, 0x1 -_080155CE: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - blt _080155C0 - ldr r2, _080155F0 @ =gBattleExecBuffer - movs r1, 0x80 - lsls r1, 21 - lsls r1, r7 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080155F0: .4byte gBattleExecBuffer - thumb_func_end sub_80155A4 - - thumb_func_start CancelMultiTurnMoves -CancelMultiTurnMoves: @ 80155F4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08015644 @ =gBattleMons - movs r2, 0x58 - adds r3, r0, 0 - muls r3, r2 - adds r1, 0x50 - adds r3, r1 - ldr r1, [r3] - ldr r2, _08015648 @ =0xffffefff - ands r1, r2 - ldr r2, _0801564C @ =0xfffff3ff - ands r1, r2 - movs r2, 0x71 - negs r2, r2 - ands r1, r2 - ldr r2, _08015650 @ =0xfffffcff - ands r1, r2 - str r1, [r3] - ldr r1, _08015654 @ =gStatuses3 - lsls r2, r0, 2 - adds r2, r1 - ldr r1, [r2] - ldr r3, _08015658 @ =0xfffbff3f - ands r1, r3 - str r1, [r2] - ldr r2, _0801565C @ =gDisableStructs - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x11] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x11] - movs r0, 0 - strb r0, [r1, 0x10] - bx lr - .align 2, 0 -_08015644: .4byte gBattleMons -_08015648: .4byte 0xffffefff -_0801564C: .4byte 0xfffff3ff -_08015650: .4byte 0xfffffcff -_08015654: .4byte gStatuses3 -_08015658: .4byte 0xfffbff3f -_0801565C: .4byte gDisableStructs - thumb_func_end CancelMultiTurnMoves - - thumb_func_start sub_8015660 -sub_8015660: @ 8015660 - push {lr} - lsls r0, 24 - ldr r1, _080156AC @ =gProtectStructs - lsrs r0, 20 - adds r1, r0, r1 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - bne _080156A6 - ldrb r2, [r1, 0x1] - lsls r0, r2, 30 - cmp r0, 0 - blt _080156A6 - lsls r0, r2, 26 - cmp r0, 0 - blt _080156A6 - lsls r0, r2, 25 - cmp r0, 0 - blt _080156A6 - lsrs r0, r2, 7 - cmp r0, 0 - bne _080156A6 - ldrb r1, [r1, 0x2] - lsls r0, r1, 31 - cmp r0, 0 - bne _080156A6 - lsls r0, r1, 30 - cmp r0, 0 - blt _080156A6 - lsls r0, r1, 29 - cmp r0, 0 - blt _080156A6 - lsls r0, r2, 31 - cmp r0, 0 - beq _080156B0 -_080156A6: - movs r0, 0x1 - b _080156B2 - .align 2, 0 -_080156AC: .4byte gProtectStructs -_080156B0: - movs r0, 0 -_080156B2: - pop {r1} - bx r1 - thumb_func_end sub_8015660 - - thumb_func_start PrepareStringBattle -PrepareStringBattle: @ 80156B8 - push {r4,lr} - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080156D8 @ =gActiveBank - strb r1, [r4] - movs r0, 0 - adds r1, r2, 0 - bl EmitPrintString - ldrb r0, [r4] - bl MarkBufferBankForExecution - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080156D8: .4byte gActiveBank - thumb_func_end PrepareStringBattle - - thumb_func_start sub_80156DC -sub_80156DC: @ 80156DC - push {r4-r6,lr} - movs r3, 0 - ldr r0, _08015730 @ =gSentPokesToOpponent - strb r3, [r0] - strb r3, [r0, 0x1] - movs r1, 0 - ldr r0, _08015734 @ =gNoOfAllBanks - ldrb r2, [r0] - adds r6, r0, 0 - cmp r1, r2 - bge _0801570A - ldr r5, _08015738 @ =gBitTable - adds r4, r2, 0 - ldr r2, _0801573C @ =gBattlePartyID -_080156F8: - ldrh r0, [r2] - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - orrs r3, r0 - adds r2, 0x4 - adds r1, 0x2 - cmp r1, r4 - blt _080156F8 -_0801570A: - movs r1, 0x1 - adds r2, r6, 0 - ldrb r0, [r2] - cmp r1, r0 - bge _0801572A - ldr r5, _08015730 @ =gSentPokesToOpponent - movs r4, 0x2 -_08015718: - adds r0, r1, 0 - ands r0, r4 - asrs r0, 1 - adds r0, r5 - strb r3, [r0] - adds r1, 0x2 - ldrb r0, [r2] - cmp r1, r0 - blt _08015718 -_0801572A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08015730: .4byte gSentPokesToOpponent -_08015734: .4byte gNoOfAllBanks -_08015738: .4byte gBitTable -_0801573C: .4byte gBattlePartyID - thumb_func_end sub_80156DC - - thumb_func_start sub_8015740 -sub_8015740: @ 8015740 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080157A4 - movs r0, 0x2 - ands r0, r5 - lsls r0, 24 - lsrs r0, 25 - mov r12, r0 - ldr r1, _080157B0 @ =gSentPokesToOpponent - adds r0, r1 - strb r4, [r0] - adds r5, r4, 0 - ldr r0, _080157B4 @ =gNoOfAllBanks - ldrb r2, [r0] - mov r8, r1 - cmp r4, r2 - bge _0801579E - ldr r0, _080157B8 @ =gAbsentBankFlags - ldrb r7, [r0] - ldr r1, _080157BC @ =gBitTable - adds r6, r2, 0 - ldr r3, _080157C0 @ =gBattlePartyID - adds r2, r1, 0 -_08015782: - ldr r0, [r2] - ands r0, r7 - cmp r0, 0 - bne _08015794 - ldrh r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r4, r0 -_08015794: - adds r3, 0x4 - adds r2, 0x8 - adds r5, 0x2 - cmp r5, r6 - blt _08015782 -_0801579E: - mov r0, r12 - add r0, r8 - strb r4, [r0] -_080157A4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080157B0: .4byte gSentPokesToOpponent -_080157B4: .4byte gNoOfAllBanks -_080157B8: .4byte gAbsentBankFlags -_080157BC: .4byte gBitTable -_080157C0: .4byte gBattlePartyID - thumb_func_end sub_8015740 - - thumb_func_start sub_80157C4 -sub_80157C4: @ 80157C4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080157E0 - adds r0, r4, 0 - bl sub_8015740 - b _08015816 -_080157E0: - movs r3, 0x1 - ldr r5, _0801581C @ =gNoOfAllBanks - ldrb r0, [r5] - cmp r3, r0 - bge _08015816 - ldr r0, _08015820 @ =gSentPokesToOpponent - mov r12, r0 - movs r7, 0x2 - ldr r6, _08015824 @ =gBitTable - ldr r1, _08015828 @ =gBattlePartyID - lsls r0, r4, 1 - adds r4, r0, r1 -_080157F8: - adds r2, r3, 0 - ands r2, r7 - asrs r2, 1 - add r2, r12 - ldrh r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - adds r3, 0x1 - ldrb r0, [r5] - cmp r3, r0 - blt _080157F8 -_08015816: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801581C: .4byte gNoOfAllBanks -_08015820: .4byte gSentPokesToOpponent -_08015824: .4byte gBitTable -_08015828: .4byte gBattlePartyID - thumb_func_end sub_80157C4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_9.s b/asm/battle_9.s index dce32d076..b86914ca6 100644 --- a/asm/battle_9.s +++ b/asm/battle_9.s @@ -95,7 +95,7 @@ _0803609C: .4byte 0x000160c8 _080360A0: ldr r4, _080361D8 @ =gBattleMons movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x58 @@ -108,7 +108,7 @@ _080360A0: b _080361C8 _080360BC: movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r2, r0, 24 movs r6, 0 @@ -187,7 +187,7 @@ _08036110: movs r1, 0x2E bl GetMonData movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r2, r0, 24 movs r4, 0 @@ -312,7 +312,7 @@ _08036242: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08036290 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _08036294 @ =gBitTable @@ -339,7 +339,7 @@ _08036298: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r7, r0, 24 b _080362B2 @@ -656,7 +656,7 @@ ai_has_super_effective_move_on_field: @ 8036514 lsrs r0, 24 mov r8, r0 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080365AC @ =gAbsentBankFlags @@ -733,7 +733,7 @@ _080365C0: b _08036640 _080365C4: movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0803664C @ =gAbsentBankFlags @@ -909,7 +909,7 @@ _080366F6: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08036748 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _0803674C @ =gBitTable @@ -938,7 +938,7 @@ _08036750: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -1238,7 +1238,7 @@ _080369A0: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _080369F4 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _080369F8 @ =gBitTable @@ -1265,7 +1265,7 @@ _080369FC: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r6, r0, 24 b _08036A18 @@ -1427,7 +1427,7 @@ _08036B28: cmp r0, 0 bne _08036B78 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 @@ -1439,11 +1439,11 @@ _08036B70: .4byte gActiveBank _08036B74: .4byte 0x000160c8 _08036B78: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 _08036B8C: @@ -1636,7 +1636,7 @@ sub_8036CD4: @ 8036CD4 eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08036D24 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _08036D28 @ =gBitTable @@ -1661,7 +1661,7 @@ _08036D2C: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] @@ -1692,7 +1692,7 @@ _08036D70: .4byte gAbsentBankFlags _08036D74: .4byte gBitTable _08036D78: movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -2598,7 +2598,7 @@ _08037468: ldrb r0, [r0, 0x16] cmp r0, 0 beq _080374A8 - ldr r0, _080374A4 @ =gSideTimer + ldr r0, _080374A4 @ =gSideTimers lsls r1, r3, 1 adds r1, r3 lsls r1, 2 @@ -2613,7 +2613,7 @@ _08037496: .align 2, 0 _0803749C: .4byte gActiveBank _080374A0: .4byte gDisableStructs -_080374A4: .4byte gSideTimer +_080374A4: .4byte gSideTimers _080374A8: mov r1, r8 cmp r1, 0 diff --git a/asm/battle_anim_81258BC.s b/asm/battle_anim_81258BC.s deleted file mode 100644 index 2c19ad731..000000000 --- a/asm/battle_anim_81258BC.s +++ /dev/null @@ -1,732 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start unref_sub_812AECC -unref_sub_812AECC: @ 812AECC - push {lr} - bl RunMysteryEventScript - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x1 - beq _0812AEEA - cmp r0, 0x1 - ble _0812AF08 - cmp r1, 0x2 - beq _0812AEF4 - cmp r1, 0x3 - beq _0812AEFA - b _0812AF08 -_0812AEEA: - movs r0, 0x16 - bl PlaySE - movs r0, 0x1 - b _0812AF0A -_0812AEF4: - bl sub_812AF10 - b _0812AF08 -_0812AEFA: - movs r0, 0x16 - bl PlaySE - bl sub_812AF10 - movs r0, 0x1 - b _0812AF0A -_0812AF08: - movs r0, 0 -_0812AF0A: - pop {r1} - bx r1 - thumb_func_end unref_sub_812AECC - - thumb_func_start sub_812AF10 -sub_812AF10: @ 812AF10 - push {lr} - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _0812AF2C @ =gStringVar4 - movs r1, 0x3 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_0812AF2C: .4byte gStringVar4 - thumb_func_end sub_812AF10 - - thumb_func_start sub_812AF30 -sub_812AF30: @ 812AF30 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0812AF8C @ =gTasks - lsls r6, r0, 2 - adds r6, r0 - lsls r6, 3 - adds r6, r1 - ldr r1, _0812AF90 @ =gBattleAnimArgs - ldrh r0, [r1] - strh r0, [r6, 0x8] - ldrh r0, [r1, 0x2] - strh r0, [r6, 0xA] - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x3F - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x2 - bl CalculatePanIncrement - strh r4, [r6, 0xC] - strh r5, [r6, 0xE] - lsls r0, 24 - asrs r0, 24 - strh r0, [r6, 0x10] - movs r0, 0xA - strh r0, [r6, 0x1C] - ldr r0, _0812AF94 @ =sub_812AF98 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812AF8C: .4byte gTasks -_0812AF90: .4byte gBattleAnimArgs -_0812AF94: .4byte sub_812AF98 - thumb_func_end sub_812AF30 - - thumb_func_start sub_812AF98 -sub_812AF98: @ 812AF98 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0812AFC8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r5, [r4, 0xC] - ldrb r6, [r4, 0x10] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - bne _0812AFD0 - movs r0, 0x5 - strh r0, [r4, 0x1C] - strh r1, [r4, 0x1E] - ldr r0, _0812AFCC @ =sub_812B004 - str r0, [r4] - b _0812AFFE - .align 2, 0 -_0812AFC8: .4byte gTasks -_0812AFCC: .4byte sub_812B004 -_0812AFD0: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _0812AFEA - strh r1, [r4, 0x1C] - ldrh r0, [r4, 0x8] - lsls r1, r5, 24 - asrs r1, 24 - bl PlaySE12WithPanning -_0812AFEA: - lsls r1, r6, 24 - asrs r1, 24 - lsls r0, r5, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - bl sub_8077104 - strh r0, [r4, 0xC] -_0812AFFE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812AF98 - - thumb_func_start sub_812B004 -sub_812B004: @ 812B004 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0812B054 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bne _0812B04C - movs r0, 0 - strh r0, [r4, 0x1C] - movs r0, 0x3F - bl BattleAnimAdjustPanning - adds r1, r0, 0 - ldrh r0, [r4, 0xA] - lsls r1, 24 - asrs r1, 24 - bl PlaySE12WithPanning - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _0812B04C - adds r0, r5, 0 - bl DestroyAnimSoundTask -_0812B04C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B054: .4byte gTasks - thumb_func_end sub_812B004 - - thumb_func_start sub_812B058 -sub_812B058: @ 812B058 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0812B0FC @ =gBattleAnimArgs - ldrh r1, [r0] - str r1, [sp] - ldrb r5, [r0, 0x4] - ldrb r6, [r0, 0x6] - ldrb r3, [r0, 0x8] - mov r10, r3 - ldrb r7, [r0, 0xA] - ldrb r1, [r0, 0xC] - mov r9, r1 - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _0812B100 @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - mov r6, sp - ldrh r6, [r6] - strh r6, [r1, 0x8] - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r10 - strh r0, [r1, 0x10] - strh r7, [r1, 0x12] - mov r3, r9 - strh r3, [r1, 0x14] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - strh r3, [r1, 0x20] - ldr r2, _0812B104 @ =sub_812B108 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812B0FC: .4byte gBattleAnimArgs -_0812B100: .4byte gTasks -_0812B104: .4byte sub_812B108 - thumb_func_end sub_812B058 - - thumb_func_start sub_812B108 -sub_812B108: @ 812B108 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0812B14C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x20] - adds r1, r0, 0x1 - strh r1, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x14 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B150 - movs r0, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x8] - movs r1, 0x1E - ldrsb r1, [r4, r1] - bl PlaySE12WithPanning - ldrh r0, [r4, 0x10] - subs r0, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0812B150 - adds r0, r5, 0 - bl DestroyAnimSoundTask - b _0812B182 - .align 2, 0 -_0812B14C: .4byte gTasks -_0812B150: - ldr r1, _0812B188 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x12 - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _0812B182 - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r0, [r4, 0xE] - ldrh r1, [r4, 0x1E] - adds r0, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8077104 - strh r0, [r4, 0x1E] -_0812B182: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B188: .4byte gTasks - thumb_func_end sub_812B108 - - thumb_func_start sub_812B18C -sub_812B18C: @ 812B18C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - lsls r0, 24 - lsrs r6, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _0812B1CC - ldr r0, _0812B1BC @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812B1C4 - ldr r0, _0812B1C0 @ =gSharedMem + 0x19348 - ldrh r4, [r0] - b _0812B272 - .align 2, 0 -_0812B1BC: .4byte gBattleAnimArgs -_0812B1C0: .4byte gSharedMem + 0x19348 -_0812B1C4: - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _0812B272 -_0812B1CC: - ldr r0, _0812B1E0 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0 - bne _0812B1E8 - ldr r0, _0812B1E4 @ =gAnimBankAttacker - ldrb r4, [r0] - b _0812B20E - .align 2, 0 -_0812B1E0: .4byte gBattleAnimArgs -_0812B1E4: .4byte gAnimBankAttacker -_0812B1E8: - cmp r1, 0x1 - bne _0812B1F8 - ldr r0, _0812B1F4 @ =gAnimBankTarget - ldrb r4, [r0] - b _0812B20E - .align 2, 0 -_0812B1F4: .4byte gAnimBankTarget -_0812B1F8: - cmp r1, 0x2 - bne _0812B204 - ldr r0, _0812B200 @ =gAnimBankAttacker - b _0812B206 - .align 2, 0 -_0812B200: .4byte gAnimBankAttacker -_0812B204: - ldr r0, _0812B230 @ =gAnimBankTarget -_0812B206: - ldrb r1, [r0] - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r1 -_0812B20E: - movs r1, 0 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _0812B21A - cmp r0, 0x3 - bne _0812B234 -_0812B21A: - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - bne _0812B234 - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _0812B2B0 - .align 2, 0 -_0812B230: .4byte gAnimBankTarget -_0812B234: - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0812B258 - ldr r1, _0812B250 @ =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812B254 @ =gEnemyParty - b _0812B266 - .align 2, 0 -_0812B250: .4byte gBattlePartyID -_0812B254: .4byte gEnemyParty -_0812B258: - ldr r1, _0812B290 @ =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0812B294 @ =gPlayerParty -_0812B266: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 -_0812B272: - cmp r4, 0 - beq _0812B2AA - ldr r0, _0812B298 @ =gBattleAnimArgs - ldrh r2, [r0, 0x2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - cmp r0, 0xFF - bne _0812B29C - lsls r1, r6, 24 - asrs r1, 24 - adds r0, r4, 0 - bl PlayCry1 - b _0812B2AA - .align 2, 0 -_0812B290: .4byte gBattlePartyID -_0812B294: .4byte gPlayerParty -_0812B298: .4byte gBattleAnimArgs -_0812B29C: - lsls r1, r6, 24 - asrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl PlayCry3 -_0812B2AA: - adds r0, r5, 0 - bl DestroyAnimVisualTask -_0812B2B0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_812B18C - - thumb_func_start sub_812B2B8 -sub_812B2B8: @ 812B2B8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - lsls r0, 24 - lsrs r4, r0, 24 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _0812B2DC - ldr r0, _0812B2D8 @ =gSharedMem + 0x19348 - b _0812B2E6 - .align 2, 0 -_0812B2D8: .4byte gSharedMem + 0x19348 -_0812B2DC: - ldr r1, _0812B304 @ =gAnimSpeciesByBanks - ldr r0, _0812B308 @ =gAnimBankAttacker - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 -_0812B2E6: - ldrh r0, [r0] - cmp r0, 0 - beq _0812B2F6 - lsls r1, r4, 24 - asrs r1, 24 - movs r2, 0x4 - bl PlayCry3 -_0812B2F6: - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B304: .4byte gAnimSpeciesByBanks -_0812B308: .4byte gAnimBankAttacker - thumb_func_end sub_812B2B8 - - thumb_func_start sub_812B30C -sub_812B30C: @ 812B30C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0812B33C @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE1WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B33C: .4byte gBattleAnimArgs - thumb_func_end sub_812B30C - - thumb_func_start sub_812B340 -sub_812B340: @ 812B340 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0812B370 @ =gBattleAnimArgs - ldrh r5, [r0] - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r5, 0 - bl PlaySE2WithPanning - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B370: .4byte gBattleAnimArgs - thumb_func_end sub_812B340 - - thumb_func_start sub_812B374 -sub_812B374: @ 812B374 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0812B3F8 @ =gBattleAnimArgs - ldrb r5, [r0, 0x2] - ldrb r6, [r0, 0x4] - ldrh r1, [r0, 0x6] - mov r9, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - asrs r5, 24 - adds r0, r5, 0 - bl BattleAnimAdjustPanning - adds r5, r0, 0 - lsls r4, 24 - asrs r4, 24 - lsls r5, 24 - asrs r5, 24 - lsls r6, 24 - asrs r6, 24 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl CalculatePanIncrement - ldr r2, _0812B3FC @ =gTasks - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0xE] - mov r0, r9 - strh r0, [r1, 0x12] - strh r2, [r1, 0x1C] - strh r4, [r1, 0x1E] - ldr r2, _0812B400 @ =sub_812B404 - str r2, [r1] - mov r0, r8 - bl _call_via_r2 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0812B3F8: .4byte gBattleAnimArgs -_0812B3FC: .4byte gTasks -_0812B400: .4byte sub_812B404 - thumb_func_end sub_812B374 - - thumb_func_start sub_812B404 -sub_812B404: @ 812B404 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _0812B45C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r2, [r4, 0xE] - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x12 - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _0812B43E - movs r0, 0 - strh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - adds r0, r2, r1 - strh r0, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - bl sub_8077104 - strh r0, [r4, 0x1E] -_0812B43E: - ldr r1, _0812B460 @ =gUnknown_0202F7D2 - ldrh r0, [r4, 0x1E] - strb r0, [r1] - movs r3, 0x1E - ldrsh r1, [r4, r3] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _0812B456 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_0812B456: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812B45C: .4byte gTasks -_0812B460: .4byte gUnknown_0202F7D2 - thumb_func_end sub_812B404 - - .align 2, 0 @ Don't pad with nop. -
\ No newline at end of file diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s index 73f399caa..fb9c25a82 100644 --- a/asm/battle_anim_813F0F4.s +++ b/asm/battle_anim_813F0F4.s @@ -1366,7 +1366,7 @@ _0813FBE0: lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 bl sub_8079E90 @@ -1418,7 +1418,7 @@ _0813FBE0: ldr r0, _0813FCAC @ =SpriteCallbackDummy str r0, [r4] movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _0813FCB0 @ =gObjectBankIDs lsls r0, 24 lsrs r0, 24 @@ -1462,7 +1462,7 @@ sub_813FCBC: @ 813FCBC lsrs r5, r0, 24 ldr r6, _0813FD1C @ =gSprites movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _0813FD20 @ =gObjectBankIDs lsls r0, 24 lsrs r0, 24 @@ -1519,7 +1519,7 @@ sub_813FD34: @ 813FD34 lsrs r5, r0, 24 ldr r6, _0813FD88 @ =gSprites movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r4, _0813FD8C @ =gObjectBankIDs lsls r0, 24 lsrs r0, 24 @@ -1535,7 +1535,7 @@ sub_813FD34: @ 813FD34 cmp r0, 0 bge _0813FD80 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -5483,7 +5483,7 @@ sub_8141C30: @ 8141C30 movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -5495,7 +5495,7 @@ sub_8141C30: @ 8141C30 adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -5644,11 +5644,11 @@ sub_8141D7C: @ 8141D7C lsls r4, 24 lsrs r4, 24 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08141DA4 @ =gAnimBankAttacker strb r0, [r1] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08141DA8 @ =gAnimBankTarget strb r0, [r1] adds r0, r4, 0 diff --git a/asm/battle_intro.s b/asm/battle_intro.s index 10b504a79..4bfcf42fb 100755 --- a/asm/battle_intro.s +++ b/asm/battle_intro.s @@ -1474,7 +1474,7 @@ sub_80E4EF8: @ 80E4EF8 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 ldr r2, _080E4FCC @ =0x040000d4 diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 6bd98cc8a..608daba87 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -82,9 +82,9 @@ sub_80C2020: @ 80C2020 adds r1, r3, 0 orrs r0, r1 strh r0, [r5] - ldr r0, _080C2114 @ =gUnknown_030042A4 + ldr r0, _080C2114 @ =gBattle_BG0_X strh r2, [r0] - ldr r0, _080C2118 @ =gUnknown_030042A0 + ldr r0, _080C2118 @ =gBattle_BG0_Y strh r2, [r0] ldr r0, _080C211C @ =gBattle_BG1_X strh r2, [r0] @@ -119,8 +119,8 @@ _080C2104: .4byte 0x00003a03 _080C2108: .4byte REG_MOSAIC _080C210C: .4byte 0x00003f3f _080C2110: .4byte REG_WIN0H -_080C2114: .4byte gUnknown_030042A4 -_080C2118: .4byte gUnknown_030042A0 +_080C2114: .4byte gBattle_BG0_X +_080C2118: .4byte gBattle_BG0_Y _080C211C: .4byte gBattle_BG1_X _080C2120: .4byte gBattle_BG1_Y _080C2124: .4byte gBattle_BG2_X @@ -482,11 +482,11 @@ sub_80C2430: @ 80C2430 sub_80C2448: @ 80C2448 push {lr} ldr r1, _080C24C0 @ =REG_BG0HOFS - ldr r0, _080C24C4 @ =gUnknown_030042A4 + ldr r0, _080C24C4 @ =gBattle_BG0_X ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 - ldr r0, _080C24C8 @ =gUnknown_030042A0 + ldr r0, _080C24C8 @ =gBattle_BG0_Y ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 @@ -537,8 +537,8 @@ sub_80C2448: @ 80C2448 bx r0 .align 2, 0 _080C24C0: .4byte REG_BG0HOFS -_080C24C4: .4byte gUnknown_030042A4 -_080C24C8: .4byte gUnknown_030042A0 +_080C24C4: .4byte gBattle_BG0_X +_080C24C8: .4byte gBattle_BG0_Y _080C24CC: .4byte gBattle_BG1_X _080C24D0: .4byte gBattle_BG1_Y _080C24D4: .4byte gBattle_BG2_X diff --git a/asm/dark.s b/asm/dark.s index 3fcc3f56c..f3274861c 100755 --- a/asm/dark.s +++ b/asm/dark.s @@ -1940,7 +1940,7 @@ _080E0E8A: beq _080E0EB6 _080E0E90: adds r0, r4, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 @@ -2701,7 +2701,7 @@ sub_80D8BA8: @ 80D8BA8 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s index 822c4c566..a8b8fa401 100644 --- a/asm/pokemon_item_effect.s +++ b/asm/pokemon_item_effect.s @@ -529,7 +529,7 @@ _0803E59C: adds r6, r2, 0 cmp r0, 0 beq _0803E5E4 - ldr r5, _0803E758 @ =gSideTimer + ldr r5, _0803E758 @ =gSideTimers ldr r4, _0803E75C @ =gActiveBank ldrb r0, [r4] bl GetBankSide @@ -738,7 +738,7 @@ _0803E74E: str r5, [sp, 0x1C] bl _0803F14C .align 2, 0 -_0803E758: .4byte gSideTimer +_0803E758: .4byte gSideTimers _0803E75C: .4byte gActiveBank _0803E760: .4byte gExperienceTables _0803E764: .4byte gBaseStats diff --git a/asm/psychic.s b/asm/psychic.s index 7a6000335..20e558bf6 100755 --- a/asm/psychic.s +++ b/asm/psychic.s @@ -39,7 +39,7 @@ _080DB77E: cmp r0, 0 bne _080DB7DA movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 @@ -274,7 +274,7 @@ sub_80DB92C: @ 80DB92C cmp r0, 0 bne _080DB9BC movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 @@ -349,7 +349,7 @@ sub_80DB9E4: @ 80DB9E4 cmp r0, 0 bne _080DBA3C movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 diff --git a/asm/roulette.s b/asm/roulette.s deleted file mode 100644 index 04b3ac9b8..000000000 --- a/asm/roulette.s +++ /dev/null @@ -1,9658 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_81150FC -sub_81150FC: @ 81150FC - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _08115120 @ =gSharedMem + 0x19000 - adds r1, r0, 0 - adds r1, 0xB8 - ldrb r0, [r1] - cmp r0, 0 - beq _0811511C - adds r0, r1, 0 - bl task_tutorial_controls_fadein -_0811511C: - pop {r0} - bx r0 - .align 2, 0 -_08115120: .4byte gSharedMem + 0x19000 - thumb_func_end sub_81150FC - - thumb_func_start sub_8115124 -sub_8115124: @ 8115124 - push {r4,lr} - sub sp, 0x4 - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_8117434 - ldr r2, _08115188 @ =REG_BG1HOFS - ldr r3, _0811518C @ =gSharedMem + 0x19000 - ldrh r1, [r3, 0x26] - movs r4, 0x80 - lsls r4, 2 - adds r0, r4, 0 - subs r0, r1 - strh r0, [r2] - ldrb r0, [r3, 0x1] - cmp r0, 0 - beq _08115154 - ldr r1, _08115190 @ =REG_BLDALPHA - ldrh r0, [r3, 0x34] - strh r0, [r1] -_08115154: - movs r1, 0x2A - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08115170 - ldr r1, _08115194 @ =0x040000d4 - ldr r0, _08115198 @ =gBGTilemapBuffers + 0x800 + 0x1C0 - str r0, [r1] - ldr r0, _0811519C @ =0x060021c0 - str r0, [r1, 0x4] - ldr r0, _081151A0 @ =0x800001a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0 - strh r0, [r3, 0x2A] -_08115170: - movs r2, 0x28 - ldrsh r0, [r3, r2] - cmp r0, 0x1 - beq _081151A4 - cmp r0, 0x1 - ble _0811521A - cmp r0, 0x2 - beq _081151D4 - cmp r0, 0xFF - beq _081151F8 - b _0811521A - .align 2, 0 -_08115188: .4byte REG_BG1HOFS -_0811518C: .4byte gSharedMem + 0x19000 -_08115190: .4byte REG_BLDALPHA -_08115194: .4byte 0x040000d4 -_08115198: .4byte gBGTilemapBuffers + 0x800 + 0x1C0 -_0811519C: .4byte 0x060021c0 -_081151A0: .4byte 0x800001a0 -_081151A4: - ldr r1, _081151C4 @ =REG_BG0CNT - movs r4, 0xF8 - lsls r4, 5 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0xCC - ldr r0, _081151C8 @ =gBGTilemapBuffers + 0x1000 + 0x1C0 - str r0, [r1] - ldr r0, _081151CC @ =0x0600f9c0 - str r0, [r1, 0x4] - ldr r0, _081151D0 @ =0x800001a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0x2 - b _08115218 - .align 2, 0 -_081151C4: .4byte REG_BG0CNT -_081151C8: .4byte gBGTilemapBuffers + 0x1000 + 0x1C0 -_081151CC: .4byte 0x0600f9c0 -_081151D0: .4byte 0x800001a0 -_081151D4: - ldr r1, _081151E8 @ =0x040000d4 - ldr r0, _081151EC @ =gBGTilemapBuffers + 0x1000 + 0x1C0 - str r0, [r1] - ldr r0, _081151F0 @ =0x0600f9c0 - str r0, [r1, 0x4] - ldr r0, _081151F4 @ =0x800001a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - b _0811521A - .align 2, 0 -_081151E8: .4byte 0x040000d4 -_081151EC: .4byte gBGTilemapBuffers + 0x1000 + 0x1C0 -_081151F0: .4byte 0x0600f9c0 -_081151F4: .4byte 0x800001a0 -_081151F8: - ldr r1, _08115224 @ =REG_BG0CNT - ldr r2, _08115228 @ =0x00001f08 - adds r0, r2, 0 - strh r0, [r1] - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r1, _0811522C @ =0x040000d4 - mov r4, sp - str r4, [r1] - ldr r0, _08115230 @ =0x0600f9c0 - str r0, [r1, 0x4] - ldr r0, _08115234 @ =0x810001a0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0 -_08115218: - strh r0, [r3, 0x28] -_0811521A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115224: .4byte REG_BG0CNT -_08115228: .4byte 0x00001f08 -_0811522C: .4byte 0x040000d4 -_08115230: .4byte 0x0600f9c0 -_08115234: .4byte 0x810001a0 - thumb_func_end sub_8115124 - - thumb_func_start sub_8115238 -sub_8115238: @ 8115238 - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, _081152C0 @ =gUnknown_083F8EC4 - mov r0, sp - movs r2, 0x6 - bl memcpy - ldr r5, _081152C4 @ =gSharedMem + 0x19000 - movs r2, 0xBE - lsls r2, 1 - adds r0, r5, 0 - movs r1, 0 - bl memset - ldr r0, _081152C8 @ =gSpecialVar_0x8004 - ldrh r2, [r0] - movs r0, 0x1 - ands r0, r2 - ldrb r1, [r5, 0x4] - movs r3, 0x4 - negs r3, r3 - ands r3, r1 - orrs r3, r0 - strb r3, [r5, 0x4] - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08115276 - movs r0, 0x80 - orrs r3, r0 - strb r3, [r5, 0x4] -_08115276: - ldr r3, _081152CC @ =gUnknown_083F8DF4 - ldrb r2, [r5, 0x4] - lsls r1, r2, 30 - lsrs r0, r1, 25 - adds r0, r3 - ldrb r0, [r0, 0x3] - adds r4, r5, 0 - adds r4, 0x22 - strb r0, [r4] - lsrs r0, r1, 25 - adds r0, r3 - ldrb r0, [r0, 0x4] - adds r3, r5, 0 - adds r3, 0x23 - strb r0, [r3] - ldr r0, _081152D0 @ =gUnknown_083F8DF0 - lsrs r1, 30 - lsls r2, 24 - lsrs r2, 31 - lsls r2, 1 - adds r1, r2 - adds r1, r0 - ldrb r2, [r1] - strb r2, [r5, 0x19] - ldrb r1, [r5, 0x1A] - movs r0, 0xF - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x1A] - cmp r2, 0x1 - bne _081152DC - ldr r4, _081152D4 @ =gPlttBufferUnfaded - ldr r3, _081152D8 @ =gPlttBufferFaded - mov r0, sp - ldrh r2, [r0] - b _081152E4 - .align 2, 0 -_081152C0: .4byte gUnknown_083F8EC4 -_081152C4: .4byte gSharedMem + 0x19000 -_081152C8: .4byte gSpecialVar_0x8004 -_081152CC: .4byte gUnknown_083F8DF4 -_081152D0: .4byte gUnknown_083F8DF0 -_081152D4: .4byte gPlttBufferUnfaded -_081152D8: .4byte gPlttBufferFaded -_081152DC: - ldr r4, _08115348 @ =gPlttBufferUnfaded - ldr r3, _0811534C @ =gPlttBufferFaded - mov r0, sp - ldrh r2, [r0, 0x2] -_081152E4: - adds r0, r3, 0 - adds r0, 0xA2 - strh r2, [r0] - ldr r1, _08115350 @ =0x0000ffff - adds r0, r1, 0 - ands r0, r2 - strh r0, [r3] - ands r0, r1 - adds r2, r4, 0 - adds r2, 0xA2 - strh r0, [r2] - ands r0, r1 - strh r0, [r4] - ldr r0, _08115354 @ =gSharedMem + 0x190B8 - bl sub_8124918 - movs r4, 0 - ldr r5, _08115358 @ =gUnknown_083F8E34 -_08115308: - lsls r2, r4, 3 - adds r2, r5 - ldr r0, _08115354 @ =gSharedMem + 0x190B8 - adds r1, r4, 0 - bl sub_812492C - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xC - bls _08115308 - movs r4, 0 - ldr r5, _0811535C @ =gSharedMem + 0x19000 -_08115322: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08115360 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - beq _08115364 - adds r0, 0x2 - cmp r1, r0 - bne _0811536C - ldrb r0, [r5, 0x2] - movs r1, 0x1 - b _08115368 - .align 2, 0 -_08115348: .4byte gPlttBufferUnfaded -_0811534C: .4byte gPlttBufferFaded -_08115350: .4byte 0x0000ffff -_08115354: .4byte gSharedMem + 0x190B8 -_08115358: .4byte gUnknown_083F8E34 -_0811535C: .4byte gSharedMem + 0x19000 -_08115360: .4byte gPlayerParty -_08115364: - ldrb r0, [r5, 0x2] - movs r1, 0x2 -_08115368: - orrs r0, r1 - strb r0, [r5, 0x2] -_0811536C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08115322 - bl RtcCalcLocalTime - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8115238 - - thumb_func_start sub_8115384 -sub_8115384: @ 8115384 - push {r4,lr} - sub sp, 0x4 - ldr r1, _081153A4 @ =gMain - ldr r2, _081153A8 @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x7 - bls _08115398 - b _081155FE -_08115398: - lsls r0, 2 - ldr r1, _081153AC @ =_081153B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081153A4: .4byte gMain -_081153A8: .4byte 0x0000043c -_081153AC: .4byte _081153B0 - .align 2, 0 -_081153B0: - .4byte _081153D0 - .4byte _08115444 - .4byte _08115460 - .4byte _08115494 - .4byte _081154CC - .4byte _081154FC - .4byte _0811556C - .4byte _0811558C -_081153D0: - movs r0, 0 - bl SetVBlankCallback - bl remove_some_task - bl sub_80F9438 - bl sub_80F9368 - ldr r1, _08115420 @ =REG_BG2CNT - ldr r3, _08115424 @ =0x00004686 - adds r0, r3, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _08115428 @ =0x00004401 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x46 - movs r3, 0x90 - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0811542C @ =0x0000060a - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08115430 @ =gUnknown_08E8096C - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08115434 @ =gRouletteWheelTiles - ldr r1, _08115438 @ =0x06004000 - bl LZ77UnCompVram - ldr r1, _0811543C @ =gMain - ldr r3, _08115440 @ =0x0000043c - adds r1, r3 - b _0811557A - .align 2, 0 -_08115420: .4byte REG_BG2CNT -_08115424: .4byte 0x00004686 -_08115428: .4byte 0x00004401 -_0811542C: .4byte 0x0000060a -_08115430: .4byte gUnknown_08E8096C -_08115434: .4byte gRouletteWheelTiles -_08115438: .4byte 0x06004000 -_0811543C: .4byte gMain -_08115440: .4byte 0x0000043c -_08115444: - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - ldr r1, _08115458 @ =gMain - ldr r0, _0811545C @ =0x0000043c - adds r1, r0 - b _0811557A - .align 2, 0 -_08115458: .4byte gMain -_0811545C: .4byte 0x0000043c -_08115460: - ldr r0, _08115480 @ =gWindowConfig_81E6C3C - bl SetUpWindowConfig - ldr r0, _08115484 @ =gWindowConfig_81E6CE4 - bl InitMenuWindow - ldr r0, _08115488 @ =gUnknown_083F86BC - movs r2, 0xE0 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - ldr r1, _0811548C @ =gMain - ldr r2, _08115490 @ =0x0000043c - adds r1, r2 - b _0811557A - .align 2, 0 -_08115480: .4byte gWindowConfig_81E6C3C -_08115484: .4byte gWindowConfig_81E6CE4 -_08115488: .4byte gUnknown_083F86BC -_0811548C: .4byte gMain -_08115490: .4byte 0x0000043c -_08115494: - bl sub_8115238 - bl sub_80F9020 - ldr r0, _081154B4 @ =gUnknown_083F88BC - ldr r1, _081154B8 @ =gSharedMem + 0x18800 - bl LZ77UnCompWram - ldr r0, _081154BC @ =gUnknown_083F8A60 - ldr r1, _081154C0 @ =0x06003000 - bl LZ77UnCompVram - ldr r1, _081154C4 @ =gMain - ldr r3, _081154C8 @ =0x0000043c - adds r1, r3 - b _0811557A - .align 2, 0 -_081154B4: .4byte gUnknown_083F88BC -_081154B8: .4byte gSharedMem + 0x18800 -_081154BC: .4byte gUnknown_083F8A60 -_081154C0: .4byte 0x06003000 -_081154C4: .4byte gMain -_081154C8: .4byte 0x0000043c -_081154CC: - movs r0, 0 - bl sub_8117838 - bl sub_811857C - bl sub_81184D8 - bl sub_8117F2C - bl sub_8117900 - bl sub_8117BBC - bl sub_8117DF4 - ldr r1, _081154F4 @ =gMain - ldr r0, _081154F8 @ =0x0000043c - adds r1, r0 - b _0811557A - .align 2, 0 -_081154F4: .4byte gMain -_081154F8: .4byte 0x0000043c -_081154FC: - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _08115550 @ =gSaveBlock1 - ldr r1, _08115554 @ =0x00000494 - adds r0, r1 - ldrh r0, [r0] - bl sub_81180F4 - movs r0, 0x6 - bl sub_81182F8 - movs r0, 0 - bl sub_811829C - movs r0, 0 - bl sub_8117158 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08115558 @ =gUnknown_081C4157 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _0811555C @ =gSpriteCoordOffsetX - movs r2, 0x3C - negs r2, r2 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08115560 @ =gSpriteCoordOffsetY - movs r0, 0 - strh r0, [r1] - ldr r1, _08115564 @ =gMain - ldr r3, _08115568 @ =0x0000043c - adds r1, r3 - b _0811557A - .align 2, 0 -_08115550: .4byte gSaveBlock1 -_08115554: .4byte 0x00000494 -_08115558: .4byte gUnknown_081C4157 -_0811555C: .4byte gSpriteCoordOffsetX -_08115560: .4byte gSpriteCoordOffsetY -_08115564: .4byte gMain -_08115568: .4byte 0x0000043c -_0811556C: - movs r1, 0x80 - lsls r1, 19 - ldr r3, _08115584 @ =0x00001741 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _08115588 @ =0x0000043c - adds r1, r2, r0 -_0811557A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081155FE - .align 2, 0 -_08115584: .4byte 0x00001741 -_08115588: .4byte 0x0000043c -_0811558C: - ldr r3, _08115608 @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _0811560C @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08115610 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08115614 @ =sub_8115124 - bl SetVBlankCallback - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginHardwarePaletteFade - ldr r0, _08115618 @ =sub_81156BC - movs r1, 0 - bl CreateTask - ldr r4, _0811561C @ =gSharedMem + 0x19000 - adds r1, r4, 0 - adds r1, 0xA4 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08115620 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x6 - strh r0, [r1, 0x14] - ldr r0, _08115624 @ =gSaveBlock1 - ldr r2, _08115628 @ =0x00000494 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1, 0x22] - ldr r0, _0811562C @ =sub_8115634 - movs r1, 0x1 - bl CreateTask - adds r4, 0xA5 - strb r0, [r4] - ldr r0, _08115630 @ =sub_81150FC - bl SetMainCallback2 -_081155FE: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115608: .4byte 0x04000208 -_0811560C: .4byte 0x04000200 -_08115610: .4byte REG_DISPSTAT -_08115614: .4byte sub_8115124 -_08115618: .4byte sub_81156BC -_0811561C: .4byte gSharedMem + 0x19000 -_08115620: .4byte gTasks -_08115624: .4byte gSaveBlock1 -_08115628: .4byte 0x00000494 -_0811562C: .4byte sub_8115634 -_08115630: .4byte sub_81150FC - thumb_func_end sub_8115384 - - thumb_func_start sub_8115634 -sub_8115634: @ 8115634 - push {r4-r6,lr} - ldr r0, _081156B8 @ =gSharedMem + 0x19000 - adds r3, r0, 0 - adds r3, 0x21 - ldrb r1, [r3] - adds r2, r1, 0x1 - strb r2, [r3] - adds r2, r0, 0 - adds r2, 0x23 - lsls r1, 24 - lsrs r1, 24 - adds r6, r0, 0 - ldrb r2, [r2] - cmp r1, r2 - bne _08115674 - movs r0, 0 - strb r0, [r3] - adds r2, r6, 0 - adds r2, 0x22 - ldrb r1, [r2] - ldrh r0, [r6, 0x24] - subs r0, r1 - strh r0, [r6, 0x24] - lsls r0, 16 - cmp r0, 0 - bge _08115674 - ldrb r1, [r2] - movs r2, 0xB4 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r6, 0x24] -_08115674: - adds r4, r6, 0 - ldrh r0, [r4, 0x24] - bl Sin2 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r4, 0x24] - bl Cos2 - lsls r0, 16 - lsrs r1, r0, 16 - lsls r0, r5, 16 - asrs r0, 16 - cmp r0, 0 - bge _08115694 - adds r0, 0xF -_08115694: - lsls r0, 12 - lsrs r5, r0, 16 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0 - bge _081156A2 - adds r0, 0xF -_081156A2: - asrs r0, 4 - strh r0, [r6, 0x32] - strh r0, [r6, 0x2C] - strh r5, [r6, 0x2E] - lsls r0, r5, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r6, 0x30] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081156B8: .4byte gSharedMem + 0x19000 - thumb_func_end sub_8115634 - - thumb_func_start sub_81156BC -sub_81156BC: @ 81156BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl UpdatePaletteFade - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _08115716 - ldr r2, _0811571C @ =REG_BLDCNT - ldrh r0, [r2] - movs r5, 0x90 - lsls r5, 6 - adds r1, r5, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08115720 @ =REG_BLDALPHA - ldr r2, _08115724 @ =0x00000808 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08115728 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x14] - adds r0, r4, 0 - bl sub_8116CAC - bl sub_8116CF8 - bl sub_81185E8 - movs r0, 0 - bl sub_8117158 - movs r0, 0x6 - bl sub_81182F8 - ldr r1, _0811572C @ =sub_81159BC - ldr r2, _08115730 @ =0x0000ffff - adds r0, r4, 0 - movs r3, 0x3 - bl sub_8116C34 -_08115716: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811571C: .4byte REG_BLDCNT -_08115720: .4byte REG_BLDALPHA -_08115724: .4byte 0x00000808 -_08115728: .4byte gTasks -_0811572C: .4byte sub_81159BC -_08115730: .4byte 0x0000ffff - thumb_func_end sub_81156BC - - thumb_func_start sub_8115734 -sub_8115734: @ 8115734 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _08115770 @ =0x00002d9e - bl sub_814AAF8 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08115774 @ =gUnknown_081C41E3 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _08115778 @ =gUnknown_083F8EBC - adds r0, r4, 0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115770: .4byte 0x00002d9e -_08115774: .4byte gUnknown_081C41E3 -_08115778: .4byte gUnknown_083F8EBC - thumb_func_end sub_8115734 - - thumb_func_start sub_811577C -sub_811577C: @ 811577C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r1, _081157A4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081157A8 @ =sub_81159BC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081157A4: .4byte gTasks -_081157A8: .4byte sub_81159BC - thumb_func_end sub_811577C - - thumb_func_start sub_81157AC -sub_81157AC: @ 81157AC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _081157CC @ =gSharedMem + 0x19000 - adds r0, 0xA5 - ldrb r0, [r0] - bl DestroyTask - adds r0, r4, 0 - bl sub_8116AB0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081157CC: .4byte gSharedMem + 0x19000 - thumb_func_end sub_81157AC - - thumb_func_start sub_81157D0 -sub_81157D0: @ 81157D0 - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bhi _081158C8 - lsls r0, r4, 2 - ldr r1, _081157E8 @ =_081157EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081157E8: .4byte _081157EC - .align 2, 0 -_081157EC: - .4byte _0811582C - .4byte _08115848 - .4byte _08115848 - .4byte _08115848 - .4byte _08115848 - .4byte _08115884 - .4byte _081158C8 - .4byte _081158C8 - .4byte _081158C8 - .4byte _081158C8 - .4byte _08115884 - .4byte _081158C8 - .4byte _081158C8 - .4byte _081158C8 - .4byte _081158C8 - .4byte _08115884 -_0811582C: - ldr r0, _08115844 @ =gBGTilemapBuffers + 0x1000 - movs r1, 0x10 - str r1, [sp] - movs r1, 0xD - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124DDC - b _08115918 - .align 2, 0 -_08115844: .4byte gBGTilemapBuffers + 0x1000 -_08115848: - lsls r0, r4, 1 - adds r0, r4 - adds r0, 0xE - lsls r0, 24 - lsrs r7, r0, 24 - ldr r5, _0811587C @ =gBGTilemapBuffers + 0x1000 - movs r0, 0x10 - str r0, [sp] - movs r4, 0xD - str r4, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124DDC - ldr r1, _08115880 @ =gSharedMem + 0x18A32 - movs r0, 0x3 - str r0, [sp] - str r4, [sp, 0x4] - adds r0, r5, 0 - adds r2, r7, 0 - movs r3, 0x7 - bl sub_8124E2C - b _08115918 - .align 2, 0 -_0811587C: .4byte gBGTilemapBuffers + 0x1000 -_08115880: .4byte gSharedMem + 0x18A32 -_08115884: - subs r0, r4, 0x1 - movs r1, 0x5 - bl __divsi3 - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0xA - lsls r1, 24 - lsrs r6, r1, 24 - ldr r5, _081158C0 @ =gBGTilemapBuffers + 0x1000 - movs r4, 0x10 - str r4, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124DDC - ldr r1, _081158C4 @ =gSharedMem + 0x18A80 - str r4, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0xE - adds r3, r6, 0 - bl sub_8124E2C - b _08115918 - .align 2, 0 -_081158C0: .4byte gBGTilemapBuffers + 0x1000 -_081158C4: .4byte gSharedMem + 0x18A80 -_081158C8: - adds r0, r4, 0 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0xE - lsls r1, 24 - lsrs r7, r1, 24 - subs r0, r4, 0x1 - movs r1, 0x5 - bl __divsi3 - lsls r1, r0, 1 - adds r1, r0 - adds r1, 0x7 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r4, _08115920 @ =gBGTilemapBuffers + 0x1000 - movs r0, 0x10 - str r0, [sp] - movs r0, 0xD - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124DDC - ldr r1, _08115924 @ =gSharedMem + 0x18A20 - movs r0, 0x3 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - adds r2, r7, 0 - adds r3, r6, 0 - bl sub_8124E2C -_08115918: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08115920: .4byte gBGTilemapBuffers + 0x1000 -_08115924: .4byte gSharedMem + 0x18A20 - thumb_func_end sub_81157D0 - - thumb_func_start sub_8115928 -sub_8115928: @ 8115928 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _0811594C - ldr r1, _08115948 @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x10] - bl sub_811829C - b _08115960 - .align 2, 0 -_08115948: .4byte gTasks -_0811594C: - ldr r0, _08115974 @ =gSharedMem + 0x19000 - ldrb r1, [r0, 0x1A] - lsls r1, 28 - lsrs r1, 28 - adds r0, 0x1B - adds r1, r0 - ldrb r0, [r1] - bl sub_811829C - lsls r4, r5, 2 -_08115960: - ldr r0, _08115978 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldrb r0, [r1, 0x10] - bl sub_81157D0 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08115974: .4byte gSharedMem + 0x19000 -_08115978: .4byte gTasks - thumb_func_end sub_8115928 - - thumb_func_start sub_811597C -sub_811597C: @ 811597C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _081159B0 @ =gSharedMem + 0x19000 - movs r6, 0 - movs r1, 0x1 - strh r1, [r5, 0x28] - ldr r1, _081159B4 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrb r0, [r4, 0x10] - bl sub_81157D0 - adds r1, r5, 0 - adds r1, 0x23 - movs r0, 0x2 - strb r0, [r1] - adds r5, 0x21 - strb r6, [r5] - ldr r0, _081159B8 @ =sub_8115E14 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081159B0: .4byte gSharedMem + 0x19000 -_081159B4: .4byte gTasks -_081159B8: .4byte sub_8115E14 - thumb_func_end sub_811597C - - thumb_func_start sub_81159BC -sub_81159BC: @ 81159BC - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, _08115A10 @ =gSharedMem + 0x19000 - ldr r1, [r3, 0x8] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08115A1C - movs r2, 0xB - ldr r5, _08115A14 @ =gUnknown_083F8C00 - adds r0, r5, 0 - adds r0, 0xE4 - ldr r0, [r0] - ands r1, r0 - ldr r0, _08115A18 @ =gTasks - mov r12, r0 - lsls r7, r6, 2 - cmp r1, 0 - beq _08115A5A - adds r4, r3, 0 - adds r3, r5, 0 - adds r3, 0x8 -_081159EA: - lsls r0, r2, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r2, r0, 16 - asrs r1, r0, 16 - cmp r1, 0xD - bgt _08115A5A - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, [r4, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _081159EA - b _08115A5A - .align 2, 0 -_08115A10: .4byte gSharedMem + 0x19000 -_08115A14: .4byte gUnknown_083F8C00 -_08115A18: .4byte gTasks -_08115A1C: - movs r2, 0x6 - ldr r5, _08115A88 @ =gUnknown_083F8C00 - adds r0, r5, 0 - adds r0, 0x80 - ldr r0, [r0] - ands r1, r0 - ldr r0, _08115A8C @ =gTasks - mov r12, r0 - lsls r7, r6, 2 - cmp r1, 0 - beq _08115A5A - adds r4, r3, 0 - adds r3, r5, 0 - adds r3, 0x8 -_08115A38: - lsls r0, r2, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r2, r0, 16 - asrs r1, r0, 16 - cmp r1, 0x9 - bgt _08115A5A - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, [r4, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08115A38 -_08115A5A: - adds r4, r7, r6 - lsls r4, 3 - add r4, r12 - movs r5, 0 - strh r2, [r4, 0x10] - adds r0, r6, 0 - bl sub_8116CAC - ldrb r0, [r4, 0x10] - bl sub_8117158 - ldrb r0, [r4, 0x10] - bl sub_811829C - ldrb r0, [r4, 0x10] - bl sub_8116EF8 - strh r5, [r4, 0xA] - ldr r0, _08115A90 @ =sub_811597C - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08115A88: .4byte gUnknown_083F8C00 -_08115A8C: .4byte gTasks -_08115A90: .4byte sub_811597C - thumb_func_end sub_81159BC - - thumb_func_start sub_8115A94 -sub_8115A94: @ 8115A94 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - movs r6, 0 - movs r7, 0 - ldr r1, _08115ADC @ =gUnknown_083F8ECA - mov r0, sp - movs r2, 0x4 - bl memcpy - ldrb r0, [r4] - mov r8, r0 - cmp r5, 0 - blt _08115B08 - cmp r5, 0x1 - bgt _08115AE0 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl __modsi3 - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0xF0 - lsls r2, 20 - adds r1, r0, r2 - lsrs r7, r1, 24 - cmp r0, 0 - bne _08115B08 - movs r6, 0x5 - b _08115B08 - .align 2, 0 -_08115ADC: .4byte gUnknown_083F8ECA -_08115AE0: - cmp r5, 0x3 - bgt _08115B08 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x5 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 24 - lsrs r6, r1, 24 - movs r2, 0x80 - lsls r2, 19 - adds r0, r1, r2 - lsrs r7, r0, 24 - cmp r1, 0 - bne _08115B08 - movs r6, 0x1 -_08115B08: - mov r1, sp - adds r0, r1, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r2, [r4] - adds r0, r2 - strh r0, [r4] - lsls r1, r6, 24 - asrs r3, r1, 24 - lsls r0, 16 - asrs r0, 16 - lsls r2, r7, 24 - cmp r0, r3 - bge _08115B2A - asrs r0, r2, 24 - strh r0, [r4] -_08115B2A: - movs r0, 0 - ldrsh r1, [r4, r0] - asrs r0, r2, 24 - cmp r1, r0 - ble _08115B36 - strh r3, [r4] -_08115B36: - mov r1, r8 - lsls r0, r1, 24 - movs r2, 0 - ldrsh r1, [r4, r2] - asrs r0, 24 - cmp r1, r0 - bne _08115B48 - movs r0, 0 - b _08115B4A -_08115B48: - movs r0, 0x1 -_08115B4A: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8115A94 - - thumb_func_start sub_8115B58 -sub_8115B58: @ 8115B58 - 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 - movs r5, 0 - ldr r4, _08115D30 @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08115B94 - movs r5, 0x1 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08115D34 @ =gTasks + 0x8 - adds r0, r1 - adds r0, 0x8 - movs r1, 0 - bl sub_8115A94 - lsls r0, 24 - cmp r0, 0 - bne _08115B94 - b _08115D20 -_08115B94: - ldrh r1, [r4, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08115BBA - movs r5, 0x1 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08115D34 @ =gTasks + 0x8 - adds r0, r1 - adds r0, 0x8 - movs r1, 0x1 - bl sub_8115A94 - lsls r0, 24 - cmp r0, 0 - bne _08115BBA - b _08115D20 -_08115BBA: - ldrh r1, [r4, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08115BE0 - movs r5, 0x1 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08115D34 @ =gTasks + 0x8 - adds r0, r1 - adds r0, 0x8 - movs r1, 0x2 - bl sub_8115A94 - lsls r0, 24 - cmp r0, 0 - bne _08115BE0 - b _08115D20 -_08115BE0: - ldrh r1, [r4, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08115C06 - movs r5, 0x1 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08115D34 @ =gTasks + 0x8 - adds r0, r1 - adds r0, 0x8 - movs r1, 0x3 - bl sub_8115A94 - lsls r0, 24 - cmp r0, 0 - bne _08115C06 - b _08115D20 -_08115C06: - cmp r5, 0 - bne _08115C0C - b _08115D20 -_08115C0C: - ldr r0, _08115D38 @ =gTasks - lsls r6, r7, 2 - adds r4, r6, r7 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x10] - bl sub_8117158 - adds r0, r7, 0 - movs r1, 0 - bl sub_8115928 - mov r1, r8 - strh r1, [r4, 0xA] - movs r0, 0x5 - bl PlaySE - ldr r5, _08115D3C @ =gSharedMem + 0x190B8 - ldr r1, _08115D40 @ =0x0000ffff - adds r0, r5, 0 - bl sub_8124D3C - adds r3, r5, 0 - adds r3, 0xB8 - ldrb r2, [r3] - movs r1, 0x7F - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - subs r3, 0xC - ldrb r2, [r3] - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - adds r2, r5, 0 - adds r2, 0xA0 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - ldrb r0, [r4, 0x10] - bl sub_8116EF8 - movs r4, 0 - mov r12, r6 - ldr r6, _08115D44 @ =gSprites - movs r2, 0x7C - negs r2, r2 - adds r2, r5 - mov r10, r2 - movs r0, 0x8 - adds r0, r6 - mov r8, r0 - ldr r1, _08115D48 @ =0xfffffc00 - mov r9, r1 - ldr r2, _08115D4C @ =0x000003ff - adds r5, r2, 0 -_08115C7C: - adds r0, r4, 0 - adds r0, 0x29 - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r6 - adds r2, r3, 0 - adds r2, 0x40 - add r0, r8 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r2 - ands r1, r5 - ldrh r2, [r3, 0x4] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08115C7C - ldr r0, _08115D38 @ =gTasks - mov r2, r12 - adds r1, r2, r7 - lsls r1, 3 - adds r1, r0 - ldrh r3, [r1, 0x10] - subs r0, r3, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3 - bhi _08115D20 - ldr r2, _08115D50 @ =gUnknown_083F8C00 - movs r0, 0x10 - ldrsh r1, [r1, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 - adds r0, r2 - ldr r2, _08115D54 @ =gSharedMem + 0x19000 - ldr r1, [r2, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08115D20 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r2, 0 - add r0, r8 - adds r0, 0x65 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08115D44 @ =gSprites - adds r3, r0, r1 - adds r2, r3, 0 - adds r2, 0x40 - adds r1, 0x8 - adds r0, r1 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldrh r2, [r2] - adds r1, r2 - ldr r2, _08115D4C @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, _08115D48 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] -_08115D20: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08115D30: .4byte gMain -_08115D34: .4byte gTasks + 0x8 -_08115D38: .4byte gTasks -_08115D3C: .4byte gSharedMem + 0x190B8 -_08115D40: .4byte 0x0000ffff -_08115D44: .4byte gSprites -_08115D48: .4byte 0xfffffc00 -_08115D4C: .4byte 0x000003ff -_08115D50: .4byte gUnknown_083F8C00 -_08115D54: .4byte gSharedMem + 0x19000 - thumb_func_end sub_8115B58 - - thumb_func_start sub_8115D58 -sub_8115D58: @ 8115D58 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _08115D70 @ =gSharedMem + 0x19000 - movs r0, 0xFF - strh r0, [r1, 0x28] - ldrb r0, [r1, 0x19] - cmp r0, 0x1 - bne _08115D74 - adds r2, r1, 0 - adds r2, 0x23 - b _08115D7A - .align 2, 0 -_08115D70: .4byte gSharedMem + 0x19000 -_08115D74: - adds r2, r1, 0 - adds r2, 0x23 - movs r0, 0 -_08115D7A: - strb r0, [r2] - adds r1, 0x21 - movs r0, 0 - strb r0, [r1] - ldr r1, _08115D98 @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r1, 0x20 - strh r1, [r0, 0xA] - ldr r1, _08115D9C @ =sub_8115ECC - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_08115D98: .4byte gTasks -_08115D9C: .4byte sub_8115ECC - thumb_func_end sub_8115D58 - - thumb_func_start sub_8115DA0 -sub_8115DA0: @ 8115DA0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08115E08 @ =gSharedMem + 0x19000 - ldrb r2, [r4, 0x1A] - lsls r2, 28 - lsrs r2, 28 - adds r5, r4, 0 - adds r5, 0x1B - adds r2, r5 - ldr r3, _08115E0C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r6, r1, r3 - ldrh r0, [r6, 0x10] - strb r0, [r2] - ldrb r0, [r4, 0x1A] - lsls r0, 28 - lsrs r0, 28 - adds r0, r5 - ldrb r0, [r0] - bl sub_8117380 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0xC] - ldrb r0, [r4, 0x1A] - lsls r0, 28 - lsrs r0, 28 - adds r0, r5 - ldrb r0, [r0] - bl sub_811829C - ldrb r1, [r4, 0x19] - ldrh r0, [r6, 0x22] - subs r0, r1 - strh r0, [r6, 0x22] - lsls r0, 16 - cmp r0, 0 - bge _08115DF6 - movs r0, 0 - strh r0, [r6, 0x22] -_08115DF6: - ldrh r0, [r6, 0x22] - bl sub_81180F4 - ldr r0, _08115E10 @ =sub_8115D58 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08115E08: .4byte gSharedMem + 0x19000 -_08115E0C: .4byte gTasks -_08115E10: .4byte sub_8115D58 - thumb_func_end sub_8115DA0 - - thumb_func_start sub_8115E14 -sub_8115E14: @ 8115E14 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_8115B58 - ldr r1, _08115E3C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x1E - beq _08115E4A - cmp r0, 0x1E - bgt _08115E40 - cmp r0, 0 - beq _08115E46 - b _08115E5E - .align 2, 0 -_08115E3C: .4byte gTasks -_08115E40: - cmp r0, 0x3B - beq _08115E58 - b _08115E5E -_08115E46: - ldrb r0, [r4, 0x10] - b _08115E4C -_08115E4A: - movs r0, 0 -_08115E4C: - bl sub_81157D0 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _08115E6E -_08115E58: - movs r0, 0 - strh r0, [r4, 0xA] - b _08115E6E -_08115E5E: - ldr r0, _08115EA8 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] -_08115E6E: - ldr r0, _08115EAC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08115EC2 - ldr r3, _08115EB0 @ =gSharedMem + 0x19000 - ldr r2, _08115EB4 @ =gUnknown_083F8C00 - ldr r1, _08115EA8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x10 - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 - adds r0, r2 - ldr r1, [r3, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08115EB8 - movs r0, 0x16 - bl PlaySE - b _08115EC2 - .align 2, 0 -_08115EA8: .4byte gTasks -_08115EAC: .4byte gMain -_08115EB0: .4byte gSharedMem + 0x19000 -_08115EB4: .4byte gUnknown_083F8C00 -_08115EB8: - movs r0, 0x5F - bl m4aSongNumStart - ldr r0, _08115EC8 @ =sub_8115DA0 - str r0, [r4] -_08115EC2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08115EC8: .4byte sub_8115DA0 - thumb_func_end sub_8115E14 - - thumb_func_start sub_8115ECC -sub_8115ECC: @ 8115ECC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08115F20 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0xA] - subs r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - ble _08115F34 - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _08115EF8 - ldr r1, _08115F24 @ =gSpriteCoordOffsetX - ldrh r0, [r1] - adds r0, 0x2 - strh r0, [r1] -_08115EF8: - ldr r1, _08115F28 @ =gSharedMem + 0x19000 - ldrh r0, [r1, 0x26] - adds r0, 0x4 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x68 - bne _08115F4C - ldr r2, _08115F2C @ =gSprites - adds r0, r1, 0 - adds r0, 0x55 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08115F30 @ =SpriteCallbackDummy - str r1, [r0] - b _08115F4C - .align 2, 0 -_08115F20: .4byte gTasks -_08115F24: .4byte gSpriteCoordOffsetX -_08115F28: .4byte gSharedMem + 0x19000 -_08115F2C: .4byte gSprites -_08115F30: .4byte SpriteCallbackDummy -_08115F34: - movs r0, 0x1 - movs r1, 0xFF - bl sub_8117AA8 - movs r0, 0x1 - movs r1, 0xFF - bl sub_8117C60 - ldr r0, _08115F54 @ =sub_8116100 - str r0, [r4] - movs r0, 0 - strh r0, [r4, 0xA] -_08115F4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08115F54: .4byte sub_8116100 - thumb_func_end sub_8115ECC - - thumb_func_start sub_8115F58 -sub_8115F58: @ 8115F58 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _08115F74 @ =gSharedMem + 0x19000 - ldrb r2, [r0, 0x2] - adds r4, r0, 0 - cmp r2, 0x2 - bgt _08115F78 - cmp r2, 0x1 - bge _08115F7E - b _08116048 - .align 2, 0 -_08115F74: .4byte gSharedMem + 0x19000 -_08115F78: - cmp r2, 0x3 - beq _08115FE0 - b _08116048 -_08115F7E: - ldr r0, _08115FA8 @ =gLocalTime - ldrb r0, [r0, 0x2] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _08115FB0 - cmp r3, 0xB - bls _08115F98 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0811605E -_08115F98: - ldr r0, _08115FAC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08115FA8: .4byte gLocalTime -_08115FAC: .4byte gUnknown_083F8DF4 -_08115FB0: - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08115FCC - ldr r0, _08115FC8 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08115FC8: .4byte gUnknown_083F8DF4 -_08115FCC: - ldr r0, _08115FDC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - b _081160F4 - .align 2, 0 -_08115FDC: .4byte gUnknown_083F8DF4 -_08115FE0: - ldr r0, _0811600C @ =gLocalTime - ldrb r0, [r0, 0x2] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bhi _08116014 - cmp r3, 0x5 - bls _08115FFA - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0811605E -_08115FFA: - ldr r0, _08116010 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_0811600C: .4byte gLocalTime -_08116010: .4byte gUnknown_083F8DF4 -_08116014: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08116034 - cmp r3, 0x6 - bls _08116034 - ldr r0, _08116030 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 2 - b _081160F4 - .align 2, 0 -_08116030: .4byte gUnknown_083F8DF4 -_08116034: - ldr r0, _08116044 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08116044: .4byte gUnknown_083F8DF4 -_08116048: - ldr r0, _08116064 @ =gLocalTime - ldrb r0, [r0, 0x2] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _0811607C - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08116068 -_0811605E: - movs r0, 0x1 - b _081160F4 - .align 2, 0 -_08116064: .4byte gLocalTime -_08116068: - ldr r0, _08116078 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08116078: .4byte gUnknown_083F8DF4 -_0811607C: - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081160B0 - cmp r3, 0xC - bls _0811609C - ldr r0, _08116098 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - lsrs r0, 1 - b _081160F4 - .align 2, 0 -_08116098: .4byte gUnknown_083F8DF4 -_0811609C: - ldr r0, _081160AC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - b _081160F4 - .align 2, 0 -_081160AC: .4byte gUnknown_083F8DF4 -_081160B0: - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _081160E4 - cmp r3, 0xC - bls _081160D0 - ldr r0, _081160CC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x2] - b _081160F4 - .align 2, 0 -_081160CC: .4byte gUnknown_083F8DF4 -_081160D0: - ldr r0, _081160E0 @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x1] - b _081160F4 - .align 2, 0 -_081160E0: .4byte gUnknown_083F8DF4 -_081160E4: - ldr r0, _081160FC @ =gUnknown_083F8DF4 - ldrb r1, [r4, 0x4] - lsls r1, 30 - lsrs r1, 25 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 25 - lsrs r0, 24 -_081160F4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081160FC: .4byte gUnknown_083F8DF4 - thumb_func_end sub_8115F58 - - thumb_func_start sub_8116100 -sub_8116100: @ 8116100 - 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 r9, r0 - movs r4, 0 - ldr r1, _08116188 @ =gUnknown_083F8ECE - mov r0, sp - movs r2, 0x8 - bl memcpy - bl Random - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r7, 0 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r3, _0811618C @ =gSharedMem + 0x19000 - ldr r1, _08116190 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldrh r2, [r0, 0x14] - adds r1, r3, 0 - adds r1, 0x7C - strb r2, [r1] - adds r1, 0x3 - strb r4, [r1] - subs r1, 0x1 - strb r4, [r1] - subs r1, 0x1 - strb r4, [r1] - ldrh r0, [r0, 0x18] - adds r1, r7, 0 - bl sub_8115F58 - adds r4, r0, 0 - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r7, 0 - bl __modsi3 - lsrs r4, 25 - subs r0, r4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08116194 @ =gLocalTime - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - movs r5, 0x1 - cmp r0, 0xC - bgt _08116180 - movs r5, 0 -_08116180: - cmp r6, 0x4F - bhi _08116198 - lsls r0, r5, 25 - b _081161A2 - .align 2, 0 -_08116188: .4byte gUnknown_083F8ECE -_0811618C: .4byte gSharedMem + 0x19000 -_08116190: .4byte gTasks -_08116194: .4byte gLocalTime -_08116198: - lsls r1, r5, 24 - asrs r1, 24 - movs r0, 0x1 - subs r0, r1 - lsls r0, 25 -_081161A2: - lsrs r5, r0, 24 - ldr r6, _081162D8 @ =gSharedMem + 0x19000 - ldrb r0, [r6, 0x4] - lsls r0, 30 - mov r10, r0 - lsrs r0, 25 - ldr r1, _081162DC @ =gUnknown_083F8DF4 - adds r0, r1 - lsls r4, 24 - asrs r4, 24 - ldrh r0, [r0, 0x1A] - adds r4, r0 - adds r0, r6, 0 - adds r0, 0x80 - strh r4, [r0] - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _081161D4 - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 -_081161D4: - ldr r1, _081162E4 @ =0x40a00000 - bl __divsf3 - bl __fixunssfsi - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 1 - adds r0, r4 - mov r8, r0 - adds r0, r6, 0 - adds r0, 0x82 - mov r2, r8 - strh r2, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - movs r0, 0x1 - ands r0, r7 - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r1 - lsls r0, 1 - add r0, sp - movs r1, 0 - ldrsh r4, [r0, r1] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _0811621A - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 -_0811621A: - ldr r2, _081162E8 @ =gSharedMem + 0x19088 - str r0, [r2] - adds r7, r6, 0 - adds r7, 0x8C - mov r1, r10 - lsrs r0, r1, 25 - ldr r2, _081162DC @ =gUnknown_083F8DF4 - adds r0, r2 - movs r1, 0x18 - ldrsh r4, [r0, r1] - adds r0, r4, 0 - bl __floatsisf - adds r5, r0, 0 - cmp r4, 0 - bge _08116242 - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 - adds r5, r0, 0 -_08116242: - str r5, [r7] - adds r7, r6, 0 - adds r7, 0x90 - ldr r1, _081162EC @ =0x3f000000 - adds r0, r5, 0 - bl __mulsf3 - adds r1, r5, 0 - bl __subsf3 - adds r5, r0, 0 - mov r2, r8 - lsls r0, r2, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r4, 0 - bge _08116272 - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_08116272: - adds r0, r5, 0 - adds r1, r2, 0 - bl __divsf3 - str r0, [r7] - adds r1, r6, 0 - adds r1, 0x94 - ldr r0, _081162F0 @ =0x42880000 - str r0, [r1] - adds r1, 0x8 - ldr r0, _081162F4 @ =0x00000000 - str r0, [r1] - adds r5, r6, 0 - adds r5, 0x98 - adds r0, r4, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r4, 0 - bge _081162A2 - ldr r1, _081162E0 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_081162A2: - ldr r0, _081162F8 @ =0x41000000 - adds r1, r2, 0 - bl __divsf3 - bl __negsf2 - str r0, [r5] - adds r1, r6, 0 - adds r1, 0xA0 - ldr r0, _081162FC @ =0x42100000 - str r0, [r1] - ldr r1, _08116300 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - ldr r1, _08116304 @ =sub_8116308 - str r1, [r0] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081162D8: .4byte gSharedMem + 0x19000 -_081162DC: .4byte gUnknown_083F8DF4 -_081162E0: .4byte 0x47800000 -_081162E4: .4byte 0x40a00000 -_081162E8: .4byte gSharedMem + 0x19088 -_081162EC: .4byte 0x3f000000 -_081162F0: .4byte 0x42880000 -_081162F4: .4byte 0x00000000 -_081162F8: .4byte 0x41000000 -_081162FC: .4byte 0x42100000 -_08116300: .4byte gTasks -_08116304: .4byte sub_8116308 - thumb_func_end sub_8116100 - - thumb_func_start sub_8116308 -sub_8116308: @ 8116308 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08116368 @ =gSharedMem + 0x19000 - ldrb r1, [r3, 0x3] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r3, 0x3] - adds r2, r3, 0 - adds r2, 0x7C - adds r1, r3, 0 - adds r1, 0x3C - ldrb r2, [r2] - adds r1, r2 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _0811636C @ =gSprites - adds r1, r2 - str r1, [r3, 0x38] - ldr r2, _08116370 @ =sub_81191F4 - str r2, [r1, 0x1C] - ldr r1, _08116374 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldrh r1, [r4, 0x14] - adds r1, 0x1 - strh r1, [r4, 0x14] - ldrh r0, [r4, 0x18] - adds r0, 0x1 - strh r0, [r4, 0x18] - movs r0, 0x6 - subs r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_81182F8 - movs r0, 0x5C - bl m4aSongNumStart - ldr r0, _08116378 @ =sub_811637C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08116368: .4byte gSharedMem + 0x19000 -_0811636C: .4byte gSprites -_08116370: .4byte sub_81191F4 -_08116374: .4byte gTasks -_08116378: .4byte sub_811637C - thumb_func_end sub_8116308 - - thumb_func_start sub_811637C -sub_811637C: @ 811637C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _081163B0 @ =gSharedMem + 0x19000 - adds r0, r4, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _08116464 - ldrb r1, [r4, 0x3] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081163B4 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08116464 - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - strb r0, [r4, 0x3] - b _08116464 - .align 2, 0 -_081163B0: .4byte gSharedMem + 0x19000 -_081163B4: - ldr r2, _08116428 @ =gTasks - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r6, r0, r2 - movs r2, 0xA - ldrsh r0, [r6, r2] - adds r7, r1, 0 - cmp r0, 0 - bne _08116400 - adds r0, r4, 0 - adds r0, 0x7E - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_8116D54 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4, 0x1A] - lsls r1, 28 - lsrs r1, 28 - adds r2, r4, 0 - adds r2, 0x1B - adds r1, r2 - ldrb r1, [r1] - bl sub_8116E5C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x12] - cmp r0, 0x1 - bne _08116400 - adds r0, r4, 0 - adds r0, 0xB8 - movs r1, 0x80 - lsls r1, 5 - bl sub_8124CE8 -_08116400: - ldr r0, _08116428 @ =gTasks - adds r1, r7, r5 - lsls r1, 3 - adds r4, r1, r0 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x3C - bgt _08116430 - ldr r0, _0811642C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08116420 - movs r0, 0x3C - strh r0, [r4, 0xA] -_08116420: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _08116464 - .align 2, 0 -_08116428: .4byte gTasks -_0811642C: .4byte gMain -_08116430: - ldr r1, _0811646C @ =gSharedMem + 0x19000 - ldrb r0, [r1, 0x1A] - lsls r0, 28 - lsrs r0, 28 - adds r1, 0x1B - adds r0, r1 - ldrb r0, [r0] - bl sub_8117158 - ldrh r1, [r4, 0x20] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8117AA8 - ldrb r1, [r4, 0x14] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8117C60 - movs r0, 0x20 - strh r0, [r4, 0xA] - ldr r0, _08116470 @ =sub_8116474 - str r0, [r4] -_08116464: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811646C: .4byte gSharedMem + 0x19000 -_08116470: .4byte sub_8116474 - thumb_func_end sub_811637C - - thumb_func_start sub_8116474 -sub_8116474: @ 8116474 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _081164C8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - subs r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - ble _081164DC - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _081164A0 - ldr r1, _081164CC @ =gSpriteCoordOffsetX - ldrh r0, [r1] - subs r0, 0x2 - strh r0, [r1] -_081164A0: - ldr r1, _081164D0 @ =gSharedMem + 0x19000 - ldrh r0, [r1, 0x26] - subs r0, 0x4 - strh r0, [r1, 0x26] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x68 - bne _08116504 - ldr r2, _081164D4 @ =gSprites - adds r0, r1, 0 - adds r0, 0x55 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _081164D8 @ =sub_81184CC - str r1, [r0] - b _08116504 - .align 2, 0 -_081164C8: .4byte gTasks -_081164CC: .4byte gSpriteCoordOffsetX -_081164D0: .4byte gSharedMem + 0x19000 -_081164D4: .4byte gSprites -_081164D8: .4byte sub_81184CC -_081164DC: - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - bl sub_8117D68 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _081164F2 - movs r0, 0x79 - b _081164F4 -_081164F2: - movs r0, 0x3D -_081164F4: - strh r0, [r4, 0xA] - ldr r0, _0811650C @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _08116510 @ =sub_8116514 - str r0, [r1] -_08116504: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811650C: .4byte gTasks -_08116510: .4byte sub_8116514 - thumb_func_end sub_8116474 - - thumb_func_start sub_8116514 -sub_8116514: @ 8116514 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08116564 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - subs r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _08116584 - movs r0, 0xA - ldrsh r1, [r4, r0] - adds r0, r1, 0 - cmp r1, 0 - bge _0811653E - adds r0, 0xF -_0811653E: - asrs r0, 4 - lsls r0, 4 - subs r0, r1, r0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _08116568 - cmp r0, 0x8 - bne _08116590 - movs r0, 0 - movs r1, 0xFF - bl sub_8117AA8 - movs r0, 0 - movs r1, 0xFF - bl sub_8117C60 - b _08116590 - .align 2, 0 -_08116564: .4byte gTasks -_08116568: - ldrh r1, [r4, 0x20] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8117AA8 - ldrb r1, [r4, 0x14] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8117C60 - b _08116590 -_08116584: - ldr r1, _08116598 @ =sub_8116638 - adds r0, r2, 0 - movs r2, 0x1E - movs r3, 0 - bl sub_8116C34 -_08116590: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08116598: .4byte sub_8116638 - thumb_func_end sub_8116514 - - thumb_func_start sub_811659C -sub_811659C: @ 811659C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _081165F4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08116600 - cmp r0, 0 - blt _08116600 - cmp r0, 0x2 - bgt _08116600 - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08116624 - movs r0, 0x1D - bl GetGameStat - ldrh r1, [r4, 0x1E] - adds r1, 0x1 - strh r1, [r4, 0x1E] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bcs _081165E4 - movs r0, 0x1E - ldrsh r1, [r4, r0] - movs r0, 0x1D - bl SetGameStat -_081165E4: - ldr r1, _081165F8 @ =sub_811677C - ldr r2, _081165FC @ =0x0000ffff - adds r0, r5, 0 - movs r3, 0x3 - bl sub_8116C34 - b _08116624 - .align 2, 0 -_081165F4: .4byte gTasks -_081165F8: .4byte sub_811677C -_081165FC: .4byte 0x0000ffff -_08116600: - bl IsSEPlaying - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _08116624 - ldr r1, _0811662C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1E] - ldr r1, _08116630 @ =sub_81167F4 - ldr r2, _08116634 @ =0x0000ffff - adds r0, r5, 0 - movs r3, 0x3 - bl sub_8116C34 -_08116624: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811662C: .4byte gTasks -_08116630: .4byte sub_81167F4 -_08116634: .4byte 0x0000ffff - thumb_func_end sub_811659C - - thumb_func_start sub_8116638 -sub_8116638: @ 8116638 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08116678 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x12 - ldrsh r1, [r0, r2] - cmp r1, 0 - beq _081166A8 - cmp r1, 0 - blt _081166A8 - cmp r1, 0x2 - bgt _081166A8 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0xC - bne _08116684 - ldr r0, _0811667C @ =0x00000185 - bl PlayFanfare - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08116680 @ =gUnknown_081C41A5 - b _0811669A - .align 2, 0 -_08116678: .4byte gTasks -_0811667C: .4byte 0x00000185 -_08116680: .4byte gUnknown_081C41A5 -_08116684: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _081166A4 @ =gUnknown_081C4199 -_0811669A: - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - b _081166C4 - .align 2, 0 -_081166A4: .4byte gUnknown_081C4199 -_081166A8: - movs r0, 0x20 - bl m4aSongNumStart - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _081166DC @ =gUnknown_081C41AE - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint -_081166C4: - ldr r1, _081166E0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xA] - ldr r1, _081166E4 @ =sub_811659C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081166DC: .4byte gUnknown_081C41AE -_081166E0: .4byte gTasks -_081166E4: .4byte sub_811659C - thumb_func_end sub_8116638 - - thumb_func_start sub_81166E8 -sub_81166E8: @ 81166E8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0811670C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x16 - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _08116710 - cmp r5, 0x3 - beq _08116740 - ldrh r0, [r4, 0x16] - adds r0, 0x1 - b _08116748 - .align 2, 0 -_0811670C: .4byte gTasks -_08116710: - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x15 - bl m4aSongNumStart - ldrh r0, [r4, 0x22] - bl sub_81180F4 - movs r2, 0x22 - ldrsh r1, [r4, r2] - ldr r0, _08116730 @ =0x0000270e - cmp r1, r0 - ble _08116734 - strh r5, [r4, 0xA] - b _0811674A - .align 2, 0 -_08116730: .4byte 0x0000270e -_08116734: - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x16] - adds r0, 0x1 - b _08116748 -_08116740: - movs r0, 0x15 - bl m4aSongNumStop - movs r0, 0 -_08116748: - strh r0, [r4, 0x16] -_0811674A: - ldr r0, _08116770 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08116768 - ldr r1, _08116774 @ =sub_81167F4 - ldr r2, _08116778 @ =0x0000ffff - adds r0, r6, 0 - movs r3, 0x3 - bl sub_8116C34 -_08116768: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08116770: .4byte gTasks -_08116774: .4byte sub_81167F4 -_08116778: .4byte 0x0000ffff - thumb_func_end sub_81166E8 - - thumb_func_start sub_811677C -sub_811677C: @ 811677C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _081167DC @ =gStringVar1 - ldr r6, _081167E0 @ =gSharedMem + 0x19000 - ldrb r2, [r6, 0x19] - ldr r1, _081167E4 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - adds r1, r2, 0 - muls r1, r0 - adds r0, r3, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _081167E8 @ =gStringVar4 - ldr r1, _081167EC @ =gUnknown_081C41BD - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldrb r1, [r6, 0x19] - movs r2, 0xC - ldrsh r0, [r4, r2] - muls r0, r1 - movs r1, 0 - strh r0, [r4, 0xA] - strh r1, [r4, 0x16] - ldr r0, _081167F0 @ =sub_81166E8 - str r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081167DC: .4byte gStringVar1 -_081167E0: .4byte gSharedMem + 0x19000 -_081167E4: .4byte gTasks -_081167E8: .4byte gStringVar4 -_081167EC: .4byte gUnknown_081C41BD -_081167F0: .4byte sub_81166E8 - thumb_func_end sub_811677C - - thumb_func_start sub_81167F4 -sub_81167F4: @ 81167F4 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _08116868 @ =gSharedMem + 0x190B8 - ldr r1, _0811686C @ =0x0000ffff - adds r0, r4, 0 - bl sub_8124D3C - adds r3, r4, 0 - adds r3, 0xB8 - ldrb r2, [r3] - movs r1, 0x7F - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - subs r3, 0xC - ldrb r2, [r3] - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - adds r2, r4, 0 - adds r2, 0xA0 - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - ldr r6, _08116870 @ =gSprites - ldr r2, _08116874 @ =gUnknown_083F8C00 - ldr r0, _08116878 @ =gTasks - lsls r3, r5, 2 - adds r3, r5 - lsls r3, 3 - adds r3, r0 - movs r0, 0x20 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - adds r4, r0 - subs r4, 0x75 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0811687C @ =sub_8116880 - str r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08116868: .4byte gSharedMem + 0x190B8 -_0811686C: .4byte 0x0000ffff -_08116870: .4byte gSprites -_08116874: .4byte gUnknown_083F8C00 -_08116878: .4byte gTasks -_0811687C: .4byte sub_8116880 - thumb_func_end sub_81167F4 - - thumb_func_start sub_8116880 -sub_8116880: @ 8116880 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, _08116954 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - strh r5, [r0, 0x10] - ldr r4, _08116958 @ =gSharedMem + 0x19000 - ldrb r0, [r4, 0x1A] - lsls r0, 28 - lsrs r0, 28 - adds r1, r4, 0 - adds r1, 0x1B - adds r0, r1 - strb r2, [r0] - movs r0, 0 - bl sub_8117158 - ldr r3, _0811695C @ =gSprites - adds r0, r4, 0 - adds r0, 0x6C - ldrb r1, [r0] - 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] - adds r7, r3, 0 - movs r0, 0x3C - adds r0, r4 - mov r10, r0 - movs r1, 0x8 - adds r1, r7 - mov r8, r1 - ldr r0, _08116960 @ =0xfffffc00 - mov r9, r0 - ldr r1, _08116964 @ =0x000003ff - mov r12, r1 -_081168E4: - adds r0, r5, 0 - adds r0, 0x29 - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r7 - adds r2, r3, 0 - adds r2, 0x40 - add r0, r8 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r2 - mov r0, r12 - ands r1, r0 - ldrh r2, [r3, 0x4] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081168E4 - ldr r0, _08116954 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r2, r1, r0 - movs r1, 0x22 - ldrsh r0, [r2, r1] - ldrb r4, [r4, 0x19] - cmp r0, r4 - blt _081169BC - movs r1, 0x14 - ldrsh r0, [r2, r1] - cmp r0, 0x6 - bne _08116970 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08116968 @ =gUnknown_081C41F1 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _0811696C @ =dp01t_12_3_battle_menu - b _08116992 - .align 2, 0 -_08116954: .4byte gTasks -_08116958: .4byte gSharedMem + 0x19000 -_0811695C: .4byte gSprites -_08116960: .4byte 0xfffffc00 -_08116964: .4byte 0x000003ff -_08116968: .4byte gUnknown_081C41F1 -_0811696C: .4byte dp01t_12_3_battle_menu -_08116970: - movs r0, 0x22 - ldrsh r1, [r2, r0] - ldr r0, _081169A0 @ =0x0000270f - cmp r1, r0 - bne _081169B0 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _081169A4 @ =gUnknown_081C4231 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _081169A8 @ =sub_8115734 -_08116992: - ldr r2, _081169AC @ =0x0000ffff - adds r0, r6, 0 - movs r3, 0x3 - bl sub_8116C34 - b _081169DE - .align 2, 0 -_081169A0: .4byte 0x0000270f -_081169A4: .4byte gUnknown_081C4231 -_081169A8: .4byte sub_8115734 -_081169AC: .4byte 0x0000ffff -_081169B0: - ldr r0, _081169B8 @ =sub_8115734 - str r0, [r2] - b _081169DE - .align 2, 0 -_081169B8: .4byte sub_8115734 -_081169BC: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _081169EC @ =gUnknown_081C41D2 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _081169F0 @ =sub_81157AC - adds r0, r6, 0 - movs r2, 0x3C - movs r3, 0x3 - bl sub_8116C34 -_081169DE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081169EC: .4byte gUnknown_081C41D2 -_081169F0: .4byte sub_81157AC - thumb_func_end sub_8116880 - - thumb_func_start dp01t_12_3_battle_menu -dp01t_12_3_battle_menu: @ 81169F4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r1, _08116A84 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r4, [r0, 0x14] - adds r0, r5, 0 - bl sub_8116CAC - bl sub_8116CF8 - bl sub_81185E8 - movs r0, 0 - bl sub_8117158 - movs r0, 0x6 - bl sub_81182F8 - ldr r7, _08116A88 @ =gSprites - ldr r3, _08116A8C @ =gSharedMem + 0x1903C - movs r6, 0x5 - negs r6, r6 -_08116A2A: - adds r0, r4, 0x7 - adds r0, r3 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xB - bls _08116A2A - ldr r1, _08116A84 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r2, r0, r1 - movs r0, 0x22 - ldrsh r1, [r2, r0] - ldr r0, _08116A90 @ =0x0000270f - cmp r1, r0 - bne _08116AA0 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08116A94 @ =gUnknown_081C4231 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _08116A98 @ =sub_8115734 - ldr r2, _08116A9C @ =0x0000ffff - adds r0, r5, 0 - movs r3, 0x3 - bl sub_8116C34 - b _08116AA4 - .align 2, 0 -_08116A84: .4byte gTasks -_08116A88: .4byte gSprites -_08116A8C: .4byte gSharedMem + 0x1903C -_08116A90: .4byte 0x0000270f -_08116A94: .4byte gUnknown_081C4231 -_08116A98: .4byte sub_8115734 -_08116A9C: .4byte 0x0000ffff -_08116AA0: - ldr r0, _08116AAC @ =sub_8115734 - str r0, [r2] -_08116AA4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08116AAC: .4byte sub_8115734 - thumb_func_end dp01t_12_3_battle_menu - - thumb_func_start sub_8116AB0 -sub_8116AB0: @ 8116AB0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _08116AF0 @ =gSharedMem + 0x190B8 - ldr r1, _08116AF4 @ =0x0000ffff - adds r0, r4, 0 - bl sub_8124D3C - adds r0, r4, 0 - bl sub_8124918 - ldr r1, _08116AF8 @ =gSaveBlock1 - ldr r2, _08116AFC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x22] - ldr r2, _08116B00 @ =0x00000494 - adds r1, r2 - strh r0, [r1] - subs r4, 0xB8 - lsls r0, 16 - lsrs r0, 16 - ldrb r4, [r4, 0x19] - cmp r0, r4 - bcs _08116B08 - ldr r1, _08116B04 @ =gSpecialVar_0x8004 - movs r0, 0x1 - b _08116B0C - .align 2, 0 -_08116AF0: .4byte gSharedMem + 0x190B8 -_08116AF4: .4byte 0x0000ffff -_08116AF8: .4byte gSaveBlock1 -_08116AFC: .4byte gTasks -_08116B00: .4byte 0x00000494 -_08116B04: .4byte gSpecialVar_0x8004 -_08116B08: - ldr r1, _08116B34 @ =gSpecialVar_0x8004 - movs r0, 0 -_08116B0C: - strh r0, [r1] - movs r0, 0 - str r0, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginHardwarePaletteFade - ldr r1, _08116B38 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08116B3C @ =sub_8116B40 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08116B34: .4byte gSpecialVar_0x8004 -_08116B38: .4byte gTasks -_08116B3C: .4byte sub_8116B40 - thumb_func_end sub_8116AB0 - - thumb_func_start sub_8116B40 -sub_8116B40: @ 8116B40 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl UpdatePaletteFade - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08116B9E - movs r0, 0 - bl SetVBlankCallback - ldr r0, _08116BA4 @ =gSharedMem + 0x19000 - movs r2, 0xBE - lsls r2, 1 - movs r1, 0 - bl memset - ldr r1, _08116BA8 @ =gSpriteCoordOffsetX - ldr r0, _08116BAC @ =gSpriteCoordOffsetY - strh r4, [r0] - strh r4, [r1] - bl sub_80F9368 - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl sub_80F9020 - ldr r0, _08116BB0 @ =REG_BLDCNT - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r1, _08116BB4 @ =gFieldCallback - ldr r0, _08116BB8 @ =sub_8080990 - str r0, [r1] - ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_08116B9E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08116BA4: .4byte gSharedMem + 0x19000 -_08116BA8: .4byte gSpriteCoordOffsetX -_08116BAC: .4byte gSpriteCoordOffsetY -_08116BB0: .4byte REG_BLDCNT -_08116BB4: .4byte gFieldCallback -_08116BB8: .4byte sub_8080990 -_08116BBC: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_8116B40 - - thumb_func_start sub_8116BC0 -sub_8116BC0: @ 8116BC0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _08116C24 @ =gSharedMem + 0x19000 - adds r7, r0, 0 - adds r7, 0xA8 - ldrh r1, [r7] - adds r6, r0, 0 - cmp r1, 0 - beq _08116BE4 - ldr r0, _08116C28 @ =gMain - adds r2, r6, 0 - adds r2, 0xAA - ldrh r1, [r0, 0x2E] - ldrh r0, [r2] - ands r0, r1 - cmp r0, 0 - beq _08116C0E -_08116BE4: - ldr r1, _08116C2C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - adds r5, r6, 0 - adds r5, 0xAC - ldr r1, [r5] - str r1, [r0] - adds r4, r6, 0 - adds r4, 0xAA - ldrh r0, [r4] - cmp r0, 0 - beq _08116C06 - movs r0, 0x5 - bl PlaySE -_08116C06: - movs r0, 0 - str r0, [r5] - strh r0, [r4] - strh r0, [r7] -_08116C0E: - adds r2, r6, 0 - adds r2, 0xA8 - ldrh r1, [r2] - ldr r0, _08116C30 @ =0x0000ffff - cmp r1, r0 - beq _08116C1E - subs r0, r1, 0x1 - strh r0, [r2] -_08116C1E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08116C24: .4byte gSharedMem + 0x19000 -_08116C28: .4byte gMain -_08116C2C: .4byte gTasks -_08116C30: .4byte 0x0000ffff - thumb_func_end sub_8116BC0 - - thumb_func_start sub_8116C34 -sub_8116C34: @ 8116C34 - push {r4-r7,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 16 - lsrs r4, r2, 16 - lsls r3, 16 - lsrs r3, 16 - ldr r0, _08116C84 @ =gSharedMem + 0x19000 - mov r12, r0 - mov r2, r12 - adds r2, 0xB4 - ldr r1, _08116C88 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - mov r2, r12 - adds r7, r1, 0 - cmp r5, 0 - bne _08116C64 - adds r5, r0, 0 -_08116C64: - adds r0, r2, 0 - adds r0, 0xAC - str r5, [r0] - subs r0, 0x4 - strh r4, [r0] - ldr r0, _08116C8C @ =0x0000ffff - cmp r4, r0 - bne _08116C90 - cmp r3, 0 - bne _08116C90 - adds r1, r2, 0 - adds r1, 0xAA - ldrh r0, [r1] - orrs r4, r0 - strh r4, [r1] - b _08116C96 - .align 2, 0 -_08116C84: .4byte gSharedMem + 0x19000 -_08116C88: .4byte gTasks -_08116C8C: .4byte 0x0000ffff -_08116C90: - adds r0, r2, 0 - adds r0, 0xAA - strh r3, [r0] -_08116C96: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r7 - ldr r1, _08116CA8 @ =sub_8116BC0 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08116CA8: .4byte sub_8116BC0 - thumb_func_end sub_8116C34 - - thumb_func_start sub_8116CAC -sub_8116CAC: @ 8116CAC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0 - ldr r0, _08116CF0 @ =gSharedMem + 0x19000 - strb r2, [r0] - movs r1, 0 - strb r1, [r0, 0x3] - adds r3, r0, 0 - ldr r6, _08116CF4 @ =gTasks - adds r4, r3, 0 - adds r4, 0x1B -_08116CC4: - adds r0, r2, r4 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _08116CC4 - ldrb r1, [r3, 0x1A] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - strb r0, [r3, 0x1A] - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0 - strh r1, [r0, 0xA] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08116CF0: .4byte gSharedMem + 0x19000 -_08116CF4: .4byte gTasks - thumb_func_end sub_8116CAC - - thumb_func_start sub_8116CF8 -sub_8116CF8: @ 8116CF8 - push {lr} - ldr r1, _08116D48 @ =gSharedMem + 0x19000 - movs r0, 0 - str r0, [r1, 0x8] - movs r2, 0 - adds r1, 0xC - movs r3, 0 -_08116D06: - adds r0, r2, r1 - strb r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _08116D06 - movs r2, 0 - ldr r3, _08116D4C @ =gSharedMem + 0x19012 - movs r1, 0 -_08116D1A: - adds r0, r2, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _08116D1A - movs r2, 0 - ldr r3, _08116D50 @ =gSharedMem + 0x19016 - movs r1, 0 -_08116D2E: - adds r0, r2, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _08116D2E - movs r0, 0x1 - movs r1, 0xFF - bl sub_8117C60 - pop {r0} - bx r0 - .align 2, 0 -_08116D48: .4byte gSharedMem + 0x19000 -_08116D4C: .4byte gSharedMem + 0x19012 -_08116D50: .4byte gSharedMem + 0x19016 - thumb_func_end sub_8116CF8 - - thumb_func_start sub_8116D54 -sub_8116D54: @ 8116D54 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x1C - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - mov r1, sp - ldr r0, _08116D88 @ =gUnknown_083F8ED8 - ldm r0!, {r2,r4,r6} - stm r1!, {r2,r4,r6} - ldr r0, [r0] - str r0, [r1] - add r2, sp, 0x10 - adds r1, r2, 0 - ldr r0, _08116D8C @ =gUnknown_083F8EE8 - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - mov r9, r2 - cmp r5, 0xB - bls _08116D90 - movs r0, 0 - b _08116E38 - .align 2, 0 -_08116D88: .4byte gUnknown_083F8ED8 -_08116D8C: .4byte gUnknown_083F8EE8 -_08116D90: - ldr r6, _08116E48 @ =gSharedMem + 0x19000 - ldr r1, _08116E4C @ =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r7, 0x14 - ldrsh r2, [r0, r7] - adds r2, r6, r2 - ldr r4, _08116E50 @ =gUnknown_083F8D90 - lsls r5, 3 - adds r3, r5, r4 - ldrb r1, [r3, 0x2] - strb r1, [r2, 0xB] - ldrb r1, [r3, 0x2] - strh r1, [r0, 0x20] - adds r0, r4, 0x4 - adds r0, r5, r0 - ldr r1, [r6, 0x8] - ldr r0, [r0] - orrs r1, r0 - str r1, [r6, 0x8] - movs r3, 0 - mov r8, r4 - mov r12, r5 - adds r5, r0, 0 - adds r4, r6, 0 - adds r4, 0x12 -_08116DC8: - lsls r0, r3, 2 - mov r1, sp - adds r2, r1, r0 - ldr r0, [r2] - ands r0, r5 - cmp r0, 0 - beq _08116DDE - adds r1, r3, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08116DDE: - adds r0, r3, r4 - ldrb r0, [r0] - cmp r0, 0x2 - bls _08116DEE - ldr r0, [r6, 0x8] - ldr r1, [r2] - orrs r0, r1 - str r0, [r6, 0x8] -_08116DEE: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _08116DC8 - movs r2, 0 - ldr r0, _08116E54 @ =gUnknown_083F8D90 + 0x4 - add r0, r12 - ldr r7, [r0] - ldr r4, _08116E58 @ =gSharedMem + 0x19016 - mov r5, r9 -_08116E04: - lsls r0, r2, 2 - adds r3, r5, r0 - ldr r0, [r3] - ands r0, r7 - cmp r0, 0 - beq _08116E18 - adds r1, r2, r4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08116E18: - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0x3 - bls _08116E28 - ldr r0, [r6, 0x8] - ldr r1, [r3] - orrs r0, r1 - str r0, [r6, 0x8] -_08116E28: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _08116E04 - mov r0, r12 - add r0, r8 - ldrb r0, [r0, 0x2] -_08116E38: - add sp, 0x1C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08116E48: .4byte gSharedMem + 0x19000 -_08116E4C: .4byte gTasks -_08116E50: .4byte gUnknown_083F8D90 -_08116E54: .4byte gUnknown_083F8D90 + 0x4 -_08116E58: .4byte gSharedMem + 0x19016 - thumb_func_end sub_8116D54 - - thumb_func_start sub_8116E5C -sub_8116E5C: @ 8116E5C - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - lsrs r3, r0, 24 - movs r1, 0xFF - lsls r1, 24 - adds r0, r1 - lsrs r0, 24 - cmp r0, 0x12 - bhi _08116EF0 - cmp r2, 0xF - bhi _08116EEC - lsls r0, r2, 2 - ldr r1, _08116E80 @ =_08116E84 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08116E80: .4byte _08116E84 - .align 2, 0 -_08116E84: - .4byte _08116EC4 - .4byte _08116EC8 - .4byte _08116EC8 - .4byte _08116EC8 - .4byte _08116EC8 - .4byte _08116EDC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EDC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EEC - .4byte _08116EDC -_08116EC4: - movs r0, 0x3 - b _08116EF2 -_08116EC8: - adds r0, r2, 0x5 - cmp r3, r0 - beq _08116EE8 - adds r0, 0x5 - cmp r3, r0 - beq _08116EE8 - adds r0, 0x5 - cmp r3, r0 - bne _08116EF0 - b _08116EE8 -_08116EDC: - adds r0, r2, 0x1 - cmp r3, r0 - blt _08116EF0 - adds r0, r2, 0x4 - cmp r3, r0 - bgt _08116EF0 -_08116EE8: - movs r0, 0x1 - b _08116EF2 -_08116EEC: - cmp r3, r2 - beq _08116EE8 -_08116EF0: - movs r0, 0 -_08116EF2: - pop {r1} - bx r1 - thumb_func_end sub_8116E5C - - thumb_func_start sub_8116EF8 -sub_8116EF8: @ 8116EF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - str r0, [sp, 0x18] - cmp r6, 0xA - beq _08116F1E - cmp r6, 0xA - bgt _08116F1A - cmp r6, 0x5 - beq _08116F1E - b _08116F7C -_08116F1A: - cmp r6, 0xF - bne _08116F7C -_08116F1E: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0x5 - ldr r7, _08116F70 @ =gSharedMem + 0x190B8 - cmp r4, r0 - bge _08116F5E - adds r1, r7, 0 - subs r1, 0xB8 - ldr r3, _08116F74 @ =gUnknown_083F8C00 - ldr r5, [r1, 0x8] - adds r6, r3, 0 - adds r6, 0x8 - adds r2, r0, 0 -_08116F3A: - lsls r0, r4, 2 - adds r0, r4 - lsls r1, r0, 2 - adds r0, r1, r6 - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - bne _08116F54 - adds r0, r1, r3 - ldrh r0, [r0, 0x10] - ldr r1, [sp, 0x18] - orrs r1, r0 - str r1, [sp, 0x18] -_08116F54: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r2 - blt _08116F3A -_08116F5E: - ldr r0, _08116F78 @ =0x0000dfff - ldr r2, [sp, 0x18] - ands r2, r0 - str r2, [sp, 0x18] - adds r0, r7, 0 - adds r1, r2, 0 - bl sub_8124CE8 - b _0811713C - .align 2, 0 -_08116F70: .4byte gSharedMem + 0x190B8 -_08116F74: .4byte gUnknown_083F8C00 -_08116F78: .4byte 0x0000dfff -_08116F7C: - mov r0, sp - ldr r1, _08116FC8 @ =gUnknown_083F8E9C - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - subs r0, r6, 0x1 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x1 - mov r10, r3 - cmp r0, 0x3 - bhi _08116F9A - movs r4, 0x3 - mov r10, r4 -_08116F9A: - adds r0, r6, 0 - movs r1, 0x5 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 8 - ldr r1, _08116FCC @ =0xffff0000 - adds r0, r1 - lsrs r7, r0, 16 - adds r0, r6, 0 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _08116FF8 - cmp r0, 0x2 - bgt _08116FD4 - cmp r0, 0x1 - beq _08116FE4 - ldr r4, _08116FD0 @ =gSharedMem + 0x19000 - b _0811703A - .align 2, 0 -_08116FC8: .4byte gUnknown_083F8E9C -_08116FCC: .4byte 0xffff0000 -_08116FD0: .4byte gSharedMem + 0x19000 -_08116FD4: - cmp r0, 0x3 - beq _0811700C - cmp r0, 0x4 - beq _08117020 - ldr r4, _08116FE0 @ =gSharedMem + 0x19000 - b _0811703A - .align 2, 0 -_08116FE0: .4byte gSharedMem + 0x19000 -_08116FE4: - ldr r3, _08116FF0 @ =gSprites - ldr r2, _08116FF4 @ =gSharedMem + 0x19000 - adds r0, r2, 0 - adds r0, 0x43 - b _08117028 - .align 2, 0 -_08116FF0: .4byte gSprites -_08116FF4: .4byte gSharedMem + 0x19000 -_08116FF8: - ldr r3, _08117004 @ =gSprites - ldr r2, _08117008 @ =gSharedMem + 0x19000 - adds r0, r2, 0 - adds r0, 0x44 - b _08117028 - .align 2, 0 -_08117004: .4byte gSprites -_08117008: .4byte gSharedMem + 0x19000 -_0811700C: - ldr r3, _08117018 @ =gSprites - ldr r2, _0811701C @ =gSharedMem + 0x19000 - adds r0, r2, 0 - adds r0, 0x45 - b _08117028 - .align 2, 0 -_08117018: .4byte gSprites -_0811701C: .4byte gSharedMem + 0x19000 -_08117020: - ldr r3, _08117088 @ =gSprites - ldr r2, _0811708C @ =gSharedMem + 0x19000 - adds r0, r2, 0 - adds r0, 0x46 -_08117028: - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - lsls r7, r0, 4 - adds r4, r2, 0 -_0811703A: - mov r2, r10 - cmp r2, 0x1 - bne _08117094 - ldr r1, _08117090 @ =gUnknown_083F8C00 - lsls r2, r6, 2 - adds r0, r2, r6 - lsls r0, 2 - adds r1, 0x8 - adds r0, r1 - ldr r1, [r4, 0x8] - ldr r0, [r0] - ands r1, r0 - str r2, [sp, 0x1C] - cmp r1, 0 - bne _0811713C - adds r0, r6, 0 - movs r1, 0x5 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x1 - lsls r1, 3 - mov r3, sp - adds r2, r3, r1 - ldrh r1, [r2, 0x2] - adds r1, r7, r1 - strh r1, [r2, 0x2] - adds r1, r4, 0 - adds r1, 0xB8 - lsls r0, 3 - subs r0, 0x8 - adds r2, r3, r0 - adds r0, r1, 0 - movs r1, 0xD - bl sub_812492C - b _08117122 - .align 2, 0 -_08117088: .4byte gSprites -_0811708C: .4byte gSharedMem + 0x19000 -_08117090: .4byte gUnknown_083F8C00 -_08117094: - movs r4, 0 - lsls r0, r6, 2 - str r0, [sp, 0x1C] - ldr r1, _0811714C @ =gSharedMem + 0x19000 - mov r8, r1 - ldr r2, _08117150 @ =gUnknown_083F8C00 - mov r9, r2 -_081170A2: - lsls r0, r4, 2 - adds r0, r4 - adds r0, r6, r0 - adds r0, 0x5 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r5, r0, 2 - mov r0, r9 - adds r0, 0x8 - adds r0, r5, r0 - mov r3, r8 - ldr r1, [r3, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0811710E - adds r0, r2, 0 - movs r1, 0x5 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x1 - lsls r1, 3 - mov r3, sp - adds r2, r3, r1 - ldrh r1, [r2, 0x2] - adds r1, r7, r1 - strh r1, [r2, 0x2] - adds r1, r4, 0 - adds r1, 0xD - lsls r1, 24 - lsrs r1, 24 - lsls r0, 3 - subs r0, 0x8 - adds r2, r3, r0 - mov r0, r8 - adds r0, 0xB8 - bl sub_812492C - mov r0, r10 - cmp r0, 0x3 - bne _08117104 - mov r1, r9 - adds r0, r5, r1 - ldrh r0, [r0, 0x10] - str r0, [sp, 0x18] -_08117104: - mov r0, r10 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_0811710E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081170A2 - mov r2, r10 - cmp r2, 0x2 - beq _08117122 - movs r3, 0 - str r3, [sp, 0x18] -_08117122: - ldr r0, _08117154 @ =gSharedMem + 0x190B8 - ldr r2, _08117150 @ =gUnknown_083F8C00 - ldr r4, [sp, 0x1C] - adds r1, r4, r6 - lsls r1, 2 - adds r1, r2 - ldrh r1, [r1, 0x10] - ldr r2, [sp, 0x18] - orrs r2, r1 - str r2, [sp, 0x18] - adds r1, r2, 0 - bl sub_8124CE8 -_0811713C: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811714C: .4byte gSharedMem + 0x19000 -_08117150: .4byte gUnknown_083F8C00 -_08117154: .4byte gSharedMem + 0x190B8 - thumb_func_end sub_8116EF8 - - thumb_func_start sub_8117158 -sub_8117158: @ 8117158 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _0811719C @ =gSharedMem + 0x19000 - movs r0, 0x1 - strh r0, [r4, 0x2A] - movs r0, 0 - movs r1, 0 - bl sub_8117AA8 - ldr r0, _081171A0 @ =gBGTilemapBuffers + 0x800 - ldr r1, _081171A4 @ =0xfffff800 - adds r4, r1 - movs r1, 0x10 - str r1, [sp] - movs r1, 0xD - str r1, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0xE - movs r3, 0x7 - bl sub_8124E2C - cmp r5, 0xF - bhi _08117250 - lsls r0, r5, 2 - ldr r1, _081171A8 @ =_081171AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0811719C: .4byte gSharedMem + 0x19000 -_081171A0: .4byte gBGTilemapBuffers + 0x800 -_081171A4: .4byte 0xfffff800 -_081171A8: .4byte _081171AC - .align 2, 0 -_081171AC: - .4byte _08117360 - .4byte _081171EC - .4byte _081171EC - .4byte _081171EC - .4byte _081171EC - .4byte _08117220 - .4byte _08117250 - .4byte _08117250 - .4byte _08117250 - .4byte _08117250 - .4byte _08117220 - .4byte _08117250 - .4byte _08117250 - .4byte _08117250 - .4byte _08117250 - .4byte _08117220 -_081171EC: - movs r0, 0x4 - str r0, [sp, 0x18] - add r1, sp, 0x8 - movs r0, 0 - strb r0, [r1] - adds r0, r1, 0 - ldrb r0, [r0] - cmp r0, 0x3 - bhi _08117258 - add r4, sp, 0x10 - adds r3, r1, 0 -_08117202: - ldrb r2, [r3] - adds r2, r4 - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - adds r0, r5, r0 - strb r0, [r2] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldrb r0, [r3] - ldr r1, [sp, 0x18] - cmp r0, r1 - bcc _08117202 - b _08117258 -_08117220: - movs r0, 0x5 - str r0, [sp, 0x18] - add r1, sp, 0x8 - movs r0, 0 - strb r0, [r1] - adds r0, r1, 0 - ldrb r0, [r0] - cmp r0, 0x4 - bhi _08117258 - add r3, sp, 0x10 - adds r2, r1, 0 -_08117236: - ldrb r1, [r2] - adds r1, r3 - ldrb r0, [r2] - adds r0, r5, r0 - strb r0, [r1] - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - ldrb r0, [r2] - ldr r1, [sp, 0x18] - cmp r0, r1 - bcc _08117236 - b _08117258 -_08117250: - movs r0, 0x1 - str r0, [sp, 0x18] - add r0, sp, 0x10 - strb r5, [r0] -_08117258: - add r1, sp, 0x8 - movs r0, 0 - strb r0, [r1] - adds r0, r1, 0 - ldrb r0, [r0] - ldr r1, [sp, 0x18] - cmp r0, r1 - bcs _08117360 - mov r0, sp - adds r0, 0xE - str r0, [sp, 0x1C] - add r1, sp, 0x10 - mov r9, r1 - add r0, sp, 0x8 - mov r12, r0 - mov r1, sp - adds r1, 0xA - str r1, [sp, 0x20] -_0811727C: - mov r1, r12 - ldrb r0, [r1] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, _08117370 @ =gUnknown_083F8C00 - adds r0, r1 - ldrb r0, [r0, 0x6] - ldr r1, [sp, 0x1C] - strb r0, [r1] - mov r1, r12 - ldrb r0, [r1] - add r0, r9 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - ldr r1, _08117370 @ =gUnknown_083F8C00 - adds r0, r1 - ldrb r0, [r0, 0x3] - ldr r1, [sp, 0x20] - strh r0, [r1] - mov r4, sp - adds r4, 0x9 - movs r0, 0 - strb r0, [r4] - ldrb r0, [r4] - cmp r0, 0x2 - bhi _08117350 - add r5, sp, 0xC - ldr r7, [sp, 0x20] - ldr r0, _08117374 @ =gBGTilemapBuffers + 0x800 - mov r8, r0 - ldr r6, [sp, 0x1C] - ldr r1, _08117378 @ =gSharedMem + 0x189A0 - mov r10, r1 -_081172C8: - mov r1, r12 - ldrb r0, [r1] - add r0, r9 - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - ldr r0, _08117370 @ =gUnknown_083F8C00 - adds r1, r0 - adds r3, r4, 0 - ldrb r0, [r4] - ldrb r1, [r1, 0x4] - adds r0, r1 - lsls r0, 5 - strh r0, [r5] - ldrh r0, [r7] - ldrh r2, [r5] - adds r2, r0 - lsls r2, 1 - add r2, r8 - ldrb r0, [r6] - ldrb r1, [r4] - adds r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - strh r0, [r2] - ldrh r0, [r7] - ldrh r2, [r5] - adds r2, r0 - adds r2, 0x1 - lsls r2, 1 - add r2, r8 - ldrb r0, [r6] - ldrb r1, [r4] - adds r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - mov r1, r10 - adds r1, 0x2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldrh r0, [r7] - ldrh r2, [r5] - adds r2, r0 - adds r2, 0x2 - lsls r2, 1 - add r2, r8 - ldrb r0, [r6] - ldrb r1, [r4] - adds r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldr r1, _0811737C @ =gSharedMem + 0x189A4 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldrb r0, [r3] - cmp r0, 0x2 - bls _081172C8 -_08117350: - mov r1, r12 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldrb r0, [r1] - ldr r1, [sp, 0x18] - cmp r0, r1 - bcc _0811727C -_08117360: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117370: .4byte gUnknown_083F8C00 -_08117374: .4byte gBGTilemapBuffers + 0x800 -_08117378: .4byte gSharedMem + 0x189A0 -_0811737C: .4byte gSharedMem + 0x189A4 - thumb_func_end sub_8117158 - - thumb_func_start sub_8117380 -sub_8117380: @ 8117380 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _081173B8 @ =gUnknown_083F8EF4 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x13 - bls _08117398 - movs r4, 0 -_08117398: - ldr r3, _081173BC @ =gUnknown_083F8C00 - lsls r0, r4, 2 - adds r0, r4 - lsls r2, r0, 2 - adds r0, r2, r3 - ldrb r0, [r0, 0x1] - lsls r0, 28 - lsrs r0, 28 - cmp r0, 0x4 - beq _081173EC - cmp r0, 0x4 - bgt _081173C0 - cmp r0, 0x3 - beq _081173C6 - b _08117428 - .align 2, 0 -_081173B8: .4byte gUnknown_083F8EF4 -_081173BC: .4byte gUnknown_083F8C00 -_081173C0: - cmp r0, 0xC - beq _0811740C - b _08117428 -_081173C6: - adds r0, r4, 0 - movs r1, 0x5 - bl __udivsi3 - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081173E8 @ =gSharedMem + 0x19000 - adds r0, 0x16 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bhi _08117428 - ldrb r0, [r1] - adds r0, 0x1 - b _08117402 - .align 2, 0 -_081173E8: .4byte gSharedMem + 0x19000 -_081173EC: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08117408 @ =gSharedMem + 0x19000 - adds r0, 0x12 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08117428 - ldrb r0, [r1] - adds r0, 0x2 -_08117402: - add r0, sp - ldrb r0, [r0] - b _0811742A - .align 2, 0 -_08117408: .4byte gSharedMem + 0x19000 -_0811740C: - ldr r1, _08117424 @ =gSharedMem + 0x19000 - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08117428 - mov r0, sp - ldrb r0, [r0, 0x4] - b _0811742A - .align 2, 0 -_08117424: .4byte gSharedMem + 0x19000 -_08117428: - movs r0, 0 -_0811742A: - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8117380 - - thumb_func_start sub_8117434 -sub_8117434: @ 8117434 - push {r4-r6,lr} - ldr r1, _081174AC @ =REG_BG2PA - ldr r4, _081174B0 @ =gSharedMem + 0x19000 - ldrh r0, [r4, 0x2C] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x2E] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x30] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x32] - strh r0, [r1] - movs r0, 0x2E - ldrsh r2, [r4, r0] - ldr r0, _081174B4 @ =gSpriteCoordOffsetY - movs r3, 0 - ldrsh r1, [r0, r3] - adds r1, 0x50 - adds r0, r2, 0 - muls r0, r1 - movs r2, 0xE8 - lsls r2, 7 - subs r2, r0 - movs r6, 0x2C - ldrsh r5, [r4, r6] - ldr r0, _081174B8 @ =gSpriteCoordOffsetX - movs r6, 0 - ldrsh r3, [r0, r6] - adds r3, 0x74 - adds r0, r5, 0 - muls r0, r3 - subs r2, r0 - movs r5, 0x32 - ldrsh r0, [r4, r5] - muls r0, r1 - movs r1, 0xA8 - lsls r1, 7 - subs r1, r0 - movs r6, 0x30 - ldrsh r0, [r4, r6] - muls r0, r3 - subs r1, r0 - ldr r0, _081174BC @ =REG_BG2X_L - strh r2, [r0] - adds r0, 0x2 - ldr r3, _081174C0 @ =0x0fff0000 - ands r2, r3 - asrs r2, 16 - strh r2, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - ands r1, r3 - asrs r1, 16 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081174AC: .4byte REG_BG2PA -_081174B0: .4byte gSharedMem + 0x19000 -_081174B4: .4byte gSpriteCoordOffsetY -_081174B8: .4byte gSpriteCoordOffsetX -_081174BC: .4byte REG_BG2X_L -_081174C0: .4byte 0x0fff0000 - thumb_func_end sub_8117434 - - thumb_func_start sub_81174C4 -sub_81174C4: @ 81174C4 - push {lr} - lsls r0, 16 - asrs r0, 16 - lsls r1, 16 - asrs r1, 16 - muls r0, r1 - adds r1, r0, 0 - cmp r0, 0 - bge _081174D8 - adds r1, 0xFF -_081174D8: - lsls r0, r1, 8 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_81174C4 - - thumb_func_start sub_81174E0 -sub_81174E0: @ 81174E0 - 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 sub_81174E0 - - thumb_func_start sub_81174F8 -sub_81174F8: @ 81174F8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r0, _08117520 @ =0x00002d9e - bl sub_814AAF8 - ldr r1, _08117524 @ =gUnknown_083F8EB4 - adds r0, r4, 0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117520: .4byte 0x00002d9e -_08117524: .4byte gUnknown_083F8EB4 - thumb_func_end sub_81174F8 - - thumb_func_start sub_8117528 -sub_8117528: @ 8117528 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08117554 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0811754C - movs r0, 0 - bl SetVBlankCallback - ldr r0, _08117558 @ =sub_8115384 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0811754C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117554: .4byte gPaletteFade -_08117558: .4byte sub_8115384 - thumb_func_end sub_8117528 - - thumb_func_start sub_811755C -sub_811755C: @ 811755C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x14 - movs r1, 0x8 - movs r2, 0x1A - movs r3, 0xD - bl MenuZeroFillWindowRect - bl MenuZeroFillScreen - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r2, _081175B4 @ =gPaletteFade - ldrb r1, [r2, 0x8] - lsls r1, 26 - lsrs r1, 26 - ldrb r3, [r2, 0x4] - movs r0, 0x40 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x4] - bl UpdatePaletteFade - ldr r1, _081175B8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081175BC @ =sub_8117528 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081175B4: .4byte gPaletteFade -_081175B8: .4byte gTasks -_081175BC: .4byte sub_8117528 - thumb_func_end sub_811755C - - thumb_func_start sub_81175C0 -sub_81175C0: @ 81175C0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl MenuZeroFillScreen - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81175C0 - - thumb_func_start sub_81175DC -sub_81175DC: @ 81175DC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r1, _08117624 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r2, r1, 0x1 - strh r2, [r0, 0x8] - ldr r0, _08117628 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08117608 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _0811761C -_08117608: - ldr r1, _0811762C @ =gSpecialVar_0x8004 - movs r0, 0x1 - strh r0, [r1] - bl MenuZeroFillScreen - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask -_0811761C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08117624: .4byte gTasks -_08117628: .4byte gMain -_0811762C: .4byte gSpecialVar_0x8004 - thumb_func_end sub_81175DC - - thumb_func_start sub_8117630 -sub_8117630: @ 8117630 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _0811768C @ =gUnknown_083F8DF0 - ldr r0, _08117690 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - lsrs r1, 7 - lsls r1, 1 - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - ldr r0, _08117694 @ =gStringVar1 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r5, _08117698 @ =gStringVar4 - ldr r1, _0811769C @ =gUnknown_081C40DF - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _081176A0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081176A4 @ =sub_81174F8 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811768C: .4byte gUnknown_083F8DF0 -_08117690: .4byte gSpecialVar_0x8004 -_08117694: .4byte gStringVar1 -_08117698: .4byte gStringVar4 -_0811769C: .4byte gUnknown_081C40DF -_081176A0: .4byte gTasks -_081176A4: .4byte sub_81174F8 - thumb_func_end sub_8117630 - - thumb_func_start Task_Roulette_0 -Task_Roulette_0: @ 81176A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08117758 @ =gStringVar1 - mov r10, r0 - ldr r1, _0811775C @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r6, r0, r1 - movs r0, 0x22 - ldrsh r1, [r6, r0] - mov r0, r10 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r5, _08117760 @ =gStringVar4 - ldr r1, _08117764 @ =gOtherText_Coins - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0 - movs r2, 0x9 - movs r3, 0x3 - bl MenuDrawTextWindow - adds r0, r5, 0 - movs r1, 0x9 - movs r2, 0x1 - bl MenuPrint_RightAligned - ldr r2, _08117768 @ =gUnknown_083F8DF0 - ldr r1, _0811776C @ =gSpecialVar_0x8004 - mov r8, r1 - ldrh r1, [r1] - movs r0, 0x1 - mov r9, r0 - ands r0, r1 - lsrs r1, 7 - lsls r1, 1 - adds r0, r1 - adds r0, r2 - ldrb r4, [r0] - mov r0, r10 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - movs r1, 0x22 - ldrsh r0, [r6, r1] - cmp r0, r4 - blt _081177BC - mov r0, r8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0811777C - mov r0, r9 - ands r0, r1 - cmp r0, 0 - beq _0811777C - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08117770 @ =gUnknown_081C4139 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _08117774 @ =sub_8117630 - ldr r2, _08117778 @ =0x0000ffff - adds r0, r7, 0 - movs r3, 0x3 - bl sub_8116C34 - b _081177E4 - .align 2, 0 -_08117758: .4byte gStringVar1 -_0811775C: .4byte gTasks -_08117760: .4byte gStringVar4 -_08117764: .4byte gOtherText_Coins -_08117768: .4byte gUnknown_083F8DF0 -_0811776C: .4byte gSpecialVar_0x8004 -_08117770: .4byte gUnknown_081C4139 -_08117774: .4byte sub_8117630 -_08117778: .4byte 0x0000ffff -_0811777C: - ldr r4, _081177AC @ =gStringVar4 - ldr r1, _081177B0 @ =gUnknown_081C40DF - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r1, _081177B4 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _081177B8 @ =sub_81174F8 - str r1, [r0] - b _081177E4 - .align 2, 0 -_081177AC: .4byte gStringVar4 -_081177B0: .4byte gUnknown_081C40DF -_081177B4: .4byte gTasks -_081177B8: .4byte sub_81174F8 -_081177BC: - ldr r1, _081177F4 @ =gUnknown_081C411C - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - ldr r0, _081177F8 @ =sub_81175DC - str r0, [r6] - movs r0, 0 - strh r0, [r6, 0x22] - strh r0, [r6, 0x8] -_081177E4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081177F4: .4byte gUnknown_081C411C -_081177F8: .4byte sub_81175DC - thumb_func_end Task_Roulette_0 - - thumb_func_start PlayRoulette -PlayRoulette: @ 81177FC - push {lr} - bl ScriptContext2_Enable - ldr r0, _08117828 @ =Task_Roulette_0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0811782C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _08117830 @ =gSaveBlock1 - ldr r2, _08117834 @ =0x00000494 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1, 0x22] - pop {r0} - bx r0 - .align 2, 0 -_08117828: .4byte Task_Roulette_0 -_0811782C: .4byte gTasks -_08117830: .4byte gSaveBlock1 -_08117834: .4byte 0x00000494 - thumb_func_end PlayRoulette - - thumb_func_start sub_8117838 -sub_8117838: @ 8117838 - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _08117884 - bl FreeAllSpritePalettes - ldr r0, _08117870 @ =gUnknown_083F9E30 - bl LoadSpritePalettes - ldr r0, _08117874 @ =gUnknown_083F92A8 - ldr r4, _08117878 @ =gSharedMem + 0x17000 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r0, _0811787C @ =gUnknown_083F90FC - movs r2, 0xE0 - lsls r2, 4 - adds r1, r4, r2 - bl LZ77UnCompWram - ldr r0, _08117880 @ =gUnknown_083F9D3C - movs r1, 0x80 - lsls r1, 5 - adds r4, r1 - adds r1, r4, 0 - bl LZ77UnCompWram - b _08117888 - .align 2, 0 -_08117870: .4byte gUnknown_083F9E30 -_08117874: .4byte gUnknown_083F92A8 -_08117878: .4byte gSharedMem + 0x17000 -_0811787C: .4byte gUnknown_083F90FC -_08117880: .4byte gUnknown_083F9D3C -_08117884: - bl FreeAllSpritePalettes -_08117888: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8117838 - - thumb_func_start sub_8117890 -sub_8117890: @ 8117890 - push {r4-r6,lr} - adds r4, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, [r0, 0x4] - ldrb r3, [r1] - movs r1, 0x74 - movs r2, 0x50 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r0, _081178F4 @ =gSprites - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r6] - strh r0, [r1, 0x2E] - strh r4, [r1, 0x30] - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r3] - adds r1, 0x2C - ldrb r0, [r1] - movs r2, 0x40 - orrs r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r1] - ldrh r2, [r6] - adds r0, r2, 0 - adds r0, 0x1E - strh r0, [r6] - lsls r0, 16 - ldr r1, _081178F8 @ =0x01670000 - cmp r0, r1 - bls _081178EC - ldr r1, _081178FC @ =0xfffffeb6 - adds r0, r2, r1 - strh r0, [r6] -_081178EC: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081178F4: .4byte gSprites -_081178F8: .4byte 0x01670000 -_081178FC: .4byte 0xfffffeb6 - thumb_func_end sub_8117890 - - thumb_func_start sub_8117900 -sub_8117900: @ 8117900 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - ldr r4, _08117A50 @ =gUnknown_083F9F54 - ldr r0, [r4] - ldr r5, _08117A54 @ =gSharedMem - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - mov r6, sp - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - ldr r4, _08117A58 @ =gUnknown_083F9F5C - ldr r0, [r4] - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x4] - ldrh r0, [r4, 0x6] - strh r0, [r6, 0x6] - mov r0, sp - bl LoadSpriteSheet - movs r7, 0 - ldr r0, _08117A5C @ =0x0001903c - adds r0, r5 - mov r9, r0 - ldr r0, _08117A60 @ =gSprites - mov r8, r0 -_08117950: - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 27 - lsrs r4, r0, 24 - movs r6, 0 - lsls r5, r7, 2 -_0811795C: - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 3 - ldr r0, _08117A64 @ =gSpriteTemplate_83FA07C - adds r0, r1, r0 - adds r1, 0x94 - adds r2, r4, 0 - adds r2, 0x5C - movs r3, 0x1E - bl CreateSprite - adds r1, r6, 0 - adds r1, 0x1D - adds r1, r5, r1 - add r1, r9 - strb r0, [r1] - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0 - adds r0, 0x18 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x47 - bls _081179A0 - movs r4, 0 -_081179A0: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _0811795C - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _08117950 - movs r7, 0 - ldr r5, _08117A68 @ =gSharedMem + 0x1903C - ldr r4, _08117A60 @ =gSprites -_081179BA: - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 3 - ldr r0, _08117A6C @ =gSpriteTemplate_83F9FD4 - adds r0, r1, r0 - adds r1, 0x94 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x46 - movs r3, 0x1E - bl CreateSprite - adds r1, r7, 0 - adds r1, 0x29 - adds r1, r5 - strb r0, [r1] - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _081179BA - movs r7, 0 - ldr r5, _08117A68 @ =gSharedMem + 0x1903C - ldr r4, _08117A60 @ =gSprites -_08117A00: - lsls r2, r7, 1 - adds r2, r7 - lsls r2, 3 - ldr r0, _08117A70 @ =gSpriteTemplate_83FA034 - adds r0, r2, r0 - adds r2, 0x5C - lsls r2, 16 - asrs r2, 16 - movs r1, 0x7E - movs r3, 0x1E - bl CreateSprite - adds r1, r7, 0 - adds r1, 0x2D - adds r1, r5 - strb r0, [r1] - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _08117A00 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117A50: .4byte gUnknown_083F9F54 -_08117A54: .4byte gSharedMem -_08117A58: .4byte gUnknown_083F9F5C -_08117A5C: .4byte 0x0001903c -_08117A60: .4byte gSprites -_08117A64: .4byte gSpriteTemplate_83FA07C -_08117A68: .4byte gSharedMem + 0x1903C -_08117A6C: .4byte gSpriteTemplate_83F9FD4 -_08117A70: .4byte gSpriteTemplate_83FA034 - thumb_func_end sub_8117900 - - thumb_func_start unref_sub_8117A74 -unref_sub_8117A74: @ 8117A74 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08117AA0 @ =gSharedMem + 0x1903C -_08117A7A: - adds r0, r4, 0 - adds r0, 0x1D - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08117AA4 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xB - bls _08117A7A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08117AA0: .4byte gSharedMem + 0x1903C -_08117AA4: .4byte gSprites - thumb_func_end unref_sub_8117A74 - - thumb_func_start sub_8117AA8 -sub_8117AA8: @ 8117AA8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - cmp r0, 0 - beq _08117AF8 - cmp r0, 0x1 - bne _08117BA8 - movs r3, 0 - ldr r5, _08117AF0 @ =gSprites - ldr r4, _08117AF4 @ =gSharedMem + 0x1903C - movs r2, 0x4 -_08117ACA: - adds r0, r3, 0 - adds r0, 0x1D - adds r0, r4 - 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, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x12 - bls _08117ACA - b _08117BA8 - .align 2, 0 -_08117AF0: .4byte gSprites -_08117AF4: .4byte gSharedMem + 0x1903C -_08117AF8: - movs r3, 0 - ldr r0, _08117B48 @ =gUnknown_083F8D90 - mov r12, r0 - ldr r7, _08117B4C @ =gSharedMem + 0x19000 - movs r1, 0x4 - add r1, r12 - mov r9, r1 - ldr r5, _08117B50 @ =gSprites - adds r4, r7, 0 - adds r4, 0x3C - movs r6, 0x5 - negs r6, r6 -_08117B10: - lsls r2, r3, 3 - mov r1, r9 - adds r0, r2, r1 - ldr r1, [r7, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08117B54 - mov r1, r12 - adds r0, r2, r1 - ldrb r0, [r0, 0x2] - cmp r0, r8 - beq _08117B54 - adds r0, r3, 0 - adds r0, 0x1D - adds r0, r4 - ldrb r1, [r0] - 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] - b _08117B6E - .align 2, 0 -_08117B48: .4byte gUnknown_083F8D90 -_08117B4C: .4byte gSharedMem + 0x19000 -_08117B50: .4byte gSprites -_08117B54: - adds r0, r3, 0 - adds r0, 0x1D - 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] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] -_08117B6E: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xB - bls _08117B10 - cmp r3, 0x12 - bhi _08117BA8 - ldr r6, _08117BB4 @ =gSprites - ldr r4, _08117BB8 @ =gSharedMem + 0x1903C - movs r5, 0x5 - negs r5, r5 -_08117B84: - adds r0, r3, 0 - adds r0, 0x1D - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x12 - bls _08117B84 -_08117BA8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117BB4: .4byte gSprites -_08117BB8: .4byte gSharedMem + 0x1903C - thumb_func_end sub_8117AA8 - - thumb_func_start sub_8117BBC -sub_8117BBC: @ 8117BBC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r0, _08117C50 @ =gSharedMem + 0x1903C - mov r8, r0 - ldr r4, _08117C54 @ =gSprites - movs r6, 0x4 -_08117BCC: - ldr r0, _08117C58 @ =gSpriteTemplate_83FA40C - movs r1, 0x74 - movs r2, 0x14 - movs r3, 0xA - bl CreateSprite - adds r3, r5, 0 - adds r3, 0x31 - add r3, r8 - strb r0, [r3] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - strh r1, [r0, 0x2E] - 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, _08117C5C @ =sub_81184CC - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x5] - movs r7, 0xD - negs r7, r7 - adds r2, r7, 0 - ands r1, r2 - orrs r1, r6 - strb r1, [r0, 0x5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x8 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08117BCC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117C50: .4byte gSharedMem + 0x1903C -_08117C54: .4byte gSprites -_08117C58: .4byte gSpriteTemplate_83FA40C -_08117C5C: .4byte sub_81184CC - thumb_func_end sub_8117BBC - - thumb_func_start sub_8117C60 -sub_8117C60: @ 8117C60 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r5, 0 - cmp r0, 0 - beq _08117CAC - ldr r4, _08117CA4 @ =gSprites - ldr r3, _08117CA8 @ =gSharedMem + 0x1903C - movs r2, 0x4 -_08117C7E: - adds r0, r5, 0 - adds r0, 0x31 - adds r0, r3 - ldrb r1, [r0] - 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] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08117C7E - b _08117D58 - .align 2, 0 -_08117CA4: .4byte gSprites -_08117CA8: .4byte gSharedMem + 0x1903C -_08117CAC: - ldr r0, _08117CEC @ =gSharedMem + 0x19000 - mov r12, r0 - ldr r6, _08117CF0 @ =gSprites - movs r0, 0x3C - add r0, r12 - mov r8, r0 - ldr r7, _08117CF4 @ =gUnknown_083F8C00 - movs r0, 0x5 - negs r0, r0 - mov r10, r0 -_08117CC0: - mov r0, r12 - adds r0, 0xC - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0 - beq _08117CD0 - cmp r5, r9 - bne _08117CF8 -_08117CD0: - adds r0, r5, 0 - adds r0, 0x31 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _08117D4E - .align 2, 0 -_08117CEC: .4byte gSharedMem + 0x19000 -_08117CF0: .4byte gSprites -_08117CF4: .4byte gUnknown_083F8C00 -_08117CF8: - adds r3, r5, 0 - adds r3, 0x31 - add r3, r8 - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r10 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x3] - adds r0, 0x1 - lsls r0, 3 - adds r0, 0x4 - strh r0, [r2, 0x20] - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x4] - adds r0, 0x1 - lsls r0, 3 - adds r0, 0x3 - strh r0, [r2, 0x22] -_08117D4E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08117CC0 -_08117D58: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8117C60 - - thumb_func_start sub_8117D68 -sub_8117D68: @ 8117D68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08117D98 - ldr r2, _08117D90 @ =gSprites - ldr r0, _08117D94 @ =gSharedMem + 0x19000 - adds r0, 0x6C - 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] - b _08117DE2 - .align 2, 0 -_08117D90: .4byte gSprites -_08117D94: .4byte gSharedMem + 0x19000 -_08117D98: - ldr r4, _08117DE8 @ =gSprites - ldr r3, _08117DEC @ =gSharedMem + 0x19000 - adds r3, 0x6C - ldrb r1, [r3] - 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] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldr r0, _08117DF0 @ =gUnknown_083F8C00 - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 2 - adds r2, r0 - ldrb r0, [r2, 0x3] - adds r0, 0x2 - lsls r0, 3 - strh r0, [r1, 0x20] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r2, 0x4] - adds r0, 0x2 - lsls r0, 3 - strh r0, [r1, 0x22] -_08117DE2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08117DE8: .4byte gSprites -_08117DEC: .4byte gSharedMem + 0x19000 -_08117DF0: .4byte gUnknown_083F8C00 - thumb_func_end sub_8117D68 - - thumb_func_start sub_8117DF4 -sub_8117DF4: @ 8117DF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - ldr r4, _08117E84 @ =gUnknown_083F9EE8 - ldr r0, [r4] - ldr r5, _08117E88 @ =gSharedMem - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp, 0x4] - add r0, sp, 0x4 - ldrh r2, [r4, 0x6] - lsls r2, 16 - ldrh r1, [r4, 0x4] - orrs r1, r2 - str r1, [r0, 0x4] - bl LoadSpriteSheet - movs r1, 0xF - mov r0, sp - strh r1, [r0] - movs r0, 0 - ldr r1, _08117E8C @ =0x0001903c - adds r1, r5 - mov r8, r1 - ldr r7, _08117E90 @ =gSprites -_08117E2A: - movs r4, 0 - adds r6, r0, 0x1 - lsls r5, r0, 2 -_08117E30: - adds r1, r5, r4 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r1, _08117E94 @ =gSpriteTemplate_83FA0DC - adds r0, r1 - movs r1, 0x28 - mov r2, sp - bl sub_8117890 - adds r1, r4, 0x7 - adds r1, r5, r1 - add r1, r8 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x2C - ldrb r0, [r1] - movs r2, 0x40 - orrs r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08117E30 - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, 0x2 - bls _08117E2A - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08117E84: .4byte gUnknown_083F9EE8 -_08117E88: .4byte gSharedMem -_08117E8C: .4byte 0x0001903c -_08117E90: .4byte gSprites -_08117E94: .4byte gSpriteTemplate_83FA0DC - thumb_func_end sub_8117DF4 - - thumb_func_start sub_8117E98 -sub_8117E98: @ 8117E98 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _08117F1C @ =gSharedMem + 0x19000 - ldrh r1, [r6, 0x2E] - ldrh r0, [r0, 0x24] - adds r1, r0 - lsls r1, 16 - lsrs r4, r1, 16 - asrs r1, 16 - ldr r0, _08117F20 @ =0x00000167 - cmp r1, r0 - ble _08117EB8 - ldr r2, _08117F24 @ =0xfffffe98 - adds r0, r1, r2 - lsls r0, 16 - lsrs r4, r0, 16 -_08117EB8: - adds r0, r4, 0 - bl Sin2 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl Cos2 - lsls r2, r5, 16 - asrs r2, 16 - movs r3, 0x30 - ldrsh r1, [r6, r3] - muls r1, r2 - asrs r1, 12 - strh r1, [r6, 0x24] - lsls r0, 16 - asrs r4, r0, 16 - negs r1, r4 - movs r3, 0x30 - ldrsh r0, [r6, r3] - muls r0, r1 - asrs r0, 12 - strh r0, [r6, 0x26] - ldrb r0, [r6, 0x3] - lsls r0, 26 - lsrs r3, r0, 27 - cmp r2, 0 - bge _08117EF2 - adds r2, 0xF -_08117EF2: - lsls r0, r2, 12 - lsrs r5, r0, 16 - ldr r1, _08117F28 @ =gOamMatrices - lsls r0, r3, 3 - adds r1, r0, r1 - adds r0, r4, 0 - cmp r0, 0 - bge _08117F04 - adds r0, 0xF -_08117F04: - asrs r0, 4 - strh r0, [r1, 0x6] - strh r0, [r1] - strh r5, [r1, 0x2] - lsls r0, r5, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r1, 0x4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08117F1C: .4byte gSharedMem + 0x19000 -_08117F20: .4byte 0x00000167 -_08117F24: .4byte 0xfffffe98 -_08117F28: .4byte gOamMatrices - thumb_func_end sub_8117E98 - - thumb_func_start sub_8117F2C -sub_8117F2C: @ 8117F2C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r5, 0 - ldr r7, _081180C8 @ =gSharedMem - mov r6, sp -_08117F3A: - ldr r0, _081180CC @ =gUnknown_083FA21C - lsls r4, r5, 3 - adds r4, r0 - ldr r0, [r4] - adds r1, r7, 0 - bl LZ77UnCompWram - str r7, [sp] - ldrh r2, [r4, 0x4] - ldr r0, _081180D0 @ =0xffff0000 - ldr r1, [r6, 0x4] - ands r1, r0 - orrs r1, r2 - str r1, [r6, 0x4] - ldrh r2, [r4, 0x6] - lsls r2, 16 - ldr r0, _081180D4 @ =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [r6, 0x4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _08117F3A - ldr r0, _081180D8 @ =gSpriteTemplate_83FA2B0 - movs r1, 0xD0 - movs r2, 0x10 - movs r3, 0x4 - bl CreateSprite - ldr r4, _081180DC @ =gSharedMem + 0x19000 - adds r1, r4, 0 - adds r1, 0x50 - strb r0, [r1] - ldr r3, _081180E0 @ =gSprites - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - movs r5, 0 - adds r4, 0x3C - adds r7, r3, 0 -_08117FA2: - lsls r1, r5, 19 - movs r0, 0xC4 - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - ldr r0, _081180E4 @ =gSpriteTemplate_83FA2C8 - movs r2, 0x18 - movs r3, 0 - bl CreateSprite - adds r3, r5, 0 - adds r3, 0x15 - adds r3, r4 - strb r0, [r3] - ldrb r1, [r3] - 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] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - adds r0, 0x2C - ldrb r1, [r0] - movs r6, 0x40 - orrs r1, r6 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _08117FA2 - ldr r0, _081180E8 @ =gSpriteTemplate_83FA2E0 - movs r1, 0x78 - movs r2, 0x44 - movs r3, 0x4 - bl CreateSprite - ldr r3, _081180DC @ =gSharedMem + 0x19000 - adds r1, r3, 0 - adds r1, 0x55 - strb r0, [r1] - ldr r2, _081180E0 @ =gSprites - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2C - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - movs r5, 0 - adds r3, 0x3C - mov r8, r3 - adds r4, r2, 0 -_08118020: - lsls r1, r5, 20 - movs r0, 0xC0 - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - ldr r0, _081180EC @ =gSpriteTemplate_83FA2F8 - movs r2, 0x24 - movs r3, 0x4 - bl CreateSprite - adds r2, r5, 0 - adds r2, 0x1A - add r2, r8 - strb r0, [r2] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - movs r7, 0x4 - orrs r1, r7 - strb r1, [r0] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r6, 0x40 - orrs r1, r6 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _08118020 - ldr r0, _081180F0 @ =gSpriteTemplate_83FA310 - movs r1, 0x98 - movs r2, 0x60 - movs r3, 0x9 - bl CreateSprite - ldr r3, _081180DC @ =gSharedMem + 0x19000 - adds r3, 0x6C - strb r0, [r3] - ldr r4, _081180E0 @ =gSprites - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r7 - strb r0, [r1, 0x5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081180C8: .4byte gSharedMem -_081180CC: .4byte gUnknown_083FA21C -_081180D0: .4byte 0xffff0000 -_081180D4: .4byte 0x0000ffff -_081180D8: .4byte gSpriteTemplate_83FA2B0 -_081180DC: .4byte gSharedMem + 0x19000 -_081180E0: .4byte gSprites -_081180E4: .4byte gSpriteTemplate_83FA2C8 -_081180E8: .4byte gSpriteTemplate_83FA2E0 -_081180EC: .4byte gSpriteTemplate_83FA2F8 -_081180F0: .4byte gSpriteTemplate_83FA310 - thumb_func_end sub_8117F2C - - thumb_func_start sub_81180F4 -sub_81180F4: @ 81180F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r7, r0, 16 - movs r0, 0xFA - lsls r0, 2 - mov r8, r0 - movs r4, 0 - movs r6, 0 - ldr r1, _081181D4 @ =gSharedMem + 0x19000 - mov r9, r1 - ldr r0, _081181D8 @ =gSprites - mov r10, r0 -_08118114: - adds r0, r7, 0 - mov r1, r8 - bl __udivsi3 - lsls r0, 24 - lsrs r5, r0, 24 - adds r3, r6, 0 - adds r3, 0x15 - mov r0, r9 - adds r0, 0x3C - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081181D8 @ =gSprites - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r3, 0 - cmp r5, 0 - bne _0811814E - cmp r4, 0 - bne _0811814E - cmp r6, 0x3 - bne _081181A2 -_0811814E: - mov r3, r9 - adds r3, 0x3C - adds r3, r0, r3 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r10 - adds r0, 0x3E - ldrb r1, [r0] - movs r4, 0x5 - negs r4, r4 - adds r2, r4, 0 - ands r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r10 - adds r3, r0, r1 - adds r4, r3, 0 - adds r4, 0x40 - ldr r1, _081181DC @ =gSprites + 0x8 - adds r0, r1 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrh r2, [r0] - ldrh r4, [r4] - adds r2, r4 - ldr r4, _081181E0 @ =0x000003ff - adds r0, r4, 0 - ands r2, r0 - ldrh r0, [r3, 0x4] - ldr r4, _081181E4 @ =0xfffffc00 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strh r0, [r3, 0x4] - movs r4, 0x1 -_081181A2: - adds r0, r7, 0 - mov r1, r8 - bl __umodsi3 - lsls r0, 16 - lsrs r7, r0, 16 - mov r0, r8 - movs r1, 0xA - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bls _08118114 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081181D4: .4byte gSharedMem + 0x19000 -_081181D8: .4byte gSprites -_081181DC: .4byte gSprites + 0x8 -_081181E0: .4byte 0x000003ff -_081181E4: .4byte 0xfffffc00 - thumb_func_end sub_81180F4 - - thumb_func_start sub_81181E8 -sub_81181E8: @ 81181E8 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08118220 @ =gUnknown_083FA608 - mov r0, sp - movs r2, 0x5 - bl memcpy - cmp r4, 0x13 - bls _08118200 - movs r4, 0 -_08118200: - ldr r3, _08118224 @ =gUnknown_083F8C00 - lsls r0, r4, 2 - adds r0, r4 - lsls r2, r0, 2 - adds r0, r2, r3 - ldrb r0, [r0, 0x1] - lsls r0, 28 - lsrs r0, 28 - cmp r0, 0x4 - beq _08118254 - cmp r0, 0x4 - bgt _08118228 - cmp r0, 0x3 - beq _0811822E - b _08118290 - .align 2, 0 -_08118220: .4byte gUnknown_083FA608 -_08118224: .4byte gUnknown_083F8C00 -_08118228: - cmp r0, 0xC - beq _08118274 - b _08118290 -_0811822E: - adds r0, r4, 0 - movs r1, 0x5 - bl __udivsi3 - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08118250 @ =gSharedMem + 0x19000 - adds r0, 0x16 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bhi _08118290 - ldrb r0, [r1] - adds r0, 0x1 - b _0811826A - .align 2, 0 -_08118250: .4byte gSharedMem + 0x19000 -_08118254: - subs r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08118270 @ =gSharedMem + 0x19000 - adds r0, 0x12 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08118290 - ldrb r0, [r1] - adds r0, 0x2 -_0811826A: - add r0, sp - ldrb r0, [r0] - b _08118292 - .align 2, 0 -_08118270: .4byte gSharedMem + 0x19000 -_08118274: - ldr r1, _0811828C @ =gSharedMem + 0x19000 - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r1, [r1, 0x8] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08118290 - mov r0, sp - ldrb r0, [r0, 0x4] - b _08118292 - .align 2, 0 -_0811828C: .4byte gSharedMem + 0x19000 -_08118290: - movs r0, 0 -_08118292: - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81181E8 - - thumb_func_start sub_811829C -sub_811829C: @ 811829C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081182E8 @ =gSharedMem + 0x19000 - adds r1, 0x55 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _081182EC @ =gSprites - adds r4, r1, r2 - bl sub_81181E8 - adds r3, r4, 0 - adds r3, 0x2B - strb r0, [r3] - adds r2, r4, 0 - adds r2, 0x40 - ldr r1, [r4, 0x8] - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r2 - ldr r2, _081182F0 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, _081182F4 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081182E8: .4byte gSharedMem + 0x19000 -_081182EC: .4byte gSprites -_081182F0: .4byte 0x000003ff -_081182F4: .4byte 0xfffffc00 - thumb_func_end sub_811829C - - thumb_func_start sub_81182F8 -sub_81182F8: @ 81182F8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r2, r0, 24 - movs r5, 0 - ldr r0, _08118320 @ =gSharedMem + 0x19000 - ldrb r1, [r0, 0x19] - adds r3, r0, 0 - cmp r1, 0x1 - bne _08118310 - movs r5, 0x2 -_08118310: - cmp r2, 0x6 - bls _08118316 - b _08118464 -_08118316: - lsls r0, r2, 2 - ldr r1, _08118324 @ =_08118328 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08118320: .4byte gSharedMem + 0x19000 -_08118324: .4byte _08118328 - .align 2, 0 -_08118328: - .4byte _08118464 - .4byte _08118420 - .4byte _081183F8 - .4byte _081183EC - .4byte _081183C4 - .4byte _081183B8 - .4byte _08118344 -_08118344: - movs r4, 0 - ldr r5, _081183A8 @ =gSprites - ldr r0, _081183AC @ =gSharedMem + 0x1903C - mov r8, r0 - movs r2, 0x5 - negs r2, r2 - mov r12, r2 - adds r6, r5, 0 - adds r6, 0x8 - ldr r7, _081183B0 @ =0xfffffc00 -_08118358: - adds r3, r4, 0 - adds r3, 0x1A - add r3, r8 - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r5 - adds r2, r3, 0 - adds r2, 0x40 - adds r0, r6 - ldr r0, [r0] - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r2] - adds r1, r2 - ldr r2, _081183B4 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - adds r0, r7, 0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08118358 - b _081184B2 - .align 2, 0 -_081183A8: .4byte gSprites -_081183AC: .4byte gSharedMem + 0x1903C -_081183B0: .4byte 0xfffffc00 -_081183B4: .4byte 0x000003ff -_081183B8: - ldr r2, _081183C0 @ =gSprites - adds r0, r3, 0 - adds r0, 0x58 - b _08118426 - .align 2, 0 -_081183C0: .4byte gSprites -_081183C4: - ldr r2, _081183E8 @ =gSprites - adds r0, r3, 0 - adds r0, 0x58 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r2 - adds r4, r3, 0 - adds r4, 0x40 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrh r1, [r0, 0x8] - b _08118442 - .align 2, 0 -_081183E8: .4byte gSprites -_081183EC: - ldr r2, _081183F4 @ =gSprites - adds r0, r3, 0 - adds r0, 0x57 - b _08118426 - .align 2, 0 -_081183F4: .4byte gSprites -_081183F8: - ldr r2, _0811841C @ =gSprites - adds r0, r3, 0 - adds r0, 0x57 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r2 - adds r4, r3, 0 - adds r4, 0x40 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrh r1, [r0, 0x8] - b _08118442 - .align 2, 0 -_0811841C: .4byte gSprites -_08118420: - ldr r2, _08118458 @ =gSprites - adds r0, r3, 0 - adds r0, 0x56 -_08118426: - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r2 - adds r4, r3, 0 - adds r4, 0x40 - adds r2, 0x8 - adds r0, r2 - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r5, 2 - adds r0, r1 - ldrh r1, [r0, 0x4] -_08118442: - ldrh r4, [r4] - adds r1, r4 - ldr r2, _0811845C @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, _08118460 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - b _081184B2 - .align 2, 0 -_08118458: .4byte gSprites -_0811845C: .4byte 0x000003ff -_08118460: .4byte 0xfffffc00 -_08118464: - movs r4, 0 - lsls r6, r5, 2 - ldr r5, _081184BC @ =gSprites - ldr r0, _081184C0 @ =gSharedMem + 0x1903C - mov r8, r0 - adds r7, r5, 0 - adds r7, 0x8 - ldr r2, _081184C4 @ =0xfffffc00 - mov r12, r2 -_08118476: - adds r0, r4, 0 - adds r0, 0x1A - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r3, r0, r5 - adds r2, r3, 0 - adds r2, 0x40 - adds r0, r7 - ldr r0, [r0] - ldr r0, [r0] - adds r0, r6, r0 - ldrh r1, [r0, 0x8] - ldrh r2, [r2] - adds r1, r2 - ldr r2, _081184C8 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - mov r0, r12 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08118476 -_081184B2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081184BC: .4byte gSprites -_081184C0: .4byte gSharedMem + 0x1903C -_081184C4: .4byte 0xfffffc00 -_081184C8: .4byte 0x000003ff - thumb_func_end sub_81182F8 - - thumb_func_start sub_81184CC -sub_81184CC: @ 81184CC - ldr r1, _081184D4 @ =gSharedMem + 0x19000 - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x24] - bx lr - .align 2, 0 -_081184D4: .4byte gSharedMem + 0x19000 - thumb_func_end sub_81184CC - - thumb_func_start sub_81184D8 -sub_81184D8: @ 81184D8 - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _08118544 @ =gUnknown_083FA42C - ldr r0, [r4] - ldr r5, _08118548 @ =gSharedMem - 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 LoadSpriteSheet - ldr r0, _0811854C @ =gSpriteTemplate_83FA434 - movs r1, 0x74 - movs r2, 0x50 - movs r3, 0x51 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08118550 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0xC8 - lsls r0, 9 - adds r5, r0 - ldrh r0, [r5, 0x24] - movs r2, 0 - strh r0, [r1, 0x2E] - strh r2, [r1, 0x30] - adds r3, r1, 0 - adds r3, 0x2C - ldrb r0, [r3] - movs r2, 0x40 - orrs r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r3] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08118544: .4byte gUnknown_083FA42C -_08118548: .4byte gSharedMem -_0811854C: .4byte gSpriteTemplate_83FA434 -_08118550: .4byte gSprites - thumb_func_end sub_81184D8 - - thumb_func_start sub_8118554 -sub_8118554: @ 8118554 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - ldr r1, _08118574 @ =gOamMatrices - lsls r0, 3 - adds r0, r1 - ldr r2, _08118578 @ =gSharedMem + 0x19000 - ldrh r1, [r2, 0x2C] - strh r1, [r0, 0x6] - ldrh r1, [r2, 0x2C] - strh r1, [r0] - ldrh r1, [r2, 0x2E] - strh r1, [r0, 0x2] - ldrh r1, [r2, 0x30] - strh r1, [r0, 0x4] - bx lr - .align 2, 0 -_08118574: .4byte gOamMatrices -_08118578: .4byte gSharedMem + 0x19000 - thumb_func_end sub_8118554 - - thumb_func_start sub_811857C -sub_811857C: @ 811857C - push {r4-r6,lr} - movs r4, 0 - ldr r6, _081185DC @ =gSharedMem + 0x1903C - ldr r5, _081185E0 @ =gSprites -_08118584: - movs r3, 0x39 - subs r3, r4 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _081185E4 @ =gSpriteTemplate_83FA40C - movs r1, 0x74 - movs r2, 0x50 - bl CreateSprite - adds r3, r4, r6 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _081185CA - ldrb r1, [r3] - 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, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_081185CA: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x5 - bls _08118584 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081185DC: .4byte gSharedMem + 0x1903C -_081185E0: .4byte gSprites -_081185E4: .4byte gSpriteTemplate_83FA40C - thumb_func_end sub_811857C - - thumb_func_start sub_81185E8 -sub_81185E8: @ 81185E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08118660 @ =gSharedMem + 0x19000 - adds r0, 0x3C - ldrb r5, [r0] - movs r6, 0 - ldr r7, _08118664 @ =gSprites - movs r0, 0x1C - adds r0, r7 - mov r10, r0 - movs r1, 0x2E - adds r1, r7 - mov r9, r1 - mov r8, r6 -_0811860A: - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r0, r4, r7 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r3] - mov r1, r10 - adds r2, r4, r1 - ldr r1, _08118668 @ =SpriteCallbackDummy - str r1, [r2] - movs r1, 0 - bl StartSpriteAnim - movs r1, 0 - adds r2, r5, 0x1 - adds r3, r6, 0x1 -_08118632: - lsls r0, r1, 1 - adds r0, r4 - add r0, r9 - mov r5, r8 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _08118632 - lsls r0, r2, 24 - lsrs r5, r0, 24 - lsls r0, r3, 24 - lsrs r6, r0, 24 - cmp r6, 0x5 - bls _0811860A - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08118660: .4byte gSharedMem + 0x19000 -_08118664: .4byte gSprites -_08118668: .4byte SpriteCallbackDummy - thumb_func_end sub_81185E8 - - thumb_func_start sub_811866C -sub_811866C: @ 811866C - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _0811869C @ =gSharedMem + 0x19000 - ldrh r4, [r0, 0x24] - movs r2, 0x24 - ldrsh r1, [r0, r2] - ldrh r2, [r3, 0x34] - movs r5, 0x34 - ldrsh r0, [r3, r5] - cmp r1, r0 - ble _081186A8 - movs r1, 0xB4 - lsls r1, 1 - adds r0, r2, r1 - subs r2, r0, r4 - strh r2, [r3, 0x3A] - lsls r1, r2, 16 - ldr r0, _081186A0 @ =0x01670000 - cmp r1, r0 - ble _081186AC - ldr r5, _081186A4 @ =0xfffffe98 - adds r0, r2, r5 - b _081186AA - .align 2, 0 -_0811869C: .4byte gSharedMem + 0x19000 -_081186A0: .4byte 0x01670000 -_081186A4: .4byte 0xfffffe98 -_081186A8: - subs r0, r2, r4 -_081186AA: - strh r0, [r3, 0x3A] -_081186AC: - movs r1, 0x3A - ldrsh r0, [r3, r1] - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_811866C - - thumb_func_start sub_81186B8 -sub_81186B8: @ 81186B8 - push {r4,lr} - bl sub_811866C - ldr r4, _081186E0 @ =gSharedMem + 0x19000 - lsls r0, 16 - asrs r0, 16 - bl __floatsisf - ldr r1, _081186E4 @ =0x41f00000 - bl __divsf3 - bl __fixunssfsi - adds r4, 0x7E - strb r0, [r4] - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081186E0: .4byte gSharedMem + 0x19000 -_081186E4: .4byte 0x41f00000 - thumb_func_end sub_81186B8 - - thumb_func_start sub_81186E8 -sub_81186E8: @ 81186E8 - push {r4,lr} - adds r4, r0, 0 - bl sub_811866C - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1E - bl __modsi3 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0xE - bne _08118708 - movs r0, 0 - strh r0, [r4, 0x32] - b _0811871E -_08118708: - cmp r1, 0xD - bgt _08118710 - movs r0, 0xE - b _08118712 -_08118710: - movs r0, 0x2B -_08118712: - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 -_0811871E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81186E8 - - thumb_func_start sub_8118724 -sub_8118724: @ 8118724 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r5, _08118770 @ =gSharedMem + 0x19000 - adds r4, r5, 0 - adds r4, 0x8C - adds r1, r5, 0 - adds r1, 0x90 - ldr r0, [r4] - ldr r1, [r1] - bl __addsf3 - adds r1, r0, 0 - str r1, [r4] - movs r0, 0x88 - adds r0, r5 - mov r8, r0 - ldr r0, [r0] - bl __addsf3 - adds r4, r0, 0 - mov r1, r8 - str r4, [r1] - ldr r7, _08118774 @ =0x43b40000 - adds r1, r7, 0 - bl __gesf2 - cmp r0, 0 - blt _08118778 - adds r0, r4, 0 - adds r1, r7, 0 - bl __subsf3 - mov r2, r8 - str r0, [r2] - b _08118790 - .align 2, 0 -_08118770: .4byte gSharedMem + 0x19000 -_08118774: .4byte 0x43b40000 -_08118778: - ldr r1, _08118824 @ =0x00000000 - adds r0, r4, 0 - bl __ltsf2 - cmp r0, 0 - bge _08118790 - adds r0, r4, 0 - adds r1, r7, 0 - bl __addsf3 - mov r1, r8 - str r0, [r1] -_08118790: - adds r0, r5, 0 - adds r0, 0x88 - ldr r0, [r0] - bl __fixsfsi - strh r0, [r6, 0x34] - adds r4, r5, 0 - adds r4, 0x98 - adds r1, r5, 0 - adds r1, 0x9C - ldr r0, [r4] - ldr r1, [r1] - bl __addsf3 - adds r1, r0, 0 - str r1, [r4] - subs r4, 0x4 - ldr r0, [r4] - bl __addsf3 - str r0, [r4] - bl __fixsfsi - strh r0, [r6, 0x36] - ldrh r0, [r6, 0x34] - bl Sin2 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r0, [r6, 0x34] - bl Cos2 - lsls r4, 16 - asrs r4, 16 - movs r2, 0x36 - ldrsh r1, [r6, r2] - muls r1, r4 - asrs r1, 12 - strh r1, [r6, 0x24] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - movs r2, 0x36 - ldrsh r1, [r6, r2] - muls r0, r1 - asrs r0, 12 - strh r0, [r6, 0x26] - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08118818 - ldr r0, _08118828 @ =gMPlay_SE1 - ldr r4, _0811882C @ =0x0000ffff - ldrh r2, [r6, 0x24] - lsls r2, 24 - asrs r2, 24 - adds r1, r4, 0 - bl m4aMPlayPanpotControl - ldr r0, _08118830 @ =gMPlay_SE2 - ldrh r2, [r6, 0x24] - lsls r2, 24 - asrs r2, 24 - adds r1, r4, 0 - bl m4aMPlayPanpotControl -_08118818: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08118824: .4byte 0x00000000 -_08118828: .4byte gMPlay_SE1 -_0811882C: .4byte 0x0000ffff -_08118830: .4byte gMPlay_SE2 - thumb_func_end sub_8118724 - - thumb_func_start sub_8118834 -sub_8118834: @ 8118834 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r1, _0811888C @ =gSharedMem + 0x19000 - ldrh r0, [r5, 0x3A] - ldrh r1, [r1, 0x24] - adds r2, r0, r1 - strh r2, [r5, 0x34] - lsls r1, r2, 16 - ldr r0, _08118890 @ =0x01670000 - cmp r1, r0 - ble _08118850 - ldr r1, _08118894 @ =0xfffffe98 - adds r0, r2, r1 - strh r0, [r5, 0x34] -_08118850: - ldrh r0, [r5, 0x34] - bl Sin2 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrh r0, [r5, 0x34] - bl Cos2 - lsls r4, 16 - asrs r4, 16 - movs r2, 0x36 - ldrsh r1, [r5, r2] - muls r1, r4 - asrs r1, 12 - strh r1, [r5, 0x24] - lsls r0, 16 - asrs r0, 16 - negs r0, r0 - movs r2, 0x36 - ldrsh r1, [r5, r2] - muls r0, r1 - ldr r1, _08118898 @ =gSpriteCoordOffsetY - asrs r0, 12 - ldrh r1, [r1] - adds r0, r1 - strh r0, [r5, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0811888C: .4byte gSharedMem + 0x19000 -_08118890: .4byte 0x01670000 -_08118894: .4byte 0xfffffe98 -_08118898: .4byte gSpriteCoordOffsetY - thumb_func_end sub_8118834 - - thumb_func_start sub_811889C -sub_811889C: @ 811889C - push {r4-r6,lr} - adds r5, r0, 0 - bl sub_8118724 - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x36] - adds r0, 0x84 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xD4 - bls _081188C2 - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - b _081188CE -_081188C2: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 -_081188CE: - strb r0, [r2] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x1D - ble _0811898E - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08118908 - ldr r6, _08118900 @ =gSharedMem + 0x19000 - adds r4, r6, 0 - adds r4, 0x94 - adds r0, r6, 0 - adds r0, 0xA0 - ldr r0, [r0] - ldr r1, _08118904 @ =0x40000000 - bl __subsf3 - adds r1, r0, 0 - ldr r0, [r4] - bl __lesf2 - cmp r0, 0 - bgt _0811898E - b _08118926 - .align 2, 0 -_08118900: .4byte gSharedMem + 0x19000 -_08118904: .4byte 0x40000000 -_08118908: - ldr r6, _08118994 @ =gSharedMem + 0x19000 - adds r4, r6, 0 - adds r4, 0x94 - adds r0, r6, 0 - adds r0, 0xA0 - ldr r0, [r0] - ldr r1, _08118998 @ =0x40000000 - bl __subsf3 - adds r1, r0, 0 - ldr r0, [r4] - bl __gesf2 - cmp r0, 0 - blt _0811898E -_08118926: - adds r1, r6, 0 - adds r1, 0x7D - movs r0, 0xFF - strb r0, [r1] - ldrb r1, [r6, 0x3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r6, 0x3] - adds r0, r5, 0 - adds r0, 0x2B - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_81186B8 - movs r0, 0x1E - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_811866C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x1E - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0xF - strh r1, [r5, 0x3A] - ldr r0, _0811899C @ =sub_8118834 - str r0, [r5, 0x1C] - movs r0, 0x47 - bl m4aSongNumStartOrChange - adds r2, r6, 0 - adds r2, 0x9C - adds r1, r6, 0 - adds r1, 0x98 - ldr r0, _081189A0 @ =0x00000000 - str r0, [r1] - str r0, [r2] - subs r1, 0xC - ldr r0, _081189A4 @ =0xbf800000 - str r0, [r1] -_0811898E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08118994: .4byte gSharedMem + 0x19000 -_08118998: .4byte 0x40000000 -_0811899C: .4byte sub_8118834 -_081189A0: .4byte 0x00000000 -_081189A4: .4byte 0xbf800000 - thumb_func_end sub_811889C - - thumb_func_start sub_81189A8 -sub_81189A8: @ 81189A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - bl sub_8118724 - movs r1, 0x34 - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _081189C6 - cmp r0, 0xB4 - beq _08118A2C - b _08118B0C -_081189C6: - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0x1 - bne _081189D0 - b _08118B0C -_081189D0: - movs r1, 0x3C - ldrsh r0, [r7, r1] - bl __floatsisf - mov r8, r0 - ldr r0, _08118A24 @ =gUnknown_083F8DF4 - mov r9, r0 - ldr r1, _08118A28 @ =gSharedMem + 0x19000 - mov r10, r1 - ldrb r4, [r1, 0x4] - lsls r4, 30 - lsrs r0, r4, 25 - add r0, r9 - ldrb r0, [r0, 0x1] - bl __floatsisf - adds r1, r0, 0 - mov r0, r8 - bl __mulsf3 - adds r6, r0, 0 - lsrs r0, r4, 25 - add r0, r9 - ldrb r0, [r0, 0x2] - subs r0, 0x1 - bl __floatsisf - adds r1, r0, 0 - adds r0, r6, 0 - bl __addsf3 - adds r5, r0, 0 - lsrs r4, 25 - add r4, r9 - ldrh r0, [r4, 0xC] - bl __floatsisf - adds r1, r0, 0 - mov r0, r8 - bl __divsf3 - b _08118A8A - .align 2, 0 -_08118A24: .4byte gUnknown_083F8DF4 -_08118A28: .4byte gSharedMem + 0x19000 -_08118A2C: - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0 - beq _08118B0C - movs r1, 0x3C - ldrsh r0, [r7, r1] - bl __floatsisf - mov r8, r0 - ldr r0, _08118B1C @ =gUnknown_083F8DF4 - mov r9, r0 - ldr r1, _08118B20 @ =gSharedMem + 0x19000 - mov r10, r1 - ldrb r4, [r1, 0x4] - lsls r4, 30 - lsrs r0, r4, 25 - add r0, r9 - ldrb r0, [r0, 0x1] - bl __floatsisf - adds r1, r0, 0 - mov r0, r8 - bl __mulsf3 - adds r6, r0, 0 - lsrs r0, r4, 25 - add r0, r9 - ldrb r0, [r0, 0x2] - subs r0, 0x1 - bl __floatsisf - adds r1, r0, 0 - adds r0, r6, 0 - bl __addsf3 - adds r5, r0, 0 - lsrs r4, 25 - add r4, r9 - ldrh r0, [r4, 0xC] - bl __floatsisf - adds r1, r0, 0 - mov r0, r8 - bl __divsf3 - bl __negsf2 -_08118A8A: - adds r2, r0, 0 - mov r6, r10 - adds r1, r6, 0 - adds r1, 0xA0 - adds r0, r6, 0 - adds r0, 0x94 - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0 - adds r0, 0x98 - str r2, [r0] - movs r0, 0x9C - adds r0, r6 - mov r8, r0 - adds r0, r2, 0 - adds r1, r2, 0 - bl __addsf3 - adds r1, r5, 0 - bl __divsf3 - adds r4, r0, 0 - adds r0, r5, 0 - adds r1, r5, 0 - bl __mulsf3 - adds r1, r0, 0 - ldr r0, _08118B24 @ =0x40000000 - bl __divsf3 - adds r1, r0, 0 - adds r0, r4, 0 - bl __addsf3 - bl __negsf2 - mov r1, r8 - str r0, [r1] - adds r1, r6, 0 - adds r1, 0x8C - ldr r0, _08118B28 @ =0x00000000 - str r0, [r1] - adds r2, r7, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r7, 0 - adds r0, 0x2A - movs r2, 0 - strb r2, [r0] - adds r3, r7, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - ldr r0, _08118B2C @ =sub_811889C - str r0, [r7, 0x1C] - strh r2, [r7, 0x32] -_08118B0C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08118B1C: .4byte gUnknown_083F8DF4 -_08118B20: .4byte gSharedMem + 0x19000 -_08118B24: .4byte 0x40000000 -_08118B28: .4byte 0x00000000 -_08118B2C: .4byte sub_811889C - thumb_func_end sub_81189A8 - - thumb_func_start sub_8118B30 -sub_8118B30: @ 8118B30 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x32 - ldrsh r0, [r5, r1] - bl __floatsisf - adds r4, r0, 0 - ldr r1, _08118BCC @ =0x3d4ccccd - bl __mulsf3 - adds r1, r4, 0 - bl __mulsf3 - bl __fixsfsi - adds r1, r0, 0 - subs r1, 0x2D - strh r1, [r5, 0x26] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1D - ble _08118BC6 - lsls r0, r1, 16 - cmp r0, 0 - blt _08118BC6 - ldr r4, _08118BD0 @ =gSharedMem + 0x19000 - adds r1, r4, 0 - adds r1, 0x7D - movs r0, 0xFF - strb r0, [r1] - ldrb r1, [r4, 0x3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4, 0x3] - adds r0, r5, 0 - adds r0, 0x2B - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_81186B8 - movs r0, 0x1E - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_811866C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x1E - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0xF - strh r1, [r5, 0x3A] - ldr r0, _08118BD4 @ =sub_8118834 - str r0, [r5, 0x1C] - movs r0, 0x47 - bl m4aSongNumStartOrChange - ldrb r0, [r4, 0x3] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x3] -_08118BC6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08118BCC: .4byte 0x3d4ccccd -_08118BD0: .4byte gSharedMem + 0x19000 -_08118BD4: .4byte sub_8118834 - thumb_func_end sub_8118B30 - - thumb_func_start sub_8118BD8 -sub_8118BD8: @ 8118BD8 - push {r4,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x32] - adds r1, r0, 0x1 - strh r1, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2C - bgt _08118C1C - ldrh r4, [r3, 0x26] - subs r0, r4, 0x1 - strh r0, [r3, 0x26] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x2D - bne _08118CA2 - ldr r2, _08118C14 @ =gSprites - ldr r0, _08118C18 @ =gSharedMem + 0x19000 - adds r0, 0x73 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _08118CA2 - strh r4, [r3, 0x26] - b _08118CA2 - .align 2, 0 -_08118C14: .4byte gSprites -_08118C18: .4byte gSharedMem + 0x19000 -_08118C1C: - lsls r0, r1, 16 - asrs r0, 16 - movs r2, 0x3C - ldrsh r1, [r3, r2] - cmp r0, r1 - bge _08118C68 - ldr r2, _08118C58 @ =gSprites - ldr r0, _08118C5C @ =gSharedMem + 0x19000 - adds r0, 0x73 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x2C - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bne _08118CA2 - adds r0, r1, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _08118C60 - ldrh r0, [r3, 0x26] - adds r0, 0x1 - strh r0, [r3, 0x26] - b _08118CA2 - .align 2, 0 -_08118C58: .4byte gSprites -_08118C5C: .4byte gSharedMem + 0x19000 -_08118C60: - ldrh r0, [r3, 0x26] - subs r0, 0x1 - strh r0, [r3, 0x26] - b _08118CA2 -_08118C68: - adds r2, r3, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r1, r3, 0 - adds r1, 0x2A - movs r2, 0 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x3F - adds r0, r3 - mov r12, r0 - ldrb r0, [r0] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - mov r1, r12 - strb r0, [r1] - strh r2, [r3, 0x32] - ldr r0, _08118CA8 @ =sub_8118B30 - str r0, [r3, 0x1C] - movs r0, 0x3D - bl m4aSongNumStart -_08118CA2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08118CA8: .4byte sub_8118B30 - thumb_func_end sub_8118BD8 - - thumb_func_start sub_8118CAC -sub_8118CAC: @ 8118CAC - push {r4,lr} - adds r4, r0, 0 - bl sub_8118724 - movs r0, 0x34 - ldrsh r1, [r4, r0] - cmp r1, 0x5A - beq _08118CC6 - movs r0, 0x87 - lsls r0, 1 - cmp r1, r0 - beq _08118CD0 - b _08118CE0 -_08118CC6: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08118CE0 - b _08118CD8 -_08118CD0: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08118CE0 -_08118CD8: - ldr r0, _08118CE8 @ =sub_8118BD8 - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x32] -_08118CE0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08118CE8: .4byte sub_8118BD8 - thumb_func_end sub_8118CAC - - thumb_func_start sub_8118CEC -sub_8118CEC: @ 8118CEC - push {r4,lr} - adds r4, r0, 0 - bl sub_8118724 - ldr r0, _08118D10 @ =gSharedMem + 0x19000 - ldrb r0, [r0, 0x3] - lsls r0, 27 - lsrs r0, 27 - cmp r0, 0 - beq _08118D04 - cmp r0, 0x1 - beq _08118D18 -_08118D04: - adds r0, r4, 0 - bl sub_8119224 - ldr r0, _08118D14 @ =sub_81189A8 - b _08118D20 - .align 2, 0 -_08118D10: .4byte gSharedMem + 0x19000 -_08118D14: .4byte sub_81189A8 -_08118D18: - adds r0, r4, 0 - bl sub_81193D4 - ldr r0, _08118D28 @ =sub_8118CAC -_08118D20: - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08118D28: .4byte sub_8118CAC - thumb_func_end sub_8118CEC - - thumb_func_start sub_8118D2C -sub_8118D2C: @ 8118D2C - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8118724 - ldrh r0, [r5, 0x32] - subs r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bne _08118D50 - ldr r4, _08118DB8 @ =gSharedMem + 0x19000 - adds r4, 0x98 - ldr r0, [r4] - ldr r1, _08118DBC @ =0xbf800000 - bl __mulsf3 - str r0, [r4] -_08118D50: - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08118DDC - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _08118DC4 - ldr r1, _08118DB8 @ =gSharedMem + 0x19000 - adds r2, r1, 0 - adds r2, 0x7D - movs r0, 0xFF - strb r0, [r2] - ldrb r2, [r1, 0x3] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1, 0x3] - adds r0, r5, 0 - adds r0, 0x2B - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_81186B8 - movs r0, 0x1E - strh r0, [r5, 0x36] - adds r0, r5, 0 - bl sub_811866C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x1E - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0xF - strh r1, [r5, 0x3A] - ldr r0, _08118DC0 @ =sub_8118834 - str r0, [r5, 0x1C] - movs r0, 0x47 - bl m4aSongNumStartOrChange - b _08118DDC - .align 2, 0 -_08118DB8: .4byte gSharedMem + 0x19000 -_08118DBC: .4byte 0xbf800000 -_08118DC0: .4byte sub_8118834 -_08118DC4: - adds r0, r5, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x38 - bl m4aSongNumStart - adds r0, r5, 0 - bl sub_811952C -_08118DDC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8118D2C - - thumb_func_start sub_8118DE4 -sub_8118DE4: @ 8118DE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - bl sub_8118724 - movs r0, 0 - strh r0, [r7, 0x32] - adds r0, r7, 0 - bl sub_81186B8 - ldr r1, _08118E70 @ =gUnknown_083F8D90 - ldr r6, _08118E74 @ =gSharedMem + 0x19000 - movs r0, 0x7E - adds r0, r6 - mov r8, r0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - ldr r1, [r6, 0x8] - ands r0, r1 - cmp r0, 0 - bne _08118E7C - adds r1, r6, 0 - adds r1, 0x7D - movs r0, 0xFF - strb r0, [r1] - ldrb r1, [r6, 0x3] - movs r0, 0x7F - ands r0, r1 - strb r0, [r6, 0x3] - adds r0, r7, 0 - adds r0, 0x2B - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r7, 0 - bl StartSpriteAnim - adds r0, r7, 0 - bl sub_81186B8 - movs r0, 0x1E - strh r0, [r7, 0x36] - adds r0, r7, 0 - bl sub_811866C - movs r1, 0x3A - ldrsh r0, [r7, r1] - movs r1, 0x1E - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0xF - strh r1, [r7, 0x3A] - ldr r0, _08118E78 @ =sub_8118834 - str r0, [r7, 0x1C] - movs r0, 0x47 - bl m4aSongNumStartOrChange - b _08118F74 - .align 2, 0 -_08118E70: .4byte gUnknown_083F8D90 -_08118E74: .4byte gSharedMem + 0x19000 -_08118E78: .4byte sub_8118834 -_08118E7C: - movs r0, 0x38 - bl m4aSongNumStart - bl Random - movs r2, 0x1 - mov r9, r2 - mov r1, r9 - ands r1, r0 - mov r9, r1 - cmp r1, 0 - beq _08118EC0 - adds r1, r6, 0 - adds r1, 0x8C - ldr r0, _08118EB8 @ =0x00000000 - str r0, [r1] - mov r2, r8 - ldrb r0, [r2] - adds r0, 0x1 - movs r1, 0xC - bl __modsi3 - lsls r1, r0, 24 - lsrs r2, r1, 24 - adds r1, r6, 0 - adds r1, 0x7F - strb r0, [r1] - ldr r5, _08118EBC @ =gUnknown_083F8DF4 - b _08118EF4 - .align 2, 0 -_08118EB8: .4byte 0x00000000 -_08118EBC: .4byte gUnknown_083F8DF4 -_08118EC0: - adds r4, r6, 0 - adds r4, 0x8C - ldr r5, _08118F1C @ =gUnknown_083F8DF4 - ldrb r0, [r6, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - adds r0, r1, 0 - bl __addsf3 - str r0, [r4] - mov r0, r8 - ldrb r4, [r0] - adds r0, r4, 0 - adds r0, 0xB - movs r1, 0xC - bl __modsi3 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r6, 0 - adds r0, 0x7F - strb r4, [r0] -_08118EF4: - ldr r0, _08118F20 @ =gUnknown_083F8D90 - lsls r1, r2, 3 - adds r0, 0x4 - adds r1, r0 - ldr r2, _08118F24 @ =gSharedMem + 0x19000 - ldr r1, [r1] - ldr r0, [r2, 0x8] - ands r1, r0 - cmp r1, 0 - beq _08118F28 - movs r0, 0x1 - strh r0, [r7, 0x2E] - ldrb r0, [r2, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r5 - ldrb r0, [r0, 0x2] - strh r0, [r7, 0x32] - b _08118F64 - .align 2, 0 -_08118F1C: .4byte gUnknown_083F8DF4 -_08118F20: .4byte gUnknown_083F8D90 -_08118F24: .4byte gSharedMem + 0x19000 -_08118F28: - strh r1, [r7, 0x2E] - ldrb r1, [r2, 0x4] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08118F40 - lsls r0, r1, 30 - lsrs r0, 25 - adds r0, r5 - ldrb r0, [r0, 0x1] - strh r0, [r7, 0x32] - b _08118F64 -_08118F40: - lsls r0, r1, 30 - lsrs r0, 25 - adds r0, r5 - ldrb r0, [r0, 0x2] - strh r0, [r7, 0x32] - mov r1, r9 - cmp r1, 0 - beq _08118F5C - adds r1, r2, 0 - adds r1, 0x8C - ldr r0, _08118F58 @ =0x3f000000 - b _08118F62 - .align 2, 0 -_08118F58: .4byte 0x3f000000 -_08118F5C: - adds r1, r2, 0 - adds r1, 0x8C - ldr r0, _08118F80 @ =0xbfc00000 -_08118F62: - str r0, [r1] -_08118F64: - adds r1, r2, 0 - adds r1, 0x98 - ldr r0, _08118F84 @ =0x3dae147b - str r0, [r1] - ldr r0, _08118F88 @ =sub_8118D2C - str r0, [r7, 0x1C] - movs r0, 0x5 - strh r0, [r7, 0x30] -_08118F74: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08118F80: .4byte 0xbfc00000 -_08118F84: .4byte 0x3dae147b -_08118F88: .4byte sub_8118D2C - thumb_func_end sub_8118DE4 - - thumb_func_start sub_8118F8C -sub_8118F8C: @ 8118F8C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - bl sub_8118724 - ldr r5, _08119018 @ =gSharedMem + 0x19000 - movs r0, 0x8C - adds r0, r5 - mov r8, r0 - ldr r0, [r0] - ldr r1, _0811901C @ =0x3f000000 - bl __gtsf2 - cmp r0, 0 - bgt _0811906E - adds r0, r6, 0 - bl sub_81186B8 - adds r0, r6, 0 - bl sub_81186E8 - lsls r0, 16 - cmp r0, 0 - bne _08119030 - adds r1, r5, 0 - adds r1, 0x90 - ldr r0, _08119020 @ =0x00000000 - str r0, [r1] - ldr r1, _08119024 @ =gUnknown_083F8DF4 - mov r9, r1 - ldrb r0, [r5, 0x4] - lsls r7, r0, 30 - lsrs r0, r7, 25 - add r0, r9 - movs r4, 0x3 - ldrsb r4, [r0, r4] - adds r0, r4, 0 - bl __floatsisf - adds r5, r0, 0 - cmp r4, 0 - bge _08118FEC - ldr r1, _08119028 @ =0x43800000 - bl __addsf3 - adds r5, r0, 0 -_08118FEC: - lsrs r0, r7, 25 - add r0, r9 - ldrb r0, [r0, 0x4] - adds r0, 0x1 - bl __floatsisf - adds r1, r0, 0 - adds r0, r5, 0 - bl __divsf3 - adds r1, r0, 0 - mov r2, r8 - ldr r0, [r2] - bl __subsf3 - mov r1, r8 - str r0, [r1] - movs r0, 0x4 - strh r0, [r6, 0x30] - ldr r0, _0811902C @ =sub_8118DE4 - str r0, [r6, 0x1C] - b _0811906E - .align 2, 0 -_08119018: .4byte gSharedMem + 0x19000 -_0811901C: .4byte 0x3f000000 -_08119020: .4byte 0x00000000 -_08119024: .4byte gUnknown_083F8DF4 -_08119028: .4byte 0x43800000 -_0811902C: .4byte sub_8118DE4 -_08119030: - adds r6, r5, 0 - adds r6, 0x90 - ldr r0, [r6] - ldr r4, _0811907C @ =0x00000000 - adds r1, r4, 0 - bl __nesf2 - cmp r0, 0 - beq _0811906E - mov r2, r8 - ldr r0, [r2] - adds r1, r4, 0 - bl __ltsf2 - cmp r0, 0 - bge _0811906E - str r4, [r6] - mov r0, r8 - str r4, [r0] - adds r4, r5, 0 - adds r4, 0x98 - ldr r0, [r4] - bl __extendsfdf2 - ldr r2, _08119080 @ =0x3ff33333 - ldr r3, _08119084 @ =0x33333333 - bl __divdf3 - bl __truncdfsf2 - str r0, [r4] -_0811906E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811907C: .4byte 0x00000000 -_08119080: .4byte 0x3ff33333 -_08119084: .4byte 0x33333333 - thumb_func_end sub_8118F8C - - thumb_func_start sub_8119088 -sub_8119088: @ 8119088 - push {r4-r7,lr} - adds r6, r0, 0 - bl sub_8118724 - ldr r5, _08119120 @ =gSharedMem + 0x19000 - adds r0, r5, 0 - adds r0, 0x94 - ldr r0, [r0] - ldr r1, _08119124 @ =0x42200000 - bl __gtsf2 - cmp r0, 0 - bgt _0811911A - adds r7, r5, 0 - adds r7, 0x98 - adds r0, r5, 0 - adds r0, 0x86 - movs r1, 0 - ldrsh r4, [r0, r1] - adds r0, r4, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r4, 0 - bge _081190C2 - ldr r1, _08119128 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_081190C2: - ldr r0, _0811912C @ =0x40800000 - adds r1, r2, 0 - bl __divsf3 - bl __negsf2 - str r0, [r7] - adds r7, r5, 0 - adds r7, 0x90 - adds r5, 0x8C - adds r0, r4, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r4, 0 - bge _081190EA - ldr r1, _08119128 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_081190EA: - ldr r0, [r5] - adds r1, r2, 0 - bl __divsf3 - bl __negsf2 - str r0, [r7] - adds r1, r6, 0 - adds r1, 0x2A - movs r0, 0x2 - strb r0, [r1] - adds r2, r6, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r2] - movs r0, 0x3 - strh r0, [r6, 0x30] - ldr r0, _08119130 @ =sub_8118F8C - str r0, [r6, 0x1C] -_0811911A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08119120: .4byte gSharedMem + 0x19000 -_08119124: .4byte 0x42200000 -_08119128: .4byte 0x47800000 -_0811912C: .4byte 0x40800000 -_08119130: .4byte sub_8118F8C - thumb_func_end sub_8119088 - - thumb_func_start sub_8119134 -sub_8119134: @ 8119134 - push {r4-r7,lr} - adds r6, r0, 0 - bl sub_8118724 - ldr r4, _081191DC @ =gSharedMem + 0x19000 - adds r0, r4, 0 - adds r0, 0x94 - ldr r0, [r0] - ldr r1, _081191E0 @ =0x42700000 - bl __gtsf2 - cmp r0, 0 - bgt _081191D4 - movs r0, 0x5D - bl m4aSongNumStartOrChange - adds r7, r4, 0 - adds r7, 0x98 - adds r0, r4, 0 - adds r0, 0x84 - movs r1, 0 - ldrsh r5, [r0, r1] - adds r0, r5, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r5, 0 - bge _08119174 - ldr r1, _081191E4 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_08119174: - ldr r0, _081191E8 @ =0x41a00000 - adds r1, r2, 0 - bl __divsf3 - bl __negsf2 - str r0, [r7] - adds r7, r4, 0 - adds r7, 0x90 - adds r0, r4, 0 - adds r0, 0x8C - ldr r1, [r0] - ldr r0, _081191EC @ =0x3f800000 - bl __subsf3 - adds r4, r0, 0 - adds r0, r5, 0 - bl __floatsisf - adds r2, r0, 0 - cmp r5, 0 - bge _081191A8 - ldr r1, _081191E4 @ =0x47800000 - bl __addsf3 - adds r2, r0, 0 -_081191A8: - adds r0, r4, 0 - adds r1, r2, 0 - bl __divsf3 - str r0, [r7] - adds r1, r6, 0 - adds r1, 0x2A - movs r0, 0x1 - strb r0, [r1] - adds r2, r6, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r2] - movs r0, 0x2 - strh r0, [r6, 0x30] - ldr r0, _081191F0 @ =sub_8119088 - str r0, [r6, 0x1C] -_081191D4: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081191DC: .4byte gSharedMem + 0x19000 -_081191E0: .4byte 0x42700000 -_081191E4: .4byte 0x47800000 -_081191E8: .4byte 0x41a00000 -_081191EC: .4byte 0x3f800000 -_081191F0: .4byte sub_8119088 - thumb_func_end sub_8119134 - - thumb_func_start sub_81191F4 -sub_81191F4: @ 81191F4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - movs r0, 0x1 - strh r0, [r4, 0x30] - strh r1, [r4, 0x32] - adds r0, r4, 0 - bl sub_8118724 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08119220 @ =sub_8119134 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119220: .4byte sub_8119134 - thumb_func_end sub_81191F4 - - thumb_func_start sub_8119224 -sub_8119224: @ 8119224 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r7, r0, 0 - ldr r1, _081193B8 @ =gUnknown_083FA60E - mov r0, sp - movs r2, 0x8 - bl memcpy - ldrh r0, [r7, 0x3C] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r5, _081193BC @ =gSharedMem + 0x19000 - ldr r0, _081193C0 @ =gSpriteTemplate_83FA50C - movs r2, 0xC - negs r2, r2 - movs r1, 0x24 - movs r3, 0x32 - bl CreateSprite - adds r1, r5, 0 - adds r1, 0x73 - strb r0, [r1] - ldr r4, _081193C4 @ =gSpriteTemplate_83FA5C0 - movs r0, 0x2E - ldrsh r2, [r7, r0] - lsls r2, 2 - mov r1, sp - adds r0, r1, r2 - movs r3, 0 - ldrsh r1, [r0, r3] - mov r0, sp - adds r0, 0x2 - adds r0, r2 - movs r3, 0 - ldrsh r2, [r0, r3] - adds r0, r4, 0 - movs r3, 0x3B - bl CreateSprite - adds r1, r5, 0 - adds r1, 0x74 - strb r0, [r1] - adds r4, 0x18 - adds r0, r4, 0 - movs r1, 0x24 - movs r2, 0x8C - movs r3, 0x33 - bl CreateSprite - adds r1, r5, 0 - adds r1, 0x75 - strb r0, [r1] - ldr r3, _081193C8 @ =gSprites - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r6, 0 - adds r4, r3, 0 - mov r12, r5 - ldr r0, _081193CC @ =gUnknown_083F8DF4 - mov r8, r0 - mov r10, r12 -_081192BE: - mov r1, r12 - adds r3, r1, r6 - adds r3, 0x73 - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r3] - 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] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r12 - adds r1, 0x73 - ldrb r1, [r1] - strh r1, [r0, 0x36] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r5, r12 - adds r5, 0x74 - ldrb r1, [r5] - strh r1, [r0, 0x38] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r12 - adds r1, 0x75 - ldrb r1, [r1] - strh r1, [r0, 0x3A] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r9 - strh r1, [r0, 0x32] - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - movs r0, 0x3C - ldrsh r3, [r7, r0] - mov r0, r12 - ldrb r1, [r0, 0x4] - lsls r1, 30 - lsrs r0, r1, 25 - add r0, r8 - ldrb r0, [r0, 0x1] - muls r3, r0 - lsrs r1, 25 - add r1, r8 - ldrb r0, [r1, 0x2] - ldr r1, _081193D0 @ =0x0000ffff - adds r0, r1 - adds r3, r0 - strh r3, [r2, 0x34] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _081193C8 @ =gSprites - cmp r6, 0x2 - bls _081192BE - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - mov r3, r10 - str r7, [r3, 0x38] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081193B8: .4byte gUnknown_083FA60E -_081193BC: .4byte gSharedMem + 0x19000 -_081193C0: .4byte gSpriteTemplate_83FA50C -_081193C4: .4byte gSpriteTemplate_83FA5C0 -_081193C8: .4byte gSprites -_081193CC: .4byte gUnknown_083F8DF4 -_081193D0: .4byte 0x0000ffff - thumb_func_end sub_8119224 - - thumb_func_start sub_81193D4 -sub_81193D4: @ 81193D4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - adds r7, r0, 0 - movs r0, 0 - mov r8, r0 - ldr r1, _08119514 @ =gUnknown_083FA616 - mov r0, sp - movs r2, 0x8 - bl memcpy - ldrh r0, [r7, 0x3C] - subs r0, 0x2 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldr r0, _08119518 @ =gSpriteTemplate_83FA524 - movs r1, 0x2E - ldrsh r2, [r7, r1] - lsls r2, 2 - mov r3, sp - adds r1, r3, r2 - movs r3, 0 - ldrsh r1, [r1, r3] - mov r4, sp - adds r4, 0x2 - adds r2, r4, r2 - movs r3, 0 - ldrsh r2, [r2, r3] - movs r3, 0x32 - bl CreateSprite - ldr r6, _0811951C @ =gSharedMem + 0x19000 - adds r1, r6, 0 - adds r1, 0x73 - strb r0, [r1] - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _08119520 @ =gSprites - adds r0, r5 - ldrh r1, [r7, 0x2E] - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - ldr r0, _08119524 @ =gSpriteTemplate_83FA5F0 - movs r1, 0x2E - ldrsh r2, [r7, r1] - lsls r2, 2 - mov r3, sp - adds r1, r3, r2 - movs r3, 0 - ldrsh r1, [r1, r3] - adds r4, r2 - movs r3, 0 - ldrsh r2, [r4, r3] - movs r3, 0x33 - bl CreateSprite - adds r4, r6, 0 - adds r4, 0x74 - strb r0, [r4] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - mov r0, r9 - lsls r2, r0, 16 - asrs r2, 16 - ldr r3, _08119528 @ =gUnknown_083F8DF4 - ldrb r1, [r6, 0x4] - lsls r1, 30 - lsrs r0, r1, 25 - adds r0, r3 - ldrb r0, [r0, 0x1] - muls r2, r0 - lsrs r1, 25 - adds r1, r3 - ldrh r0, [r1, 0x10] - adds r0, 0x2D - adds r2, r0 - strh r2, [r7, 0x3C] - adds r3, r6, 0 -_081194A2: - mov r1, r8 - adds r2, r6, r1 - adds r2, 0x73 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r1, r6, 0 - adds r1, 0x73 - ldrb r1, [r1] - strh r1, [r0, 0x36] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x38] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x3A] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r9 - strh r1, [r0, 0x32] - ldrb r0, [r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrh r0, [r7, 0x3C] - subs r0, 0x2D - strh r0, [r1, 0x34] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x1 - bls _081194A2 - str r7, [r3, 0x38] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08119514: .4byte gUnknown_083FA616 -_08119518: .4byte gSpriteTemplate_83FA524 -_0811951C: .4byte gSharedMem + 0x19000 -_08119520: .4byte gSprites -_08119524: .4byte gSpriteTemplate_83FA5F0 -_08119528: .4byte gUnknown_083F8DF4 - thumb_func_end sub_81193D4 - - thumb_func_start sub_811952C -sub_811952C: @ 811952C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r8, r0 - movs r0, 0 - mov r10, r0 - movs r1, 0x5 - mov r9, r1 - movs r2, 0 - str r2, [sp, 0xC] - mov r0, sp - movs r1, 0 - movs r2, 0xA - bl memset - bl Random - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - ldr r7, _08119610 @ =gSharedMem + 0x19000 - adds r0, r7, 0 - adds r0, 0x7D - movs r6, 0x1 - strb r6, [r0] - ldrb r4, [r7, 0x3] - movs r0, 0x20 - orrs r4, r0 - movs r0, 0x41 - negs r0, r0 - ands r4, r0 - strb r4, [r7, 0x3] - adds r1, r7, 0 - adds r1, 0x7E - movs r0, 0xFF - strb r0, [r1] - adds r5, r7, 0 - adds r5, 0x88 - mov r3, r8 - movs r1, 0x34 - ldrsh r0, [r3, r1] - bl __floatsisf - str r0, [r5] - adds r1, r7, 0 - adds r1, 0x98 - ldr r0, _08119614 @ =0x00000000 - str r0, [r1] - adds r3, r7, 0 - adds r3, 0x8C - ldr r2, _08119618 @ =gUnknown_083F8DF4 - ldrb r0, [r7, 0x4] - lsls r0, 30 - lsrs r1, r0, 25 - adds r2, 0x1C - adds r1, r2 - ldr r1, [r1] - str r1, [r3] - lsrs r0, 30 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 1 - adds r1, 0x21 - lsls r4, 27 - lsrs r4, 27 - subs r6, r4 - lsls r0, r6, 4 - subs r0, r6 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - mov r5, r10 - mov r3, r8 - movs r0, 0x34 - ldrsh r2, [r3, r0] -_081195C8: - cmp r1, r2 - bge _081195D4 - adds r0, r1, 0 - adds r0, 0x5A - cmp r2, r0 - ble _08119638 -_081195D4: - cmp r5, 0x3 - beq _0811961C - adds r0, r1, 0 - adds r0, 0x5A - lsls r0, 16 - lsrs r1, r0, 16 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _081195C8 -_081195EA: - ldr r0, _08119610 @ =gSharedMem + 0x19000 - ldrb r1, [r0, 0x3] - movs r0, 0x1F - ands r0, r1 - cmp r0, 0 - beq _08119664 - mov r1, r8 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08119658 - movs r0, 0x98 - lsls r0, 1 - movs r1, 0x3F - negs r1, r1 - bl PlayCry1 - b _08119670 - .align 2, 0 -_08119610: .4byte gSharedMem + 0x19000 -_08119614: .4byte 0x00000000 -_08119618: .4byte gUnknown_083F8DF4 -_0811961C: - movs r0, 0x1 - mov r3, r8 - strh r0, [r3, 0x2E] - ldr r2, _08119634 @ =gSharedMem + 0x19000 - ldrb r1, [r2, 0x3] - subs r0, 0x21 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x3] - b _081195EA - .align 2, 0 -_08119634: .4byte gSharedMem + 0x19000 -_08119638: - lsrs r0, r5, 1 - mov r1, r8 - strh r0, [r1, 0x2E] - ldr r3, _08119654 @ =gSharedMem + 0x19000 - movs r1, 0x1 - ands r1, r5 - ldrb r2, [r3, 0x3] - movs r0, 0x20 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x3] - b _081195EA - .align 2, 0 -_08119654: .4byte gSharedMem + 0x19000 -_08119658: - movs r0, 0x98 - lsls r0, 1 - movs r1, 0x3F - bl PlayCry1 - b _08119670 -_08119664: - movs r0, 0x99 - lsls r0, 1 - movs r1, 0x3F - negs r1, r1 - bl PlayCry1 -_08119670: - movs r5, 0x2 - ldr r4, _081196A0 @ =gSharedMem + 0x19000 - adds r0, r4, 0 - adds r0, 0x7F - ldrb r0, [r0] - adds r0, 0x2 - movs r1, 0xC - bl __modsi3 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r1, [r4, 0x3] - movs r0, 0x1F - ands r0, r1 - cmp r0, 0x1 - bne _081196A4 - ldrb r1, [r4, 0x4] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _081196A4 - mov r0, r9 - adds r0, 0x6 - b _081196A8 - .align 2, 0 -_081196A0: .4byte gSharedMem + 0x19000 -_081196A4: - mov r2, r9 - adds r0, r2, r5 -_081196A8: - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r5, r9 - bcs _0811970E - ldr r6, _08119734 @ =gSharedMem + 0x19000 - ldr r7, _08119738 @ =gUnknown_083F8C00 + 0xC -_081196B6: - lsls r0, r3, 3 - ldr r1, _0811973C @ =gUnknown_083F8D90 + 0x4 - adds r0, r1 - ldr r1, [r6, 0x8] - ldr r2, [r0] - ands r1, r2 - cmp r1, 0 - bne _081196F8 - mov r0, r10 - adds r1, r0, 0x1 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - add r0, sp - strb r5, [r0] - ldr r0, [sp, 0xC] - cmp r0, 0 - bne _081196F8 - ldrb r0, [r6, 0x1A] - lsls r0, 28 - lsrs r0, 28 - ldr r1, _08119740 @ =gSharedMem + 0x1901B - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _081196F8 - str r5, [sp, 0xC] -_081196F8: - adds r0, r3, 0x1 - movs r1, 0xC - bl __modsi3 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r9 - bcc _081196B6 -_0811970E: - ldrb r0, [r4, 0x3] - lsls r0, 27 - lsrs r0, 27 - adds r0, 0x1 - ldrb r1, [r4, 0x2] - ands r0, r1 - cmp r0, 0 - beq _08119756 - ldr r2, [sp, 0xC] - cmp r2, 0 - beq _08119744 - movs r0, 0xFF - ldr r3, [sp, 0x10] - ands r0, r3 - cmp r0, 0xBF - bhi _08119744 - mov r0, r8 - strh r2, [r0, 0x3C] - b _08119766 - .align 2, 0 -_08119734: .4byte gSharedMem + 0x19000 -_08119738: .4byte gUnknown_083F8C00 + 0xC -_0811973C: .4byte gUnknown_083F8D90 + 0x4 -_08119740: .4byte gSharedMem + 0x1901B -_08119744: - ldr r0, [sp, 0x10] - mov r1, r10 - bl __modsi3 - add r0, sp - ldrb r0, [r0] - mov r1, r8 - strh r0, [r1, 0x3C] - b _08119766 -_08119756: - ldr r0, [sp, 0x10] - mov r1, r10 - bl __modsi3 - add r0, sp - ldrb r0, [r0] - mov r2, r8 - strh r0, [r2, 0x3C] -_08119766: - ldr r3, _0811977C @ =sub_8118CEC - mov r0, r8 - str r3, [r0, 0x1C] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0811977C: .4byte sub_8118CEC - thumb_func_end sub_811952C - - thumb_func_start sub_8119780 -sub_8119780: @ 8119780 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - adds r1, r0, 0x1 - strh r1, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _081197CA - ldrh r0, [r2, 0x20] - subs r0, 0x2 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _081197CA - ldr r4, _081197D0 @ =gSharedMem + 0x19000 - ldrb r1, [r4, 0x3] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _081197BA - movs r0, 0x40 - orrs r0, r1 - strb r0, [r4, 0x3] -_081197BA: - adds r0, r2, 0 - bl DestroySprite - movs r0, 0 - strb r0, [r4, 0x1] - ldr r0, _081197D4 @ =gUnknown_083FA61E - ldrh r0, [r0] - strh r0, [r4, 0x34] -_081197CA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081197D0: .4byte gSharedMem + 0x19000 -_081197D4: .4byte gUnknown_083FA61E - thumb_func_end sub_8119780 - - thumb_func_start sub_81197D8 -sub_81197D8: @ 81197D8 - push {r4,lr} - sub sp, 0x18 - adds r4, r0, 0 - ldr r1, _08119854 @ =gUnknown_083FA632 - mov r0, sp - movs r2, 0x18 - bl memcpy - ldrh r0, [r4, 0x30] - adds r2, r0, 0x1 - strh r2, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x34 - ldrsh r1, [r4, r3] - cmp r0, r1 - bge _0811985C - movs r0, 0x1 - ands r2, r0 - cmp r2, 0 - beq _08119836 - ldr r3, _08119858 @ =gSpriteCoordOffsetY - movs r0, 0x3C - ldrsh r2, [r4, r0] - lsls r2, 1 - movs r1, 0x32 - ldrsh r0, [r4, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r0, 3 - adds r2, r0 - mov r1, sp - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r3] - movs r3, 0x3C - ldrsh r2, [r4, r3] - adds r1, r2, 0x1 - adds r0, r1, 0 - cmp r1, 0 - bge _0811982E - adds r0, r2, 0x4 -_0811982E: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - strh r0, [r4, 0x3C] -_08119836: - 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] - b _08119884 - .align 2, 0 -_08119854: .4byte gUnknown_083FA632 -_08119858: .4byte gSpriteCoordOffsetY -_0811985C: - ldr r1, _0811988C @ =gSpriteCoordOffsetY - movs r0, 0 - strh r0, [r1] - ldr r2, _08119890 @ =gSprites - ldr r0, _08119894 @ =gSharedMem + 0x19000 - adds r0, 0x73 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2C - ldrb r2, [r0] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r4, 0 - bl DestroySprite -_08119884: - add sp, 0x18 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0811988C: .4byte gSpriteCoordOffsetY -_08119890: .4byte gSprites -_08119894: .4byte gSharedMem + 0x19000 - thumb_func_end sub_81197D8 - - thumb_func_start sub_8119898 -sub_8119898: @ 8119898 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - movs r1, 0x30 - ldrsh r0, [r5, r1] - bl __floatsisf - adds r4, r0, 0 - ldr r1, _08119948 @ =0x3d1fbe77 - bl __mulsf3 - adds r1, r4, 0 - bl __mulsf3 - bl __fixsfsi - strh r0, [r5, 0x26] - ldr r3, _0811994C @ =gSharedMem + 0x19000 - ldr r2, _08119950 @ =gUnknown_083FA61E - ldrb r0, [r3, 0x1] - subs r0, 0x1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r3, 0x34] - ldrb r0, [r3, 0x1] - cmp r0, 0x12 - bhi _081198DE - adds r0, 0x1 - strb r0, [r3, 0x1] -_081198DE: - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x3C - ble _08119940 - movs r0, 0 - strh r0, [r5, 0x30] - ldr r3, _08119954 @ =sub_8119780 - str r3, [r5, 0x1C] - ldr r2, _08119958 @ =gSprites - movs r0, 0x3A - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r2, 0 - adds r4, 0x1C - adds r0, r4 - str r3, [r0] - movs r0, 0x3A - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _0811995C @ =0x0000fffe - strh r1, [r0, 0x30] - movs r0, 0x38 - ldrsh r1, [r5, r0] - 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] - movs r0, 0x38 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _08119960 @ =sub_81197D8 - str r1, [r0] - movs r0, 0xD6 - bl m4aSongNumStart -_08119940: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08119948: .4byte 0x3d1fbe77 -_0811994C: .4byte gSharedMem + 0x19000 -_08119950: .4byte gUnknown_083FA61E -_08119954: .4byte sub_8119780 -_08119958: .4byte gSprites -_0811995C: .4byte 0x0000fffe -_08119960: .4byte sub_81197D8 - thumb_func_end sub_8119898 - - thumb_func_start sub_8119964 -sub_8119964: @ 8119964 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081199E4 - ldr r3, _08119990 @ =gSharedMem + 0x19000 - ldr r1, [r3, 0x38] - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08119998 - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119994 @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0x8] - b _081199AA - .align 2, 0 -_08119990: .4byte gSharedMem + 0x19000 -_08119994: .4byte gUnknown_083F8DF4 -_08119998: - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _081199D8 @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0x8] - adds r0, 0xB4 -_081199AA: - cmp r2, r0 - bne _08119A78 - 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, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r0, 0x2B - bl m4aSongNumStart - ldr r1, _081199DC @ =gSharedMem + 0x19000 - movs r0, 0x1 - strb r0, [r1, 0x1] - ldr r0, _081199E0 @ =gUnknown_083FA61E - ldrh r0, [r0] - strh r0, [r1, 0x34] - b _08119A78 - .align 2, 0 -_081199D8: .4byte gUnknown_083F8DF4 -_081199DC: .4byte gSharedMem + 0x19000 -_081199E0: .4byte gUnknown_083FA61E -_081199E4: - ldr r3, _08119A20 @ =gSharedMem + 0x19000 - ldr r2, _08119A24 @ =gUnknown_083FA61E - ldrb r0, [r3, 0x1] - subs r0, 0x1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r3, 0x34] - ldrb r0, [r3, 0x1] - cmp r0, 0x12 - bhi _08119A04 - adds r0, 0x1 - strb r0, [r3, 0x1] -_08119A04: - ldr r1, [r3, 0x38] - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08119A2C - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119A28 @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0xA] - b _08119A3E - .align 2, 0 -_08119A20: .4byte gSharedMem + 0x19000 -_08119A24: .4byte gUnknown_083FA61E -_08119A28: .4byte gUnknown_083F8DF4 -_08119A2C: - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119A80 @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0xA] - adds r0, 0xB4 -_08119A3E: - cmp r2, r0 - bne _08119A78 - ldr r2, _08119A84 @ =gSprites - movs r0, 0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08119A88 @ =sub_8119898 - str r1, [r0] - movs r0, 0x36 - ldrsh r1, [r4, r0] - 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] - ldr r0, _08119A8C @ =SpriteCallbackDummy - str r0, [r4, 0x1C] - movs r0, 0 - strh r0, [r4, 0x3C] -_08119A78: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119A80: .4byte gUnknown_083F8DF4 -_08119A84: .4byte gSprites -_08119A88: .4byte sub_8119898 -_08119A8C: .4byte SpriteCallbackDummy - thumb_func_end sub_8119964 - - thumb_func_start sub_8119A90 -sub_8119A90: @ 8119A90 - adds r0, 0x3E - ldrb r3, [r0] - lsls r1, r3, 29 - lsrs r1, 31 - movs r2, 0x1 - eors r2, r1 - lsls r2, 2 - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_8119A90 - - thumb_func_start sub_8119AAC -sub_8119AAC: @ 8119AAC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x22] - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - ble _08119AC4 - subs r0, r2, 0x1 - strh r0, [r4, 0x22] - b _08119B12 -_08119AC4: - ldr r0, _08119B18 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x5E - bl m4aSongNumStop - adds r0, r4, 0 - bl DestroySprite - ldr r5, _08119B1C @ =gSprites - ldr r4, _08119B20 @ =gSharedMem + 0x19000 - adds r4, 0x74 - ldrb r1, [r4] - 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 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite -_08119B12: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08119B18: .4byte SpriteCallbackDummy -_08119B1C: .4byte gSprites -_08119B20: .4byte gSharedMem + 0x19000 - thumb_func_end sub_8119AAC - - thumb_func_start sub_8119B24 -sub_8119B24: @ 8119B24 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - blt _08119B4E - subs r1, 0x1 - strh r1, [r4, 0x30] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - lsls r1, 16 - cmp r1, 0 - bne _08119BB8 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _08119BB8 - b _08119B74 -_08119B4E: - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - blt _08119B84 - subs r0, r1, 0x1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _08119BB8 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _08119B7C -_08119B74: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _08119BB8 -_08119B7C: - ldrh r0, [r4, 0x26] - subs r0, 0x1 - strh r0, [r4, 0x26] - b _08119BB8 -_08119B84: - movs r0, 0x2B - bl m4aSongNumStart - ldr r0, _08119BC0 @ =gSharedMem + 0x19000 - ldr r0, [r0, 0x38] - ldrh r1, [r0, 0x2E] - adds r1, 0x4 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _08119BC4 @ =sub_8119AAC - str r0, [r4, 0x1C] - ldr r2, _08119BC8 @ =gSprites - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2C - ldrb r2, [r0] - movs r1, 0x7F - ands r1, r2 - strb r1, [r0] -_08119BB8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119BC0: .4byte gSharedMem + 0x19000 -_08119BC4: .4byte sub_8119AAC -_08119BC8: .4byte gSprites - thumb_func_end sub_8119B24 - - thumb_func_start sub_8119BCC -sub_8119BCC: @ 8119BCC - push {r4,r5,lr} - sub sp, 0x14 - adds r4, r0, 0 - ldr r1, _08119C44 @ =gUnknown_083FA64A - mov r0, sp - movs r2, 0x2 - bl memcpy - add r5, sp, 0x4 - ldr r1, _08119C48 @ =gUnknown_083FA64C - adds r0, r5, 0 - movs r2, 0x10 - bl memcpy - ldrh r0, [r4, 0x30] - subs r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _08119C5C - ldr r0, _08119C4C @ =gSharedMem + 0x19000 - ldr r0, [r0, 0x38] - movs r1, 0x2E - ldrsh r0, [r0, r1] - add r0, sp - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08119CF6 - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r4, 0x74 - subs r4, r0 - lsrs r0, r4, 31 - adds r4, r0 - asrs r4, 1 - negs r4, r4 - ldr r0, _08119C50 @ =gMPlay_SE1 - ldr r5, _08119C54 @ =0x0000ffff - lsls r4, 24 - asrs r4, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - ldr r0, _08119C58 @ =gMPlay_SE2 - adds r1, r5, 0 - adds r2, r4, 0 - bl m4aMPlayPanpotControl - b _08119CF6 - .align 2, 0 -_08119C44: .4byte gUnknown_083FA64A -_08119C48: .4byte gUnknown_083FA64C -_08119C4C: .4byte gSharedMem + 0x19000 -_08119C50: .4byte gMPlay_SE1 -_08119C54: .4byte 0x0000ffff -_08119C58: .4byte gMPlay_SE2 -_08119C5C: - lsls r0, r1, 16 - cmp r0, 0 - blt _08119CAC - ldr r0, _08119CA8 @ =gSharedMem + 0x19000 - ldr r0, [r0, 0x38] - movs r2, 0x2E - ldrsh r0, [r0, r2] - add r0, sp - movs r2, 0 - ldrsb r2, [r0, r2] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x7 - subs r0, r1, r0 - lsls r0, 1 - adds r0, r5, r0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - muls r0, r2 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - movs r2, 0x30 - ldrsh r0, [r4, r2] - subs r1, r0 - lsls r1, 1 - mov r0, sp - adds r0, 0x5 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - b _08119CF6 - .align 2, 0 -_08119CA8: .4byte gSharedMem + 0x19000 -_08119CAC: - movs r0, 0x5E - bl m4aSongNumStartOrChange - ldr r0, _08119CCC @ =gSharedMem + 0x19000 - ldr r0, [r0, 0x38] - movs r2, 0x2E - ldrsh r0, [r0, r2] - cmp r0, 0 - bne _08119CD0 - movs r0, 0x98 - lsls r0, 1 - movs r1, 0x3F - bl PlayCry1 - b _08119CDC - .align 2, 0 -_08119CCC: .4byte gSharedMem + 0x19000 -_08119CD0: - movs r0, 0x98 - lsls r0, 1 - movs r1, 0x3F - negs r1, r1 - bl PlayCry1 -_08119CDC: - ldr r0, _08119D00 @ =gSharedMem + 0x19000 - ldr r0, [r0, 0x38] - ldrh r1, [r0, 0x2E] - adds r1, 0x2 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - movs r0, 0x2D - strh r0, [r4, 0x30] - ldr r0, _08119D04 @ =sub_8119B24 - str r0, [r4, 0x1C] -_08119CF6: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08119D00: .4byte gSharedMem + 0x19000 -_08119D04: .4byte sub_8119B24 - thumb_func_end sub_8119BCC - - thumb_func_start sub_8119D08 -sub_8119D08: @ 8119D08 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _08119D64 @ =gUnknown_083FA64A - mov r0, sp - movs r2, 0x2 - bl memcpy - ldrh r0, [r4, 0x30] - subs r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - blt _08119D70 - ldr r0, _08119D68 @ =gSharedMem + 0x19000 - ldr r0, [r0, 0x38] - movs r1, 0x2E - ldrsh r0, [r0, r1] - add r0, sp - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldr r1, _08119D6C @ =gSprites - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - adds r2, 0x3E - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _08119D74 - .align 2, 0 -_08119D64: .4byte gUnknown_083FA64A -_08119D68: .4byte gSharedMem + 0x19000 -_08119D6C: .4byte gSprites -_08119D70: - ldr r0, _08119D7C @ =sub_8119A90 - str r0, [r4, 0x1C] -_08119D74: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119D7C: .4byte sub_8119A90 - thumb_func_end sub_8119D08 - - thumb_func_start sub_8119D80 -sub_8119D80: @ 8119D80 - push {r4,lr} - adds r4, r0, 0 - ldr r3, _08119DB8 @ =gSharedMem + 0x19000 - ldr r1, [r3, 0x38] - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08119DC4 - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119DBC @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0x12] - adds r0, 0x5A - cmp r2, r0 - bne _08119E26 - ldr r2, _08119DC0 @ =gSprites - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0x34 - b _08119DEE - .align 2, 0 -_08119DB8: .4byte gSharedMem + 0x19000 -_08119DBC: .4byte gUnknown_083F8DF4 -_08119DC0: .4byte gSprites -_08119DC4: - movs r0, 0x34 - ldrsh r2, [r1, r0] - ldr r1, _08119E2C @ =gUnknown_083F8DF4 - ldrb r0, [r3, 0x4] - lsls r0, 30 - lsrs r0, 25 - adds r0, r1 - ldrh r0, [r0, 0x14] - movs r1, 0x87 - lsls r1, 1 - adds r0, r1 - cmp r2, r0 - bne _08119E26 - ldr r2, _08119E30 @ =gSprites - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r3, 0x2E -_08119DEE: - strh r3, [r0, 0x30] - movs r0, 0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r3, [r0, 0x30] - movs r0, 0x3A - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08119E34 @ =sub_8119D08 - str r1, [r0] - movs r0, 0x36 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _08119E38 @ =sub_8119BCC - str r1, [r0] - movs r0, 0x2B - bl m4aSongNumStart -_08119E26: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08119E2C: .4byte gUnknown_083F8DF4 -_08119E30: .4byte gSprites -_08119E34: .4byte sub_8119D08 -_08119E38: .4byte sub_8119BCC - thumb_func_end sub_8119D80 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/roulette_util.s b/asm/roulette_util.s deleted file mode 100644 index 5ddaa3a6e..000000000 --- a/asm/roulette_util.s +++ /dev/null @@ -1,779 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8124918 -sub_8124918: @ 8124918 - push {lr} - movs r1, 0 - strb r1, [r0] - strh r1, [r0, 0x2] - adds r0, 0x4 - movs r2, 0xC0 - bl memset - pop {r0} - bx r0 - thumb_func_end sub_8124918 - - thumb_func_start sub_812492C -sub_812492C: @ 812492C - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0xF - bhi _08124948 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r5, r3, r0 - ldrb r7, [r5, 0x4] - lsrs r0, r7, 7 - cmp r0, 0 - beq _0812494C -_08124948: - movs r0, 0xFF - b _081249AA -_0812494C: - ldrh r0, [r2] - movs r4, 0 - strh r0, [r5, 0x8] - ldrh r0, [r2, 0x2] - strh r0, [r5, 0xA] - ldrb r0, [r2, 0x4] - strb r0, [r5, 0xC] - ldrb r0, [r2, 0x5] - strb r0, [r5, 0xD] - ldrb r0, [r2, 0x6] - strb r0, [r5, 0xE] - ldrb r3, [r2, 0x7] - lsls r0, r3, 27 - lsrs r0, 27 - ldrb r2, [r5, 0xF] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - movs r0, 0x60 - ands r0, r3 - movs r2, 0x61 - negs r2, r2 - ands r1, r2 - orrs r1, r0 - lsls r3, 24 - asrs r3, 31 - lsls r3, 7 - movs r0, 0x7F - ands r1, r0 - orrs r1, r3 - strb r1, [r5, 0xF] - subs r0, 0xFF - ands r0, r7 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r5, 0x4] - strb r4, [r5, 0x6] - strb r4, [r5, 0x5] - lsls r1, 24 - cmp r1, 0 - bge _081249A4 - movs r0, 0xFF - b _081249A6 -_081249A4: - movs r0, 0x1 -_081249A6: - strb r0, [r5, 0x7] - adds r0, r6, 0 -_081249AA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_812492C - - thumb_func_start unref_sub_81249B0 -unref_sub_81249B0: @ 81249B0 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r4, r1, 0 - cmp r4, 0xF - bhi _081249DC - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r1, r2, r0 - ldrb r0, [r1, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _081249DC - adds r0, r1, 0x4 - movs r1, 0 - movs r2, 0xC - bl memset - adds r0, r4, 0 - b _081249DE -_081249DC: - movs r0, 0xFF -_081249DE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end unref_sub_81249B0 - - thumb_func_start sub_81249E4 -sub_81249E4: @ 81249E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - movs r0, 0 - mov r12, r0 - ldrb r1, [r5, 0x8] - cmp r12, r1 - bcc _081249FC - b _08124B94 -_081249FC: - movs r7, 0x1F - ldr r0, _08124A2C @ =0xfffffc1f - mov r10, r0 - movs r1, 0x7D - negs r1, r1 - mov r9, r1 - movs r0, 0x1F - mov r8, r0 -_08124A0C: - ldrh r0, [r5, 0x6] - add r0, r12 - lsls r0, 1 - ldr r1, _08124A30 @ =gPlttBufferFaded - adds r3, r0, r1 - ldr r1, _08124A34 @ =gPlttBufferUnfaded - adds r6, r0, r1 - ldrb r0, [r5] - lsls r0, 25 - lsrs r0, 25 - cmp r0, 0x1 - beq _08124A38 - cmp r0, 0x2 - beq _08124A96 - b _08124B82 - .align 2, 0 -_08124A2C: .4byte 0xfffffc1f -_08124A30: .4byte gPlttBufferFaded -_08124A34: .4byte gPlttBufferUnfaded -_08124A38: - ldr r0, [r3] - lsls r2, r0, 27 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bhi _08124A5A - lsrs r0, r2, 27 - adds r0, r1 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08124A5A: - ldr r0, [r3] - lsls r2, r0, 22 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bhi _08124A7E - lsrs r0, r2, 27 - adds r0, r1 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_08124A7E: - ldr r0, [r3] - lsls r2, r0, 17 - lsrs r0, r2, 27 - movs r1, 0x3 - ldrsb r1, [r5, r1] - adds r0, r1 - cmp r0, 0x1F - bls _08124A90 - b _08124B82 -_08124A90: - lsrs r0, r2, 27 - adds r0, r1 - b _08124B74 -_08124A96: - movs r0, 0x3 - ldrsb r0, [r5, r0] - cmp r0, 0 - bge _08124B08 - ldr r0, [r3] - lsls r4, r0, 27 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - blt _08124AC6 - lsrs r0, r4, 27 - adds r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08124AC6: - ldr r0, [r3] - lsls r4, r0, 22 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 22 - lsrs r0, 27 - cmp r1, r0 - blt _08124AF0 - lsrs r0, r4, 27 - adds r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_08124AF0: - ldr r0, [r3] - lsls r4, r0, 17 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 17 - lsrs r0, 27 - cmp r1, r0 - blt _08124B82 - b _08124B70 -_08124B08: - ldr r0, [r3] - lsls r4, r0, 27 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 27 - lsrs r0, 27 - cmp r1, r0 - bgt _08124B30 - lsrs r0, r4, 27 - adds r0, r2 - ands r0, r7 - ldrb r2, [r3] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_08124B30: - ldr r0, [r3] - lsls r4, r0, 22 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 22 - lsrs r0, 27 - cmp r1, r0 - bgt _08124B5A - lsrs r0, r4, 27 - adds r0, r2 - mov r1, r8 - ands r0, r1 - lsls r0, 5 - ldrh r2, [r3] - mov r1, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r3] -_08124B5A: - ldr r0, [r3] - lsls r4, r0, 17 - lsrs r1, r4, 27 - movs r2, 0x3 - ldrsb r2, [r5, r2] - adds r1, r2 - ldr r0, [r6] - lsls r0, 17 - lsrs r0, 27 - cmp r1, r0 - bgt _08124B82 -_08124B70: - lsrs r0, r4, 27 - adds r0, r2 -_08124B74: - ands r0, r7 - lsls r0, 2 - ldrb r2, [r3, 0x1] - mov r1, r9 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] -_08124B82: - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - ldrb r0, [r5, 0x8] - cmp r12, r0 - bcs _08124B94 - b _08124A0C -_08124B94: - ldrb r1, [r5, 0x2] - adds r0, r1, 0x1 - strb r0, [r5, 0x2] - ldrb r0, [r5, 0xB] - lsls r0, 27 - lsls r1, 24 - asrs r0, 3 - cmp r1, r0 - beq _08124BAA - movs r0, 0 - b _08124BDE -_08124BAA: - movs r0, 0 - strb r0, [r5, 0x2] - movs r0, 0x3 - ldrsb r0, [r5, r0] - negs r0, r0 - strb r0, [r5, 0x3] - ldrb r2, [r5] - movs r1, 0x7F - movs r0, 0x7F - ands r0, r2 - cmp r0, 0x1 - bne _08124BCA - lsls r0, r2, 25 - lsrs r0, 25 - adds r0, 0x1 - b _08124BD0 -_08124BCA: - lsls r0, r2, 25 - lsrs r0, 25 - subs r0, 0x1 -_08124BD0: - ands r0, r1 - movs r1, 0x80 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5] - movs r0, 0x1 -_08124BDE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81249E4 - - thumb_func_start sub_8124BEC -sub_8124BEC: @ 8124BEC - push {r4,r5,lr} - adds r3, r0, 0 - movs r2, 0 - ldrb r0, [r3] - lsls r0, 25 - lsrs r0, 25 - cmp r0, 0x1 - beq _08124C02 - cmp r0, 0x2 - beq _08124C30 - b _08124C6A -_08124C02: - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcs _08124C22 - ldr r4, _08124C2C @ =gPlttBufferFaded -_08124C0A: - ldrh r0, [r3, 0x6] - adds r0, r2 - lsls r0, 1 - adds r0, r4 - ldrh r1, [r3, 0x4] - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcc _08124C0A -_08124C22: - ldrb r2, [r3] - lsls r1, r2, 25 - lsrs r1, 25 - adds r1, 0x1 - b _08124C5C - .align 2, 0 -_08124C2C: .4byte gPlttBufferFaded -_08124C30: - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcs _08124C54 - ldr r5, _08124C74 @ =gPlttBufferFaded - ldr r4, _08124C78 @ =gPlttBufferUnfaded -_08124C3A: - ldrh r0, [r3, 0x6] - adds r0, r2 - lsls r0, 1 - adds r1, r0, r5 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r3, 0x8] - cmp r2, r0 - bcc _08124C3A -_08124C54: - ldrb r2, [r3] - lsls r1, r2, 25 - lsrs r1, 25 - subs r1, 0x1 -_08124C5C: - movs r0, 0x7F - ands r1, r0 - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08124C6A: - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08124C74: .4byte gPlttBufferFaded -_08124C78: .4byte gPlttBufferUnfaded - thumb_func_end sub_8124BEC - - thumb_func_start task_tutorial_controls_fadein -task_tutorial_controls_fadein: @ 8124C7C - push {r4-r6,lr} - adds r4, r0, 0 - movs r5, 0 - ldrb r0, [r4] - cmp r0, 0 - beq _08124CE0 -_08124C88: - ldrh r0, [r4, 0x2] - asrs r0, r5 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08124CD6 - lsls r1, r5, 1 - adds r0, r1, r5 - lsls r3, r0, 2 - adds r2, r4, r3 - ldrb r0, [r2, 0x5] - subs r0, 0x1 - strb r0, [r2, 0x5] - lsls r0, 24 - lsrs r0, 24 - adds r6, r1, 0 - cmp r0, 0xFF - bne _08124CD6 - ldrh r0, [r2, 0x8] - movs r2, 0x80 - lsls r2, 8 - adds r1, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08124CC4 - adds r0, r3, 0x4 - adds r0, r4, r0 - bl sub_81249E4 - b _08124CCC -_08124CC4: - adds r0, r3, 0x4 - adds r0, r4, r0 - bl sub_8124BEC -_08124CCC: - adds r0, r6, r5 - lsls r0, 2 - adds r0, r4, r0 - ldrb r1, [r0, 0xD] - strb r1, [r0, 0x5] -_08124CD6: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08124C88 -_08124CE0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end task_tutorial_controls_fadein - - thumb_func_start sub_8124CE8 -sub_8124CE8: @ 8124CE8 - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 16 - lsrs r6, r1, 16 - movs r4, 0 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r5, 0x1 - movs r7, 0x80 - negs r7, r7 -_08124CFE: - adds r0, r6, 0 - asrs r0, r4 - ands r0, r5 - cmp r0, 0 - beq _08124D2C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r2, r3, r0 - ldrb r0, [r2, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _08124D2C - adds r0, r5, 0 - lsls r0, r4 - ldrh r1, [r3, 0x2] - orrs r0, r1 - strh r0, [r3, 0x2] - ldrb r1, [r2, 0x4] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r5 - strb r0, [r2, 0x4] -_08124D2C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08124CFE - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124CE8 - - thumb_func_start sub_8124D3C -sub_8124D3C: @ 8124D3C - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - movs r5, 0 - movs r3, 0x1 -_08124D4A: - ldrh r0, [r6, 0x2] - asrs r0, r5 - ands r0, r3 - cmp r0, 0 - beq _08124DB2 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r4, r6, r0 - ldrb r0, [r4, 0x4] - lsrs r0, 7 - cmp r0, 0 - beq _08124DB2 - adds r0, r7, 0 - asrs r0, r5 - ands r0, r3 - cmp r0, 0 - beq _08124DB2 - ldrh r1, [r4, 0xA] - lsls r1, 1 - ldr r0, _08124DA8 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _08124DAC @ =gPlttBufferUnfaded - adds r1, r2 - ldrb r2, [r4, 0xC] - lsls r2, 1 - str r3, [sp] - bl memcpy - ldrb r0, [r4, 0x4] - movs r2, 0x80 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - strb r0, [r4, 0x4] - movs r0, 0 - strb r0, [r4, 0x6] - strb r0, [r4, 0x5] - ldrb r0, [r4, 0xF] - lsls r0, 24 - ldr r3, [sp] - cmp r0, 0 - bge _08124DB0 - movs r0, 0xFF - strb r0, [r4, 0x7] - b _08124DB2 - .align 2, 0 -_08124DA8: .4byte gPlttBufferFaded -_08124DAC: .4byte gPlttBufferUnfaded -_08124DB0: - strb r3, [r4, 0x7] -_08124DB2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08124D4A - ldr r0, _08124DC8 @ =0x0000ffff - cmp r7, r0 - bne _08124DCC - movs r0, 0 - strb r0, [r6] - b _08124DD0 - .align 2, 0 -_08124DC8: .4byte 0x0000ffff -_08124DCC: - ldrh r0, [r6, 0x2] - bics r0, r7 -_08124DD0: - strh r0, [r6, 0x2] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124D3C - - thumb_func_start sub_8124DDC -sub_8124DDC: @ 8124DDC - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r4, 24 - movs r1, 0 - lsrs r3, 19 - adds r3, r2 - lsls r3, 1 - adds r6, r3 - cmp r1, r4 - bcs _08124E26 -_08124E04: - lsls r0, r1, 6 - adds r2, r6, r0 - movs r0, 0 - adds r3, r1, 0x1 - cmp r0, r5 - bcs _08124E1E -_08124E10: - strh r7, [r2] - adds r2, 0x2 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - bcc _08124E10 -_08124E1E: - lsls r0, r3, 24 - lsrs r1, r0, 24 - cmp r1, r4 - bcc _08124E04 -_08124E26: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124DDC - - thumb_func_start sub_8124E2C -sub_8124E2C: @ 8124E2C - push {r4-r7,lr} - adds r7, r0, 0 - ldr r0, [sp, 0x14] - ldr r4, [sp, 0x18] - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r4, 24 - lsrs r6, r4, 24 - movs r4, 0 - lsrs r3, 19 - adds r3, r2 - lsls r3, 1 - adds r7, r3 - cmp r4, r6 - bcs _08124E76 -_08124E50: - lsls r0, r4, 6 - adds r2, r7, r0 - movs r3, 0 - adds r4, 0x1 - cmp r3, r5 - bcs _08124E6E -_08124E5C: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcc _08124E5C -_08124E6E: - lsls r0, r4, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08124E50 -_08124E76: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124E2C - - .align 2, 0 @ Don't pad with nop. |