summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_2.s6434
-rw-r--r--asm/battle_9.s38
-rw-r--r--asm/battle_anim_81258BC.s732
-rw-r--r--asm/battle_anim_813F0F4.s18
-rwxr-xr-xasm/battle_intro.s2
-rw-r--r--asm/contest_link_80C2020.s16
-rwxr-xr-xasm/dark.s2
-rwxr-xr-xasm/ice.s2
-rw-r--r--asm/pokemon_item_effect.s4
-rwxr-xr-xasm/psychic.s6
-rw-r--r--asm/roulette.s9658
-rw-r--r--asm/roulette_util.s779
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
diff --git a/asm/ice.s b/asm/ice.s
index 1fad057ed..557be621c 100755
--- a/asm/ice.s
+++ b/asm/ice.s
@@ -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.