diff options
Diffstat (limited to 'asm')
65 files changed, 28333 insertions, 82298 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s index f0a883ec4..cd925e10d 100644 --- a/asm/battle_1.s +++ b/asm/battle_1.s @@ -1,6 +1,6 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -448,16 +448,16 @@ _0800D748: .4byte 0x0000bf40 sub_800D74C: @ 800D74C push {r4,lr} movs r0, 0x12 - bl SetTextWindowBaseTileNum + bl TextWindow_SetBaseTileNum ldr r4, _0800D79C @ =gUnknown_03004210 adds r0, r4, 0 movs r1, 0x1 - bl LoadTextWindowGraphics_OverridePalSlot + bl TextWindow_LoadStdFrameGraphicsOverridePal movs r0, 0x22 - bl SetTextWindowBaseTileNum + bl TextWindow_SetBaseTileNum adds r0, r4, 0 movs r1, 0x1 - bl LoadTextWindowGraphics_OverridePalSlot + bl TextWindow_LoadStdFrameGraphicsOverridePal ldr r3, _0800D7A0 @ =gPlttBufferUnfaded adds r0, r3, 0 adds r0, 0xB8 @@ -794,6 +794,77 @@ _0800DAB0: .4byte 0x0600d000 _0800DAB4: .4byte gBattleTerrainPalette_BattleTower thumb_func_end DrawMainBattleBackground +.if DEBUG + thumb_func_start sub_800DAB8 +sub_800DAB8: +.syntax divided + push {r4, r5, lr} + add sp, sp, #0xfffffffc + ldr r0, ._113 @ gUnknown_08D00000 + mov r1, #0xc0 + lsl r1, r1, #0x13 + bl LZDecompressVram + ldr r0, ._113 + 4 @ gUnknown_08D00524 + ldr r4, ._113 + 8 @ 0x600c000 + mov r2, #0x80 + lsl r2, r2, #0x4 + add r1, r4, #0 + bl CpuSet + ldr r0, ._113 + 12 @ gUnknown_08D004E0 + mov r1, #0x0 + mov r2, #0x40 + bl LoadCompressedPalette + bl sub_800D74C + bl DrawMainBattleBackground + ldr r0, ._113 + 16 @ gBattleTypeFlags + ldrh r1, [r0] + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._112 @cond_branch + ldr r0, ._113 + 20 @ 0x6000600 + mov r1, #0x0 + add r2, r4, #0 + mov r3, #0x1 + bl debug_sub_8008218 + ldr r5, ._113 + 24 @ 0x101 + mov r4, #0x1 + str r4, [sp] + add r0, r5, #0 + mov r1, #0x3 + mov r2, #0x1 + mov r3, #0x3 + bl debug_sub_8008264 + str r4, [sp] + add r0, r5, #0 + mov r1, #0x3 + mov r2, #0x15 + mov r3, #0x3 + bl debug_sub_8008264 + str r4, [sp] + add r0, r5, #0 + mov r1, #0x3 + mov r2, #0x29 + mov r3, #0x3 + bl debug_sub_8008264 +._112: + add sp, sp, #0x4 + pop {r4, r5} + pop {r0} + bx r0 +._114: + .align 2, 0 +._113: + .word gUnknown_08D00000 + .word gUnknown_08D00524 + .word 0x600c000 + .word gUnknown_08D004E0 + .word gBattleTypeFlags + .word 0x6000600 + .word 0x101 +.syntax unified + thumb_func_end sub_800DAB8 +.else thumb_func_start sub_800DAB8 sub_800DAB8: @ 800DAB8 push {lr} @@ -820,6 +891,7 @@ _0800DAEC: .4byte gUnknown_08D00524 _0800DAF0: .4byte 0x0600c000 _0800DAF4: .4byte gUnknown_08D004E0 thumb_func_end sub_800DAB8 +.endif thumb_func_start sub_800DAF8 sub_800DAF8: @ 800DAF8 @@ -1055,9 +1127,9 @@ _0800DE88: str r0, [sp, 0x4] adds r0, r1, 0 adds r1, r7, 0 - bl sub_8002E4C + bl Text_InitWindow8002E4C ldr r0, [sp, 0xC] - bl sub_8002F44 + bl Text_PrintWindow8002F44 ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8 adds r4, r2 ldr r2, [r4] @@ -1111,9 +1183,9 @@ _0800DF04: movs r5, 0x1 str r5, [sp, 0x4] adds r0, r4, 0 - bl sub_8002E4C + bl Text_InitWindow8002E4C adds r0, r4, 0 - bl sub_8002F44 + bl Text_PrintWindow8002F44 mov r0, r8 ldr r2, [r0, 0x38] mov r0, r9 @@ -1134,9 +1206,9 @@ _0800DF04: str r0, [sp] str r5, [sp, 0x4] adds r0, r4, 0 - bl sub_8002E4C + bl Text_InitWindow8002E4C adds r0, r4, 0 - bl sub_8002F44 + bl Text_PrintWindow8002F44 mov r5, r8 ldr r2, [r5, 0x44] mov r0, r9 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..3f162df12 100644 --- a/asm/battle_9.s +++ b/asm/battle_9.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -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 @@ -273,7 +273,7 @@ sub_80361E8: @ 80361E8 beq _08036214 b _08036400 _08036214: - ldr r1, _0803627C @ =gMoveHitWith + ldr r1, _0803627C @ =gLastLandedMoves ldr r5, _08036280 @ =gActiveBank ldrb r3, [r5] lsls r0, r3, 1 @@ -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 @@ -326,7 +326,7 @@ _08036242: ldrb r7, [r5] b _080362B2 .align 2, 0 -_0803627C: .4byte gMoveHitWith +_0803627C: .4byte gLastLandedMoves _08036280: .4byte gActiveBank _08036284: .4byte 0x0000ffff _08036288: .4byte gBattleMoves @@ -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 @@ -348,7 +348,7 @@ _080362AE: mov r8, r7 _080362B2: ldr r3, _080362D4 @ =gBattleMoves - ldr r1, _080362D8 @ =gMoveHitWith + ldr r1, _080362D8 @ =gLastLandedMoves ldr r2, _080362DC @ =gActiveBank ldrb r0, [r2] lsls r0, 1 @@ -366,7 +366,7 @@ _080362B2: b _080362F2 .align 2, 0 _080362D4: .4byte gBattleMoves -_080362D8: .4byte gMoveHitWith +_080362D8: .4byte gLastLandedMoves _080362DC: .4byte gActiveBank _080362E0: cmp r0, 0xB @@ -548,7 +548,7 @@ AI_SwitchIfNaturalCure: @ 8036410 lsrs r0, 1 cmp r1, r0 bcc _080364D8 - ldr r1, _08036470 @ =gMoveHitWith + ldr r1, _08036470 @ =gLastLandedMoves lsls r0, r4, 1 adds r0, r1 ldrh r1, [r0] @@ -568,11 +568,11 @@ _08036456: .align 2, 0 _08036468: .4byte gBattleMons _0803646C: .4byte gActiveBank -_08036470: .4byte gMoveHitWith +_08036470: .4byte gLastLandedMoves _08036474: .4byte 0x0000ffff _08036478: ldr r2, _080364A4 @ =gBattleMoves - ldr r1, _080364A8 @ =gMoveHitWith + ldr r1, _080364A8 @ =gLastLandedMoves ldr r4, _080364AC @ =gActiveBank ldrb r0, [r4] lsls r0, 1 @@ -594,7 +594,7 @@ _08036478: b _080364E0 .align 2, 0 _080364A4: .4byte gBattleMoves -_080364A8: .4byte gMoveHitWith +_080364A8: .4byte gLastLandedMoves _080364AC: .4byte gActiveBank _080364B0: movs r0, 0x8 @@ -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 @@ -863,7 +863,7 @@ sub_80366A4: @ 80366A4 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] - ldr r1, _08036730 @ =gMoveHitWith + ldr r1, _08036730 @ =gLastLandedMoves ldr r5, _08036734 @ =gActiveBank ldrb r3, [r5] lsls r0, r3, 1 @@ -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 @@ -924,7 +924,7 @@ _080366F6: mov r10, r5 b _0803679C .align 2, 0 -_08036730: .4byte gMoveHitWith +_08036730: .4byte gLastLandedMoves _08036734: .4byte gActiveBank _08036738: .4byte 0x0000ffff _0803673C: .4byte gUnknown_02024C5C @@ -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 @@ -1053,7 +1053,7 @@ _08036844: adds r0, r2 ldrb r2, [r0, 0x16] _08036850: - ldr r1, _080368F0 @ =gMoveHitWith + ldr r1, _080368F0 @ =gLastLandedMoves ldr r5, _080368F4 @ =gActiveBank ldrb r0, [r5] lsls r0, 1 @@ -1132,7 +1132,7 @@ _080368DA: bx r1 .align 2, 0 _080368EC: .4byte gBaseStats -_080368F0: .4byte gMoveHitWith +_080368F0: .4byte gLastLandedMoves _080368F4: .4byte gActiveBank _080368F8: .4byte gUnknown_02024C5C _080368FC: .4byte gBattleMons @@ -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 @@ -1387,6 +1387,176 @@ _08036AFE: bx r1 thumb_func_end AI_ShouldSwitch +.if DEBUG + thumb_func_start sub_8036B0C +sub_8036B0C: +.syntax divided + push {r4, r5, r6, lr} + ldr r5, ._205 @ gBattleTypeFlags + ldrh r1, [r5] + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + bne ._197 @cond_branch + b ._216 +._197: + bl AI_ShouldSwitch + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._199 @cond_branch + b ._200 +._199: + ldr r4, ._205 + 4 @ 0x2000000 + ldr r0, ._205 + 8 @ gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + lsl r0, r0, #0x18 + lsr r0, r0, #0x19 + ldr r1, ._205 + 12 @ 0x160c8 + add r0, r0, r1 + add r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0x6 + bne ._201 @cond_branch + bl sub_8036CD4 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x6 + bne ._211 @cond_branch + ldrh r1, [r5] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + bne ._203 @cond_branch + mov r0, #0x1 + bl GetBankByIdentity + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r6, r5, #0 + b ._204 +._206: + .align 2, 0 +._205: + .word gBattleTypeFlags + .word 0x2000000 + .word gActiveBank + .word 0x160c8 +._203: + mov r0, #0x1 + bl GetBankByIdentity + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + mov r0, #0x3 + bl GetBankByIdentity + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 +._204: + mov r4, #0x0 +._212: + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._214 @ gEnemyParty + add r0, r0, r1 + mov r1, #0x39 + bl GetMonData + cmp r0, #0 + beq ._210 @cond_branch + ldr r1, ._214 + 4 @ gBattlePartyID + lsl r0, r6, #0x1 + add r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq ._210 @cond_branch + lsl r0, r5, #0x1 + add r0, r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq ._210 @cond_branch + ldr r1, ._214 + 8 @ 0x2000000 + ldr r2, ._214 + 12 @ 0x16068 + add r0, r6, r2 + add r0, r0, r1 + ldrb r0, [r0] + cmp r4, r0 + beq ._210 @cond_branch + add r0, r5, r2 + add r0, r0, r1 + ldrb r0, [r0] + cmp r4, r0 + bne ._211 @cond_branch +._210: + add r4, r4, #0x1 + cmp r4, #0x5 + ble ._212 @cond_branch +._211: + ldr r0, ._214 + 16 @ gActiveBank + ldrb r0, [r0] + bl GetBankIdentity + ldr r1, ._214 + 8 @ 0x2000000 + lsl r0, r0, #0x18 + lsr r0, r0, #0x19 + ldr r3, ._214 + 20 @ 0x160c8 + add r0, r0, r3 + add r0, r0, r1 + strb r4, [r0] +._201: + ldr r4, ._214 + 16 @ gActiveBank + ldrb r0, [r4] + bl GetBankIdentity + ldr r2, ._214 + 8 @ 0x2000000 + ldrb r1, [r4] + ldr r3, ._214 + 12 @ 0x16068 + add r1, r1, r3 + add r1, r1, r2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x19 + add r3, r3, #0x60 + add r0, r0, r3 + add r0, r0, r2 + ldrb r0, [r0] + strb r0, [r1] + b ._217 +._215: + .align 2, 0 +._214: + .word gEnemyParty + .word gBattlePartyID + .word 0x2000000 + .word 0x16068 + .word gActiveBank + .word 0x160c8 +._200: + ldr r0, ._218 @ gUnknown_02023A14 + ldrb r1, [r0] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + bne ._216 @cond_branch + bl AI_ShouldUseItem + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._217 @cond_branch +._216: + ldr r0, ._218 + 4 @ gActiveBank + ldrb r0, [r0] + mov r2, #0x1 + eor r2, r2, r0 + lsl r2, r2, #0x8 + mov r0, #0x1 + mov r1, #0x0 + bl Emitcmd33 +._217: + pop {r4, r5, r6} + pop {r0} + bx r0 +._219: + .align 2, 0 +._218: + .word gUnknown_02023A14+0x50 + .word gActiveBank +.syntax unified + thumb_func_end sub_8036B0C +.else thumb_func_start sub_8036B0C sub_8036B0C: @ 8036B0C push {r4-r6,lr} @@ -1427,7 +1597,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 +1609,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: @@ -1540,6 +1710,7 @@ _08036C40: .align 2, 0 _08036C48: .4byte gActiveBank thumb_func_end sub_8036B0C +.endif thumb_func_start sub_8036C4C sub_8036C4C: @ 8036C4C @@ -1636,7 +1807,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 +1832,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 +1863,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 +2769,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 +2784,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_812C144.s b/asm/battle_anim_812C144.s index 02eec98ec..03ffc0eda 100644 --- a/asm/battle_anim_812C144.s +++ b/asm/battle_anim_812C144.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -1752,7 +1752,7 @@ _0812CE70: ldrsh r0, [r5, r6] cmp r1, r0 bgt _0812CEA6 - ldr r4, _0812CEB0 @ =gUnknown_03004DE0 + ldr r4, _0812CEB0 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r0, r4 @@ -1777,7 +1777,7 @@ _0812CEA6: ldr r0, _0812CEB4 @ =REG_BG1HOFS b _0812CEBA .align 2, 0 -_0812CEB0: .4byte gUnknown_03004DE0 +_0812CEB0: .4byte gScanlineEffectRegBuffers _0812CEB4: .4byte REG_BG1HOFS _0812CEB8: ldr r0, _0812CEE4 @ =REG_BG2HOFS @@ -1794,7 +1794,7 @@ _0812CEBA: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80895F8 + bl ScanlineEffect_SetParams ldr r0, _0812CEEC @ =sub_812CEF0 str r0, [r5] add sp, 0xC @@ -1889,7 +1889,7 @@ _0812CF74: ldrsh r0, [r4, r2] cmp r1, r0 bge _0812CFA8 - ldr r5, _0812D000 @ =gUnknown_03004DE0 + ldr r5, _0812D000 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -1917,7 +1917,7 @@ _0812CFA8: ldrsh r0, [r4, r2] cmp r1, r0 bgt _0812CFDC - ldr r5, _0812D000 @ =gUnknown_03004DE0 + ldr r5, _0812D000 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -1946,7 +1946,7 @@ _0812CFDC: ldrsh r0, [r4, r1] cmp r0, 0 beq _0812CFF2 - ldr r1, _0812D004 @ =gUnknown_03004DC0 + ldr r1, _0812D004 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _0812CFF2: @@ -1957,8 +1957,8 @@ _0812CFF8: pop {r0} bx r0 .align 2, 0 -_0812D000: .4byte gUnknown_03004DE0 -_0812D004: .4byte gUnknown_03004DC0 +_0812D000: .4byte gScanlineEffectRegBuffers +_0812D004: .4byte gScanlineEffect thumb_func_end sub_812CEF0 thumb_func_start sub_812D008 @@ -6545,7 +6545,7 @@ _0812F3EE: ldrh r3, [r0] movs r7, 0 movs r2, 0 - ldr r6, _0812F468 @ =gUnknown_03004DE0 + ldr r6, _0812F468 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r0, r6 @@ -6586,7 +6586,7 @@ _0812F3FE: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80895F8 + bl ScanlineEffect_SetParams ldr r0, _0812F470 @ =sub_812F474 str r0, [r4] add sp, 0xC @@ -6599,7 +6599,7 @@ _0812F458: .4byte REG_BLDCNT _0812F45C: .4byte 0x00003f44 _0812F460: .4byte gBattle_BG2_X _0812F464: .4byte gBattle_BG2_Y -_0812F468: .4byte gUnknown_03004DE0 +_0812F468: .4byte gScanlineEffectRegBuffers _0812F46C: .4byte 0xa6600001 _0812F470: .4byte sub_812F474 thumb_func_end sub_812F314 @@ -6711,7 +6711,7 @@ _0812F4EA: ldrsh r0, [r6, r3] cmp r1, r0 ble _0812F60A - ldr r0, _0812F660 @ =gUnknown_03004DC0 + ldr r0, _0812F660 @ =gScanlineEffect mov r10, r0 ldr r1, [sp, 0x4] lsls r0, r1, 16 @@ -6732,7 +6732,7 @@ _0812F55A: subs r0, r1 lsls r0, 7 adds r2, r0 - ldr r0, _0812F664 @ =gUnknown_03004DE0 + ldr r0, _0812F664 @ =gScanlineEffectRegBuffers adds r2, r0 lsls r4, 16 asrs r4, 16 @@ -6750,7 +6750,7 @@ _0812F55A: subs r0, r1 lsls r0, 7 adds r3, r0 - ldr r1, _0812F664 @ =gUnknown_03004DE0 + ldr r1, _0812F664 @ =gScanlineEffectRegBuffers adds r3, r1 lsls r1, r7, 16 asrs r1, 16 @@ -6814,7 +6814,7 @@ _0812F60A: lsls r1, r2, 17 cmp r1, 0 blt _0812F636 - ldr r4, _0812F664 @ =gUnknown_03004DE0 + ldr r4, _0812F664 @ =gScanlineEffectRegBuffers ldr r7, [sp, 0x4] lsls r0, r7, 16 asrs r0, 16 @@ -6856,8 +6856,8 @@ _0812F636: strh r0, [r6, 0xE] b _0812F676 .align 2, 0 -_0812F660: .4byte gUnknown_03004DC0 -_0812F664: .4byte gUnknown_03004DE0 +_0812F660: .4byte gScanlineEffect +_0812F664: .4byte gScanlineEffectRegBuffers _0812F668: .4byte gSineTable _0812F66C: .4byte 0xffff0000 _0812F670: @@ -6898,14 +6898,14 @@ _0812F6A6: asrs r0, 16 cmp r0, 0xC ble _0812F712 - ldr r1, _0812F6C0 @ =gUnknown_03004DC0 + ldr r1, _0812F6C0 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0 strh r0, [r6, 0xC] b _0812F700 .align 2, 0 -_0812F6C0: .4byte gUnknown_03004DC0 +_0812F6C0: .4byte gScanlineEffect _0812F6C4: ldrh r0, [r6, 0xC] adds r0, 0x1 diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s index 73f399caa..ccb4854af 100644 --- a/asm/battle_anim_813F0F4.s +++ b/asm/battle_anim_813F0F4.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -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 deleted file mode 100755 index 10b504a79..000000000 --- a/asm/battle_intro.s +++ /dev/null @@ -1,1667 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - @ intro - - thumb_func_start sub_80E43C0 -sub_80E43C0: @ 80E43C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E43D8 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E43E0 - ldr r0, _080E43DC @ =sub_80E4C34 - b _080E4408 - .align 2, 0 -_080E43D8: .4byte gBattleTypeFlags -_080E43DC: .4byte sub_80E4C34 -_080E43E0: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _080E4400 - ldr r0, _080E43F8 @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - beq _080E4400 - movs r4, 0x3 - ldr r0, _080E43FC @ =task00_battle_intro_80BC6C8 - b _080E4408 - .align 2, 0 -_080E43F8: .4byte gGameVersion -_080E43FC: .4byte task00_battle_intro_80BC6C8 -_080E4400: - ldr r1, _080E4434 @ =gUnknown_083DB56C - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] -_080E4408: - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _080E4438 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] - strh r4, [r1, 0xA] - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - strh r0, [r1, 0x10] - strh r0, [r1, 0x12] - strh r0, [r1, 0x14] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E4434: .4byte gUnknown_083DB56C -_080E4438: .4byte gTasks - thumb_func_end sub_80E43C0 - - thumb_func_start sub_80E443C -sub_80E443C: @ 80E443C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r0, _080E4474 @ =gBattle_BG1_X - movs r1, 0 - strh r1, [r0] - ldr r0, _080E4478 @ =gBattle_BG1_Y - strh r1, [r0] - ldr r0, _080E447C @ =gBattle_BG2_X - strh r1, [r0] - ldr r0, _080E4480 @ =gBattle_BG2_Y - strh r1, [r0] - ldr r0, _080E4484 @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0xC - ldr r2, _080E4488 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E4474: .4byte gBattle_BG1_X -_080E4478: .4byte gBattle_BG1_Y -_080E447C: .4byte gBattle_BG2_X -_080E4480: .4byte gBattle_BG2_Y -_080E4484: .4byte REG_BLDCNT -_080E4488: .4byte 0x00003f3f - thumb_func_end sub_80E443C - - thumb_func_start task_battle_intro_80BC47C -task_battle_intro_80BC47C: @ 80E448C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080E44C4 @ =gBattle_BG1_X - ldrh r0, [r1] - adds r0, 0x6 - strh r0, [r1] - ldr r1, _080E44C8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - mov r8, r1 - cmp r0, 0x4 - bls _080E44B8 - b _080E46BE -_080E44B8: - lsls r0, 2 - ldr r1, _080E44CC @ =_080E44D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E44C4: .4byte gBattle_BG1_X -_080E44C8: .4byte gTasks -_080E44CC: .4byte _080E44D0 - .align 2, 0 -_080E44D0: - .4byte _080E44E4 - .4byte _080E4514 - .4byte _080E4540 - .4byte _080E4588 - .4byte _080E46B8 -_080E44E4: - ldr r0, _080E44FC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E4500 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x10 - b _080E450A - .align 2, 0 -_080E44FC: .4byte gBattleTypeFlags -_080E4500: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - add r0, r8 - movs r1, 0x1 -_080E450A: - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080E46BE -_080E4514: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r3, r8 - adds r1, r0, r3 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E452C - b _080E46BE -_080E452C: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E453C @ =REG_WININ - movs r0, 0x3F - strh r0, [r1] - b _080E46BE - .align 2, 0 -_080E453C: .4byte REG_WININ -_080E4540: - ldr r1, _080E457C @ =gBattle_WIN0V - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4558 - b _080E46BE -_080E4558: - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080E4580 @ =gUnknown_02024DE8 - ldrh r1, [r2] - ldr r0, _080E4584 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080E46BE - .align 2, 0 -_080E457C: .4byte gBattle_WIN0V -_080E4580: .4byte gUnknown_02024DE8 -_080E4584: .4byte 0x0000fffe -_080E4588: - lsls r0, r4, 2 - adds r1, r0, r4 - lsls r1, 3 - mov r5, r8 - adds r2, r1, r5 - ldrh r3, [r2, 0xE] - movs r5, 0xE - ldrsh r1, [r2, r5] - mov r12, r0 - cmp r1, 0 - beq _080E45A4 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080E45D2 -_080E45A4: - movs r1, 0xA - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _080E45C4 - ldr r2, _080E45BC @ =gBattle_BG1_Y - ldrh r1, [r2] - ldr r0, _080E45C0 @ =0x0000ffb0 - cmp r1, r0 - beq _080E45D2 - subs r0, r1, 0x2 - b _080E45D0 - .align 2, 0 -_080E45BC: .4byte gBattle_BG1_Y -_080E45C0: .4byte 0x0000ffb0 -_080E45C4: - ldr r2, _080E4690 @ =gBattle_BG1_Y - ldrh r1, [r2] - ldr r0, _080E4694 @ =0x0000ffc8 - cmp r1, r0 - beq _080E45D2 - subs r0, r1, 0x1 -_080E45D0: - strh r0, [r2] -_080E45D2: - ldr r2, _080E4698 @ =gBattle_WIN0V - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E45E6 - ldr r3, _080E469C @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080E45E6: - mov r5, r12 - adds r0, r5, r4 - lsls r0, 3 - mov r2, r8 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E45FE - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E45FE: - movs r3, 0 - ldr r5, _080E46A0 @ =gUnknown_03004DC0 - mov r9, r5 - ldr r7, _080E46A4 @ =gUnknown_03004DE0 - mov r6, r9 - adds r5, r1, 0 -_080E460A: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E460A - cmp r3, 0x9F - bgt _080E464E - ldr r7, _080E46A4 @ =gUnknown_03004DE0 - ldr r6, _080E46A0 @ =gUnknown_03004DC0 - ldr r1, _080E46A8 @ =gTasks - mov r2, r12 - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r1 -_080E4634: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4634 -_080E464E: - mov r3, r12 - adds r0, r3, r4 - lsls r0, 3 - mov r5, r8 - adds r1, r0, r5 - movs r0, 0xC - ldrsh r2, [r1, r0] - cmp r2, 0 - bne _080E46BE - movs r0, 0x3 - mov r3, r9 - strb r0, [r3, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080E46AC @ =0x0600e000 - ldr r2, _080E46B0 @ =0x05000200 - mov r0, sp - bl CpuSet - ldr r1, _080E46B4 @ =REG_BG1CNT - movs r5, 0x9C - lsls r5, 8 - adds r0, r5, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0xBC - lsls r2, 7 - adds r0, r2, 0 - strh r0, [r1] - b _080E46BE - .align 2, 0 -_080E4690: .4byte gBattle_BG1_Y -_080E4694: .4byte 0x0000ffc8 -_080E4698: .4byte gBattle_WIN0V -_080E469C: .4byte 0xfffffc04 -_080E46A0: .4byte gUnknown_03004DC0 -_080E46A4: .4byte gUnknown_03004DE0 -_080E46A8: .4byte gTasks -_080E46AC: .4byte 0x0600e000 -_080E46B0: .4byte 0x05000200 -_080E46B4: .4byte REG_BG1CNT -_080E46B8: - adds r0, r4, 0 - bl sub_80E443C -_080E46BE: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end task_battle_intro_80BC47C - - thumb_func_start task00_battle_intro_80BC6C8 -task00_battle_intro_80BC6C8: @ 80E46CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080E46F8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0xA - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x3 - beq _080E470C - cmp r0, 0x3 - bgt _080E46FC - cmp r0, 0x2 - beq _080E4700 - b _080E4714 - .align 2, 0 -_080E46F8: .4byte gTasks -_080E46FC: - cmp r0, 0x4 - bne _080E4714 -_080E4700: - ldr r1, _080E4708 @ =gBattle_BG1_X - ldrh r0, [r1] - adds r0, 0x8 - b _080E4712 - .align 2, 0 -_080E4708: .4byte gBattle_BG1_X -_080E470C: - ldr r1, _080E4750 @ =gBattle_BG1_X - ldrh r0, [r1] - adds r0, 0x6 -_080E4712: - strh r0, [r1] -_080E4714: - lsls r0, r5, 2 - adds r1, r0, r5 - lsls r1, 3 - adds r4, r1, r2 - movs r3, 0xA - ldrsh r1, [r4, r3] - adds r6, r0, 0 - cmp r1, 0x4 - bne _080E4778 - ldr r7, _080E4754 @ =gBattle_BG1_Y - ldrh r0, [r4, 0x14] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _080E473A - ldr r1, _080E4758 @ =0x000001ff - adds r0, r1 -_080E473A: - asrs r0, 9 - subs r0, 0x8 - strh r0, [r7] - ldrh r1, [r4, 0x14] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r0, 0xB3 - bgt _080E475C - adds r0, r1, 0x4 - b _080E475E - .align 2, 0 -_080E4750: .4byte gBattle_BG1_X -_080E4754: .4byte gBattle_BG1_Y -_080E4758: .4byte 0x000001ff -_080E475C: - adds r0, r1, 0x6 -_080E475E: - strh r0, [r4, 0x14] - ldr r2, _080E4794 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r3, r0, r2 - movs r4, 0x14 - ldrsh r1, [r3, r4] - movs r0, 0xB4 - lsls r0, 1 - cmp r1, r0 - bne _080E4778 - movs r0, 0 - strh r0, [r3, 0x14] -_080E4778: - adds r0, r6, r5 - lsls r0, 3 - adds r0, r2 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0x4 - bls _080E4788 - b _080E4996 -_080E4788: - lsls r0, 2 - ldr r1, _080E4798 @ =_080E479C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E4794: .4byte gTasks -_080E4798: .4byte _080E479C - .align 2, 0 -_080E479C: - .4byte _080E47B0 - .4byte _080E47E0 - .4byte _080E480C - .4byte _080E485C - .4byte _080E4990 -_080E47B0: - ldr r1, _080E47CC @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x10 - strh r3, [r2, 0x10] - ldr r0, _080E47D0 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E47D4 - strh r3, [r2, 0xC] - b _080E47D8 - .align 2, 0 -_080E47CC: .4byte gTasks -_080E47D0: .4byte gBattleTypeFlags -_080E47D4: - movs r0, 0x1 - strh r0, [r2, 0xC] -_080E47D8: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080E4996 -_080E47E0: - ldr r0, _080E4804 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E47F6 - b _080E4996 -_080E47F6: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E4808 @ =REG_WININ - movs r0, 0x3F - strh r0, [r1] - b _080E4996 - .align 2, 0 -_080E4804: .4byte gTasks -_080E4808: .4byte REG_WININ -_080E480C: - ldr r1, _080E484C @ =gBattle_WIN0V - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4824 - b _080E4996 -_080E4824: - ldr r0, _080E4850 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080E4854 @ =gUnknown_02024DE8 - ldrh r1, [r2] - ldr r0, _080E4858 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080E4996 - .align 2, 0 -_080E484C: .4byte gBattle_WIN0V -_080E4850: .4byte gTasks -_080E4854: .4byte gUnknown_02024DE8 -_080E4858: .4byte 0x0000fffe -_080E485C: - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r3, [r1, 0xE] - movs r4, 0xE - ldrsh r0, [r1, r4] - cmp r0, 0 - beq _080E4898 - subs r0, r3, 0x1 - strh r0, [r1, 0xE] - lsls r0, 16 - asrs r3, r0, 16 - cmp r3, 0 - bne _080E48B8 - ldr r1, _080E488C @ =REG_BLDCNT - ldr r4, _080E4890 @ =0x00001842 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xF - strh r0, [r1] - ldr r0, _080E4894 @ =REG_BLDY - strh r3, [r0] - b _080E48B8 - .align 2, 0 -_080E488C: .4byte REG_BLDCNT -_080E4890: .4byte 0x00001842 -_080E4894: .4byte REG_BLDY -_080E4898: - ldrh r3, [r1, 0x10] - movs r0, 0x1F - ands r0, r3 - cmp r0, 0 - beq _080E48B8 - ldrh r0, [r1, 0x12] - subs r0, 0x1 - strh r0, [r1, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080E48B8 - adds r0, r3, 0 - adds r0, 0xFF - strh r0, [r1, 0x10] - movs r0, 0x4 - strh r0, [r1, 0x12] -_080E48B8: - ldr r3, _080E4970 @ =gBattle_WIN0V - ldrh r1, [r3] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E48CC - ldr r4, _080E4974 @ =0xfffffc04 - adds r0, r1, r4 - strh r0, [r3] -_080E48CC: - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E48E0 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E48E0: - movs r3, 0 - ldr r4, _080E4978 @ =gUnknown_03004DC0 - mov r8, r4 - ldr r0, _080E497C @ =gUnknown_03004DE0 - mov r12, r0 - mov r7, r8 - adds r4, r1, 0 -_080E48EE: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E48EE - cmp r3, 0x9F - bgt _080E4932 - ldr r1, _080E497C @ =gUnknown_03004DE0 - mov r12, r1 - ldr r7, _080E4978 @ =gUnknown_03004DC0 - ldr r1, _080E4980 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r1 -_080E4918: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4918 -_080E4932: - ldr r1, _080E4980 @ =gTasks - adds r0, r6, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080E4996 - movs r0, 0x3 - mov r4, r8 - strb r0, [r4, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080E4984 @ =0x0600e000 - ldr r2, _080E4988 @ =0x05000200 - mov r0, sp - bl CpuSet - ldr r1, _080E498C @ =REG_BG1CNT - movs r2, 0x9C - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0xBC - lsls r3, 7 - adds r0, r3, 0 - strh r0, [r1] - b _080E4996 - .align 2, 0 -_080E4970: .4byte gBattle_WIN0V -_080E4974: .4byte 0xfffffc04 -_080E4978: .4byte gUnknown_03004DC0 -_080E497C: .4byte gUnknown_03004DE0 -_080E4980: .4byte gTasks -_080E4984: .4byte 0x0600e000 -_080E4988: .4byte 0x05000200 -_080E498C: .4byte REG_BG1CNT -_080E4990: - adds r0, r5, 0 - bl sub_80E443C -_080E4996: - ldr r0, _080E49B8 @ =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r2, r1, r0 - movs r4, 0x8 - ldrsh r0, [r2, r4] - cmp r0, 0x4 - beq _080E49AC - ldr r1, _080E49BC @ =REG_BLDALPHA - ldrh r0, [r2, 0x10] - strh r0, [r1] -_080E49AC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E49B8: .4byte gTasks -_080E49BC: .4byte REG_BLDALPHA - thumb_func_end task00_battle_intro_80BC6C8 - - thumb_func_start task_battle_intro_anim -task_battle_intro_anim: @ 80E49C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080E49F4 @ =gBattle_BG1_X - ldrh r0, [r1] - adds r0, 0x8 - strh r0, [r1] - ldr r1, _080E49F8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r5, r1, 0 - cmp r0, 0x4 - bls _080E49EA - b _080E4C06 -_080E49EA: - lsls r0, 2 - ldr r1, _080E49FC @ =_080E4A00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E49F4: .4byte gBattle_BG1_X -_080E49F8: .4byte gTasks -_080E49FC: .4byte _080E4A00 - .align 2, 0 -_080E4A00: - .4byte _080E4A14 - .4byte _080E4A6C - .4byte _080E4A9C - .4byte _080E4AEC - .4byte _080E4C00 -_080E4A14: - ldr r1, _080E4A48 @ =REG_BLDCNT - ldr r3, _080E4A4C @ =0x00001842 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _080E4A50 @ =REG_BLDALPHA - ldr r6, _080E4A54 @ =0x00000808 - adds r2, r6, 0 - strh r2, [r0] - adds r1, 0x4 - movs r0, 0 - strh r0, [r1] - ldr r1, _080E4A58 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r3, r0, r1 - strh r2, [r3, 0x10] - ldr r0, _080E4A5C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E4A60 - movs r0, 0x10 - b _080E4A62 - .align 2, 0 -_080E4A48: .4byte REG_BLDCNT -_080E4A4C: .4byte 0x00001842 -_080E4A50: .4byte REG_BLDALPHA -_080E4A54: .4byte 0x00000808 -_080E4A58: .4byte gTasks -_080E4A5C: .4byte gBattleTypeFlags -_080E4A60: - movs r0, 0x1 -_080E4A62: - strh r0, [r3, 0xC] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] - b _080E4C06 -_080E4A6C: - ldr r0, _080E4A94 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E4A84 - b _080E4C06 -_080E4A84: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E4A98 @ =REG_WININ - movs r0, 0x3F - strh r0, [r1] - b _080E4C06 - .align 2, 0 -_080E4A94: .4byte gTasks -_080E4A98: .4byte REG_WININ -_080E4A9C: - ldr r1, _080E4ADC @ =gBattle_WIN0V - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4AB4 - b _080E4C06 -_080E4AB4: - ldr r0, _080E4AE0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x12] - ldr r2, _080E4AE4 @ =gUnknown_02024DE8 - ldrh r1, [r2] - ldr r0, _080E4AE8 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080E4C06 - .align 2, 0 -_080E4ADC: .4byte gBattle_WIN0V -_080E4AE0: .4byte gTasks -_080E4AE4: .4byte gUnknown_02024DE8 -_080E4AE8: .4byte 0x0000fffe -_080E4AEC: - lsls r0, r4, 2 - adds r1, r0, r4 - lsls r1, 3 - adds r2, r1, r5 - ldrh r3, [r2, 0xE] - movs r6, 0xE - ldrsh r1, [r2, r6] - mov r12, r0 - cmp r1, 0 - beq _080E4B06 - subs r0, r3, 0x1 - strh r0, [r2, 0xE] - b _080E4B26 -_080E4B06: - ldrh r1, [r2, 0x10] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - beq _080E4B26 - ldrh r0, [r2, 0x12] - subs r0, 0x1 - strh r0, [r2, 0x12] - lsls r0, 16 - cmp r0, 0 - bne _080E4B26 - adds r0, r1, 0 - adds r0, 0xFF - strh r0, [r2, 0x10] - movs r0, 0x6 - strh r0, [r2, 0x12] -_080E4B26: - ldr r2, _080E4BE0 @ =gBattle_WIN0V - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E4B3A - ldr r3, _080E4BE4 @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080E4B3A: - mov r6, r12 - adds r0, r6, r4 - lsls r0, 3 - adds r1, r0, r5 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E4B50 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E4B50: - movs r3, 0 - ldr r6, _080E4BE8 @ =gUnknown_03004DC0 - mov r8, r6 - ldr r7, _080E4BEC @ =gUnknown_03004DE0 - adds r5, r1, 0 -_080E4B5A: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E4B5A - cmp r3, 0x9F - bgt _080E4B9E - ldr r7, _080E4BEC @ =gUnknown_03004DE0 - ldr r6, _080E4BE8 @ =gUnknown_03004DC0 - ldr r1, _080E4BF0 @ =gTasks - mov r2, r12 - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r1 -_080E4B84: - lsls r2, r3, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - ldrh r0, [r5, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4B84 -_080E4B9E: - ldr r1, _080E4BF0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0xC - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _080E4C06 - movs r0, 0x3 - mov r6, r8 - strb r0, [r6, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - str r2, [sp] - ldr r1, _080E4BF4 @ =0x0600e000 - ldr r2, _080E4BF8 @ =0x05000200 - mov r0, sp - bl CpuSet - ldr r1, _080E4BFC @ =REG_BG1CNT - movs r2, 0x9C - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0xBC - lsls r3, 7 - adds r0, r3, 0 - strh r0, [r1] - b _080E4C06 - .align 2, 0 -_080E4BE0: .4byte gBattle_WIN0V -_080E4BE4: .4byte 0xfffffc04 -_080E4BE8: .4byte gUnknown_03004DC0 -_080E4BEC: .4byte gUnknown_03004DE0 -_080E4BF0: .4byte gTasks -_080E4BF4: .4byte 0x0600e000 -_080E4BF8: .4byte 0x05000200 -_080E4BFC: .4byte REG_BG1CNT -_080E4C00: - adds r0, r4, 0 - bl sub_80E443C -_080E4C06: - ldr r0, _080E4C2C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r2, r1, r0 - movs r6, 0x8 - ldrsh r0, [r2, r6] - cmp r0, 0x4 - beq _080E4C1E - ldr r1, _080E4C30 @ =REG_BLDALPHA - ldrh r0, [r2, 0x10] - strh r0, [r1] -_080E4C1E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E4C2C: .4byte gTasks -_080E4C30: .4byte REG_BLDALPHA - thumb_func_end task_battle_intro_anim - - thumb_func_start sub_80E4C34 -sub_80E4C34: @ 80E4C34 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080E4C80 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r7, r0, r1 - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - ble _080E4CAA - movs r2, 0x10 - ldrsh r0, [r7, r2] - cmp r0, 0 - bne _080E4CAA - ldr r2, _080E4C84 @ =gBattle_BG1_X - ldrh r1, [r2] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _080E4C72 - cmp r1, 0x4F - bhi _080E4C8C -_080E4C72: - adds r0, r1, 0x3 - strh r0, [r2] - ldr r1, _080E4C88 @ =gBattle_BG2_X - ldrh r0, [r1] - subs r0, 0x3 - strh r0, [r1] - b _080E4CAA - .align 2, 0 -_080E4C80: .4byte gTasks -_080E4C84: .4byte gBattle_BG1_X -_080E4C88: .4byte gBattle_BG2_X -_080E4C8C: - str r5, [sp] - ldr r1, _080E4CCC @ =0x0600e000 - ldr r4, _080E4CD0 @ =0x05000200 - mov r0, sp - adds r2, r4, 0 - bl CpuSet - str r5, [sp, 0x4] - add r0, sp, 0x4 - ldr r1, _080E4CD4 @ =0x0600f000 - adds r2, r4, 0 - bl CpuSet - movs r0, 0x1 - strh r0, [r7, 0x10] -_080E4CAA: - ldr r0, _080E4CD8 @ =gTasks - lsls r2, r6, 2 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - movs r3, 0x8 - ldrsh r1, [r1, r3] - mov r12, r0 - adds r5, r2, 0 - cmp r1, 0x4 - bls _080E4CC2 - b _080E4EBA -_080E4CC2: - lsls r0, r1, 2 - ldr r1, _080E4CDC @ =_080E4CE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E4CCC: .4byte 0x0600e000 -_080E4CD0: .4byte 0x05000200 -_080E4CD4: .4byte 0x0600f000 -_080E4CD8: .4byte gTasks -_080E4CDC: .4byte _080E4CE0 - .align 2, 0 -_080E4CE0: - .4byte _080E4CF4 - .4byte _080E4D06 - .4byte _080E4DA8 - .4byte _080E4DEC - .4byte _080E4EB4 -_080E4CF4: - adds r0, r5, r6 - lsls r0, 3 - add r0, r12 - movs r1, 0x10 - strh r1, [r0, 0xC] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080E4EBA -_080E4D06: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - ldrh r0, [r1, 0xC] - subs r0, 0x1 - strh r0, [r1, 0xC] - lsls r0, 16 - cmp r0, 0 - beq _080E4D1C - b _080E4EBA -_080E4D1C: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r5, _080E4D8C @ =gSprites - ldr r4, _080E4D90 @ =gSharedMem - ldr r3, _080E4D94 @ =0x0001608a - adds r6, r4, r3 - ldrb r0, [r6] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r1, 0x1] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - movs r3, 0x8 - mov r8, r3 - mov r3, r8 - orrs r0, r3 - strb r0, [r1, 0x1] - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r6, r5, 0 - adds r6, 0x1C - adds r0, r6 - ldr r3, _080E4D98 @ =sub_800FE20 - str r3, [r0] - ldr r0, _080E4D9C @ =0x0001608b - adds r4, r0 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r2, r1 - mov r1, r8 - orrs r2, r1 - strb r2, [r0, 0x1] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - str r3, [r0] - ldr r1, _080E4DA0 @ =REG_WININ - movs r0, 0x3F - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E4DA4 @ =0x00003f06 - b _080E4E94 - .align 2, 0 -_080E4D8C: .4byte gSprites -_080E4D90: .4byte gSharedMem -_080E4D94: .4byte 0x0001608a -_080E4D98: .4byte sub_800FE20 -_080E4D9C: .4byte 0x0001608b -_080E4DA0: .4byte REG_WININ -_080E4DA4: .4byte 0x00003f06 -_080E4DA8: - ldr r1, _080E4DE0 @ =gBattle_WIN0V - ldrh r0, [r1] - subs r0, 0xFF - strh r0, [r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - movs r1, 0xC0 - lsls r1, 6 - cmp r0, r1 - beq _080E4DC0 - b _080E4EBA -_080E4DC0: - adds r1, r5, r6 - lsls r1, 3 - add r1, r12 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xF0 - strh r0, [r1, 0xC] - movs r0, 0x20 - strh r0, [r1, 0xE] - ldr r2, _080E4DE4 @ =gUnknown_02024DE8 - ldrh r1, [r2] - ldr r0, _080E4DE8 @ =0x0000fffe - ands r0, r1 - strh r0, [r2] - b _080E4EBA - .align 2, 0 -_080E4DE0: .4byte gBattle_WIN0V -_080E4DE4: .4byte gUnknown_02024DE8 -_080E4DE8: .4byte 0x0000fffe -_080E4DEC: - ldr r2, _080E4E9C @ =gBattle_WIN0V - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _080E4E00 - ldr r3, _080E4EA0 @ =0xfffffc04 - adds r0, r1, r3 - strh r0, [r2] -_080E4E00: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _080E4E16 - subs r0, r2, 0x2 - strh r0, [r1, 0xC] -_080E4E16: - movs r3, 0 - ldr r0, _080E4EA4 @ =gUnknown_03004DC0 - mov r9, r0 - ldr r2, _080E4EA8 @ =gUnknown_03004DE0 - mov r8, r2 - mov r7, r9 - adds r4, r1, 0 -_080E4E24: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x4F - ble _080E4E24 - cmp r3, 0x9F - bgt _080E4E68 - ldr r0, _080E4EA8 @ =gUnknown_03004DE0 - mov r8, r0 - ldr r7, _080E4EA4 @ =gUnknown_03004DC0 - ldr r1, _080E4EAC @ =gTasks - adds r0, r5, r6 - lsls r0, 3 - adds r4, r0, r1 -_080E4E4E: - lsls r2, r3, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r8 - ldrh r0, [r4, 0xC] - negs r0, r0 - strh r0, [r2] - adds r3, 0x1 - cmp r3, 0x9F - ble _080E4E4E -_080E4E68: - adds r0, r5, r6 - lsls r0, 3 - mov r2, r12 - adds r1, r0, r2 - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080E4EBA - movs r0, 0x3 - mov r2, r9 - strb r0, [r2, 0x15] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - ldr r1, _080E4EB0 @ =REG_BG1CNT - movs r3, 0x9C - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0xBC - lsls r2, 7 -_080E4E94: - adds r0, r2, 0 - strh r0, [r1] - b _080E4EBA - .align 2, 0 -_080E4E9C: .4byte gBattle_WIN0V -_080E4EA0: .4byte 0xfffffc04 -_080E4EA4: .4byte gUnknown_03004DC0 -_080E4EA8: .4byte gUnknown_03004DE0 -_080E4EAC: .4byte gTasks -_080E4EB0: .4byte REG_BG1CNT -_080E4EB4: - adds r0, r6, 0 - bl sub_80E443C -_080E4EBA: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E4C34 - - thumb_func_start unref_sub_80E4EC8 -unref_sub_80E4EC8: @ 80E4EC8 - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0x80 - lsls r4, 7 - str r4, [sp] - movs r4, 0x1E - str r4, [sp, 0x4] - movs r4, 0x1 - str r4, [sp, 0x8] - bl sub_80E4EF8 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_80E4EC8 - - thumb_func_start sub_80E4EF8 -sub_80E4EF8: @ 80E4EF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r9, r1 - adds r4, r2, 0 - ldr r1, [sp, 0x24] - mov r8, r1 - ldr r1, [sp, 0x28] - ldr r5, [sp, 0x2C] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - mov r7, r9 - lsls r7, 24 - adds r0, r7, 0 - lsrs r0, 24 - mov r9, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - mov r3, r8 - lsls r3, 16 - mov r8, r3 - lsrs r6, r3, 16 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r5, 24 - lsrs r5, 24 - adds r0, r4, 0 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E4FCC @ =0x040000d4 - ldr r1, _080E4FD0 @ =gUnknown_081FAF4C - lsls r4, 2 - adds r4, r1 - ldr r1, _080E4FD4 @ =gBattleMonForms - adds r0, r1 - ldrb r1, [r0] - lsls r1, 11 - ldr r0, [r4] - adds r0, r1 - str r0, [r2] - movs r0, 0xC0 - lsls r0, 19 - adds r6, r0 - str r6, [r2, 0x4] - ldr r0, _080E4FD8 @ =0x80000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - mov r0, r8 - lsrs r0, 21 - lsls r5, 9 - subs r5, r0, r5 - mov r0, r9 - adds r1, r0, 0 - adds r1, 0x8 - cmp r0, r1 - bge _080E4FBC - mov r9, r1 - mov r1, r10 - lsls r1, 1 - mov r8, r1 - lsls r7, 11 - mov r12, r7 -_080E4F86: - mov r2, r10 - adds r4, r2, 0 - adds r4, 0x8 - adds r1, r0, 0x1 - cmp r2, r4 - bge _080E4FB6 - ldr r3, [sp] - lsls r6, r3, 12 - lsls r0, 6 - movs r7, 0xC0 - lsls r7, 19 - adds r0, r7 - add r0, r12 - mov r7, r8 - adds r3, r7, r0 - subs r2, r4, r2 -_080E4FA6: - adds r0, r5, 0 - orrs r0, r6 - strh r0, [r3] - adds r5, 0x1 - adds r3, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080E4FA6 -_080E4FB6: - adds r0, r1, 0 - cmp r0, r9 - blt _080E4F86 -_080E4FBC: - 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 -_080E4FCC: .4byte 0x040000d4 -_080E4FD0: .4byte gUnknown_081FAF4C -_080E4FD4: .4byte gBattleMonForms -_080E4FD8: .4byte 0x80000400 - thumb_func_end sub_80E4EF8 - - thumb_func_start unref_sub_80E4FDC -unref_sub_80E4FDC: @ 80E4FDC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, [sp, 0x24] - ldr r5, [sp, 0x28] - mov r8, r5 - ldr r5, [sp, 0x2C] - ldr r6, [sp, 0x30] - mov r9, r6 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 24 - lsls r2, 24 - lsls r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r10, r4 - mov r7, r8 - lsls r7, 16 - lsrs r6, r7, 16 - lsls r5, 24 - lsrs r5, 24 - mov r0, r9 - lsls r0, 24 - mov r9, r0 - ldr r4, _080E509C @ =0x040000d4 - ldr r0, _080E50A0 @ =gUnknown_081FAF4C - lsrs r2, 22 - adds r2, r0 - lsrs r3, 13 - ldr r0, [r2] - adds r0, r3 - str r0, [r4] - movs r0, 0xC0 - lsls r0, 19 - adds r6, r0 - str r6, [r4, 0x4] - ldr r0, _080E50A4 @ =0x80000400 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r2, r7, 0 - lsrs r2, 21 - mov r6, r9 - lsrs r6, 15 - subs r4, r2, r6 - lsrs r0, r1, 24 - adds r1, r0, 0 - adds r1, 0x8 - cmp r0, r1 - bge _080E508C - mov r9, r1 - mov r7, r12 - lsls r7, 1 - mov r8, r7 - lsls r5, 11 - str r5, [sp] -_080E5054: - mov r2, r12 - adds r3, r2, 0 - adds r3, 0x8 - adds r5, r0, 0x1 - cmp r2, r3 - bge _080E5086 - mov r1, r10 - lsls r6, r1, 12 - lsls r0, 6 - movs r7, 0xC0 - lsls r7, 19 - adds r0, r7 - ldr r1, [sp] - adds r0, r1, r0 - mov r7, r8 - adds r1, r7, r0 - subs r2, r3, r2 -_080E5076: - adds r0, r4, 0 - orrs r0, r6 - strh r0, [r1] - adds r4, 0x1 - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bne _080E5076 -_080E5086: - adds r0, r5, 0 - cmp r0, r9 - blt _080E5054 -_080E508C: - 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 -_080E509C: .4byte 0x040000d4 -_080E50A0: .4byte gUnknown_081FAF4C -_080E50A4: .4byte 0x80000400 - thumb_func_end unref_sub_80E4FDC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/bug.s b/asm/bug.s deleted file mode 100755 index 83170e9a7..000000000 --- a/asm/bug.s +++ /dev/null @@ -1,825 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - @ bug - - thumb_func_start sub_80DC824 -sub_80DC824: @ 80DC824 - push {r4-r6,lr} - adds r6, r0, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080DC850 - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - ldr r0, _080DC84C @ =gBattleAnimArgs - ldrh r1, [r0, 0x4] - negs r1, r1 - strh r1, [r0, 0x4] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] - b _080DC880 - .align 2, 0 -_080DC84C: .4byte gBattleAnimArgs -_080DC850: - ldr r0, _080DC8E4 @ =gAnimBankTarget - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080DC880 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r1, _080DC8E8 @ =gBattleAnimArgs - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080DC880: - ldr r5, _080DC8E4 @ =gAnimBankTarget - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077EE4 - lsls r0, 24 - ldr r4, _080DC8E8 @ =gBattleAnimArgs - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x6] - adds r0, r4 - strh r0, [r6, 0x36] - ldr r0, _080DC8EC @ =sub_8078B34 - str r0, [r6, 0x1C] - ldr r1, _080DC8F0 @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC8E4: .4byte gAnimBankTarget -_080DC8E8: .4byte gBattleAnimArgs -_080DC8EC: .4byte sub_8078B34 -_080DC8F0: .4byte DestroyAnimSprite - thumb_func_end sub_80DC824 - - thumb_func_start sub_80DC8F4 -sub_80DC8F4: @ 80DC8F4 - push {r4-r6,lr} - adds r6, r0, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080DC918 - ldr r1, _080DC914 @ =gBattleAnimArgs - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] - adds r0, r6, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _080DC934 - .align 2, 0 -_080DC914: .4byte gBattleAnimArgs -_080DC918: - ldr r0, _080DC990 @ =gAnimBankTarget - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080DC934 - ldr r0, _080DC994 @ =gBattleAnimArgs - ldrh r1, [r0, 0x2] - negs r1, r1 - strh r1, [r0, 0x2] - ldrh r1, [r0] - negs r1, r1 - strh r1, [r0] -_080DC934: - ldr r5, _080DC990 @ =gAnimBankTarget - ldrb r0, [r5] - movs r1, 0x2 - bl sub_8077EE4 - lsls r0, 24 - ldr r4, _080DC994 @ =gBattleAnimArgs - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x3 - bl sub_8077EE4 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r6, 0x22] - ldrh r0, [r4, 0x4] - strh r0, [r6, 0x2E] - ldrb r0, [r5] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x36] - ldr r0, _080DC998 @ =sub_8078B34 - str r0, [r6, 0x1C] - ldr r1, _080DC99C @ =DestroyAnimSprite - adds r0, r6, 0 - bl StoreSpriteCallbackInData - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC990: .4byte gAnimBankTarget -_080DC994: .4byte gBattleAnimArgs -_080DC998: .4byte sub_8078B34 -_080DC99C: .4byte DestroyAnimSprite - thumb_func_end sub_80DC8F4 - - thumb_func_start sub_80DC9A0 -sub_80DC9A0: @ 80DC9A0 - push {r4,r5,lr} - adds r5, r0, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080DC9BC - ldr r0, _080DC9FC @ =gBattleAnimArgs - movs r2, 0x4 - ldrsh r1, [r0, r2] - lsrs r2, r1, 31 - adds r1, r2 - asrs r1, 1 - strh r1, [r0, 0x4] -_080DC9BC: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r1, _080DC9FC @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x22] - strh r0, [r5, 0x34] - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080DCA04 - ldr r4, _080DCA00 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - b _080DCA16 - .align 2, 0 -_080DC9FC: .4byte gBattleAnimArgs -_080DCA00: .4byte gAnimBankTarget -_080DCA04: - ldr r0, _080DCA2C @ =gAnimBankTarget - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x32 - adds r3, r5, 0 - adds r3, 0x36 - movs r1, 0x1 - bl sub_807A3FC -_080DCA16: - adds r0, r5, 0 - bl sub_8078BD4 - ldr r0, _080DCA30 @ =gBattleAnimArgs - ldrh r0, [r0, 0x6] - strh r0, [r5, 0x38] - ldr r0, _080DCA34 @ =sub_80DCA38 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCA2C: .4byte gAnimBankTarget -_080DCA30: .4byte gBattleAnimArgs -_080DCA34: .4byte sub_80DCA38 - thumb_func_end sub_80DC9A0 - - thumb_func_start sub_80DCA38 -sub_80DCA38: @ 80DCA38 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078B5C - lsls r0, 24 - cmp r0, 0 - beq _080DCA4E - adds r0, r4, 0 - bl DestroyAnimSprite - b _080DCA6A -_080DCA4E: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3A] - adds r0, 0xD - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] -_080DCA6A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DCA38 - - thumb_func_start sub_80DCA70 -sub_80DCA70: @ 80DCA70 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DCAA0 @ =gAnimBankTarget - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC - ldr r0, _080DCAA4 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DCAAC - ldr r0, _080DCAA8 @ =gBattleAnimArgs - ldrh r1, [r4, 0x20] - ldrh r2, [r0] - subs r1, r2 - strh r1, [r4, 0x20] - b _080DCAB8 - .align 2, 0 -_080DCAA0: .4byte gAnimBankTarget -_080DCAA4: .4byte gAnimBankAttacker -_080DCAA8: .4byte gBattleAnimArgs -_080DCAAC: - ldr r1, _080DCAE0 @ =gBattleAnimArgs - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - adds r0, r1, 0 -_080DCAB8: - ldrh r0, [r0, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldr r0, _080DCAE4 @ =gAnimBankTarget - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080DCAD4 - ldrh r0, [r4, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] -_080DCAD4: - ldr r0, _080DCAE8 @ =sub_80DCAEC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DCAE0: .4byte gBattleAnimArgs -_080DCAE4: .4byte gAnimBankTarget -_080DCAE8: .4byte sub_80DCAEC - thumb_func_end sub_80DCA70 - - thumb_func_start sub_80DCAEC -sub_80DCAEC: @ 80DCAEC - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DCB20 - movs r0, 0 - strh r0, [r3, 0x2E] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - 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 - mov r1, r12 - strb r0, [r1] -_080DCB20: - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _080DCB34 - adds r0, r3, 0 - bl DestroyAnimSprite -_080DCB34: - pop {r0} - bx r0 - thumb_func_end sub_80DCAEC - - thumb_func_start sub_80DCB38 -sub_80DCB38: @ 80DCB38 - ldr r2, _080DCB54 @ =REG_BLDCNT - movs r3, 0xFD - lsls r3, 6 - adds r1, r3, 0 - strh r1, [r2] - adds r2, 0x2 - movs r1, 0x10 - strh r1, [r2] - movs r1, 0x10 - strh r1, [r0, 0x2E] - ldr r1, _080DCB58 @ =sub_80DCB5C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080DCB54: .4byte REG_BLDCNT -_080DCB58: .4byte sub_80DCB5C - thumb_func_end sub_80DCB38 - - thumb_func_start sub_80DCB5C -sub_80DCB5C: @ 80DCB5C - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x32] - movs r2, 0x32 - ldrsh r0, [r3, r2] - cmp r0, 0x13 - bgt _080DCB70 - adds r0, r1, 0x1 - strh r0, [r3, 0x32] - b _080DCBA8 -_080DCB70: - ldrh r1, [r3, 0x30] - adds r0, r1, 0x1 - strh r0, [r3, 0x30] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DCBA8 - ldrh r1, [r3, 0x2E] - subs r1, 0x1 - strh r1, [r3, 0x2E] - ldr r2, _080DCBAC @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080DCBA8 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DCBB0 @ =sub_80DCBB4 - str r0, [r3, 0x1C] -_080DCBA8: - pop {r0} - bx r0 - .align 2, 0 -_080DCBAC: .4byte REG_BLDALPHA -_080DCBB0: .4byte sub_80DCBB4 - thumb_func_end sub_80DCB5C - - thumb_func_start sub_80DCBB4 -sub_80DCBB4: @ 80DCBB4 - push {lr} - ldr r1, _080DCBC8 @ =REG_BLDCNT - movs r2, 0 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - bl DestroyAnimSprite - pop {r0} - bx r0 - .align 2, 0 -_080DCBC8: .4byte REG_BLDCNT - thumb_func_end sub_80DCBB4 - - thumb_func_start sub_80DCBCC -sub_80DCBCC: @ 80DCBCC - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080DCBEC - ldr r1, _080DCBE8 @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - b _080DCC0E - .align 2, 0 -_080DCBE8: .4byte gBattleAnimArgs -_080DCBEC: - ldr r0, _080DCCE8 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DCC0E - ldr r1, _080DCCEC @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] - ldrh r0, [r1, 0x2] - negs r0, r0 - strh r0, [r1, 0x2] - ldrh r0, [r1, 0x6] - negs r0, r0 - strh r0, [r1, 0x6] -_080DCC0E: - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080DCC5E - ldr r0, _080DCCE8 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - adds r4, r0, 0 - ldr r5, _080DCCF0 @ =gAnimBankTarget - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080DCC5E - ldrb r0, [r5] - bl GetBankIdentity - lsls r0, 24 - cmp r0, 0 - beq _080DCC4C - ldrb r0, [r5] - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DCC5E -_080DCC4C: - ldr r0, _080DCCEC @ =gBattleAnimArgs - movs r2, 0x4 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0, 0x4] - movs r2, 0 - ldrsh r1, [r0, r2] - negs r1, r1 - strh r1, [r0] -_080DCC5E: - adds r0, r7, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r5, _080DCCF0 @ =gAnimBankTarget - ldrb r0, [r5] - movs r1, 0x2 - bl GetBankPosition - adds r4, r0, 0 - lsls r4, 24 - ldr r6, _080DCCEC @ =gBattleAnimArgs - lsrs r4, 24 - ldrh r0, [r6, 0x4] - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - movs r1, 0x3 - bl GetBankPosition - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r6, 0x6] - adds r1, r2 - lsls r1, 16 - ldrh r2, [r7, 0x20] - lsls r0, r4, 16 - asrs r0, 16 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r7, 0x22] - lsrs r5, r1, 16 - asrs r1, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - ldrh r0, [r6, 0x8] - strh r0, [r7, 0x2E] - strh r4, [r7, 0x32] - strh r5, [r7, 0x36] - ldr r0, _080DCCF4 @ =sub_8078B34 - str r0, [r7, 0x1C] - ldr r1, _080DCCF8 @ =DestroyAnimSprite - adds r0, r7, 0 - bl StoreSpriteCallbackInData - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DCCE8: .4byte gAnimBankAttacker -_080DCCEC: .4byte gBattleAnimArgs -_080DCCF0: .4byte gAnimBankTarget -_080DCCF4: .4byte sub_8078B34 -_080DCCF8: .4byte DestroyAnimSprite - thumb_func_end sub_80DCBCC - - thumb_func_start sub_80DCCFC -sub_80DCCFC: @ 80DCCFC - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080DCD68 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DCD1C - ldr r1, _080DCD6C @ =gBattleAnimArgs - ldrh r0, [r1, 0x4] - negs r0, r0 - strh r0, [r1, 0x4] -_080DCD1C: - ldr r4, _080DCD6C @ =gBattleAnimArgs - ldrh r0, [r4, 0x8] - strh r0, [r6, 0x2E] - ldr r5, _080DCD70 @ =gAnimBankTarget - ldrb r0, [r5] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x4] - adds r0, r1 - strh r0, [r6, 0x32] - ldrb r0, [r5] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r6, 0x36] - ldrh r0, [r4, 0xA] - strh r0, [r6, 0x38] - adds r0, r6, 0 - bl sub_80786EC - ldr r0, _080DCD74 @ =sub_80DCD78 - str r0, [r6, 0x1C] - adds r2, r6, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DCD68: .4byte gAnimBankAttacker -_080DCD6C: .4byte gBattleAnimArgs -_080DCD70: .4byte gAnimBankTarget -_080DCD74: .4byte sub_80DCD78 - thumb_func_end sub_80DCCFC - - thumb_func_start sub_80DCD78 -sub_80DCD78: @ 80DCD78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080DCDA4 - adds r0, r4, 0 - bl DestroyAnimSprite - b _080DCE34 -_080DCDA4: - movs r0, 0x2E - adds r0, r4 - mov r8, r0 - ldrh r7, [r4, 0x20] - ldrh r5, [r4, 0x24] - ldrh r1, [r4, 0x22] - mov r12, r1 - ldrh r6, [r4, 0x26] - mov r2, r8 - add r1, sp, 0x4 - movs r3, 0x7 -_080DCDBA: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080DCDBA - adds r0, r7, r5 - lsls r0, 16 - lsrs r5, r0, 16 - mov r2, r12 - adds r0, r2, r6 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - bne _080DCE34 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - lsls r1, r5, 16 - asrs r1, 16 - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r1, r2 - lsls r2, r6, 16 - asrs r2, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - bl sub_80790F0 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 24 - adds r0, r1 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - adds r2, r3, 0 - bl sub_8078FDC - add r2, sp, 0x4 - mov r1, r8 - movs r3, 0x7 -_080DCE26: - ldrh r0, [r2] - strh r0, [r1] - adds r2, 0x2 - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080DCE26 -_080DCE34: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DCD78 - - thumb_func_start sub_80DCE40 -sub_80DCE40: @ 80DCE40 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DCE54 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DCE5C - ldr r4, _080DCE58 @ =gAnimBankAttacker - b _080DCE5E - .align 2, 0 -_080DCE54: .4byte gBattleAnimArgs -_080DCE58: .4byte gAnimBankAttacker -_080DCE5C: - ldr r4, _080DCE90 @ =gAnimBankTarget -_080DCE5E: - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x12 - strh r0, [r5, 0x22] - ldr r1, _080DCE94 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData - ldr r0, _080DCE98 @ =sub_80785E4 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCE90: .4byte gAnimBankTarget -_080DCE94: .4byte move_anim_8074EE0 -_080DCE98: .4byte sub_80785E4 - thumb_func_end sub_80DCE40 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/cable_car.s b/asm/cable_car.s deleted file mode 100644 index 52bc2668b..000000000 --- a/asm/cable_car.s +++ /dev/null @@ -1,2880 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_81231EC -sub_81231EC: @ 81231EC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08123210 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0812320A - ldr r0, _08123214 @ =sub_8123244 - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_0812320A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08123210: .4byte gPaletteFade -_08123214: .4byte sub_8123244 - thumb_func_end sub_81231EC - - thumb_func_start sub_8123218 -sub_8123218: @ 8123218 - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - ldr r0, _08123240 @ =sub_81231EC - movs r1, 0x1 - bl CreateTask - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08123240: .4byte sub_81231EC - thumb_func_end sub_8123218 - - thumb_func_start sub_8123244 -sub_8123244: @ 8123244 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - ldr r1, _08123268 @ =gMain - ldr r2, _0812326C @ =0x0000043c - adds r0, r1, r2 - ldrb r0, [r0] - mov r9, r1 - cmp r0, 0x8 - bhi _08123298 - lsls r0, 2 - ldr r1, _08123270 @ =_08123274 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08123268: .4byte gMain -_0812326C: .4byte 0x0000043c -_08123270: .4byte _08123274 - .align 2, 0 -_08123274: - .4byte _08123298 - .4byte _08123384 - .4byte _081233E8 - .4byte _08123484 - .4byte _081234A0 - .4byte _08123504 - .4byte _08123598 - .4byte _08123678 - .4byte _081236B0 -_08123298: - movs r0, 0 - bl SetVBlankCallback - bl remove_some_task - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0xC - mov r9, r0 - add r2, sp, 0x8 - movs r6, 0 - ldr r1, _08123368 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _0812336C @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r8, r0 -_081232C0: - strh r6, [r2] - add r0, sp, 0x8 - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _081232C0 - strh r6, [r2] - add r2, sp, 0x8 - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0xC] - ldr r2, _08123368 @ =0x040000d4 - mov r1, r9 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - add r0, sp, 0x8 - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r4, 0x81 - lsls r4, 24 - orrs r3, r4 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r1, _08123370 @ =gUnknown_02039274 - ldr r0, _08123374 @ =gSharedMem + 0x17000 - str r0, [r1] - adds r3, r0, 0 - ldr r5, _08123378 @ =0x000010fc - ldr r0, _0812337C @ =gMain - mov r9, r0 - add r1, sp, 0x8 - movs r7, 0 - movs r6, 0x80 - lsls r6, 5 - ldr r0, _0812336C @ =0x81000800 - mov r8, r0 -_08123338: - strh r7, [r1] - add r0, sp, 0x8 - str r0, [r2] - str r3, [r2, 0x4] - mov r0, r8 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - adds r3, r6 - subs r5, r6 - cmp r5, r6 - bhi _08123338 - strh r7, [r1] - add r1, sp, 0x8 - str r1, [r2] - str r3, [r2, 0x4] - lsrs r0, r5, 1 - orrs r0, r4 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r1, _08123380 @ =0x0000043c - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123368: .4byte 0x040000d4 -_0812336C: .4byte 0x81000800 -_08123370: .4byte gUnknown_02039274 -_08123374: .4byte gSharedMem + 0x17000 -_08123378: .4byte 0x000010fc -_0812337C: .4byte gMain -_08123380: .4byte 0x0000043c -_08123384: - bl ResetSpriteData - bl ResetTasks - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl StartWeather - movs r4, 0 - ldr r0, _081233D4 @ =gWeatherPtr - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xF0 - movs r2, 0 -_081233A4: - lsls r0, r4, 2 - adds r0, r1, r0 - str r2, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _081233A4 - bl InitMapMusic - bl ResetMapMusic - ldr r2, _081233D8 @ =gSpriteCoordOffsetX - ldr r1, _081233DC @ =gSpriteCoordOffsetY - movs r0, 0 - strh r0, [r1] - strh r0, [r2] - ldr r1, _081233E0 @ =gMain - ldr r2, _081233E4 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_081233D4: .4byte gWeatherPtr -_081233D8: .4byte gSpriteCoordOffsetX -_081233DC: .4byte gSpriteCoordOffsetY -_081233E0: .4byte gMain -_081233E4: .4byte 0x0000043c -_081233E8: - movs r4, 0 - ldr r5, _08123454 @ =gUnknown_08401CF8 -_081233EC: - lsls r0, r4, 3 - adds r0, r5 - bl LoadCompressedObjectPic - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081233EC - ldr r0, _08123458 @ =gUnknown_08401D18 - bl LoadSpritePalettes - ldr r0, _0812345C @ =gCableCarMtChimneyTilemap - ldr r4, _08123460 @ =gSharedMem + 0x19000 - adds r1, r4, 0 - bl LZDecompressWram - ldr r0, _08123464 @ =gCableCarTreeTilemap - movs r2, 0xB4 - lsls r2, 1 - adds r1, r4, r2 - bl LZDecompressWram - ldr r0, _08123468 @ =gCableCarMountainTilemap - movs r2, 0xA5 - lsls r2, 3 - adds r1, r4, r2 - bl LZDecompressWram - ldr r0, _0812346C @ =gCableCarPylonStemTilemap - ldr r1, _08123470 @ =0x000009d8 - adds r4, r1 - adds r1, r4, 0 - bl LZDecompressWram - ldr r0, _08123474 @ =gCableCarBG_Pal - movs r1, 0 - movs r2, 0x80 - bl LoadPalette - ldr r0, _08123478 @ =gCableCarBG_Gfx - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r1, _0812347C @ =gMain - ldr r2, _08123480 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123454: .4byte gUnknown_08401CF8 -_08123458: .4byte gUnknown_08401D18 -_0812345C: .4byte gCableCarMtChimneyTilemap -_08123460: .4byte gSharedMem + 0x19000 -_08123464: .4byte gCableCarTreeTilemap -_08123468: .4byte gCableCarMountainTilemap -_0812346C: .4byte gCableCarPylonStemTilemap -_08123470: .4byte 0x000009d8 -_08123474: .4byte gCableCarBG_Pal -_08123478: .4byte gCableCarBG_Gfx -_0812347C: .4byte gMain -_08123480: .4byte 0x0000043c -_08123484: - bl sub_8124118 - bl RunTasks - ldr r1, _08123498 @ =gMain - ldr r0, _0812349C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123498: .4byte gMain -_0812349C: .4byte 0x0000043c -_081234A0: - ldr r0, _081234B4 @ =gUnknown_02039274 - ldr r0, [r0] - ldrb r0, [r0, 0x2] - cmp r0, 0x7 - bne _081234BC - ldr r1, _081234B8 @ =0x0000043c - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_081234B4: .4byte gUnknown_02039274 -_081234B8: .4byte 0x0000043c -_081234BC: - ldr r0, _081234FC @ =gWeatherPtr - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xF0 - ldr r0, [r1] - cmp r0, 0 - bne _081234CC - b _0812370E -_081234CC: - movs r4, 0 - adds r3, r1, 0 - movs r5, 0xD - negs r5, r5 -_081234D4: - lsls r0, r4, 2 - adds r0, r3, r0 - ldr r2, [r0] - cmp r2, 0 - beq _081234E6 - ldrb r1, [r2, 0x5] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2, 0x5] -_081234E6: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _081234D4 - ldr r1, _08123500 @ =0x0000043c - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_081234FC: .4byte gWeatherPtr -_08123500: .4byte 0x0000043c -_08123504: - ldr r0, _08123578 @ =0x0600e800 - ldr r5, _0812357C @ =gSharedMem + 0x19168 - movs r1, 0x20 - str r1, [sp] - movs r1, 0xF - str r1, [sp, 0x4] - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x11 - bl sub_8124F08 - ldr r0, _08123580 @ =0x0600f000 - movs r2, 0xF0 - lsls r2, 2 - adds r1, r5, r2 - movs r2, 0x1E - str r2, [sp] - movs r2, 0x14 - mov r9, r2 - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8124F08 - ldr r0, _08123584 @ =gUnknown_02039274 - mov r8, r0 - ldr r0, [r0] - ldr r6, _08123588 @ =0x000008fc - adds r0, r6 - ldr r1, _0812358C @ =gCableCarPylonHookTilemapEntries - movs r2, 0x5 - str r2, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, r6 - movs r2, 0x87 - lsls r2, 4 - adds r5, r2 - str r4, [sp] - mov r1, r9 - str r1, [sp, 0x4] - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x2 - bl sub_8124F08 - ldr r1, _08123590 @ =gMain - ldr r2, _08123594 @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123578: .4byte 0x0600e800 -_0812357C: .4byte gSharedMem + 0x19168 -_08123580: .4byte 0x0600f000 -_08123584: .4byte gUnknown_02039274 -_08123588: .4byte 0x000008fc -_0812358C: .4byte gCableCarPylonHookTilemapEntries -_08123590: .4byte gMain -_08123594: .4byte 0x0000043c -_08123598: - ldr r0, _08123664 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_81248AC - ldr r0, _08123668 @ =gUnknown_02039274 - mov r8, r0 - ldr r0, [r0] - adds r0, 0xFC - ldr r4, _0812366C @ =gSharedMem + 0x19090 - movs r6, 0xC - str r6, [sp] - movs r5, 0x3 - str r5, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0xE - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xFC - adds r1, r4, 0 - adds r1, 0x48 - str r6, [sp] - str r5, [sp, 0x4] - movs r2, 0xC - movs r3, 0x11 - bl sub_8124F08 - mov r2, r8 - ldr r0, [r2] - adds r0, 0xFC - adds r1, r4, 0 - adds r1, 0x90 - str r6, [sp] - str r5, [sp, 0x4] - movs r2, 0x18 - movs r3, 0x14 - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xFC - movs r2, 0x90 - negs r2, r2 - adds r2, r4 - mov r9, r2 - str r6, [sp] - str r5, [sp, 0x4] - mov r1, r9 - movs r2, 0 - movs r3, 0x11 - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xFC - subs r4, 0x48 - str r6, [sp] - str r5, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x14 - bl sub_8124F08 - mov r2, r8 - ldr r0, [r2] - adds r0, 0xFC - str r6, [sp] - str r5, [sp, 0x4] - mov r1, r9 - movs r2, 0xC - movs r3, 0x14 - bl sub_8124F08 - mov r1, r8 - ldr r0, [r1] - adds r0, 0xFC - str r6, [sp] - str r5, [sp, 0x4] - adds r1, r4, 0 - movs r2, 0xC - movs r3, 0x17 - bl sub_8124F08 - mov r2, r8 - ldr r0, [r2] - adds r0, 0xFC - str r6, [sp] - str r5, [sp, 0x4] - mov r1, r9 - movs r2, 0x18 - movs r3, 0x17 - bl sub_8124F08 - ldr r1, _08123670 @ =gMain - ldr r0, _08123674 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_08123664: .4byte gSpecialVar_0x8004 -_08123668: .4byte gUnknown_02039274 -_0812366C: .4byte gSharedMem + 0x19090 -_08123670: .4byte gMain -_08123674: .4byte 0x0000043c -_08123678: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x3 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _081236A4 @ =0x000001a9 - movs r1, 0x1 - bl FadeInNewBGM - movs r0, 0x1 - bl sub_8123FBC - ldr r1, _081236A8 @ =gMain - ldr r2, _081236AC @ =0x0000043c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - b _0812370C - .align 2, 0 -_081236A4: .4byte 0x000001a9 -_081236A8: .4byte gMain -_081236AC: .4byte 0x0000043c -_081236B0: - ldr r3, _081236E4 @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _081236E8 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, _081236EC @ =sub_8123C40 - bl SetVBlankCallback - ldr r0, _081236F0 @ =sub_8123724 - bl SetMainCallback2 - ldr r0, _081236F4 @ =sub_8123878 - movs r1, 0 - bl CreateTask - ldr r0, _081236F8 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _08123700 - ldr r0, _081236FC @ =sub_81239E4 - b _08123702 - .align 2, 0 -_081236E4: .4byte 0x04000208 -_081236E8: .4byte 0x04000200 -_081236EC: .4byte sub_8123C40 -_081236F0: .4byte sub_8123724 -_081236F4: .4byte sub_8123878 -_081236F8: .4byte gSpecialVar_0x8004 -_081236FC: .4byte sub_81239E4 -_08123700: - ldr r0, _0812371C @ =sub_8123AF8 -_08123702: - movs r1, 0x1 - bl CreateTask - ldr r1, _08123720 @ =gUnknown_02039274 - ldr r1, [r1] -_0812370C: - strb r0, [r1] -_0812370E: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812371C: .4byte sub_8123AF8 -_08123720: .4byte gUnknown_02039274 - thumb_func_end sub_8123244 - - thumb_func_start sub_8123724 -sub_8123724: @ 8123724 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl MapMusicMain - pop {r0} - bx r0 - thumb_func_end sub_8123724 - - thumb_func_start sub_8123740 -sub_8123740: @ 8123740 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r4, 0 - movs r0, 0 - bl sub_8123FBC - ldr r0, _08123854 @ =gSpriteCoordOffsetX - strh r4, [r0] - movs r0, 0 - bl sub_807C9B4 - add r7, sp, 0x4 - ldr r0, _08123858 @ =gWeatherPtr - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0xF0 - movs r2, 0 -_08123766: - lsls r0, r4, 2 - adds r0, r1, r0 - str r2, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _08123766 - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - ldr r2, _0812385C @ =gSharedMem - movs r3, 0x80 - lsls r3, 10 - movs r5, 0 - ldr r1, _08123860 @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - ldr r6, _08123864 @ =0x85000400 - movs r0, 0x85 - lsls r0, 24 - mov r12, r0 -_08123798: - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r6, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _08123798 - str r5, [sp] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, _08123868 @ =gUnknown_02039274 - movs r0, 0 - str r0, [r1] - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - adds r2, r7, 0 - movs r6, 0 - ldr r1, _08123860 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r0, _0812386C @ =0x81000800 - mov r12, r0 - movs r0, 0x81 - lsls r0, 24 - mov r8, r0 -_081237E0: - strh r6, [r2] - str r2, [r1] - str r3, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _081237E0 - strh r6, [r7] - str r7, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r8 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp] - ldr r2, _08123860 @ =0x040000d4 - mov r1, sp - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0xA0 - lsls r0, 19 - strh r4, [r7] - str r7, [r2] - str r0, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - bl warp_in - ldr r0, _08123870 @ =gFieldCallback - str r4, [r0] - ldr r0, _08123874 @ =CB2_LoadMap - bl SetMainCallback2 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08123854: .4byte gSpriteCoordOffsetX -_08123858: .4byte gWeatherPtr -_0812385C: .4byte gSharedMem -_08123860: .4byte 0x040000d4 -_08123864: .4byte 0x85000400 -_08123868: .4byte gUnknown_02039274 -_0812386C: .4byte 0x81000800 -_08123870: .4byte gFieldCallback -_08123874: .4byte CB2_LoadMap - thumb_func_end sub_8123740 - - thumb_func_start sub_8123878 -sub_8123878: @ 8123878 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r5, _081238A4 @ =gUnknown_02039274 - ldr r3, [r5] - ldrh r0, [r3, 0x6] - adds r0, 0x1 - strh r0, [r3, 0x6] - ldrb r2, [r3, 0x1] - adds r7, r5, 0 - cmp r2, 0x2 - beq _0812397E - cmp r2, 0x2 - bgt _081238A8 - cmp r2, 0 - beq _081238B6 - cmp r2, 0x1 - beq _081238D0 - b _081239D6 - .align 2, 0 -_081238A4: .4byte gUnknown_02039274 -_081238A8: - cmp r2, 0x3 - bne _081238AE - b _081239A4 -_081238AE: - cmp r2, 0xFF - bne _081238B4 - b _081239BC -_081238B4: - b _081239D6 -_081238B6: - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r3, 0x4] - cmp r0, r1 - beq _081238C2 - b _081239D6 -_081238C2: - ldrb r0, [r3, 0x2] - bl DoWeatherEffect - ldr r1, [r5] - movs r0, 0x1 - strb r0, [r1, 0x1] - b _081239D6 -_081238D0: - ldrb r0, [r3, 0x2] - cmp r0, 0x2 - beq _08123924 - cmp r0, 0x7 - beq _081238DC - b _081239D6 -_081238DC: - ldr r0, _08123920 @ =gWeatherPtr - ldr r0, [r0] - adds r2, r0, 0 - adds r2, 0xF0 - ldr r0, [r2] - cmp r0, 0 - beq _081239D6 - ldrb r1, [r0, 0x5] - movs r0, 0xC - ands r0, r1 - cmp r0, 0 - beq _081239D6 - adds r3, r2, 0 - movs r5, 0xD - negs r5, r5 -_081238FA: - lsls r0, r4, 2 - adds r0, r3, r0 - ldr r2, [r0] - cmp r2, 0 - beq _0812390C - ldrb r1, [r2, 0x5] - adds r0, r5, 0 - ands r0, r1 - strb r0, [r2, 0x5] -_0812390C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _081238FA - ldr r1, [r7] - movs r0, 0x2 - strb r0, [r1, 0x1] - b _081239D6 - .align 2, 0 -_08123920: .4byte gWeatherPtr -_08123924: - ldr r0, _08123938 @ =gWeatherPtr - ldr r2, [r0] - movs r1, 0xDA - lsls r1, 3 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _0812393C - strb r0, [r3, 0x1] - b _081239D6 - .align 2, 0 -_08123938: .4byte gWeatherPtr -_0812393C: - ldrh r1, [r3, 0x6] - ldrh r0, [r3, 0x4] - adds r0, 0x8 - cmp r1, r0 - blt _081239D6 - adds r6, r2, 0 - adds r6, 0xF0 - movs r5, 0x1 - movs r7, 0x5 - negs r7, r7 -_08123950: - lsls r0, r4, 2 - adds r0, r6, r0 - ldr r0, [r0] - cmp r0, 0 - beq _08123972 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r1, r2, 29 - lsrs r1, 31 - eors r1, r5 - ands r1, r5 - lsls r1, 2 - adds r0, r7, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08123972: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x13 - bls _08123950 - b _081239D6 -_0812397E: - lsls r1, r0, 16 - ldr r0, _081239A0 @ =0x023a0000 - cmp r1, r0 - bne _081239D6 - movs r0, 0x3 - strb r0, [r3, 0x1] - subs r0, 0x4 - str r4, [sp] - movs r1, 0x3 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x4 - bl FadeOutBGM - b _081239D6 - .align 2, 0 -_081239A0: .4byte 0x023a0000 -_081239A4: - ldr r0, _081239B8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081239D6 - movs r0, 0xFF - strb r0, [r3, 0x1] - b _081239D6 - .align 2, 0 -_081239B8: .4byte gPaletteFade -_081239BC: - movs r0, 0 - bl SetVBlankCallback - adds r0, r6, 0 - bl DestroyTask - ldr r0, [r5] - ldrb r0, [r0] - bl DestroyTask - ldr r0, _081239E0 @ =sub_8123740 - bl SetMainCallback2 -_081239D6: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081239E0: .4byte sub_8123740 - thumb_func_end sub_8123878 - - thumb_func_start sub_81239E4 -sub_81239E4: @ 81239E4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _08123A38 @ =gUnknown_02039274 - ldr r1, [r6] - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _08123AC0 - ldrb r0, [r1, 0x14] - subs r0, 0x1 - strb r0, [r1, 0x14] - ldr r1, [r6] - ldrh r0, [r1, 0x6] - movs r3, 0x1 - ands r0, r3 - cmp r0, 0 - bne _08123A0A - ldrb r0, [r1, 0x15] - subs r0, 0x1 - strb r0, [r1, 0x15] -_08123A0A: - ldr r2, [r6] - ldrh r0, [r2, 0x6] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08123A24 - ldrb r0, [r2, 0xC] - subs r0, 0x1 - strb r0, [r2, 0xC] - ldr r1, [r6] - ldrb r0, [r1, 0xD] - subs r0, 0x1 - strb r0, [r1, 0xD] -_08123A24: - ldr r0, [r6] - ldrb r1, [r0, 0x14] - cmp r1, 0x20 - beq _08123A74 - cmp r1, 0x20 - bgt _08123A3C - cmp r1, 0x10 - beq _08123A90 - b _08123AC0 - .align 2, 0 -_08123A38: .4byte gUnknown_02039274 -_08123A3C: - cmp r1, 0x28 - beq _08123A60 - cmp r1, 0xAF - bne _08123AC0 - ldr r1, _08123A5C @ =0x000008fc - adds r0, r1 - movs r1, 0x2 - str r1, [sp] - movs r1, 0xA - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0x16 - bl sub_8124E7C - b _08123AC0 - .align 2, 0 -_08123A5C: .4byte 0x000008fc -_08123A60: - ldr r1, _08123A70 @ =0x000008fc - adds r0, r1 - movs r1, 0x2 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x3 - b _08123A82 - .align 2, 0 -_08123A70: .4byte 0x000008fc -_08123A74: - ldr r1, _08123A8C @ =0x000008fc - adds r0, r1 - str r3, [sp] - movs r1, 0x2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x2 -_08123A82: - movs r3, 0 - bl sub_8124E7C - b _08123AC0 - .align 2, 0 -_08123A8C: .4byte 0x000008fc -_08123A90: - ldr r5, _08123AE8 @ =0x000008fc - adds r0, r5 - ldr r1, _08123AEC @ =gCableCarPylonHookTilemapEntries - movs r2, 0x5 - str r2, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8124F08 - ldr r0, [r6] - adds r0, r5 - ldr r1, _08123AF0 @ =gSharedMem + 0x199D8 - str r4, [sp] - movs r2, 0x1E - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0x2 - bl sub_8124F08 - ldr r1, [r6] - movs r0, 0x40 - strb r0, [r1, 0x15] -_08123AC0: - bl sub_812453C - ldr r3, _08123AF4 @ =gSpriteCoordOffsetX - movs r0, 0 - ldrsh r2, [r3, r0] - adds r1, r2, 0x1 - adds r0, r1, 0 - cmp r1, 0 - bge _08123AD6 - adds r0, r2, 0 - adds r0, 0x80 -_08123AD6: - asrs r0, 7 - lsls r0, 7 - subs r0, r1, r0 - strh r0, [r3] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08123AE8: .4byte 0x000008fc -_08123AEC: .4byte gCableCarPylonHookTilemapEntries -_08123AF0: .4byte gSharedMem + 0x199D8 -_08123AF4: .4byte gSpriteCoordOffsetX - thumb_func_end sub_81239E4 - - thumb_func_start sub_8123AF8 -sub_8123AF8: @ 8123AF8 - push {r4-r6,lr} - sub sp, 0x8 - ldr r6, _08123B4C @ =gUnknown_02039274 - ldr r1, [r6] - ldrb r0, [r1, 0x1] - cmp r0, 0xFF - beq _08123BEE - ldrb r0, [r1, 0x14] - adds r0, 0x1 - strb r0, [r1, 0x14] - ldr r2, [r6] - ldrh r0, [r2, 0x6] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08123B1E - ldrb r0, [r2, 0x15] - adds r0, 0x1 - strb r0, [r2, 0x15] -_08123B1E: - ldr r2, [r6] - ldrh r0, [r2, 0x6] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08123B38 - ldrb r0, [r2, 0xC] - adds r0, 0x1 - strb r0, [r2, 0xC] - ldr r1, [r6] - ldrb r0, [r1, 0xD] - adds r0, 0x1 - strb r0, [r1, 0xD] -_08123B38: - ldr r3, [r6] - ldrb r0, [r3, 0x14] - cmp r0, 0x20 - beq _08123BB0 - cmp r0, 0x20 - bgt _08123B50 - cmp r0, 0x10 - beq _08123B78 - b _08123BEE - .align 2, 0 -_08123B4C: .4byte gUnknown_02039274 -_08123B50: - cmp r0, 0x28 - beq _08123BDC - cmp r0, 0xB0 - bne _08123BEE - ldr r1, _08123B70 @ =0x000008fc - adds r0, r3, r1 - ldr r1, _08123B74 @ =gSharedMem + 0x199D8 - movs r2, 0x2 - str r2, [sp] - movs r2, 0x1E - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0x2 - bl sub_8124F08 - b _08123BEE - .align 2, 0 -_08123B70: .4byte 0x000008fc -_08123B74: .4byte gSharedMem + 0x199D8 -_08123B78: - ldr r5, _08123BAC @ =0x000008fc - adds r0, r3, r5 - movs r1, 0x3 - str r1, [sp] - movs r4, 0x2 - str r4, [sp, 0x4] - movs r1, 0 - movs r2, 0x2 - movs r3, 0 - bl sub_8124E7C - ldr r0, [r6] - adds r0, r5 - str r4, [sp] - movs r1, 0xA - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0x16 - bl sub_8124E7C - ldr r1, [r6] - movs r0, 0xC0 - strb r0, [r1, 0x15] - b _08123BEE - .align 2, 0 -_08123BAC: .4byte 0x000008fc -_08123BB0: - ldr r1, _08123BD4 @ =gCableCarPylonHookTilemapEntries + 0x4 - ldrh r2, [r1] - movs r4, 0x90 - lsls r4, 4 - adds r0, r3, r4 - strh r2, [r0] - ldrh r2, [r1, 0x2] - adds r4, 0x2 - adds r0, r3, r4 - strh r2, [r0] - ldrh r2, [r1, 0xA] - adds r4, 0x3E - adds r0, r3, r4 - strh r2, [r0] - ldrh r1, [r1, 0xC] - ldr r2, _08123BD8 @ =0x00000942 - b _08123BEA - .align 2, 0 -_08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4 -_08123BD8: .4byte 0x00000942 -_08123BDC: - ldr r2, _08123C08 @ =gCableCarPylonHookTilemapEntries + 0x8 - ldrh r1, [r2] - ldr r4, _08123C0C @ =0x00000904 - adds r0, r3, r4 - strh r1, [r0] - ldrh r1, [r2, 0xA] - ldr r2, _08123C10 @ =0x00000944 -_08123BEA: - adds r0, r3, r2 - strh r1, [r0] -_08123BEE: - bl sub_8124598 - ldr r0, _08123C14 @ =gUnknown_02039274 - ldr r1, [r0] - ldrh r0, [r1, 0x6] - ldrh r1, [r1, 0x4] - cmp r0, r1 - bcs _08123C1C - ldr r4, _08123C18 @ =gSpriteCoordOffsetX - movs r1, 0 - ldrsh r0, [r4, r1] - b _08123C26 - .align 2, 0 -_08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8 -_08123C0C: .4byte 0x00000904 -_08123C10: .4byte 0x00000944 -_08123C14: .4byte gUnknown_02039274 -_08123C18: .4byte gSpriteCoordOffsetX -_08123C1C: - ldr r0, _08123C38 @ =gWeatherPtr - ldr r4, [r0] - ldr r2, _08123C3C @ =0x000006fc - adds r4, r2 - ldrh r0, [r4] -_08123C26: - adds r0, 0xF7 - movs r1, 0xF8 - bl __modsi3 - strh r0, [r4] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08123C38: .4byte gWeatherPtr -_08123C3C: .4byte 0x000006fc - thumb_func_end sub_8123AF8 - - thumb_func_start sub_8123C40 -sub_8123C40: @ 8123C40 - push {r4,lr} - ldr r1, _08123C9C @ =0x040000d4 - ldr r0, _08123CA0 @ =gUnknown_02039274 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xFC - str r0, [r1] - ldr r0, _08123CA4 @ =0x0600e000 - str r0, [r1, 0x4] - ldr r3, _08123CA8 @ =0x80000400 - str r3, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r4, _08123CAC @ =0x000008fc - adds r0, r2, r4 - str r0, [r1] - ldr r0, _08123CB0 @ =0x0600f800 - str r0, [r1, 0x4] - str r3, [r1, 0x8] - ldr r0, [r1, 0x8] - subs r1, 0xB8 - ldrb r0, [r2, 0x14] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x15] - strh r0, [r1] - subs r1, 0xA - ldrb r0, [r2, 0xC] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0xD] - strh r0, [r1] - subs r1, 0x6 - ldrb r0, [r2, 0x8] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x9] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08123C9C: .4byte 0x040000d4 -_08123CA0: .4byte gUnknown_02039274 -_08123CA4: .4byte 0x0600e000 -_08123CA8: .4byte 0x80000400 -_08123CAC: .4byte 0x000008fc -_08123CB0: .4byte 0x0600f800 - thumb_func_end sub_8123C40 - - thumb_func_start nullsub_76 -nullsub_76: @ 8123CB4 - bx lr - thumb_func_end nullsub_76 - - thumb_func_start sub_8123CB8 -sub_8123CB8: @ 8123CB8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _08123D20 @ =gUnknown_02039274 - ldr r6, [r0] - ldrb r0, [r6, 0x1] - cmp r0, 0xFF - beq _08123D84 - ldr r0, _08123D24 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _08123D34 - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123CE2 - ldr r1, _08123D28 @ =0x47800000 - bl __addsf3 -_08123CE2: - ldr r1, _08123D2C @ =0x3e0f5c29 - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2E] - subs r1, r0 - strh r1, [r5, 0x20] - movs r1, 0x6 - ldrsh r4, [r6, r1] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123D0A - ldr r1, _08123D28 @ =0x47800000 - bl __addsf3 -_08123D0A: - ldr r1, _08123D30 @ =0x3d89374c - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - subs r1, r0 - strh r1, [r5, 0x22] - b _08123D84 - .align 2, 0 -_08123D20: .4byte gUnknown_02039274 -_08123D24: .4byte gSpecialVar_0x8004 -_08123D28: .4byte 0x47800000 -_08123D2C: .4byte 0x3e0f5c29 -_08123D30: .4byte 0x3d89374c -_08123D34: - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123D48 - ldr r1, _08123D8C @ =0x47800000 - bl __addsf3 -_08123D48: - ldr r1, _08123D90 @ =0x3e0f5c29 - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2E] - adds r0, r1 - strh r0, [r5, 0x20] - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123D70 - ldr r1, _08123D8C @ =0x47800000 - bl __addsf3 -_08123D70: - ldr r1, _08123D94 @ =0x3d89374c - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x22] -_08123D84: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08123D8C: .4byte 0x47800000 -_08123D90: .4byte 0x3e0f5c29 -_08123D94: .4byte 0x3d89374c - thumb_func_end sub_8123CB8 - - thumb_func_start sub_8123D98 -sub_8123D98: @ 8123D98 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _08123E04 @ =gUnknown_02039274 - ldr r6, [r0] - ldrb r0, [r6, 0x1] - cmp r0, 0xFF - bne _08123DA8 - b _08123EB0 -_08123DA8: - ldr r0, _08123E08 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _08123E18 - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123DC4 - ldr r1, _08123E0C @ =0x47800000 - bl __addsf3 -_08123DC4: - ldr r1, _08123E10 @ =0x3e0f5c29 - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2E] - subs r1, r0 - strh r1, [r5, 0x20] - movs r1, 0x6 - ldrsh r4, [r6, r1] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123DEC - ldr r1, _08123E0C @ =0x47800000 - bl __addsf3 -_08123DEC: - ldr r1, _08123E14 @ =0x3d89374c - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - subs r1, r0 - strh r1, [r5, 0x22] - b _08123E68 - .align 2, 0 -_08123E04: .4byte gUnknown_02039274 -_08123E08: .4byte gSpecialVar_0x8004 -_08123E0C: .4byte 0x47800000 -_08123E10: .4byte 0x3e0f5c29 -_08123E14: .4byte 0x3d89374c -_08123E18: - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123E2C - ldr r1, _08123E8C @ =0x47800000 - bl __addsf3 -_08123E2C: - ldr r1, _08123E90 @ =0x3e0f5c29 - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2E] - adds r0, r1 - strh r0, [r5, 0x20] - movs r0, 0x6 - ldrsh r4, [r6, r0] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08123E54 - ldr r1, _08123E8C @ =0x47800000 - bl __addsf3 -_08123E54: - ldr r1, _08123E94 @ =0x3d89374c - bl __mulsf3 - bl __fixunssfsi - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x22] -_08123E68: - movs r0, 0x32 - ldrsh r2, [r5, r0] - cmp r2, 0 - bne _08123E98 - movs r0, 0x11 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x34] - adds r1, r0, 0x1 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _08123EB0 - strh r2, [r5, 0x34] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - b _08123EB0 - .align 2, 0 -_08123E8C: .4byte 0x47800000 -_08123E90: .4byte 0x3e0f5c29 -_08123E94: .4byte 0x3d89374c -_08123E98: - movs r2, 0 - movs r0, 0x10 - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x34] - adds r1, r0, 0x1 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _08123EB0 - strh r2, [r5, 0x34] - strh r2, [r5, 0x32] -_08123EB0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8123D98 - - thumb_func_start sub_8123EB8 -sub_8123EB8: @ 8123EB8 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _08123EE8 - adds r0, r2, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - ldrh r3, [r2, 0x20] - adds r0, r3 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x22] - adds r1, 0x10 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - strh r0, [r2, 0x22] -_08123EE8: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08123F3E - movs r0, 0x30 - ldrsh r1, [r2, r0] - cmp r1, 0 - beq _08123F08 - cmp r1, 0x1 - beq _08123F12 - b _08123F30 -_08123F08: - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x2E] - b _08123F22 -_08123F12: - ldrh r0, [r2, 0x2E] - ands r0, r1 - cmp r0, 0 - beq _08123F30 - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x20] -_08123F22: - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08123F30 - ldrh r0, [r2, 0x22] - adds r0, 0x1 - strh r0, [r2, 0x22] -_08123F30: - movs r1, 0x22 - ldrsh r0, [r2, r1] - cmp r0, 0xA0 - ble _08123F3E - adds r0, r2, 0 - bl DestroySprite -_08123F3E: - pop {r0} - bx r0 - thumb_func_end sub_8123EB8 - - thumb_func_start sub_8123F44 -sub_8123F44: @ 8123F44 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _08123F62 - ldrh r1, [r2, 0x22] - adds r1, 0x10 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - strh r0, [r2, 0x22] -_08123F62: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - blt _08123FB8 - movs r0, 0x30 - ldrsh r1, [r2, r0] - cmp r1, 0 - beq _08123F82 - cmp r1, 0x1 - beq _08123F8C - b _08123FAA -_08123F82: - ldrh r0, [r2, 0x20] - subs r0, 0x1 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x2E] - b _08123F9C -_08123F8C: - ldrh r0, [r2, 0x2E] - ands r0, r1 - cmp r0, 0 - beq _08123FAA - ldrh r0, [r2, 0x20] - subs r0, 0x1 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x20] -_08123F9C: - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08123FAA - ldrh r0, [r2, 0x22] - subs r0, 0x1 - strh r0, [r2, 0x22] -_08123FAA: - movs r1, 0x22 - ldrsh r0, [r2, r1] - cmp r0, 0x4F - bgt _08123FB8 - adds r0, r2, 0 - bl DestroySprite -_08123FB8: - pop {r0} - bx r0 - thumb_func_end sub_8123F44 - - thumb_func_start sub_8123FBC -sub_8123FBC: @ 8123FBC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08123FCA - cmp r0, 0x1 - beq _08124024 -_08123FCA: - ldr r1, _08124020 @ =REG_WININ - movs r0, 0 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0xA - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x46 - strh r0, [r1] - adds r1, 0xE - strh r0, [r1] - subs r1, 0x2 - strh r0, [r1] - subs r1, 0x2 - strh r0, [r1] - subs r1, 0x2 - strh r0, [r1] - adds r1, 0x14 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x6 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x6 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - subs r1, 0x6 - strh r0, [r1] - adds r1, 0x2 - strh r0, [r1] - adds r1, 0x3E - strh r0, [r1] - b _081240EE - .align 2, 0 -_08124020: .4byte REG_WININ -_08124024: - ldr r0, _08124060 @ =REG_WININ - movs r3, 0 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - subs r0, 0xA - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - ldr r0, _08124064 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0812406C - ldr r1, _08124068 @ =gUnknown_02039274 - ldr r2, [r1] - movs r0, 0xB0 - strb r0, [r2, 0x14] - ldr r2, [r1] - movs r0, 0x10 - strb r0, [r2, 0x15] - ldr r0, [r1] - strb r3, [r0, 0xC] - ldr r2, [r1] - movs r0, 0x50 - b _08124082 - .align 2, 0 -_08124060: .4byte REG_WININ -_08124064: .4byte gSpecialVar_0x8004 -_08124068: .4byte gUnknown_02039274 -_0812406C: - ldr r1, _081240F4 @ =gUnknown_02039274 - ldr r2, [r1] - movs r0, 0x60 - strb r0, [r2, 0x14] - ldr r2, [r1] - movs r0, 0xE8 - strb r0, [r2, 0x15] - ldr r0, [r1] - strb r3, [r0, 0xC] - ldr r2, [r1] - movs r0, 0x4 -_08124082: - strb r0, [r2, 0xD] - ldr r0, [r1] - strb r3, [r0, 0x9] - ldr r0, [r1] - strb r3, [r0, 0x9] - adds r2, r1, 0 - ldr r1, _081240F8 @ =REG_BG3HOFS - ldr r2, [r2] - ldrb r0, [r2, 0x14] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x15] - strh r0, [r1] - ldr r0, _081240FC @ =REG_BG2HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08124100 @ =REG_BG1HOFS - ldrb r0, [r2, 0xC] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0xD] - strh r0, [r1] - subs r1, 0x6 - ldrb r0, [r2, 0x8] - strh r0, [r1] - adds r1, 0x2 - ldrb r0, [r2, 0x9] - strh r0, [r1] - subs r1, 0xA - ldr r2, _08124104 @ =0x00003c01 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _08124108 @ =0x00003d02 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0812410C @ =0x00003e03 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08124110 @ =REG_BG3CNT - movs r3, 0xFC - lsls r3, 6 - adds r2, r3, 0 - strh r2, [r0] - subs r1, 0xC - movs r3, 0xFA - lsls r3, 5 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _08124114 @ =REG_BLDCNT - strh r2, [r0] -_081240EE: - pop {r0} - bx r0 - .align 2, 0 -_081240F4: .4byte gUnknown_02039274 -_081240F8: .4byte REG_BG3HOFS -_081240FC: .4byte REG_BG2HOFS -_08124100: .4byte REG_BG1HOFS -_08124104: .4byte 0x00003c01 -_08124108: .4byte 0x00003d02 -_0812410C: .4byte 0x00003e03 -_08124110: .4byte REG_BG3CNT -_08124114: .4byte REG_BLDCNT - thumb_func_end sub_8123FBC - - thumb_func_start sub_8124118 -sub_8124118: @ 8124118 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r1, _0812422C @ =gCableCarPlayerGraphicsIDs - add r0, sp, 0x8 - movs r2, 0x2 - bl memcpy - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - add r6, sp, 0xC - ldr r1, _08124230 @ =gMtChimneyHikerGraphicsIDs - adds r0, r6, 0 - movs r2, 0x4 - bl memcpy - add r5, sp, 0x10 - ldr r1, _08124234 @ =gMtChimneyHikerCoords - adds r0, r5, 0 - movs r2, 0x8 - bl memcpy - add r4, sp, 0x18 - ldr r1, _08124238 @ =gMtChimneyHikerMovementDelayTable - adds r0, r4, 0 - movs r2, 0x4 - bl memcpy - ldr r0, _0812423C @ =gUnknown_08401D9C - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x1C] - str r1, [sp, 0x20] - ldr r0, _08124240 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - mov r8, r6 - mov r10, r5 - cmp r0, 0 - beq _08124176 - cmp r0, 0x1 - beq _08124258 -_08124176: - ldr r0, _08124244 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - add r0, sp - adds r0, 0x8 - ldrb r0, [r0] - ldr r1, _08124248 @ =sub_8123D98 - movs r2, 0x66 - str r2, [sp] - movs r2, 0xC8 - movs r3, 0x49 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x40 - beq _081241BE - ldr r0, _0812424C @ =gSprites - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x8 - strh r0, [r1, 0x24] - movs r0, 0x10 - strh r0, [r1, 0x26] - movs r0, 0xC8 - strh r0, [r1, 0x2E] - movs r0, 0x49 - strh r0, [r1, 0x30] -_081241BE: - ldr r4, _08124250 @ =gSpriteTemplate_8401D40 - adds r0, r4, 0 - movs r1, 0xB0 - movs r2, 0x2B - movs r3, 0x67 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _0812424C @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x20 - strh r1, [r0, 0x26] - strh r1, [r0, 0x24] - movs r1, 0xB0 - strh r1, [r0, 0x2E] - movs r1, 0x2B - strh r1, [r0, 0x30] - adds r4, 0x18 - adds r0, r4, 0 - movs r1, 0xC8 - movs r2, 0x63 - movs r3, 0x65 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8 - strh r1, [r0, 0x24] - movs r1, 0x4 - strh r1, [r0, 0x26] - movs r1, 0xC8 - strh r1, [r0, 0x2E] - movs r1, 0x63 - strh r1, [r0, 0x30] - ldr r2, _08124254 @ =gUnknown_02039274 - ldr r1, [r2] - movs r0, 0x7 - strb r0, [r1, 0x2] - ldr r1, [r2] - movs r0, 0xAF - lsls r0, 1 - strh r0, [r1, 0x4] - movs r0, 0x2 - bl sub_807C9B4 - b _0812431E - .align 2, 0 -_0812422C: .4byte gCableCarPlayerGraphicsIDs -_08124230: .4byte gMtChimneyHikerGraphicsIDs -_08124234: .4byte gMtChimneyHikerCoords -_08124238: .4byte gMtChimneyHikerMovementDelayTable -_0812423C: .4byte gUnknown_08401D9C -_08124240: .4byte gSpecialVar_0x8004 -_08124244: .4byte gSaveBlock2 -_08124248: .4byte sub_8123D98 -_0812424C: .4byte gSprites -_08124250: .4byte gSpriteTemplate_8401D40 -_08124254: .4byte gUnknown_02039274 -_08124258: - ldr r7, _081243EC @ =gUnknown_02039274 - ldr r0, [r7] - adds r0, 0xFC - ldr r1, _081243F0 @ =gSharedMem + 0x19048 - movs r2, 0xC - str r2, [sp] - movs r2, 0x3 - str r2, [sp, 0x4] - movs r2, 0x18 - movs r3, 0x1A - bl sub_8124F08 - ldr r0, _081243F4 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - add r0, sp - adds r0, 0x8 - ldrb r0, [r0] - ldr r1, _081243F8 @ =sub_8123D98 - movs r2, 0x66 - str r2, [sp] - movs r2, 0x80 - movs r3, 0x27 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x40 - beq _081242B8 - ldr r0, _081243FC @ =gSprites - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x5] - movs r0, 0x8 - strh r0, [r1, 0x24] - movs r0, 0x10 - strh r0, [r1, 0x26] - movs r0, 0x80 - strh r0, [r1, 0x2E] - movs r0, 0x27 - strh r0, [r1, 0x30] -_081242B8: - ldr r4, _08124400 @ =gSpriteTemplate_8401D40 - adds r0, r4, 0 - movs r1, 0x68 - movs r2, 0x9 - movs r3, 0x67 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _081243FC @ =gSprites - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x20 - strh r1, [r0, 0x26] - strh r1, [r0, 0x24] - movs r1, 0x68 - strh r1, [r0, 0x2E] - movs r1, 0x9 - strh r1, [r0, 0x30] - adds r4, 0x18 - adds r0, r4, 0 - movs r1, 0x80 - movs r2, 0x41 - movs r3, 0x65 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8 - strh r1, [r0, 0x24] - movs r1, 0x4 - strh r1, [r0, 0x26] - movs r1, 0x80 - strh r1, [r0, 0x2E] - movs r1, 0x41 - strh r1, [r0, 0x30] - ldr r1, [r7] - movs r0, 0x2 - strb r0, [r1, 0x2] - ldr r1, [r7] - ldr r0, _08124404 @ =0x00000109 - strh r0, [r1, 0x4] - movs r0, 0x7 - bl sub_807C9B4 -_0812431E: - movs r4, 0 - ldr r5, _081243FC @ =gSprites -_08124322: - lsls r1, r4, 20 - movs r0, 0xC0 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - lsls r2, r4, 19 - ldr r3, _08124408 @ =0xfff80000 - adds r2, r3 - asrs r2, 16 - ldr r0, _0812440C @ =gSpriteTemplate_8401D70 - movs r3, 0x68 - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8 - strh r1, [r0, 0x24] - strh r1, [r0, 0x26] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _08124322 - movs r0, 0x3F - mov r4, r9 - ands r0, r4 - cmp r0, 0 - bne _08124458 - mov r0, r9 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - add r0, r8 - ldrb r0, [r0] - ldr r5, _08124410 @ =gSpecialVar_0x8004 - ldrh r4, [r5] - lsls r4, 2 - add r1, sp, 0x1C - adds r1, r4, r1 - ldr r1, [r1] - mov r3, r10 - adds r2, r3, r4 - movs r3, 0 - ldrsh r2, [r2, r3] - mov r3, sp - adds r3, 0x12 - adds r3, r4 - movs r4, 0 - ldrsh r3, [r3, r4] - movs r4, 0x6A - str r4, [sp] - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x40 - beq _08124458 - ldr r1, _081243FC @ =gSprites - lsls r2, r6, 4 - adds r0, r2, r6 - lsls r0, 2 - adds r4, r0, r1 - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r0, r4, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x24] - adds r0, r4, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r5] - mov r8, r2 - cmp r0, 0 - bne _0812441A - movs r7, 0x1 - mov r5, r9 - ands r5, r7 - cmp r5, 0 - beq _08124414 - adds r0, r4, 0 - movs r1, 0x6 - b _08124428 - .align 2, 0 -_081243EC: .4byte gUnknown_02039274 -_081243F0: .4byte gSharedMem + 0x19048 -_081243F4: .4byte gSaveBlock2 -_081243F8: .4byte sub_8123D98 -_081243FC: .4byte gSprites -_08124400: .4byte gSpriteTemplate_8401D40 -_08124404: .4byte 0x00000109 -_08124408: .4byte 0xfff80000 -_0812440C: .4byte gSpriteTemplate_8401D70 -_08124410: .4byte gSpecialVar_0x8004 -_08124414: - adds r0, r4, 0 - movs r1, 0x7 - b _0812443A -_0812441A: - movs r7, 0x1 - mov r5, r9 - ands r5, r7 - cmp r5, 0 - beq _08124436 - adds r0, r4, 0 - movs r1, 0x7 -_08124428: - bl StartSpriteAnim - strh r7, [r4, 0x30] - ldrh r0, [r4, 0x22] - adds r0, 0x2 - strh r0, [r4, 0x22] - b _08124440 -_08124436: - adds r0, r4, 0 - movs r1, 0x6 -_0812443A: - bl StartSpriteAnim - strh r5, [r4, 0x30] -_08124440: - ldr r0, _08124468 @ =gSprites - mov r2, r8 - adds r1, r2, r6 - lsls r1, 2 - adds r1, r0 - movs r0, 0x3 - mov r3, r9 - ands r0, r3 - add r0, sp - adds r0, 0x18 - ldrb r0, [r0] - strh r0, [r1, 0x32] -_08124458: - 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 -_08124468: .4byte gSprites - thumb_func_end sub_8124118 - - thumb_func_start sub_812446C -sub_812446C: @ 812446C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r3, 0 - mov r9, r3 - ldr r2, _08124530 @ =gUnknown_02039274 - ldr r0, [r2] - ldrb r1, [r0, 0x1B] - adds r1, 0x2 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 26 - lsrs r0, 24 - mov r12, r0 -_0812448E: - movs r6, 0 - lsls r0, r3, 1 - adds r1, r3, 0x3 - adds r2, r3, 0x6 - adds r4, r3, 0x1 - str r4, [sp] - adds r0, r3 - lsls r0, 3 - mov r10, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r8, r0 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - str r0, [sp, 0x4] -_081244B0: - ldr r7, _08124530 @ =gUnknown_02039274 - ldr r5, [r7] - lsls r3, r6, 1 - mov r0, r10 - adds r2, r3, r0 - adds r4, r5, 0 - adds r4, 0x22 - adds r2, r4, r2 - mov r1, r12 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 1 - ldr r7, _08124534 @ =gSharedMem + 0x19000 - adds r1, r7 - ldrh r0, [r1] - strh r0, [r2] - mov r0, r8 - adds r1, r3, r0 - adds r1, r4, r1 - mov r7, r9 - lsls r2, r7, 1 - ldr r7, _08124534 @ =gSharedMem + 0x19000 - adds r0, r2, r7 - ldrh r0, [r0] - strh r0, [r1] - ldr r0, [sp, 0x4] - adds r3, r0 - adds r4, r3 - ldr r1, _08124538 @ =gSharedMem + 0x19048 - adds r2, r1 - ldrh r0, [r2] - strh r0, [r4] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xB - bls _081244B0 - ldr r4, [sp] - lsls r0, r4, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _0812448E - ldrb r0, [r5, 0x1B] - adds r0, 0x1 - movs r1, 0x3 - bl __modsi3 - strb r0, [r5, 0x1B] - 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 -_08124530: .4byte gUnknown_02039274 -_08124534: .4byte gSharedMem + 0x19000 -_08124538: .4byte gSharedMem + 0x19048 - thumb_func_end sub_812446C - - thumb_func_start sub_812453C -sub_812453C: @ 812453C - push {r4,r5,lr} - ldr r5, _08124594 @ =gUnknown_02039274 - ldr r4, [r5] - ldrb r0, [r4, 0x1C] - adds r0, 0x1 - movs r1, 0x60 - bl __modsi3 - strb r0, [r4, 0x1C] - ldr r1, [r5] - ldrb r0, [r1, 0x1F] - ldrb r2, [r1, 0x1D] - subs r0, r2 - strb r0, [r1, 0x8] - ldr r2, [r5] - adds r0, r2, 0 - adds r0, 0x20 - ldrb r0, [r0] - ldrb r1, [r2, 0x1E] - subs r0, r1 - strb r0, [r2, 0x9] - ldr r1, [r5] - ldrb r0, [r1, 0x1D] - adds r0, 0x1 - strb r0, [r1, 0x1D] - ldr r2, [r5] - ldrb r0, [r2, 0x1D] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08124580 - ldrb r0, [r2, 0x1E] - adds r0, 0x1 - strb r0, [r2, 0x1E] -_08124580: - ldr r0, [r5] - ldrb r0, [r0, 0x1D] - cmp r0, 0x10 - bls _0812458C - bl sub_81245F4 -_0812458C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08124594: .4byte gUnknown_02039274 - thumb_func_end sub_812453C - - thumb_func_start sub_8124598 -sub_8124598: @ 8124598 - push {r4,r5,lr} - ldr r5, _081245F0 @ =gUnknown_02039274 - ldr r4, [r5] - ldrb r0, [r4, 0x1C] - adds r0, 0x1 - movs r1, 0x60 - bl __modsi3 - strb r0, [r4, 0x1C] - ldr r1, [r5] - ldrb r0, [r1, 0x1D] - ldrb r2, [r1, 0x1F] - adds r0, r2 - strb r0, [r1, 0x8] - ldr r1, [r5] - adds r2, r1, 0 - adds r2, 0x20 - ldrb r0, [r1, 0x1E] - ldrb r2, [r2] - adds r0, r2 - strb r0, [r1, 0x9] - ldr r1, [r5] - ldrb r0, [r1, 0x1D] - adds r0, 0x1 - strb r0, [r1, 0x1D] - ldr r2, [r5] - ldrb r0, [r2, 0x1D] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081245DC - ldrb r0, [r2, 0x1E] - adds r0, 0x1 - strb r0, [r2, 0x1E] -_081245DC: - ldr r0, [r5] - ldrb r0, [r0, 0x1D] - cmp r0, 0x10 - bls _081245E8 - bl sub_812476C -_081245E8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081245F0: .4byte gUnknown_02039274 - thumb_func_end sub_8124598 - - thumb_func_start sub_81245F4 -sub_81245F4: @ 81245F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - mov r12, r0 - ldr r2, _0812475C @ =gUnknown_02039274 - ldr r0, [r2] - mov r1, r12 - strb r1, [r0, 0x1E] - strb r1, [r0, 0x1D] - ldr r1, [r2] - ldrb r0, [r1, 0x8] - strb r0, [r1, 0x1F] - ldr r0, [r2] - ldrb r1, [r0, 0x9] - adds r0, 0x20 - strb r1, [r0] - ldr r4, [r2] - ldrb r1, [r4, 0x19] - adds r3, r1, 0 - adds r3, 0x1E - adds r0, r3, 0 - mov r9, r2 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - strb r0, [r4, 0x19] - mov r2, r9 - ldr r1, [r2] - ldrb r0, [r1, 0x18] - subs r0, 0x2 - strb r0, [r1, 0x18] - ldr r0, [r2] - ldrb r1, [r0, 0x1A] - adds r2, r1, 0 - adds r2, 0x17 - adds r0, r2, 0 - ldr r3, _08124760 @ =gUnknown_0203927A - mov r10, r3 - asrs r0, 5 - lsls r0, 5 - subs r0, r2, r0 - mov r4, r10 - strb r0, [r4] - ldr r7, _08124764 @ =gUnknown_02039278 - ldr r0, _08124768 @ =gUnknown_02039279 - mov r8, r0 -_08124658: - mov r1, r9 - ldr r3, [r1] - ldrb r0, [r3, 0x19] - strb r0, [r7] - mov r2, r10 - ldrb r0, [r2] - mov r4, r12 - adds r1, r0, r4 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - mov r1, r8 - strb r0, [r1] - ldrb r2, [r7] - lsls r2, 1 - ldrb r0, [r1] - lsls r0, 6 - adds r2, r0 - adds r6, r3, 0 - adds r6, 0xFC - adds r2, r6, r2 - ldrb r1, [r3, 0x18] - lsls r1, 1 - mov r4, r12 - lsls r0, r4, 1 - add r0, r12 - lsls r5, r0, 3 - adds r1, r5 - adds r4, r3, 0 - adds r4, 0x22 - adds r1, r4, r1 - ldrh r0, [r1] - strh r0, [r2] - ldrb r1, [r7] - adds r2, r1, 0x1 - adds r0, r2, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r2, r0 - strb r0, [r7] - ldrb r1, [r7] - lsls r1, 1 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 6 - adds r1, r0 - adds r1, r6, r1 - ldrb r0, [r3, 0x18] - adds r0, 0x1 - lsls r0, 1 - adds r0, r5 - adds r0, r4, r0 - ldrh r0, [r0] - strh r0, [r1] - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x8 - bls _08124658 - ldr r4, _08124764 @ =gUnknown_02039278 - mov r5, r9 - ldr r3, [r5] - ldrb r1, [r3, 0x19] - adds r2, r1, 0 - adds r2, 0x1E - adds r0, r2, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r2, r0 - strb r0, [r4] - adds r0, r3, 0 - adds r0, 0xFC - ldrb r2, [r4] - movs r1, 0x2 - str r1, [sp] - movs r6, 0x20 - str r6, [sp, 0x4] - movs r1, 0 - movs r3, 0 - bl sub_8124E7C - ldr r1, [r5] - ldrb r0, [r1, 0x18] - cmp r0, 0 - bne _0812474C - ldrb r2, [r1, 0x1A] - adds r3, r2, 0 - adds r3, 0x1D - adds r0, r3, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - strb r0, [r1, 0x1A] - mov r3, r9 - ldr r1, [r3] - movs r0, 0xC - strb r0, [r1, 0x18] - bl sub_812446C - mov r4, r9 - ldr r1, [r4] - ldrb r3, [r1, 0x1A] - adds r4, r3, 0x1 - adds r0, r4, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r4, r0 - ldr r2, _08124764 @ =gUnknown_02039278 - strb r0, [r2] - adds r0, r1, 0 - adds r0, 0xFC - ldrb r3, [r2] - str r6, [sp] - movs r1, 0x9 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - bl sub_8124E7C -_0812474C: - 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 -_0812475C: .4byte gUnknown_02039274 -_08124760: .4byte gUnknown_0203927A -_08124764: .4byte gUnknown_02039278 -_08124768: .4byte gUnknown_02039279 - thumb_func_end sub_81245F4 - - thumb_func_start sub_812476C -sub_812476C: @ 812476C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - mov r12, r0 - ldr r2, _0812489C @ =gUnknown_02039274 - ldr r0, [r2] - mov r1, r12 - strb r1, [r0, 0x1E] - strb r1, [r0, 0x1D] - ldr r1, [r2] - ldrb r0, [r1, 0x8] - strb r0, [r1, 0x1F] - ldr r0, [r2] - ldrb r1, [r0, 0x9] - adds r0, 0x20 - strb r1, [r0] - ldr r4, [r2] - ldrb r1, [r4, 0x19] - adds r3, r1, 0x2 - adds r0, r3, 0 - mov r9, r2 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - strb r0, [r4, 0x19] - mov r2, r9 - ldr r1, [r2] - ldrb r0, [r1, 0x18] - adds r0, 0x2 - strb r0, [r1, 0x18] - ldr r1, _081248A0 @ =gUnknown_0203927D - ldr r0, [r2] - ldrb r0, [r0, 0x1A] - strb r0, [r1] - ldr r4, _081248A4 @ =gUnknown_0203927C - mov r10, r4 - ldr r7, _081248A8 @ =gUnknown_0203927B - mov r8, r10 -_081247C0: - mov r0, r9 - ldr r3, [r0] - ldrb r0, [r3, 0x19] - strb r0, [r7] - ldr r1, _081248A0 @ =gUnknown_0203927D - ldrb r0, [r1] - mov r2, r12 - adds r1, r0, r2 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - mov r4, r8 - strb r0, [r4] - ldrb r2, [r7] - lsls r2, 1 - ldrb r0, [r4] - lsls r0, 6 - adds r2, r0 - adds r6, r3, 0 - adds r6, 0xFC - adds r2, r6, r2 - ldrb r1, [r3, 0x18] - lsls r1, 1 - mov r4, r12 - lsls r0, r4, 1 - add r0, r12 - lsls r5, r0, 3 - adds r1, r5 - adds r4, r3, 0 - adds r4, 0x22 - adds r1, r4, r1 - ldrh r0, [r1] - strh r0, [r2] - ldrb r1, [r7] - adds r2, r1, 0x1 - adds r0, r2, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r2, r0 - strb r0, [r7] - ldrb r1, [r7] - lsls r1, 1 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 6 - adds r1, r0 - adds r1, r6, r1 - ldrb r0, [r3, 0x18] - adds r0, 0x1 - lsls r0, 1 - adds r0, r5 - adds r0, r4, r0 - ldrh r0, [r0] - strh r0, [r1] - mov r0, r12 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x8 - bls _081247C0 - mov r4, r9 - ldr r1, [r4] - ldrb r2, [r1, 0x1A] - adds r3, r2, 0 - adds r3, 0x17 - adds r0, r3, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - mov r2, r10 - strb r0, [r2] - adds r0, r1, 0 - adds r0, 0xFC - ldrb r2, [r1, 0x19] - mov r1, r10 - ldrb r3, [r1] - movs r1, 0x2 - str r1, [sp] - movs r1, 0x9 - str r1, [sp, 0x4] - movs r1, 0 - bl sub_8124E7C - ldr r1, [r4] - ldrb r0, [r1, 0x18] - cmp r0, 0xA - bne _0812488C - ldrb r2, [r1, 0x1A] - adds r3, r2, 0x3 - adds r0, r3, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r3, r0 - strb r0, [r1, 0x1A] - mov r2, r9 - ldr r1, [r2] - movs r0, 0xFE - strb r0, [r1, 0x18] - bl sub_812446C -_0812488C: - 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 -_0812489C: .4byte gUnknown_02039274 -_081248A0: .4byte gUnknown_0203927D -_081248A4: .4byte gUnknown_0203927C -_081248A8: .4byte gUnknown_0203927B - thumb_func_end sub_812476C - - thumb_func_start sub_81248AC -sub_81248AC: @ 81248AC - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _081248BA - cmp r0, 0x1 - beq _081248E4 -_081248BA: - ldr r1, _081248E0 @ =gUnknown_02039274 - ldr r2, [r1] - movs r3, 0 - movs r0, 0x2 - strb r0, [r2, 0x1B] - ldr r0, [r1] - strb r3, [r0, 0x19] - ldr r2, [r1] - movs r0, 0x14 - strb r0, [r2, 0x1A] - ldr r1, [r1] - movs r0, 0xC - strb r0, [r1, 0x18] - bl sub_812446C - bl sub_81245F4 - b _08124906 - .align 2, 0 -_081248E0: .4byte gUnknown_02039274 -_081248E4: - ldr r1, _08124914 @ =gUnknown_02039274 - ldr r2, [r1] - movs r0, 0x2 - strb r0, [r2, 0x1B] - ldr r2, [r1] - movs r0, 0x1C - strb r0, [r2, 0x19] - ldr r2, [r1] - movs r0, 0x14 - strb r0, [r2, 0x1A] - ldr r1, [r1] - movs r0, 0x4 - strb r0, [r1, 0x18] - bl sub_812446C - bl sub_812476C -_08124906: - ldr r0, _08124914 @ =gUnknown_02039274 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x1C] - pop {r0} - bx r0 - .align 2, 0 -_08124914: .4byte gUnknown_02039274 - thumb_func_end sub_81248AC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/cable_car_util.s b/asm/cable_car_util.s deleted file mode 100644 index 50ef19dec..000000000 --- a/asm/cable_car_util.s +++ /dev/null @@ -1,162 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8124E7C -sub_8124E7C: @ 8124E7C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - ldr r0, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - movs r0, 0 - lsrs r4, r3, 24 - cmp r0, r8 - bcs _08124EF6 -_08124EAE: - ldr r2, [sp] - movs r3, 0 - adds r6, r4, 0x1 - adds r0, 0x1 - mov r12, r0 - cmp r3, r7 - bcs _08124EE0 - lsls r5, r4, 6 -_08124EBE: - lsls r0, r2, 1 - adds r0, r5 - add r0, r10 - mov r1, r9 - strh r1, [r0] - adds r1, r2, 0x1 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r7 - bcc _08124EBE -_08124EE0: - adds r0, r6, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r6, r0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r1, r12 - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, r8 - bcc _08124EAE -_08124EF6: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124E7C - - thumb_func_start sub_8124F08 -sub_8124F08: @ 8124F08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - ldr r0, [sp, 0x24] - ldr r4, [sp, 0x28] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp] - lsls r3, 24 - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - movs r0, 0 - adds r5, r1, 0 - lsrs r4, r3, 24 - cmp r0, r9 - bcs _08124F82 -_08124F38: - ldr r2, [sp] - movs r3, 0 - adds r7, r4, 0x1 - adds r0, 0x1 - mov r8, r0 - cmp r3, r12 - bcs _08124F6C - lsls r6, r4, 6 -_08124F48: - lsls r0, r2, 1 - adds r0, r6 - add r0, r10 - ldrh r1, [r5] - strh r1, [r0] - adds r5, 0x2 - adds r1, r2, 0x1 - adds r0, r1, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r1, r0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r12 - bcc _08124F48 -_08124F6C: - adds r0, r7, 0 - asrs r0, 5 - lsls r0, 5 - subs r0, r7, r0 - lsls r0, 24 - lsrs r4, r0, 24 - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, r9 - bcc _08124F38 -_08124F82: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8124F08 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/contest_ai.s b/asm/contest_ai.s deleted file mode 100644 index 94347f2ad..000000000 --- a/asm/contest_ai.s +++ /dev/null @@ -1,5292 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_81288F4 -sub_81288F4: @ 81288F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _0812893C @ =gSharedMem + 0x192E4 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x44 - bl memset - movs r3, 0x64 - adds r2, r4, 0 - movs r1, 0x3 - adds r0, r2, 0 - adds r0, 0x8 -_08128910: - strb r3, [r0] - subs r0, 0x1 - subs r1, 0x1 - cmp r1, 0 - bge _08128910 - adds r3, r2, 0 - adds r3, 0x41 - movs r1, 0 - strb r5, [r3] - adds r0, r2, 0 - adds r0, 0x40 - strb r1, [r0] - ldr r1, _08128940 @ =gContestMons - ldrb r0, [r3] - lsls r0, 6 - adds r1, 0x18 - adds r0, r1 - ldr r0, [r0] - str r0, [r2, 0x14] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812893C: .4byte gSharedMem + 0x192E4 -_08128940: .4byte gContestMons - thumb_func_end sub_81288F4 - - thumb_func_start sub_8128944 -sub_8128944: @ 8128944 - push {r4-r6,lr} - ldr r1, _081289A8 @ =gSharedMem + 0x192E4 - ldr r0, [r1, 0x14] - cmp r0, 0 - beq _08128974 - adds r4, r1, 0 - movs r5, 0 -_08128952: - ldr r0, [r4, 0x14] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08128962 - strb r5, [r4] - bl sub_81289AC -_08128962: - ldr r1, [r4, 0x14] - lsrs r1, 1 - str r1, [r4, 0x14] - ldrb r0, [r4, 0x10] - adds r0, 0x1 - strb r0, [r4, 0x10] - strb r5, [r4, 0x4] - cmp r1, 0 - bne _08128952 -_08128974: - movs r6, 0x3 - ldr r5, _081289A8 @ =gSharedMem + 0x192E4 -_08128978: - bl Random - adds r4, r0, 0 - ands r4, r6 - adds r3, r5, 0x5 - adds r0, r4, r3 - ldrb r2, [r0] - movs r1, 0 - ldrb r0, [r5, 0x5] - cmp r2, r0 - bcc _0812899C -_0812898E: - adds r1, 0x1 - cmp r1, 0x3 - bgt _0812899C - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bcs _0812898E -_0812899C: - cmp r1, 0x4 - bne _08128978 - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081289A8: .4byte gSharedMem + 0x192E4 - thumb_func_end sub_8128944 - - thumb_func_start sub_81289AC -sub_81289AC: @ 81289AC - push {r4-r6,lr} - ldr r1, _081289F4 @ =gSharedMem + 0x192E4 - ldrb r0, [r1] - adds r2, r1, 0 - cmp r0, 0x2 - beq _08128A76 - adds r4, r1, 0 - ldr r5, _081289F8 @ =gAIScriptPtr - ldr r6, _081289FC @ =gUnknown_0203858E -_081289BE: - ldrb r0, [r4] - cmp r0, 0x1 - beq _08128A0E - cmp r0, 0x1 - bgt _08128A6E - cmp r0, 0 - bne _08128A6E - ldr r1, _08128A00 @ =gContestAIs - ldrb r0, [r4, 0x10] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r5] - ldrb r1, [r4, 0x4] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r1, r6 - ldrh r1, [r1] - adds r0, r1, 0 - cmp r0, 0 - bne _08128A04 - strh r0, [r4, 0x2] - b _08128A06 - .align 2, 0 -_081289F4: .4byte gSharedMem + 0x192E4 -_081289F8: .4byte gAIScriptPtr -_081289FC: .4byte gUnknown_0203858E -_08128A00: .4byte gContestAIs -_08128A04: - strh r1, [r4, 0x2] -_08128A06: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08128A6E -_08128A0E: - ldrh r1, [r1, 0x2] - cmp r1, 0 - beq _08128A2C - ldr r1, _08128A28 @ =sContestAICmdTable - ldr r0, [r5] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - b _08128A3C - .align 2, 0 -_08128A28: .4byte sContestAICmdTable -_08128A2C: - adds r0, r4, 0x5 - ldrb r2, [r4, 0x4] - adds r0, r2 - strb r1, [r0] - ldrb r1, [r4, 0x9] - movs r0, 0x1 - orrs r0, r1 - strb r0, [r4, 0x9] -_08128A3C: - ldr r2, _08128A5C @ =gSharedMem + 0x192E4 - ldrb r1, [r2, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08128A6E - ldrb r0, [r2, 0x4] - adds r0, 0x1 - movs r1, 0 - strb r0, [r2, 0x4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bhi _08128A60 - strb r1, [r2] - b _08128A66 - .align 2, 0 -_08128A5C: .4byte gSharedMem + 0x192E4 -_08128A60: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] -_08128A66: - ldrb r1, [r4, 0x9] - movs r0, 0xFE - ands r0, r1 - strb r0, [r4, 0x9] -_08128A6E: - adds r1, r2, 0 - ldrb r0, [r1] - cmp r0, 0x2 - bne _081289BE -_08128A76: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81289AC - - thumb_func_start sub_8128A7C -sub_8128A7C: @ 8128A7C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, _08128AA4 @ =gSharedMem + 0x192D0 - ldrb r0, [r3] - cmp r0, r2 - beq _08128A9A -_08128A8C: - adds r1, 0x1 - cmp r1, 0x3 - bgt _08128A9A - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08128A8C -_08128A9A: - lsls r0, r1, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08128AA4: .4byte gSharedMem + 0x192D0 - thumb_func_end sub_8128A7C - - thumb_func_start ContestAICmd_unk_00 -ContestAICmd_unk_00: @ 8128AA8 - push {lr} - ldr r2, _08128AD0 @ =gSharedMem + 0x192E4 - adds r1, r2, 0x5 - ldrb r0, [r2, 0x4] - adds r1, r0 - ldr r3, _08128AD4 @ =gAIScriptPtr - ldr r0, [r3] - ldrb r0, [r0, 0x1] - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08128AD8 - movs r1, 0xFF - b _08128ADE - .align 2, 0 -_08128AD0: .4byte gSharedMem + 0x192E4 -_08128AD4: .4byte gAIScriptPtr -_08128AD8: - cmp r0, 0 - bge _08128ADE - movs r1, 0 -_08128ADE: - adds r0, r2, 0x5 - ldrb r2, [r2, 0x4] - adds r0, r2 - strb r1, [r0] - ldr r0, [r3] - adds r0, 0x2 - str r0, [r3] - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_00 - - thumb_func_start ContestAICmd_get_turn -ContestAICmd_get_turn: @ 8128AF0 - ldr r1, _08128B04 @ =gSharedMem + 0x192E4 - adds r0, r1, 0 - subs r0, 0xE0 - ldrb r0, [r0, 0x1] - strh r0, [r1, 0x18] - ldr r1, _08128B08 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08128B04: .4byte gSharedMem + 0x192E4 -_08128B08: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_turn - - thumb_func_start ContestAICmd_unk_02 -ContestAICmd_unk_02: @ 8128B0C - push {lr} - bl ContestAICmd_get_turn - ldr r0, _08128B3C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128B40 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08128B44 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128B48 - .align 2, 0 -_08128B3C: .4byte gSharedMem + 0x192E4 -_08128B40: .4byte gAIScriptPtr -_08128B44: - adds r0, r2, 0x5 - str r0, [r3] -_08128B48: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_02 - - thumb_func_start ContestAICmd_unk_03 -ContestAICmd_unk_03: @ 8128B4C - push {lr} - bl ContestAICmd_get_turn - ldr r0, _08128B7C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128B80 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08128B84 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128B88 - .align 2, 0 -_08128B7C: .4byte gSharedMem + 0x192E4 -_08128B80: .4byte gAIScriptPtr -_08128B84: - adds r0, r2, 0x5 - str r0, [r3] -_08128B88: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_03 - - thumb_func_start ContestAICmd_unk_04 -ContestAICmd_unk_04: @ 8128B8C - push {lr} - bl ContestAICmd_get_turn - ldr r0, _08128BBC @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128BC0 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08128BC4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128BC8 - .align 2, 0 -_08128BBC: .4byte gSharedMem + 0x192E4 -_08128BC0: .4byte gAIScriptPtr -_08128BC4: - adds r0, r2, 0x5 - str r0, [r3] -_08128BC8: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_04 - - thumb_func_start ContestAICmd_unk_05 -ContestAICmd_unk_05: @ 8128BCC - push {lr} - bl ContestAICmd_get_turn - ldr r0, _08128BFC @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128C00 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08128C04 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128C08 - .align 2, 0 -_08128BFC: .4byte gSharedMem + 0x192E4 -_08128C00: .4byte gAIScriptPtr -_08128C04: - adds r0, r2, 0x5 - str r0, [r3] -_08128C08: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_05 - - thumb_func_start ContestAICmd_get_excitement -ContestAICmd_get_excitement: @ 8128C0C - ldr r1, _08128C24 @ =gSharedMem + 0x192E4 - adds r0, r1, 0 - subs r0, 0xE0 - ldrb r0, [r0, 0x13] - lsls r0, 24 - asrs r0, 24 - strh r0, [r1, 0x18] - ldr r1, _08128C28 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08128C24: .4byte gSharedMem + 0x192E4 -_08128C28: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_excitement - - thumb_func_start ContestAICmd_unk_07 -ContestAICmd_unk_07: @ 8128C2C - push {lr} - bl ContestAICmd_get_excitement - ldr r0, _08128C5C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128C60 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08128C64 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128C68 - .align 2, 0 -_08128C5C: .4byte gSharedMem + 0x192E4 -_08128C60: .4byte gAIScriptPtr -_08128C64: - adds r0, r2, 0x5 - str r0, [r3] -_08128C68: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_07 - - thumb_func_start ContestAICmd_unk_08 -ContestAICmd_unk_08: @ 8128C6C - push {lr} - bl ContestAICmd_get_excitement - ldr r0, _08128C9C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128CA0 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08128CA4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128CA8 - .align 2, 0 -_08128C9C: .4byte gSharedMem + 0x192E4 -_08128CA0: .4byte gAIScriptPtr -_08128CA4: - adds r0, r2, 0x5 - str r0, [r3] -_08128CA8: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_08 - - thumb_func_start ContestAICmd_unk_09 -ContestAICmd_unk_09: @ 8128CAC - push {lr} - bl ContestAICmd_get_excitement - ldr r0, _08128CDC @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128CE0 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08128CE4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128CE8 - .align 2, 0 -_08128CDC: .4byte gSharedMem + 0x192E4 -_08128CE0: .4byte gAIScriptPtr -_08128CE4: - adds r0, r2, 0x5 - str r0, [r3] -_08128CE8: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_09 - - thumb_func_start ContestAICmd_unk_0A -ContestAICmd_unk_0A: @ 8128CEC - push {lr} - bl ContestAICmd_get_excitement - ldr r0, _08128D1C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128D20 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08128D24 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128D28 - .align 2, 0 -_08128D1C: .4byte gSharedMem + 0x192E4 -_08128D20: .4byte gAIScriptPtr -_08128D24: - adds r0, r2, 0x5 - str r0, [r3] -_08128D28: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_0A - - thumb_func_start ContestAICmd_get_user_order -ContestAICmd_get_user_order: @ 8128D2C - ldr r1, _08128D48 @ =gSharedMem + 0x192E4 - adds r2, r1, 0 - adds r2, 0x41 - adds r0, r1, 0 - subs r0, 0x14 - ldrb r2, [r2] - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1, 0x18] - ldr r1, _08128D4C @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08128D48: .4byte gSharedMem + 0x192E4 -_08128D4C: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_user_order - - thumb_func_start ContestAICmd_unk_0C -ContestAICmd_unk_0C: @ 8128D50 - push {lr} - bl ContestAICmd_get_user_order - ldr r0, _08128D80 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128D84 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08128D88 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128D8C - .align 2, 0 -_08128D80: .4byte gSharedMem + 0x192E4 -_08128D84: .4byte gAIScriptPtr -_08128D88: - adds r0, r2, 0x5 - str r0, [r3] -_08128D8C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_0C - - thumb_func_start ContestAICmd_unk_0D -ContestAICmd_unk_0D: @ 8128D90 - push {lr} - bl ContestAICmd_get_user_order - ldr r0, _08128DC0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128DC4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08128DC8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128DCC - .align 2, 0 -_08128DC0: .4byte gSharedMem + 0x192E4 -_08128DC4: .4byte gAIScriptPtr -_08128DC8: - adds r0, r2, 0x5 - str r0, [r3] -_08128DCC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_0D - - thumb_func_start ContestAICmd_unk_0E -ContestAICmd_unk_0E: @ 8128DD0 - push {lr} - bl ContestAICmd_get_user_order - ldr r0, _08128E00 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128E04 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08128E08 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128E0C - .align 2, 0 -_08128E00: .4byte gSharedMem + 0x192E4 -_08128E04: .4byte gAIScriptPtr -_08128E08: - adds r0, r2, 0x5 - str r0, [r3] -_08128E0C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_0E - - thumb_func_start ContestAICmd_unk_0F -ContestAICmd_unk_0F: @ 8128E10 - push {lr} - bl ContestAICmd_get_user_order - ldr r0, _08128E40 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128E44 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08128E48 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128E4C - .align 2, 0 -_08128E40: .4byte gSharedMem + 0x192E4 -_08128E44: .4byte gAIScriptPtr -_08128E48: - adds r0, r2, 0x5 - str r0, [r3] -_08128E4C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_0F - - thumb_func_start ContestAICmd_get_user_condition_maybe -ContestAICmd_get_user_condition_maybe: @ 8128E50 - push {r4,lr} - ldr r4, _08128E88 @ =gSharedMem + 0x192E4 - adds r0, r4, 0 - adds r0, 0x41 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x84 - adds r0, r1 - ldrb r0, [r0, 0xD] - lsls r0, 24 - asrs r0, 24 - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x18] - ldr r1, _08128E8C @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08128E88: .4byte gSharedMem + 0x192E4 -_08128E8C: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_user_condition_maybe - - thumb_func_start ContestAICmd_unk_11 -ContestAICmd_unk_11: @ 8128E90 - push {lr} - bl ContestAICmd_get_user_condition_maybe - ldr r0, _08128EC0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128EC4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08128EC8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128ECC - .align 2, 0 -_08128EC0: .4byte gSharedMem + 0x192E4 -_08128EC4: .4byte gAIScriptPtr -_08128EC8: - adds r0, r2, 0x5 - str r0, [r3] -_08128ECC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_11 - - thumb_func_start ContestAICmd_unk_12 -ContestAICmd_unk_12: @ 8128ED0 - push {lr} - bl ContestAICmd_get_user_condition_maybe - ldr r0, _08128F00 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128F04 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08128F08 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128F0C - .align 2, 0 -_08128F00: .4byte gSharedMem + 0x192E4 -_08128F04: .4byte gAIScriptPtr -_08128F08: - adds r0, r2, 0x5 - str r0, [r3] -_08128F0C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_12 - - thumb_func_start ContestAICmd_unk_13 -ContestAICmd_unk_13: @ 8128F10 - push {lr} - bl ContestAICmd_get_user_condition_maybe - ldr r0, _08128F40 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128F44 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08128F48 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128F4C - .align 2, 0 -_08128F40: .4byte gSharedMem + 0x192E4 -_08128F44: .4byte gAIScriptPtr -_08128F48: - adds r0, r2, 0x5 - str r0, [r3] -_08128F4C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_13 - - thumb_func_start ContestAICmd_unk_14 -ContestAICmd_unk_14: @ 8128F50 - push {lr} - bl ContestAICmd_get_user_condition_maybe - ldr r0, _08128F80 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08128F84 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08128F88 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08128F8C - .align 2, 0 -_08128F80: .4byte gSharedMem + 0x192E4 -_08128F84: .4byte gAIScriptPtr -_08128F88: - adds r0, r2, 0x5 - str r0, [r3] -_08128F8C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_14 - - thumb_func_start ContestAICmd_unk_15 -ContestAICmd_unk_15: @ 8128F90 - ldr r2, _08128FB4 @ =gSharedMem + 0x192E4 - adds r0, r2, 0 - adds r0, 0x41 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r2, 0 - subs r1, 0x84 - adds r0, r1 - ldrh r0, [r0, 0x4] - strh r0, [r2, 0x18] - ldr r1, _08128FB8 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08128FB4: .4byte gSharedMem + 0x192E4 -_08128FB8: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_15 - - thumb_func_start ContestAICmd_unk_16 -ContestAICmd_unk_16: @ 8128FBC - push {r4,r5,lr} - bl ContestAICmd_unk_15 - ldr r2, _08128FF4 @ =gSharedMem + 0x192E4 - ldr r4, _08128FF8 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bge _08128FFC - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08129000 - .align 2, 0 -_08128FF4: .4byte gSharedMem + 0x192E4 -_08128FF8: .4byte gAIScriptPtr -_08128FFC: - adds r0, r3, 0x6 - str r0, [r4] -_08129000: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_16 - - thumb_func_start ContestAICmd_unk_17 -ContestAICmd_unk_17: @ 8129008 - push {r4,r5,lr} - bl ContestAICmd_unk_15 - ldr r2, _08129040 @ =gSharedMem + 0x192E4 - ldr r4, _08129044 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - ble _08129048 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812904C - .align 2, 0 -_08129040: .4byte gSharedMem + 0x192E4 -_08129044: .4byte gAIScriptPtr -_08129048: - adds r0, r3, 0x6 - str r0, [r4] -_0812904C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_17 - - thumb_func_start ContestAICmd_unk_18 -ContestAICmd_unk_18: @ 8129054 - push {r4,r5,lr} - bl ContestAICmd_unk_15 - ldr r2, _0812908C @ =gSharedMem + 0x192E4 - ldr r4, _08129090 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bne _08129094 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08129098 - .align 2, 0 -_0812908C: .4byte gSharedMem + 0x192E4 -_08129090: .4byte gAIScriptPtr -_08129094: - adds r0, r3, 0x6 - str r0, [r4] -_08129098: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_18 - - thumb_func_start ContestAICmd_unk_19 -ContestAICmd_unk_19: @ 81290A0 - push {r4,r5,lr} - bl ContestAICmd_unk_15 - ldr r2, _081290D8 @ =gSharedMem + 0x192E4 - ldr r4, _081290DC @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - beq _081290E0 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _081290E4 - .align 2, 0 -_081290D8: .4byte gSharedMem + 0x192E4 -_081290DC: .4byte gAIScriptPtr -_081290E0: - adds r0, r3, 0x6 - str r0, [r4] -_081290E4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_19 - - thumb_func_start ContestAICmd_unk_1A -ContestAICmd_unk_1A: @ 81290EC - ldr r2, _08129108 @ =gSharedMem + 0x192E4 - ldr r1, _0812910C @ =gUnknown_02038670 - adds r0, r2, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2, 0x18] - ldr r1, _08129110 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08129108: .4byte gSharedMem + 0x192E4 -_0812910C: .4byte gUnknown_02038670 -_08129110: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_1A - - thumb_func_start ContestAICmd_unk_1B -ContestAICmd_unk_1B: @ 8129114 - push {r4,r5,lr} - bl ContestAICmd_unk_1A - ldr r2, _0812914C @ =gSharedMem + 0x192E4 - ldr r4, _08129150 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bge _08129154 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _08129158 - .align 2, 0 -_0812914C: .4byte gSharedMem + 0x192E4 -_08129150: .4byte gAIScriptPtr -_08129154: - adds r0, r3, 0x6 - str r0, [r4] -_08129158: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_1B - - thumb_func_start ContestAICmd_unk_1C -ContestAICmd_unk_1C: @ 8129160 - push {r4,r5,lr} - bl ContestAICmd_unk_1A - ldr r2, _08129198 @ =gSharedMem + 0x192E4 - ldr r4, _0812919C @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - ble _081291A0 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _081291A4 - .align 2, 0 -_08129198: .4byte gSharedMem + 0x192E4 -_0812919C: .4byte gAIScriptPtr -_081291A0: - adds r0, r3, 0x6 - str r0, [r4] -_081291A4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_1C - - thumb_func_start ContestAICmd_unk_1D -ContestAICmd_unk_1D: @ 81291AC - push {r4,r5,lr} - bl ContestAICmd_unk_1A - ldr r2, _081291E4 @ =gSharedMem + 0x192E4 - ldr r4, _081291E8 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - bne _081291EC - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _081291F0 - .align 2, 0 -_081291E4: .4byte gSharedMem + 0x192E4 -_081291E8: .4byte gAIScriptPtr -_081291EC: - adds r0, r3, 0x6 - str r0, [r4] -_081291F0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_1D - - thumb_func_start ContestAICmd_unk_1E -ContestAICmd_unk_1E: @ 81291F8 - push {r4,r5,lr} - bl ContestAICmd_unk_1A - ldr r2, _08129230 @ =gSharedMem + 0x192E4 - ldr r4, _08129234 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3] - ldrb r0, [r3, 0x1] - lsls r0, 8 - orrs r1, r0 - movs r5, 0x18 - ldrsh r0, [r2, r5] - lsls r1, 16 - asrs r1, 16 - cmp r0, r1 - beq _08129238 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812923C - .align 2, 0 -_08129230: .4byte gSharedMem + 0x192E4 -_08129234: .4byte gAIScriptPtr -_08129238: - adds r0, r3, 0x6 - str r0, [r4] -_0812923C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_1E - - thumb_func_start ContestAICmd_get_contest_type -ContestAICmd_get_contest_type: @ 8129244 - ldr r1, _08129258 @ =gSharedMem + 0x192E4 - ldr r0, _0812925C @ =gSpecialVar_ContestCategory - ldrh r0, [r0] - strh r0, [r1, 0x18] - ldr r1, _08129260 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08129258: .4byte gSharedMem + 0x192E4 -_0812925C: .4byte gSpecialVar_ContestCategory -_08129260: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_contest_type - - thumb_func_start ContestAICmd_unk_20 -ContestAICmd_unk_20: @ 8129264 - push {lr} - bl ContestAICmd_get_contest_type - ldr r0, _08129294 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129298 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _0812929C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081292A0 - .align 2, 0 -_08129294: .4byte gSharedMem + 0x192E4 -_08129298: .4byte gAIScriptPtr -_0812929C: - adds r0, r2, 0x5 - str r0, [r3] -_081292A0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_20 - - thumb_func_start ContestAICmd_unk_21 -ContestAICmd_unk_21: @ 81292A4 - push {lr} - bl ContestAICmd_get_contest_type - ldr r0, _081292D4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081292D8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081292DC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081292E0 - .align 2, 0 -_081292D4: .4byte gSharedMem + 0x192E4 -_081292D8: .4byte gAIScriptPtr -_081292DC: - adds r0, r2, 0x5 - str r0, [r3] -_081292E0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_21 - - thumb_func_start ContestAICmd_get_move_excitement -ContestAICmd_get_move_excitement: @ 81292E4 - push {r4,lr} - ldr r2, _08129318 @ =gContestMons - ldr r4, _0812931C @ =gSharedMem + 0x192E4 - ldrb r1, [r4, 0x4] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - bl Contest_GetMoveExcitement - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x18] - ldr r1, _08129320 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08129318: .4byte gContestMons -_0812931C: .4byte gSharedMem + 0x192E4 -_08129320: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_move_excitement - - thumb_func_start ContestAICmd_unk_23 -ContestAICmd_unk_23: @ 8129324 - push {r4,lr} - bl ContestAICmd_get_move_excitement - ldr r0, _08129354 @ =gSharedMem + 0x192E4 - ldr r3, _08129358 @ =gAIScriptPtr - ldr r2, [r3] - movs r4, 0x18 - ldrsh r1, [r0, r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bge _0812935C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129360 - .align 2, 0 -_08129354: .4byte gSharedMem + 0x192E4 -_08129358: .4byte gAIScriptPtr -_0812935C: - adds r0, r2, 0x5 - str r0, [r3] -_08129360: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_23 - - thumb_func_start ContestAICmd_unk_24 -ContestAICmd_unk_24: @ 8129368 - push {r4,lr} - bl ContestAICmd_get_move_excitement - ldr r0, _08129398 @ =gSharedMem + 0x192E4 - ldr r3, _0812939C @ =gAIScriptPtr - ldr r2, [r3] - movs r4, 0x18 - ldrsh r1, [r0, r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - ble _081293A0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081293A4 - .align 2, 0 -_08129398: .4byte gSharedMem + 0x192E4 -_0812939C: .4byte gAIScriptPtr -_081293A0: - adds r0, r2, 0x5 - str r0, [r3] -_081293A4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_24 - - thumb_func_start ContestAICmd_unk_25 -ContestAICmd_unk_25: @ 81293AC - push {r4,lr} - bl ContestAICmd_get_move_excitement - ldr r0, _081293DC @ =gSharedMem + 0x192E4 - ldr r3, _081293E0 @ =gAIScriptPtr - ldr r2, [r3] - movs r4, 0x18 - ldrsh r1, [r0, r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - bne _081293E4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081293E8 - .align 2, 0 -_081293DC: .4byte gSharedMem + 0x192E4 -_081293E0: .4byte gAIScriptPtr -_081293E4: - adds r0, r2, 0x5 - str r0, [r3] -_081293E8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_25 - - thumb_func_start ContestAICmd_unk_26 -ContestAICmd_unk_26: @ 81293F0 - push {r4,lr} - bl ContestAICmd_get_move_excitement - ldr r0, _08129420 @ =gSharedMem + 0x192E4 - ldr r3, _08129424 @ =gAIScriptPtr - ldr r2, [r3] - movs r4, 0x18 - ldrsh r1, [r0, r4] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - beq _08129428 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812942C - .align 2, 0 -_08129420: .4byte gSharedMem + 0x192E4 -_08129424: .4byte gAIScriptPtr -_08129428: - adds r0, r2, 0x5 - str r0, [r3] -_0812942C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_26 - - thumb_func_start ContestAICmd_get_move_effect -ContestAICmd_get_move_effect: @ 8129434 - ldr r2, _08129460 @ =gContestMons - ldr r3, _08129464 @ =gSharedMem + 0x192E4 - ldrb r1, [r3, 0x4] - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - ldr r1, _08129468 @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r3, 0x18] - ldr r1, _0812946C @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08129460: .4byte gContestMons -_08129464: .4byte gSharedMem + 0x192E4 -_08129468: .4byte gContestMoves -_0812946C: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_move_effect - - thumb_func_start ContestAICmd_unk_28 -ContestAICmd_unk_28: @ 8129470 - push {lr} - bl ContestAICmd_get_move_effect - ldr r0, _081294A0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081294A4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081294A8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081294AC - .align 2, 0 -_081294A0: .4byte gSharedMem + 0x192E4 -_081294A4: .4byte gAIScriptPtr -_081294A8: - adds r0, r2, 0x5 - str r0, [r3] -_081294AC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_28 - - thumb_func_start ContestAICmd_unk_29 -ContestAICmd_unk_29: @ 81294B0 - push {lr} - bl ContestAICmd_get_move_effect - ldr r0, _081294E0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081294E4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081294E8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081294EC - .align 2, 0 -_081294E0: .4byte gSharedMem + 0x192E4 -_081294E4: .4byte gAIScriptPtr -_081294E8: - adds r0, r2, 0x5 - str r0, [r3] -_081294EC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_29 - - thumb_func_start ContestAICmd_get_move_effect_type -ContestAICmd_get_move_effect_type: @ 81294F0 - ldr r2, _08129524 @ =gContestMons - ldr r3, _08129528 @ =gSharedMem + 0x192E4 - ldrb r1, [r3, 0x4] - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - ldr r2, _0812952C @ =gContestEffects - ldr r1, _08129530 @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r3, 0x18] - ldr r1, _08129534 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08129524: .4byte gContestMons -_08129528: .4byte gSharedMem + 0x192E4 -_0812952C: .4byte gContestEffects -_08129530: .4byte gContestMoves -_08129534: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_move_effect_type - - thumb_func_start ContestAICmd_unk_2B -ContestAICmd_unk_2B: @ 8129538 - push {lr} - bl ContestAICmd_get_move_effect_type - ldr r0, _08129568 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812956C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08129570 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129574 - .align 2, 0 -_08129568: .4byte gSharedMem + 0x192E4 -_0812956C: .4byte gAIScriptPtr -_08129570: - adds r0, r2, 0x5 - str r0, [r3] -_08129574: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_2B - - thumb_func_start ContestAICmd_unk_2C -ContestAICmd_unk_2C: @ 8129578 - push {lr} - bl ContestAICmd_get_move_effect_type - ldr r0, _081295A8 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081295AC @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081295B0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081295B4 - .align 2, 0 -_081295A8: .4byte gSharedMem + 0x192E4 -_081295AC: .4byte gAIScriptPtr -_081295B0: - adds r0, r2, 0x5 - str r0, [r3] -_081295B4: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_2C - - thumb_func_start ContestAICmd_check_move_has_highest_appeal -ContestAICmd_check_move_has_highest_appeal: @ 81295B8 - push {r4-r7,lr} - ldr r2, _08129610 @ =gContestMons - ldr r3, _08129614 @ =gSharedMem + 0x192E4 - ldrb r0, [r3, 0x4] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x41 - ldrb r1, [r1] - lsls r1, 6 - adds r0, r1 - adds r2, 0x1E - adds r0, r2 - ldrh r0, [r0] - ldr r4, _08129618 @ =gContestEffects - ldr r5, _0812961C @ =gContestMoves - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldrb r7, [r0, 0x1] - movs r6, 0 - ldr r0, _08129620 @ =gAIScriptPtr - mov r12, r0 - adds r1, r2 -_081295EA: - ldrh r0, [r1] - cmp r0, 0 - beq _08129600 - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x1] - cmp r7, r0 - bcc _08129608 -_08129600: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _081295EA -_08129608: - cmp r6, 0x4 - bne _08129624 - movs r0, 0x1 - b _08129626 - .align 2, 0 -_08129610: .4byte gContestMons -_08129614: .4byte gSharedMem + 0x192E4 -_08129618: .4byte gContestEffects -_0812961C: .4byte gContestMoves -_08129620: .4byte gAIScriptPtr -_08129624: - movs r0, 0 -_08129626: - strh r0, [r3, 0x18] - mov r1, r12 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_check_move_has_highest_appeal - - thumb_func_start ContestAICmd_unk_2E -ContestAICmd_unk_2E: @ 8129638 - push {lr} - bl ContestAICmd_check_move_has_highest_appeal - ldr r0, _08129664 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812966C - ldr r3, _08129668 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129674 - .align 2, 0 -_08129664: .4byte gSharedMem + 0x192E4 -_08129668: .4byte gAIScriptPtr -_0812966C: - ldr r1, _08129678 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08129674: - pop {r0} - bx r0 - .align 2, 0 -_08129678: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_2E - - thumb_func_start ContestAICmd_unk_2F -ContestAICmd_unk_2F: @ 812967C - push {r4-r7,lr} - ldr r2, _081296D4 @ =gContestMons - ldr r3, _081296D8 @ =gSharedMem + 0x192E4 - ldrb r0, [r3, 0x4] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x41 - ldrb r1, [r1] - lsls r1, 6 - adds r0, r1 - adds r2, 0x1E - adds r0, r2 - ldrh r0, [r0] - ldr r4, _081296DC @ =gContestEffects - ldr r5, _081296E0 @ =gContestMoves - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldrb r7, [r0, 0x2] - movs r6, 0 - ldr r0, _081296E4 @ =gAIScriptPtr - mov r12, r0 - adds r1, r2 -_081296AE: - ldrh r0, [r1] - cmp r0, 0 - beq _081296C4 - lsls r0, 3 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x2] - cmp r7, r0 - bcc _081296CC -_081296C4: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _081296AE -_081296CC: - cmp r6, 0x4 - bne _081296E8 - movs r0, 0x1 - b _081296EA - .align 2, 0 -_081296D4: .4byte gContestMons -_081296D8: .4byte gSharedMem + 0x192E4 -_081296DC: .4byte gContestEffects -_081296E0: .4byte gContestMoves -_081296E4: .4byte gAIScriptPtr -_081296E8: - movs r0, 0 -_081296EA: - strh r0, [r3, 0x18] - mov r1, r12 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_2F - - thumb_func_start ContestAICmd_unk_30 -ContestAICmd_unk_30: @ 81296FC - push {lr} - bl ContestAICmd_unk_2F - ldr r0, _08129728 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08129730 - ldr r3, _0812972C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129738 - .align 2, 0 -_08129728: .4byte gSharedMem + 0x192E4 -_0812972C: .4byte gAIScriptPtr -_08129730: - ldr r1, _0812973C @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08129738: - pop {r0} - bx r0 - .align 2, 0 -_0812973C: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_30 - - thumb_func_start ContestAICmd_unk_31 -ContestAICmd_unk_31: @ 8129740 - push {r4,lr} - ldr r2, _08129784 @ =gContestMons - ldr r4, _08129788 @ =gSharedMem + 0x192E4 - ldrb r1, [r4, 0x4] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - ldr r2, _0812978C @ =gContestEffects - ldr r1, _08129790 @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x18] - ldr r1, _08129794 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08129784: .4byte gContestMons -_08129788: .4byte gSharedMem + 0x192E4 -_0812978C: .4byte gContestEffects -_08129790: .4byte gContestMoves -_08129794: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_31 - - thumb_func_start ContestAICmd_unk_32 -ContestAICmd_unk_32: @ 8129798 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _081297C8 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081297CC @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _081297D0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081297D4 - .align 2, 0 -_081297C8: .4byte gSharedMem + 0x192E4 -_081297CC: .4byte gAIScriptPtr -_081297D0: - adds r0, r2, 0x5 - str r0, [r3] -_081297D4: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_32 - - thumb_func_start ContestAICmd_unk_33 -ContestAICmd_unk_33: @ 81297D8 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _08129808 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812980C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08129810 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129814 - .align 2, 0 -_08129808: .4byte gSharedMem + 0x192E4 -_0812980C: .4byte gAIScriptPtr -_08129810: - adds r0, r2, 0x5 - str r0, [r3] -_08129814: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_33 - - thumb_func_start ContestAICmd_unk_34 -ContestAICmd_unk_34: @ 8129818 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _08129848 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812984C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08129850 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129854 - .align 2, 0 -_08129848: .4byte gSharedMem + 0x192E4 -_0812984C: .4byte gAIScriptPtr -_08129850: - adds r0, r2, 0x5 - str r0, [r3] -_08129854: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_34 - - thumb_func_start ContestAICmd_unk_35 -ContestAICmd_unk_35: @ 8129858 - push {lr} - bl ContestAICmd_unk_31 - ldr r0, _08129888 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812988C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08129890 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129894 - .align 2, 0 -_08129888: .4byte gSharedMem + 0x192E4 -_0812988C: .4byte gAIScriptPtr -_08129890: - adds r0, r2, 0x5 - str r0, [r3] -_08129894: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_35 - - thumb_func_start ContestAICmd_unk_36 -ContestAICmd_unk_36: @ 8129898 - push {r4,lr} - ldr r2, _081298DC @ =gContestMons - ldr r4, _081298E0 @ =gSharedMem + 0x192E4 - ldrb r1, [r4, 0x4] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r2, 0x1E - adds r1, r2 - ldrh r0, [r1] - ldr r2, _081298E4 @ =gContestEffects - ldr r1, _081298E8 @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x18] - ldr r1, _081298EC @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081298DC: .4byte gContestMons -_081298E0: .4byte gSharedMem + 0x192E4 -_081298E4: .4byte gContestEffects -_081298E8: .4byte gContestMoves -_081298EC: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_36 - - thumb_func_start ContestAICmd_unk_37 -ContestAICmd_unk_37: @ 81298F0 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _08129920 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129924 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08129928 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812992C - .align 2, 0 -_08129920: .4byte gSharedMem + 0x192E4 -_08129924: .4byte gAIScriptPtr -_08129928: - adds r0, r2, 0x5 - str r0, [r3] -_0812992C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_37 - - thumb_func_start ContestAICmd_unk_38 -ContestAICmd_unk_38: @ 8129930 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _08129960 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129964 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08129968 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812996C - .align 2, 0 -_08129960: .4byte gSharedMem + 0x192E4 -_08129964: .4byte gAIScriptPtr -_08129968: - adds r0, r2, 0x5 - str r0, [r3] -_0812996C: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_38 - - thumb_func_start ContestAICmd_unk_39 -ContestAICmd_unk_39: @ 8129970 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _081299A0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081299A4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _081299A8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081299AC - .align 2, 0 -_081299A0: .4byte gSharedMem + 0x192E4 -_081299A4: .4byte gAIScriptPtr -_081299A8: - adds r0, r2, 0x5 - str r0, [r3] -_081299AC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_39 - - thumb_func_start ContestAICmd_unk_3A -ContestAICmd_unk_3A: @ 81299B0 - push {lr} - bl ContestAICmd_unk_36 - ldr r0, _081299E0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _081299E4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _081299E8 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _081299EC - .align 2, 0 -_081299E0: .4byte gSharedMem + 0x192E4 -_081299E4: .4byte gAIScriptPtr -_081299E8: - adds r0, r2, 0x5 - str r0, [r3] -_081299EC: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3A - - thumb_func_start ContestAICmd_get_move_used_count -ContestAICmd_get_move_used_count: @ 81299F0 - push {r4,lr} - ldr r3, _08129A20 @ =gContestMons - ldr r4, _08129A24 @ =gSharedMem + 0x192E4 - ldrb r0, [r4, 0x4] - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x41 - ldrb r2, [r1] - lsls r1, r2, 6 - adds r0, r1 - adds r3, 0x1E - adds r0, r3 - ldrh r3, [r0] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x84 - adds r0, r1 - ldrh r1, [r0, 0x8] - cmp r3, r1 - beq _08129A28 - movs r0, 0 - b _08129A30 - .align 2, 0 -_08129A20: .4byte gContestMons -_08129A24: .4byte gSharedMem + 0x192E4 -_08129A28: - ldrb r0, [r0, 0xB] - lsls r0, 25 - lsrs r0, 29 - adds r0, 0x1 -_08129A30: - strh r0, [r4, 0x18] - ldr r1, _08129A40 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08129A40: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_get_move_used_count - - thumb_func_start ContestAICmd_unk_3C -ContestAICmd_unk_3C: @ 8129A44 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _08129A74 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129A78 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08129A7C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129A80 - .align 2, 0 -_08129A74: .4byte gSharedMem + 0x192E4 -_08129A78: .4byte gAIScriptPtr -_08129A7C: - adds r0, r2, 0x5 - str r0, [r3] -_08129A80: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3C - - thumb_func_start ContestAICmd_unk_3D -ContestAICmd_unk_3D: @ 8129A84 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _08129AB4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129AB8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08129ABC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129AC0 - .align 2, 0 -_08129AB4: .4byte gSharedMem + 0x192E4 -_08129AB8: .4byte gAIScriptPtr -_08129ABC: - adds r0, r2, 0x5 - str r0, [r3] -_08129AC0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3D - - thumb_func_start ContestAICmd_unk_3E -ContestAICmd_unk_3E: @ 8129AC4 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _08129AF4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129AF8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08129AFC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129B00 - .align 2, 0 -_08129AF4: .4byte gSharedMem + 0x192E4 -_08129AF8: .4byte gAIScriptPtr -_08129AFC: - adds r0, r2, 0x5 - str r0, [r3] -_08129B00: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3E - - thumb_func_start ContestAICmd_unk_3F -ContestAICmd_unk_3F: @ 8129B04 - push {lr} - bl ContestAICmd_get_move_used_count - ldr r0, _08129B34 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129B38 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08129B3C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129B40 - .align 2, 0 -_08129B34: .4byte gSharedMem + 0x192E4 -_08129B38: .4byte gAIScriptPtr -_08129B3C: - adds r0, r2, 0x5 - str r0, [r3] -_08129B40: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_3F - - thumb_func_start ContestAICmd_check_combo_starter -ContestAICmd_check_combo_starter: @ 8129B44 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r3, _08129BAC @ =gContestMons - ldr r2, _08129BB0 @ =gSharedMem + 0x192E4 - ldrb r1, [r2, 0x4] - lsls r1, 1 - adds r2, 0x41 - ldrb r0, [r2] - lsls r0, 6 - adds r1, r0 - adds r3, 0x1E - adds r1, r3 - ldrh r6, [r1] - movs r4, 0 - mov r8, r2 - adds r7, r3, 0 -_08129B68: - lsls r0, r4, 1 - mov r2, r8 - ldrb r1, [r2] - lsls r1, 6 - adds r0, r1 - adds r1, r0, r7 - ldrh r0, [r1] - cmp r0, 0 - beq _08129B8A - adds r1, r0, 0 - adds r0, r6, 0 - bl AreMovesContestCombo - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08129B94 -_08129B8A: - adds r4, 0x1 - cmp r4, 0x3 - ble _08129B68 - cmp r5, 0 - beq _08129B96 -_08129B94: - movs r5, 0x1 -_08129B96: - ldr r0, _08129BB0 @ =gSharedMem + 0x192E4 - strh r5, [r0, 0x18] - ldr r1, _08129BB4 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08129BAC: .4byte gContestMons -_08129BB0: .4byte gSharedMem + 0x192E4 -_08129BB4: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_check_combo_starter - - thumb_func_start ContestAICmd_unk_41 -ContestAICmd_unk_41: @ 8129BB8 - push {lr} - bl ContestAICmd_check_combo_starter - ldr r0, _08129BE4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08129BEC - ldr r3, _08129BE8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129BF4 - .align 2, 0 -_08129BE4: .4byte gSharedMem + 0x192E4 -_08129BE8: .4byte gAIScriptPtr -_08129BEC: - ldr r1, _08129BF8 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08129BF4: - pop {r0} - bx r0 - .align 2, 0 -_08129BF8: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_41 - - thumb_func_start ContestAICmd_unk_42 -ContestAICmd_unk_42: @ 8129BFC - push {lr} - bl ContestAICmd_check_combo_starter - ldr r0, _08129C28 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08129C30 - ldr r3, _08129C2C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129C38 - .align 2, 0 -_08129C28: .4byte gSharedMem + 0x192E4 -_08129C2C: .4byte gAIScriptPtr -_08129C30: - ldr r1, _08129C3C @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08129C38: - pop {r0} - bx r0 - .align 2, 0 -_08129C3C: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_42 - - thumb_func_start ContestAICmd_check_combo_finisher -ContestAICmd_check_combo_finisher: @ 8129C40 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r3, _08129CA8 @ =gContestMons - ldr r2, _08129CAC @ =gSharedMem + 0x192E4 - ldrb r1, [r2, 0x4] - lsls r1, 1 - adds r2, 0x41 - ldrb r0, [r2] - lsls r0, 6 - adds r1, r0 - adds r3, 0x1E - adds r1, r3 - ldrh r6, [r1] - movs r4, 0 - mov r8, r2 - adds r7, r3, 0 -_08129C64: - lsls r0, r4, 1 - mov r2, r8 - ldrb r1, [r2] - lsls r1, 6 - adds r0, r1 - adds r1, r0, r7 - ldrh r0, [r1] - cmp r0, 0 - beq _08129C84 - adds r1, r6, 0 - bl AreMovesContestCombo - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _08129C8E -_08129C84: - adds r4, 0x1 - cmp r4, 0x3 - ble _08129C64 - cmp r5, 0 - beq _08129C90 -_08129C8E: - movs r5, 0x1 -_08129C90: - ldr r0, _08129CAC @ =gSharedMem + 0x192E4 - strh r5, [r0, 0x18] - ldr r1, _08129CB0 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08129CA8: .4byte gContestMons -_08129CAC: .4byte gSharedMem + 0x192E4 -_08129CB0: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_check_combo_finisher - - thumb_func_start ContestAICmd_unk_44 -ContestAICmd_unk_44: @ 8129CB4 - push {lr} - bl ContestAICmd_check_combo_finisher - ldr r0, _08129CE0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08129CE8 - ldr r3, _08129CE4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129CF0 - .align 2, 0 -_08129CE0: .4byte gSharedMem + 0x192E4 -_08129CE4: .4byte gAIScriptPtr -_08129CE8: - ldr r1, _08129CF4 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08129CF0: - pop {r0} - bx r0 - .align 2, 0 -_08129CF4: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_44 - - thumb_func_start ContestAICmd_unk_45 -ContestAICmd_unk_45: @ 8129CF8 - push {lr} - bl ContestAICmd_check_combo_finisher - ldr r0, _08129D24 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08129D2C - ldr r3, _08129D28 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129D34 - .align 2, 0 -_08129D24: .4byte gSharedMem + 0x192E4 -_08129D28: .4byte gAIScriptPtr -_08129D2C: - ldr r1, _08129D38 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08129D34: - pop {r0} - bx r0 - .align 2, 0 -_08129D38: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_45 - - thumb_func_start ContestAICmd_check_would_finish_combo -ContestAICmd_check_would_finish_combo: @ 8129D3C - push {r4,r5,lr} - movs r5, 0 - ldr r3, _08129D8C @ =gContestMons - ldr r4, _08129D90 @ =gSharedMem + 0x192E4 - ldrb r0, [r4, 0x4] - lsls r0, 1 - adds r1, r4, 0 - adds r1, 0x41 - ldrb r2, [r1] - lsls r1, r2, 6 - adds r0, r1 - adds r3, 0x1E - adds r0, r3 - ldrh r3, [r0] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r1, r4, 0 - subs r1, 0x84 - adds r1, r0, r1 - ldrh r0, [r1, 0x8] - cmp r0, 0 - beq _08129D74 - adds r1, r3, 0 - bl AreMovesContestCombo - lsls r0, 24 - lsrs r5, r0, 24 -_08129D74: - cmp r5, 0 - beq _08129D7A - movs r5, 0x1 -_08129D7A: - strh r5, [r4, 0x18] - ldr r1, _08129D94 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08129D8C: .4byte gContestMons -_08129D90: .4byte gSharedMem + 0x192E4 -_08129D94: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_check_would_finish_combo - - thumb_func_start ContestAICmd_unk_47 -ContestAICmd_unk_47: @ 8129D98 - push {lr} - bl ContestAICmd_check_would_finish_combo - ldr r0, _08129DC4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08129DCC - ldr r3, _08129DC8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129DD4 - .align 2, 0 -_08129DC4: .4byte gSharedMem + 0x192E4 -_08129DC8: .4byte gAIScriptPtr -_08129DCC: - ldr r1, _08129DD8 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08129DD4: - pop {r0} - bx r0 - .align 2, 0 -_08129DD8: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_47 - - thumb_func_start ContestAICmd_unk_48 -ContestAICmd_unk_48: @ 8129DDC - push {lr} - bl ContestAICmd_check_would_finish_combo - ldr r0, _08129E08 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08129E10 - ldr r3, _08129E0C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129E18 - .align 2, 0 -_08129E08: .4byte gSharedMem + 0x192E4 -_08129E0C: .4byte gAIScriptPtr -_08129E10: - ldr r1, _08129E1C @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_08129E18: - pop {r0} - bx r0 - .align 2, 0 -_08129E1C: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_48 - - thumb_func_start ContestAICmd_get_condition -ContestAICmd_get_condition: @ 8129E20 - push {r4,r5,lr} - ldr r4, _08129E5C @ =gAIScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8128A7C - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08129E60 @ =gSharedMem + 0x192E4 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r5, 0 - subs r0, 0x84 - adds r1, r0 - movs r0, 0xD - ldrsb r0, [r1, r0] - movs r1, 0xA - bl __divsi3 - lsls r0, 24 - asrs r0, 24 - strh r0, [r5, 0x18] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08129E5C: .4byte gAIScriptPtr -_08129E60: .4byte gSharedMem + 0x192E4 - thumb_func_end ContestAICmd_get_condition - - thumb_func_start ContestAICmd_unk_4A -ContestAICmd_unk_4A: @ 8129E64 - push {lr} - bl ContestAICmd_get_condition - ldr r0, _08129E94 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129E98 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08129E9C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129EA0 - .align 2, 0 -_08129E94: .4byte gSharedMem + 0x192E4 -_08129E98: .4byte gAIScriptPtr -_08129E9C: - adds r0, r2, 0x5 - str r0, [r3] -_08129EA0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_4A - - thumb_func_start ContestAICmd_unk_4B -ContestAICmd_unk_4B: @ 8129EA4 - push {lr} - bl ContestAICmd_get_condition - ldr r0, _08129ED4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129ED8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _08129EDC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129EE0 - .align 2, 0 -_08129ED4: .4byte gSharedMem + 0x192E4 -_08129ED8: .4byte gAIScriptPtr -_08129EDC: - adds r0, r2, 0x5 - str r0, [r3] -_08129EE0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_4B - - thumb_func_start ContestAICmd_unk_4C -ContestAICmd_unk_4C: @ 8129EE4 - push {lr} - bl ContestAICmd_get_condition - ldr r0, _08129F14 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129F18 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _08129F1C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129F20 - .align 2, 0 -_08129F14: .4byte gSharedMem + 0x192E4 -_08129F18: .4byte gAIScriptPtr -_08129F1C: - adds r0, r2, 0x5 - str r0, [r3] -_08129F20: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_4C - - thumb_func_start ContestAICmd_unk_4D -ContestAICmd_unk_4D: @ 8129F24 - push {lr} - bl ContestAICmd_get_condition - ldr r0, _08129F54 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129F58 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _08129F5C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129F60 - .align 2, 0 -_08129F54: .4byte gSharedMem + 0x192E4 -_08129F58: .4byte gAIScriptPtr -_08129F5C: - adds r0, r2, 0x5 - str r0, [r3] -_08129F60: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_4D - - thumb_func_start ContestAICmd_get_used_combo_starter -ContestAICmd_get_used_combo_starter: @ 8129F64 - push {r4-r6,lr} - movs r6, 0 - ldr r5, _08129FAC @ =gAIScriptPtr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8128A7C - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B214C - lsls r0, 24 - cmp r0, 0 - beq _08129F9C - ldr r2, _08129FB0 @ =gContestMoves - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _08129FB4 @ =gSharedMem + 0x19260 - adds r0, r1 - ldrh r0, [r0, 0x8] - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0x2] - negs r0, r1 - orrs r0, r1 - lsrs r6, r0, 31 -_08129F9C: - ldr r0, _08129FB8 @ =gSharedMem + 0x192E4 - strh r6, [r0, 0x18] - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08129FAC: .4byte gAIScriptPtr -_08129FB0: .4byte gContestMoves -_08129FB4: .4byte gSharedMem + 0x19260 -_08129FB8: .4byte gSharedMem + 0x192E4 - thumb_func_end ContestAICmd_get_used_combo_starter - - thumb_func_start ContestAICmd_unk_4F -ContestAICmd_unk_4F: @ 8129FBC - push {lr} - bl ContestAICmd_get_used_combo_starter - ldr r0, _08129FEC @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _08129FF0 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _08129FF4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _08129FF8 - .align 2, 0 -_08129FEC: .4byte gSharedMem + 0x192E4 -_08129FF0: .4byte gAIScriptPtr -_08129FF4: - adds r0, r2, 0x5 - str r0, [r3] -_08129FF8: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_4F - - thumb_func_start ContestAICmd_unk_50 -ContestAICmd_unk_50: @ 8129FFC - push {lr} - bl ContestAICmd_get_used_combo_starter - ldr r0, _0812A02C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A030 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _0812A034 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A038 - .align 2, 0 -_0812A02C: .4byte gSharedMem + 0x192E4 -_0812A030: .4byte gAIScriptPtr -_0812A034: - adds r0, r2, 0x5 - str r0, [r3] -_0812A038: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_50 - - thumb_func_start ContestAICmd_unk_51 -ContestAICmd_unk_51: @ 812A03C - push {lr} - bl ContestAICmd_get_used_combo_starter - ldr r0, _0812A06C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A070 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _0812A074 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A078 - .align 2, 0 -_0812A06C: .4byte gSharedMem + 0x192E4 -_0812A070: .4byte gAIScriptPtr -_0812A074: - adds r0, r2, 0x5 - str r0, [r3] -_0812A078: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_51 - - thumb_func_start ContestAICmd_unk_52 -ContestAICmd_unk_52: @ 812A07C - push {lr} - bl ContestAICmd_get_used_combo_starter - ldr r0, _0812A0AC @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A0B0 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _0812A0B4 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A0B8 - .align 2, 0 -_0812A0AC: .4byte gSharedMem + 0x192E4 -_0812A0B0: .4byte gAIScriptPtr -_0812A0B4: - adds r0, r2, 0x5 - str r0, [r3] -_0812A0B8: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_52 - - thumb_func_start ContestAICmd_check_can_participate -ContestAICmd_check_can_participate: @ 812A0BC - push {lr} - ldr r0, _0812A0DC @ =gAIScriptPtr - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8128A7C - lsls r0, 24 - lsrs r0, 24 - bl Contest_IsMonsTurnDisabled - lsls r0, 24 - cmp r0, 0 - beq _0812A0E4 - ldr r1, _0812A0E0 @ =gSharedMem + 0x192E4 - movs r0, 0 - b _0812A0E8 - .align 2, 0 -_0812A0DC: .4byte gAIScriptPtr -_0812A0E0: .4byte gSharedMem + 0x192E4 -_0812A0E4: - ldr r1, _0812A0F8 @ =gSharedMem + 0x192E4 - movs r0, 0x1 -_0812A0E8: - strh r0, [r1, 0x18] - ldr r1, _0812A0FC @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0812A0F8: .4byte gSharedMem + 0x192E4 -_0812A0FC: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_check_can_participate - - thumb_func_start ContestAICmd_unk_54 -ContestAICmd_unk_54: @ 812A100 - push {lr} - bl ContestAICmd_check_can_participate - ldr r0, _0812A12C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812A134 - ldr r3, _0812A130 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A13C - .align 2, 0 -_0812A12C: .4byte gSharedMem + 0x192E4 -_0812A130: .4byte gAIScriptPtr -_0812A134: - ldr r1, _0812A140 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A13C: - pop {r0} - bx r0 - .align 2, 0 -_0812A140: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_54 - - thumb_func_start ContestAICmd_unk_55 -ContestAICmd_unk_55: @ 812A144 - push {lr} - bl ContestAICmd_check_can_participate - ldr r0, _0812A170 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812A178 - ldr r3, _0812A174 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A180 - .align 2, 0 -_0812A170: .4byte gSharedMem + 0x192E4 -_0812A174: .4byte gAIScriptPtr -_0812A178: - ldr r1, _0812A184 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A180: - pop {r0} - bx r0 - .align 2, 0 -_0812A184: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_55 - - thumb_func_start ContestAICmd_get_val_812A188 -ContestAICmd_get_val_812A188: @ 812A188 - push {r4,lr} - ldr r4, _0812A1BC @ =gAIScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8128A7C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0812A1C0 @ =gSharedMem + 0x192E4 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r0, r2, 0 - subs r0, 0x84 - adds r1, r0 - ldrb r0, [r1, 0x15] - lsls r0, 28 - lsrs r0, 31 - strh r0, [r2, 0x18] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A1BC: .4byte gAIScriptPtr -_0812A1C0: .4byte gSharedMem + 0x192E4 - thumb_func_end ContestAICmd_get_val_812A188 - - thumb_func_start ContestAICmd_unk_57 -ContestAICmd_unk_57: @ 812A1C4 - push {lr} - bl ContestAICmd_get_val_812A188 - ldr r0, _0812A1F0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812A1F8 - ldr r3, _0812A1F4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A200 - .align 2, 0 -_0812A1F0: .4byte gSharedMem + 0x192E4 -_0812A1F4: .4byte gAIScriptPtr -_0812A1F8: - ldr r1, _0812A204 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A200: - pop {r0} - bx r0 - .align 2, 0 -_0812A204: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_57 - - thumb_func_start ContestAICmd_unk_58 -ContestAICmd_unk_58: @ 812A208 - push {lr} - bl ContestAICmd_get_val_812A188 - ldr r0, _0812A234 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812A23C - ldr r3, _0812A238 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A244 - .align 2, 0 -_0812A234: .4byte gSharedMem + 0x192E4 -_0812A238: .4byte gAIScriptPtr -_0812A23C: - ldr r1, _0812A248 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A244: - pop {r0} - bx r0 - .align 2, 0 -_0812A248: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_58 - - thumb_func_start ContestAICmd_unk_59 -ContestAICmd_unk_59: @ 812A24C - push {r4,r5,lr} - ldr r5, _0812A28C @ =gAIScriptPtr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8128A7C - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0812A290 @ =gSharedMem + 0x192E4 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r4, r3, 0 - subs r4, 0x84 - adds r1, r4 - adds r0, r3, 0 - adds r0, 0x41 - ldrb r2, [r0] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r1, 0x4] - ldrh r0, [r0, 0x4] - subs r1, r0 - strh r1, [r3, 0x18] - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812A28C: .4byte gAIScriptPtr -_0812A290: .4byte gSharedMem + 0x192E4 - thumb_func_end ContestAICmd_unk_59 - - thumb_func_start ContestAICmd_unk_5A -ContestAICmd_unk_5A: @ 812A294 - push {lr} - bl ContestAICmd_unk_59 - ldr r0, _0812A2C0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _0812A2C8 - ldr r3, _0812A2C4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A2D0 - .align 2, 0 -_0812A2C0: .4byte gSharedMem + 0x192E4 -_0812A2C4: .4byte gAIScriptPtr -_0812A2C8: - ldr r1, _0812A2D4 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A2D0: - pop {r0} - bx r0 - .align 2, 0 -_0812A2D4: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_5A - - thumb_func_start ContestAICmd_unk_5B -ContestAICmd_unk_5B: @ 812A2D8 - push {lr} - bl ContestAICmd_unk_59 - ldr r0, _0812A304 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _0812A30C - ldr r3, _0812A308 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A314 - .align 2, 0 -_0812A304: .4byte gSharedMem + 0x192E4 -_0812A308: .4byte gAIScriptPtr -_0812A30C: - ldr r1, _0812A318 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A314: - pop {r0} - bx r0 - .align 2, 0 -_0812A318: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_5B - - thumb_func_start ContestAICmd_unk_5C -ContestAICmd_unk_5C: @ 812A31C - push {lr} - bl ContestAICmd_unk_59 - ldr r0, _0812A348 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812A350 - ldr r3, _0812A34C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A358 - .align 2, 0 -_0812A348: .4byte gSharedMem + 0x192E4 -_0812A34C: .4byte gAIScriptPtr -_0812A350: - ldr r1, _0812A35C @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A358: - pop {r0} - bx r0 - .align 2, 0 -_0812A35C: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_5C - - thumb_func_start ContestAICmd_unk_5D -ContestAICmd_unk_5D: @ 812A360 - push {lr} - bl ContestAICmd_unk_59 - ldr r0, _0812A38C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812A394 - ldr r3, _0812A390 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A39C - .align 2, 0 -_0812A38C: .4byte gSharedMem + 0x192E4 -_0812A390: .4byte gAIScriptPtr -_0812A394: - ldr r1, _0812A3A0 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A39C: - pop {r0} - bx r0 - .align 2, 0 -_0812A3A0: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_5D - - thumb_func_start ContestAICmd_unk_5E -ContestAICmd_unk_5E: @ 812A3A4 - push {r4,lr} - ldr r4, _0812A3D8 @ =gAIScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8128A7C - lsls r0, 24 - ldr r3, _0812A3DC @ =gSharedMem + 0x192E4 - ldr r2, _0812A3E0 @ =gUnknown_02038670 - lsrs r0, 23 - adds r0, r2 - adds r1, r3, 0 - adds r1, 0x41 - ldrb r1, [r1] - lsls r1, 1 - adds r1, r2 - ldrh r0, [r0] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r3, 0x18] - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A3D8: .4byte gAIScriptPtr -_0812A3DC: .4byte gSharedMem + 0x192E4 -_0812A3E0: .4byte gUnknown_02038670 - thumb_func_end ContestAICmd_unk_5E - - thumb_func_start ContestAICmd_unk_5F -ContestAICmd_unk_5F: @ 812A3E4 - push {lr} - bl ContestAICmd_unk_5E - ldr r0, _0812A410 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _0812A418 - ldr r3, _0812A414 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A420 - .align 2, 0 -_0812A410: .4byte gSharedMem + 0x192E4 -_0812A414: .4byte gAIScriptPtr -_0812A418: - ldr r1, _0812A424 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A420: - pop {r0} - bx r0 - .align 2, 0 -_0812A424: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_5F - - thumb_func_start ContestAICmd_unk_60 -ContestAICmd_unk_60: @ 812A428 - push {lr} - bl ContestAICmd_unk_5E - ldr r0, _0812A454 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _0812A45C - ldr r3, _0812A458 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A464 - .align 2, 0 -_0812A454: .4byte gSharedMem + 0x192E4 -_0812A458: .4byte gAIScriptPtr -_0812A45C: - ldr r1, _0812A468 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A464: - pop {r0} - bx r0 - .align 2, 0 -_0812A468: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_60 - - thumb_func_start ContestAICmd_unk_61 -ContestAICmd_unk_61: @ 812A46C - push {lr} - bl ContestAICmd_unk_5E - ldr r0, _0812A498 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812A4A0 - ldr r3, _0812A49C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A4A8 - .align 2, 0 -_0812A498: .4byte gSharedMem + 0x192E4 -_0812A49C: .4byte gAIScriptPtr -_0812A4A0: - ldr r1, _0812A4AC @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A4A8: - pop {r0} - bx r0 - .align 2, 0 -_0812A4AC: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_61 - - thumb_func_start ContestAICmd_unk_62 -ContestAICmd_unk_62: @ 812A4B0 - push {lr} - bl ContestAICmd_unk_5E - ldr r0, _0812A4DC @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812A4E4 - ldr r3, _0812A4E0 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A4EC - .align 2, 0 -_0812A4DC: .4byte gSharedMem + 0x192E4 -_0812A4E0: .4byte gAIScriptPtr -_0812A4E4: - ldr r1, _0812A4F0 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812A4EC: - pop {r0} - bx r0 - .align 2, 0 -_0812A4F0: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_62 - - thumb_func_start ContestAICmd_unk_63 -ContestAICmd_unk_63: @ 812A4F4 - push {r4,lr} - ldr r4, _0812A52C @ =gAIScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8128A7C - lsls r0, 24 - ldr r3, [r4] - ldrb r1, [r3, 0x2] - ldr r2, _0812A530 @ =gSharedMem + 0x19204 - lsrs r0, 23 - lsls r1, 3 - adds r0, r1 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldrh r0, [r0] - adds r2, 0xE0 - ldr r1, _0812A534 @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2, 0x18] - adds r3, 0x3 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A52C: .4byte gAIScriptPtr -_0812A530: .4byte gSharedMem + 0x19204 -_0812A534: .4byte gContestMoves - thumb_func_end ContestAICmd_unk_63 - - thumb_func_start ContestAICmd_unk_64 -ContestAICmd_unk_64: @ 812A538 - push {lr} - bl ContestAICmd_unk_63 - ldr r0, _0812A568 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A56C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _0812A570 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A574 - .align 2, 0 -_0812A568: .4byte gSharedMem + 0x192E4 -_0812A56C: .4byte gAIScriptPtr -_0812A570: - adds r0, r2, 0x5 - str r0, [r3] -_0812A574: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_64 - - thumb_func_start ContestAICmd_unk_65 -ContestAICmd_unk_65: @ 812A578 - push {lr} - bl ContestAICmd_unk_63 - ldr r0, _0812A5A8 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A5AC @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _0812A5B0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A5B4 - .align 2, 0 -_0812A5A8: .4byte gSharedMem + 0x192E4 -_0812A5AC: .4byte gAIScriptPtr -_0812A5B0: - adds r0, r2, 0x5 - str r0, [r3] -_0812A5B4: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_65 - - thumb_func_start ContestAICmd_unk_66 -ContestAICmd_unk_66: @ 812A5B8 - push {lr} - bl ContestAICmd_unk_63 - ldr r0, _0812A5E8 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A5EC @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _0812A5F0 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A5F4 - .align 2, 0 -_0812A5E8: .4byte gSharedMem + 0x192E4 -_0812A5EC: .4byte gAIScriptPtr -_0812A5F0: - adds r0, r2, 0x5 - str r0, [r3] -_0812A5F4: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_66 - - thumb_func_start ContestAICmd_unk_67 -ContestAICmd_unk_67: @ 812A5F8 - push {lr} - bl ContestAICmd_unk_63 - ldr r0, _0812A628 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A62C @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _0812A630 - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A634 - .align 2, 0 -_0812A628: .4byte gSharedMem + 0x192E4 -_0812A62C: .4byte gAIScriptPtr -_0812A630: - adds r0, r2, 0x5 - str r0, [r3] -_0812A634: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_67 - - thumb_func_start ContestAICmd_unk_68 -ContestAICmd_unk_68: @ 812A638 - push {r4,lr} - ldr r4, _0812A66C @ =gAIScriptPtr - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8128A7C - lsls r0, 24 - lsrs r0, 24 - ldr r3, [r4] - ldrb r1, [r3, 0x2] - ldr r2, _0812A670 @ =gSharedMem + 0x19204 - lsls r1, 2 - adds r0, r1 - adds r1, r2, 0 - adds r1, 0x44 - adds r0, r1 - adds r2, 0xE0 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r2, 0x18] - adds r3, 0x3 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A66C: .4byte gAIScriptPtr -_0812A670: .4byte gSharedMem + 0x19204 - thumb_func_end ContestAICmd_unk_68 - - thumb_func_start ContestAICmd_unk_69 -ContestAICmd_unk_69: @ 812A674 - push {lr} - bl ContestAICmd_unk_68 - ldr r0, _0812A6A4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A6A8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bge _0812A6AC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A6B0 - .align 2, 0 -_0812A6A4: .4byte gSharedMem + 0x192E4 -_0812A6A8: .4byte gAIScriptPtr -_0812A6AC: - adds r0, r2, 0x5 - str r0, [r3] -_0812A6B0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_69 - - thumb_func_start ContestAICmd_unk_6A -ContestAICmd_unk_6A: @ 812A6B4 - push {lr} - bl ContestAICmd_unk_68 - ldr r0, _0812A6E4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A6E8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - ble _0812A6EC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A6F0 - .align 2, 0 -_0812A6E4: .4byte gSharedMem + 0x192E4 -_0812A6E8: .4byte gAIScriptPtr -_0812A6EC: - adds r0, r2, 0x5 - str r0, [r3] -_0812A6F0: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6A - - thumb_func_start ContestAICmd_unk_6B -ContestAICmd_unk_6B: @ 812A6F4 - push {lr} - bl ContestAICmd_unk_68 - ldr r0, _0812A724 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A728 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _0812A72C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A730 - .align 2, 0 -_0812A724: .4byte gSharedMem + 0x192E4 -_0812A728: .4byte gAIScriptPtr -_0812A72C: - adds r0, r2, 0x5 - str r0, [r3] -_0812A730: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6B - - thumb_func_start ContestAICmd_unk_6C -ContestAICmd_unk_6C: @ 812A734 - push {lr} - bl ContestAICmd_unk_68 - ldr r0, _0812A764 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A768 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _0812A76C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A770 - .align 2, 0 -_0812A764: .4byte gSharedMem + 0x192E4 -_0812A768: .4byte gAIScriptPtr -_0812A76C: - adds r0, r2, 0x5 - str r0, [r3] -_0812A770: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6C - - thumb_func_start ContestAICmd_unk_6D -ContestAICmd_unk_6D: @ 812A774 - push {r4,r5,lr} - ldr r5, _0812A7B4 @ =gAIScriptPtr - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8128A7C - lsls r0, 24 - ldr r3, [r5] - ldrb r1, [r3, 0x2] - ldr r2, _0812A7B8 @ =gSharedMem + 0x19204 - lsrs r0, 23 - lsls r1, 3 - adds r0, r1 - adds r1, r2, 0 - adds r1, 0x1C - adds r0, r1 - ldrh r0, [r0] - adds r2, 0xE0 - ldr r4, _0812A7BC @ =gContestEffects - ldr r1, _0812A7C0 @ =gContestMoves - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0] - strh r0, [r2, 0x18] - adds r3, 0x3 - str r3, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0812A7B4: .4byte gAIScriptPtr -_0812A7B8: .4byte gSharedMem + 0x19204 -_0812A7BC: .4byte gContestEffects -_0812A7C0: .4byte gContestMoves - thumb_func_end ContestAICmd_unk_6D - - thumb_func_start ContestAICmd_unk_6E -ContestAICmd_unk_6E: @ 812A7C4 - push {lr} - bl ContestAICmd_unk_6D - ldr r0, _0812A7F4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A7F8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - bne _0812A7FC - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A800 - .align 2, 0 -_0812A7F4: .4byte gSharedMem + 0x192E4 -_0812A7F8: .4byte gAIScriptPtr -_0812A7FC: - adds r0, r2, 0x5 - str r0, [r3] -_0812A800: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6E - - thumb_func_start ContestAICmd_unk_6F -ContestAICmd_unk_6F: @ 812A804 - push {lr} - bl ContestAICmd_unk_6D - ldr r0, _0812A834 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - ldr r3, _0812A838 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - cmp r0, r1 - beq _0812A83C - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812A840 - .align 2, 0 -_0812A834: .4byte gSharedMem + 0x192E4 -_0812A838: .4byte gAIScriptPtr -_0812A83C: - adds r0, r2, 0x5 - str r0, [r3] -_0812A840: - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_6F - - thumb_func_start ContestAICmd_unk_70 -ContestAICmd_unk_70: @ 812A844 - push {r4,lr} - ldr r3, _0812A864 @ =gSharedMem + 0x192E4 - ldr r4, _0812A868 @ =gAIScriptPtr - ldr r2, [r4] - ldrb r0, [r2, 0x1] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x1A - adds r0, r1 - ldrh r1, [r3, 0x18] - strh r1, [r0] - adds r2, 0x2 - str r2, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A864: .4byte gSharedMem + 0x192E4 -_0812A868: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_70 - - thumb_func_start ContestAICmd_unk_71 -ContestAICmd_unk_71: @ 812A86C - push {r4,lr} - ldr r0, _0812A890 @ =gSharedMem + 0x192E4 - ldr r4, _0812A894 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r2, [r3, 0x1] - lsls r2, 1 - adds r0, 0x1A - adds r2, r0 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - adds r3, 0x4 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A890: .4byte gSharedMem + 0x192E4 -_0812A894: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_71 - - thumb_func_start ContestAICmd_unk_72 -ContestAICmd_unk_72: @ 812A898 - push {r4,lr} - ldr r0, _0812A8C4 @ =gSharedMem + 0x192E4 - ldr r4, _0812A8C8 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r2, [r3, 0x1] - lsls r2, 1 - adds r0, 0x1A - adds r2, r0 - movs r1, 0x2 - ldrsb r1, [r3, r1] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrh r0, [r2] - adds r1, r0 - strh r1, [r2] - adds r3, 0x4 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A8C4: .4byte gSharedMem + 0x192E4 -_0812A8C8: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_72 - - thumb_func_start ContestAICmd_unk_73 -ContestAICmd_unk_73: @ 812A8CC - push {r4,lr} - ldr r2, _0812A8F4 @ =gSharedMem + 0x192E4 - ldr r4, _0812A8F8 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - adds r3, 0x3 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A8F4: .4byte gSharedMem + 0x192E4 -_0812A8F8: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_73 - - thumb_func_start ContestAICmd_unk_74 -ContestAICmd_unk_74: @ 812A8FC - push {r4,lr} - ldr r2, _0812A924 @ =gSharedMem + 0x192E4 - ldr r4, _0812A928 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - adds r3, 0x3 - str r3, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812A924: .4byte gSharedMem + 0x192E4 -_0812A928: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_74 - - thumb_func_start ContestAICmd_unk_75 -ContestAICmd_unk_75: @ 812A92C - push {r4,lr} - ldr r1, _0812A964 @ =gSharedMem + 0x192E4 - ldr r4, _0812A968 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r0, r1 - movs r1, 0 - ldrsh r2, [r0, r1] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - cmp r2, r1 - bge _0812A96C - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812A972 - .align 2, 0 -_0812A964: .4byte gSharedMem + 0x192E4 -_0812A968: .4byte gAIScriptPtr -_0812A96C: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r4] -_0812A972: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_75 - - thumb_func_start ContestAICmd_unk_76 -ContestAICmd_unk_76: @ 812A978 - push {r4,lr} - ldr r1, _0812A9B0 @ =gSharedMem + 0x192E4 - ldr r4, _0812A9B4 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r0, r1 - movs r1, 0 - ldrsh r2, [r0, r1] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - cmp r2, r1 - ble _0812A9B8 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812A9BE - .align 2, 0 -_0812A9B0: .4byte gSharedMem + 0x192E4 -_0812A9B4: .4byte gAIScriptPtr -_0812A9B8: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r4] -_0812A9BE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_76 - - thumb_func_start ContestAICmd_unk_77 -ContestAICmd_unk_77: @ 812A9C4 - push {r4,lr} - ldr r1, _0812A9FC @ =gSharedMem + 0x192E4 - ldr r4, _0812AA00 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r0, r1 - movs r1, 0 - ldrsh r2, [r0, r1] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - cmp r2, r1 - bne _0812AA04 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812AA0A - .align 2, 0 -_0812A9FC: .4byte gSharedMem + 0x192E4 -_0812AA00: .4byte gAIScriptPtr -_0812AA04: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r4] -_0812AA0A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_77 - - thumb_func_start ContestAICmd_unk_78 -ContestAICmd_unk_78: @ 812AA10 - push {r4,lr} - ldr r1, _0812AA48 @ =gSharedMem + 0x192E4 - ldr r4, _0812AA4C @ =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r0, r1 - movs r1, 0 - ldrsh r2, [r0, r1] - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - cmp r2, r1 - beq _0812AA50 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812AA56 - .align 2, 0 -_0812AA48: .4byte gSharedMem + 0x192E4 -_0812AA4C: .4byte gAIScriptPtr -_0812AA50: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r4] -_0812AA56: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_78 - - thumb_func_start ContestAICmd_unk_79 -ContestAICmd_unk_79: @ 812AA5C - push {r4,lr} - ldr r2, _0812AA98 @ =gSharedMem + 0x192E4 - ldr r4, _0812AA9C @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r0, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r1, r0 - bge _0812AAA0 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812AAA4 - .align 2, 0 -_0812AA98: .4byte gSharedMem + 0x192E4 -_0812AA9C: .4byte gAIScriptPtr -_0812AAA0: - adds r0, r3, 0x7 - str r0, [r4] -_0812AAA4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_79 - - thumb_func_start ContestAICmd_unk_7A -ContestAICmd_unk_7A: @ 812AAAC - push {r4,lr} - ldr r2, _0812AAE8 @ =gSharedMem + 0x192E4 - ldr r4, _0812AAEC @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r0, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r1, r0 - ble _0812AAF0 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812AAF4 - .align 2, 0 -_0812AAE8: .4byte gSharedMem + 0x192E4 -_0812AAEC: .4byte gAIScriptPtr -_0812AAF0: - adds r0, r3, 0x7 - str r0, [r4] -_0812AAF4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_7A - - thumb_func_start ContestAICmd_unk_7B -ContestAICmd_unk_7B: @ 812AAFC - push {r4,lr} - ldr r2, _0812AB38 @ =gSharedMem + 0x192E4 - ldr r4, _0812AB3C @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r0, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _0812AB40 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812AB44 - .align 2, 0 -_0812AB38: .4byte gSharedMem + 0x192E4 -_0812AB3C: .4byte gAIScriptPtr -_0812AB40: - adds r0, r3, 0x7 - str r0, [r4] -_0812AB44: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_7B - - thumb_func_start ContestAICmd_unk_7C -ContestAICmd_unk_7C: @ 812AB4C - push {r4,lr} - ldr r2, _0812AB88 @ =gSharedMem + 0x192E4 - ldr r4, _0812AB8C @ =gAIScriptPtr - ldr r3, [r4] - ldrb r1, [r3, 0x1] - lsls r1, 1 - adds r2, 0x1A - adds r1, r2 - ldrb r0, [r3, 0x2] - lsls r0, 1 - adds r0, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r1, r0 - beq _0812AB90 - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812AB94 - .align 2, 0 -_0812AB88: .4byte gSharedMem + 0x192E4 -_0812AB8C: .4byte gAIScriptPtr -_0812AB90: - adds r0, r3, 0x7 - str r0, [r4] -_0812AB94: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_7C - - thumb_func_start ContestAICmd_unk_7D -ContestAICmd_unk_7D: @ 812AB9C - push {r4,lr} - bl Random - movs r2, 0xFF - ands r2, r0 - ldr r1, _0812ABD4 @ =gSharedMem + 0x192E4 - ldr r4, _0812ABD8 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r2, r0 - bge _0812ABDC - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812ABE0 - .align 2, 0 -_0812ABD4: .4byte gSharedMem + 0x192E4 -_0812ABD8: .4byte gAIScriptPtr -_0812ABDC: - adds r0, r3, 0x6 - str r0, [r4] -_0812ABE0: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_7D - - thumb_func_start ContestAICmd_unk_7E -ContestAICmd_unk_7E: @ 812ABE8 - push {r4,lr} - bl Random - movs r2, 0xFF - ands r2, r0 - ldr r1, _0812AC20 @ =gSharedMem + 0x192E4 - ldr r4, _0812AC24 @ =gAIScriptPtr - ldr r3, [r4] - ldrb r0, [r3, 0x1] - lsls r0, 1 - adds r1, 0x1A - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r2, r0 - ble _0812AC28 - ldrb r1, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0812AC2C - .align 2, 0 -_0812AC20: .4byte gSharedMem + 0x192E4 -_0812AC24: .4byte gAIScriptPtr -_0812AC28: - adds r0, r3, 0x6 - str r0, [r4] -_0812AC2C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_7E - - thumb_func_start ContestAICmd_unk_7F -ContestAICmd_unk_7F: @ 812AC34 - ldr r3, _0812AC50 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - bx lr - .align 2, 0 -_0812AC50: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_7F - - thumb_func_start ContestAICmd_unk_80 -ContestAICmd_unk_80: @ 812AC54 - push {r4,lr} - ldr r4, _0812AC80 @ =gAIScriptPtr - ldr r0, [r4] - adds r0, 0x5 - bl sub_812ACA4 - ldr r2, [r4] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812AC80: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_80 - - thumb_func_start ContestAICmd_unk_81 -ContestAICmd_unk_81: @ 812AC84 - push {lr} - bl sub_812ACC8 - lsls r0, 24 - cmp r0, 0 - bne _0812AC9A - ldr r2, _0812ACA0 @ =gSharedMem + 0x192E4 - ldrb r1, [r2, 0x9] - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] -_0812AC9A: - pop {r0} - bx r0 - .align 2, 0 -_0812ACA0: .4byte gSharedMem + 0x192E4 - thumb_func_end ContestAICmd_unk_81 - - thumb_func_start sub_812ACA4 -sub_812ACA4: @ 812ACA4 - push {r4,lr} - ldr r3, _0812ACC4 @ =gSharedMem + 0x192E4 - adds r4, r3, 0 - adds r4, 0x40 - ldrb r1, [r4] - adds r2, r1, 0x1 - strb r2, [r4] - lsls r1, 24 - lsrs r1, 22 - adds r3, 0x20 - adds r1, r3 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0812ACC4: .4byte gSharedMem + 0x192E4 - thumb_func_end sub_812ACA4 - - thumb_func_start sub_812ACC8 -sub_812ACC8: @ 812ACC8 - push {lr} - ldr r1, _0812ACDC @ =gSharedMem + 0x192E4 - adds r3, r1, 0 - adds r3, 0x40 - ldrb r0, [r3] - cmp r0, 0 - bne _0812ACE0 - movs r0, 0 - b _0812ACF4 - .align 2, 0 -_0812ACDC: .4byte gSharedMem + 0x192E4 -_0812ACE0: - subs r0, 0x1 - strb r0, [r3] - ldr r2, _0812ACF8 @ =gAIScriptPtr - ldrb r0, [r3] - lsls r0, 2 - adds r1, 0x20 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - movs r0, 0x1 -_0812ACF4: - pop {r1} - bx r1 - .align 2, 0 -_0812ACF8: .4byte gAIScriptPtr - thumb_func_end sub_812ACC8 - - thumb_func_start ContestAICmd_check_for_exciting_move -ContestAICmd_check_for_exciting_move: @ 812ACFC - push {r4-r7,lr} - movs r5, 0 - movs r4, 0 - ldr r7, _0812AD28 @ =gSharedMem + 0x19325 - ldr r6, _0812AD2C @ =gUnknown_0203858E -_0812AD06: - lsls r0, r4, 1 - ldrb r1, [r7] - lsls r1, 6 - adds r0, r1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, 0 - beq _0812AD30 - bl Contest_GetMoveExcitement - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0812AD30 - movs r5, 0x1 - b _0812AD36 - .align 2, 0 -_0812AD28: .4byte gSharedMem + 0x19325 -_0812AD2C: .4byte gUnknown_0203858E -_0812AD30: - adds r4, 0x1 - cmp r4, 0x3 - ble _0812AD06 -_0812AD36: - ldr r0, _0812AD48 @ =gSharedMem + 0x192E4 - strh r5, [r0, 0x18] - ldr r1, _0812AD4C @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0812AD48: .4byte gSharedMem + 0x192E4 -_0812AD4C: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_check_for_exciting_move - - thumb_func_start ContestAICmd_unk_83 -ContestAICmd_unk_83: @ 812AD50 - push {lr} - bl ContestAICmd_check_for_exciting_move - ldr r0, _0812AD7C @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812AD84 - ldr r3, _0812AD80 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812AD8C - .align 2, 0 -_0812AD7C: .4byte gSharedMem + 0x192E4 -_0812AD80: .4byte gAIScriptPtr -_0812AD84: - ldr r1, _0812AD90 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812AD8C: - pop {r0} - bx r0 - .align 2, 0 -_0812AD90: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_83 - - thumb_func_start ContestAICmd_unk_84 -ContestAICmd_unk_84: @ 812AD94 - push {lr} - bl ContestAICmd_check_for_exciting_move - ldr r0, _0812ADC0 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812ADC8 - ldr r3, _0812ADC4 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812ADD0 - .align 2, 0 -_0812ADC0: .4byte gSharedMem + 0x192E4 -_0812ADC4: .4byte gAIScriptPtr -_0812ADC8: - ldr r1, _0812ADD4 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812ADD0: - pop {r0} - bx r0 - .align 2, 0 -_0812ADD4: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_84 - - thumb_func_start ContestAICmd_unk_85 -ContestAICmd_unk_85: @ 812ADD8 - push {r4-r7,lr} - movs r6, 0 - ldr r2, _0812AE08 @ =gAIScriptPtr - ldr r0, [r2] - ldrb r4, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r4, r0 - movs r3, 0 - ldr r0, _0812AE0C @ =gContestMons - mov r12, r0 - ldr r5, _0812AE10 @ =gSharedMem + 0x192E4 - adds r0, r5, 0 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - mov r1, r12 - adds r1, 0x1E - adds r0, r1 - ldrh r0, [r0] - adds r7, r2, 0 - mov r2, r12 - mov r12, r5 - b _0812AE2E - .align 2, 0 -_0812AE08: .4byte gAIScriptPtr -_0812AE0C: .4byte gContestMons -_0812AE10: .4byte gSharedMem + 0x192E4 -_0812AE14: - adds r3, 0x1 - cmp r3, 0x3 - bgt _0812AE34 - lsls r1, r3, 1 - mov r0, r12 - adds r0, 0x41 - ldrb r0, [r0] - lsls r0, 6 - adds r1, r0 - adds r0, r2, 0 - adds r0, 0x1E - adds r1, r0 - ldrh r0, [r1] -_0812AE2E: - cmp r0, r4 - bne _0812AE14 - movs r6, 0x1 -_0812AE34: - mov r0, r12 - strh r6, [r0, 0x18] - ldr r0, [r7] - adds r0, 0x3 - str r0, [r7] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ContestAICmd_unk_85 - - thumb_func_start ContestAICmd_unk_86 -ContestAICmd_unk_86: @ 812AE44 - push {lr} - bl ContestAICmd_unk_85 - ldr r0, _0812AE70 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0812AE78 - ldr r3, _0812AE74 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812AE80 - .align 2, 0 -_0812AE70: .4byte gSharedMem + 0x192E4 -_0812AE74: .4byte gAIScriptPtr -_0812AE78: - ldr r1, _0812AE84 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812AE80: - pop {r0} - bx r0 - .align 2, 0 -_0812AE84: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_86 - - thumb_func_start ContestAICmd_unk_87 -ContestAICmd_unk_87: @ 812AE88 - push {lr} - bl ContestAICmd_unk_85 - ldr r0, _0812AEB4 @ =gSharedMem + 0x192E4 - movs r1, 0x18 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0812AEBC - ldr r3, _0812AEB8 @ =gAIScriptPtr - ldr r2, [r3] - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - orrs r1, r0 - str r1, [r3] - b _0812AEC4 - .align 2, 0 -_0812AEB4: .4byte gSharedMem + 0x192E4 -_0812AEB8: .4byte gAIScriptPtr -_0812AEBC: - ldr r1, _0812AEC8 @ =gAIScriptPtr - ldr r0, [r1] - adds r0, 0x4 - str r0, [r1] -_0812AEC4: - pop {r0} - bx r0 - .align 2, 0 -_0812AEC8: .4byte gAIScriptPtr - thumb_func_end ContestAICmd_unk_87 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/contest_effect.s b/asm/contest_effect.s index d06789976..341cb0903 100644 --- a/asm/contest_effect.s +++ b/asm/contest_effect.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 26ed8e3fe..891711bc5 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -12,12 +12,12 @@ sub_80C2020: @ 80C2020 lsls r5, 19 movs r0, 0x40 strh r0, [r5] - ldr r4, _080C20F0 @ =gWindowConfig_81E6FA0 + ldr r4, _080C20F0 @ =gWindowTemplate_81E6FA0 adds r0, r4, 0 - bl SetUpWindowConfig + bl Text_LoadWindowTemplate ldr r0, _080C20F4 @ =gMenuWindow adds r1, r4, 0 - bl InitWindowFromConfig + bl Text_InitWindowWithTemplate ldr r1, _080C20F8 @ =REG_BG0CNT movs r2, 0xF8 lsls r2, 6 @@ -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] @@ -94,9 +94,9 @@ sub_80C2020: @ 80C2020 strh r2, [r0] ldr r0, _080C2128 @ =gBattle_BG2_Y strh r2, [r0] - ldr r0, _080C212C @ =gUnknown_030041B0 + ldr r0, _080C212C @ =gBattle_BG3_X strh r2, [r0] - ldr r0, _080C2130 @ =gUnknown_030041B8 + ldr r0, _080C2130 @ =gBattle_BG3_Y strh r2, [r0] ldr r0, _080C2134 @ =gBattle_WIN0H strh r2, [r0] @@ -110,7 +110,7 @@ sub_80C2020: @ 80C2020 pop {r0} bx r0 .align 2, 0 -_080C20F0: .4byte gWindowConfig_81E6FA0 +_080C20F0: .4byte gWindowTemplate_81E6FA0 _080C20F4: .4byte gMenuWindow _080C20F8: .4byte REG_BG0CNT _080C20FC: .4byte 0x00001803 @@ -119,14 +119,14 @@ _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 _080C2128: .4byte gBattle_BG2_Y -_080C212C: .4byte gUnknown_030041B0 -_080C2130: .4byte gUnknown_030041B8 +_080C212C: .4byte gBattle_BG3_X +_080C2130: .4byte gBattle_BG3_Y _080C2134: .4byte gBattle_WIN0H _080C2138: .4byte gBattle_WIN0V _080C213C: .4byte gBattle_WIN1H @@ -188,7 +188,7 @@ _080C2162: lsls r2, 2 movs r1, 0 bl LoadCompressedPalette - ldr r0, _080C2234 @ =gWindowConfig_81E6FA0 + ldr r0, _080C2234 @ =gWindowTemplate_81E6FA0 bl LoadFontDefaultPalette movs r6, 0 _080C21C0: @@ -242,7 +242,7 @@ _080C2224: .4byte 0x0600e000 _080C2228: .4byte gUnknown_08D1A250 _080C222C: .4byte 0x0600f000 _080C2230: .4byte gUnknown_08D1A618 -_080C2234: .4byte gWindowConfig_81E6FA0 +_080C2234: .4byte gWindowTemplate_81E6FA0 _080C2238: .4byte 0x000060b2 _080C223C: .4byte 0x000060a4 _080C2240: @@ -357,7 +357,7 @@ _080C230A: lsrs r3, 24 str r3, [sp] movs r3, 0x7 - bl sub_8003460 + bl Text_InitWindowAndPrintText add sp, 0x4 pop {r4-r7} pop {r0} @@ -396,7 +396,7 @@ sub_80C2358: @ 80C2358 movs r0, 0 bl SetVBlankCallback bl sub_80C2020 - bl dp12_8087EA4 + bl ScanlineEffect_Clear bl ResetPaletteFade bl ResetSpriteData bl ResetTasks @@ -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 @@ -506,11 +506,11 @@ sub_80C2448: @ 80C2448 ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 - ldr r0, _080C24DC @ =gUnknown_030041B0 + ldr r0, _080C24DC @ =gBattle_BG3_X ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 - ldr r0, _080C24E0 @ =gUnknown_030041B8 + ldr r0, _080C24E0 @ =gBattle_BG3_Y ldrh r0, [r0] strh r0, [r1] adds r1, 0x22 @@ -532,19 +532,19 @@ sub_80C2448: @ 80C2448 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer - bl sub_8089668 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} 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 _080C24D8: .4byte gBattle_BG2_Y -_080C24DC: .4byte gUnknown_030041B0 -_080C24E0: .4byte gUnknown_030041B8 +_080C24DC: .4byte gBattle_BG3_X +_080C24E0: .4byte gBattle_BG3_Y _080C24E4: .4byte gBattle_WIN0H _080C24E8: .4byte gBattle_WIN0V _080C24EC: .4byte gBattle_WIN1H @@ -657,7 +657,7 @@ sub_80C25C0: @ 80C25C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8007ECC + bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _080C25EC @@ -1202,7 +1202,7 @@ _080C29FC: .4byte gStringVar1 _080C2A00: .4byte gLinkPlayers + 0x8 _080C2A04: lsls r4, 6 - ldr r1, _080C2A54 @ =gUnknown_0203857D + ldr r1, _080C2A54 @ =gContestMons + 0xD adds r1, r4, r1 adds r0, r3, 0 bl StringCopy @@ -1238,7 +1238,7 @@ _080C2A4A: strh r0, [r1, 0x8] b _080C2A80 .align 2, 0 -_080C2A54: .4byte gUnknown_0203857D +_080C2A54: .4byte gContestMons + 0xD _080C2A58: .4byte gStringVar2 _080C2A5C: .4byte gContestMons + 0x2 _080C2A60: .4byte gContestText_PokeWon @@ -1826,11 +1826,11 @@ _080C2F24: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music thumb_func_start sub_80C2F28 sub_80C2F28: @ 80C2F28 push {r4,r5,lr} - ldr r2, _080C2F5C @ =gUnknown_030041B0 + ldr r2, _080C2F5C @ =gBattle_BG3_X ldrh r3, [r2] adds r0, r3, 0x2 strh r0, [r2] - ldr r4, _080C2F60 @ =gUnknown_030041B8 + ldr r4, _080C2F60 @ =gBattle_BG3_Y ldrh r5, [r4] adds r1, r5, 0x1 strh r1, [r4] @@ -1854,8 +1854,8 @@ _080C2F56: pop {r0} bx r0 .align 2, 0 -_080C2F5C: .4byte gUnknown_030041B0 -_080C2F60: .4byte gUnknown_030041B8 +_080C2F5C: .4byte gBattle_BG3_X +_080C2F60: .4byte gBattle_BG3_Y thumb_func_end sub_80C2F28 thumb_func_start sub_80C2F64 @@ -2170,7 +2170,7 @@ sub_80C3158: @ 80C3158 lsls r0, 22 lsrs r0, 22 strh r0, [r4, 0x6] - ldr r1, _080C32C4 @ =gWindowConfig_81E7278 + ldr r1, _080C32C4 @ =gWindowTemplate_81E7278 mov r8, r1 ldr r7, _080C32C8 @ =0x06010000 ldr r2, _080C32CC @ =0x040000d4 @@ -2194,7 +2194,7 @@ _080C31CE: bge _080C31CE mov r0, r8 mov r1, r9 - bl GetStringWidthGivenWindowConfig + bl Text_GetStringWidthFromWindowTemplate lsls r0, 24 lsrs r5, r0, 24 ldr r2, _080C32D4 @ =gDisplayedStringBattle @@ -2296,7 +2296,7 @@ _080C32B2: b _080C3322 .align 2, 0 _080C32C0: .4byte gSprites -_080C32C4: .4byte gWindowConfig_81E7278 +_080C32C4: .4byte gWindowTemplate_81E7278 _080C32C8: .4byte 0x06010000 _080C32CC: .4byte 0x040000d4 _080C32D0: .4byte 0x85000100 @@ -2947,6 +2947,7 @@ _080C37DC: .4byte REG_WININ _080C37E0: .4byte 0x00003f3f thumb_func_end sub_80C3764 +.ifdef ENGLISH thumb_func_start sub_80C37E4 sub_80C37E4: @ 80C37E4 push {r4-r6,lr} @@ -3156,6 +3157,276 @@ _080C3984: .4byte 0x0600e000 _080C3988: .4byte gUnknown_08E964B8 _080C398C: .4byte 0x00000fff thumb_func_end sub_80C37E4 +.else + thumb_func_start de_sub_80C39A8 +de_sub_80C39A8: @ 80C39A8 + push {r4,lr} + sub sp, 0x10 + adds r1, r0, 0 + ldr r0, _de_080C39DC @ =gIsLinkContest + ldrb r0, [r0] + movs r4, 0x1 + ands r4, r0 + cmp r4, 0 + beq _de_080C39E8 + ldr r0, _de_080C39E0 @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C39E4 @ =gUnknown_08E964B8 + movs r2, 0xB + str r2, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + movs r2, 0x8 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x8 + b _de_080C3A74 + .align 2, 0 +_de_080C39DC: .4byte gIsLinkContest +_de_080C39E0: .4byte 0x0600e000 +_de_080C39E4: .4byte gUnknown_08E964B8 +_de_080C39E8: + ldr r0, _de_080C3A08 @ =gSpecialVar_ContestRank + ldrh r0, [r0] + cmp r0, 0 + bne _de_080C3A14 + ldr r0, _de_080C3A0C @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A10 @ =gUnknown_08E964B8 + str r4, [sp] + str r4, [sp, 0x4] + movs r2, 0xB + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + b _de_080C3A6C + .align 2, 0 +_de_080C3A08: .4byte gSpecialVar_ContestRank +_de_080C3A0C: .4byte 0x0600e000 +_de_080C3A10: .4byte gUnknown_08E964B8 +_de_080C3A14: + cmp r0, 0x1 + bne _de_080C3A2C + ldr r0, _de_080C3A24 @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A28 @ =gUnknown_08E964B8 + movs r2, 0xB + b _de_080C3A3A + .align 2, 0 +_de_080C3A24: .4byte 0x0600e000 +_de_080C3A28: .4byte gUnknown_08E964B8 +_de_080C3A2C: + cmp r0, 0x2 + bne _de_080C3A58 + ldr r0, _de_080C3A50 @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A54 @ =gUnknown_08E964B8 + movs r2, 0x15 +_de_080C3A3A: + str r2, [sp] + str r4, [sp, 0x4] + movs r2, 0xA + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0xA + b _de_080C3A74 + .align 2, 0 +_de_080C3A50: .4byte 0x0600e000 +_de_080C3A54: .4byte gUnknown_08E964B8 +_de_080C3A58: + ldr r0, _de_080C3A7C @ =0x0600e000 + lsls r1, 16 + lsrs r1, 16 + ldr r3, _de_080C3A80 @ =gUnknown_08E964B8 + str r4, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + movs r2, 0xB + str r2, [sp, 0x8] + str r4, [sp, 0xC] +_de_080C3A6C: + movs r2, 0 + bl sub_809D104 + movs r0, 0xB +_de_080C3A74: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_de_080C3A7C: .4byte 0x0600e000 +_de_080C3A80: .4byte gUnknown_08E964B8 + thumb_func_end de_sub_80C39A8 + + thumb_func_start de_sub_80C3A84 +de_sub_80C3A84: @ 80C3A84 + push {r4,lr} + sub sp, 0x10 + adds r2, r0, 0 + ldr r0, _de_080C3AAC @ =gSpecialVar_ContestCategory + ldrh r4, [r0] + cmp r4, 0 + bne _de_080C3AB8 + str r4, [r1] + ldr r0, _de_080C3AB0 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3AB4 @ =gUnknown_08E964B8 + movs r2, 0x13 + str r2, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + movs r2, 0x7 + str r2, [sp, 0x8] + str r4, [sp, 0xC] + b _de_080C3AD6 + .align 2, 0 +_de_080C3AAC: .4byte gSpecialVar_ContestCategory +_de_080C3AB0: .4byte 0x0600e000 +_de_080C3AB4: .4byte gUnknown_08E964B8 +_de_080C3AB8: + cmp r4, 0x1 + bne _de_080C3AE8 + str r4, [r1] + ldr r0, _de_080C3AE0 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3AE4 @ =gUnknown_08E964B8 + movs r2, 0 + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + movs r2, 0x7 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] +_de_080C3AD6: + movs r2, 0 + bl sub_809D104 + movs r0, 0x7 + b _de_080C3B68 + .align 2, 0 +_de_080C3AE0: .4byte 0x0600e000 +_de_080C3AE4: .4byte gUnknown_08E964B8 +_de_080C3AE8: + cmp r4, 0x2 + bne _de_080C3B18 + str r4, [r1] + ldr r0, _de_080C3B10 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3B14 @ =gUnknown_08E964B8 + movs r2, 0x7 + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + movs r2, 0x4 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x4 + b _de_080C3B68 + .align 2, 0 +_de_080C3B10: .4byte 0x0600e000 +_de_080C3B14: .4byte gUnknown_08E964B8 +_de_080C3B18: + cmp r4, 0x3 + bne _de_080C3B44 + str r4, [r1] + ldr r0, _de_080C3B3C @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3B40 @ =gUnknown_08E964B8 + movs r2, 0xB + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + str r2, [sp, 0x8] + str r4, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x6 + b _de_080C3B68 + .align 2, 0 +_de_080C3B3C: .4byte 0x0600e000 +_de_080C3B40: .4byte gUnknown_08E964B8 +_de_080C3B44: + movs r0, 0x4 + str r0, [r1] + ldr r0, _de_080C3B70 @ =0x0600e000 + lsls r1, r2, 16 + lsrs r1, 16 + ldr r3, _de_080C3B74 @ =gUnknown_08E964B8 + movs r2, 0x11 + str r2, [sp] + movs r2, 0x6 + str r2, [sp, 0x4] + movs r2, 0x5 + str r2, [sp, 0x8] + movs r2, 0x3 + str r2, [sp, 0xC] + movs r2, 0 + bl sub_809D104 + movs r0, 0x5 +_de_080C3B68: + add sp, 0x10 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_de_080C3B70: .4byte 0x0600e000 +_de_080C3B74: .4byte gUnknown_08E964B8 + thumb_func_end de_sub_80C3A84 + + thumb_func_start sub_80C37E4 +sub_80C37E4: @ 80C37E4 + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0x6 + bl de_sub_80C39A8 + lsls r0, 16 + asrs r0, 16 + adds r0, 0x6 + mov r1, sp + bl de_sub_80C3A84 + ldr r5, _080C3824 @ =0x00000fff + ldr r0, [sp] + lsls r4, r0, 12 + ldr r2, _080C3828 @ =0x0600e000 + movs r3, 0x7F +_080C3804: + ldrh r1, [r2] + adds r0, r5, 0 + ands r0, r1 + strh r0, [r2] + ldrh r1, [r2] + adds r0, r4, 0 + orrs r0, r1 + strh r0, [r2] + adds r2, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _080C3804 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C3824: .4byte 0x00000fff +_080C3828: .4byte 0x0600e000 + thumb_func_end sub_80C37E4 +.endif thumb_func_start sub_80C3990 sub_80C3990: @ 80C3990 @@ -4930,7 +5201,7 @@ _080C4720: ldr r1, _080C4738 @ =gSpecialVar_0x8006 ldrh r1, [r1] lsls r1, 6 - ldr r2, _080C473C @ =gUnknown_0203857D + ldr r2, _080C473C @ =gContestMons + 0xD adds r1, r2 bl sub_80C4674 _080C4730: @@ -4939,7 +5210,7 @@ _080C4730: .align 2, 0 _080C4734: .4byte gStringVar1 _080C4738: .4byte gSpecialVar_0x8006 -_080C473C: .4byte gUnknown_0203857D +_080C473C: .4byte gContestMons + 0xD thumb_func_end sub_80C46EC thumb_func_start sub_80C4740 @@ -5081,7 +5352,7 @@ _080C4838: .4byte gStringVar3 _080C483C: .4byte gLinkPlayers + 0x8 _080C4840: lsls r1, r2, 6 - ldr r0, _080C4854 @ =gUnknown_0203857D + ldr r0, _080C4854 @ =gContestMons + 0xD adds r1, r0 adds r0, r4, 0 bl sub_80C4674 @@ -5090,7 +5361,7 @@ _080C484C: pop {r0} bx r0 .align 2, 0 -_080C4854: .4byte gUnknown_0203857D +_080C4854: .4byte gContestMons + 0xD thumb_func_end sub_80C47F0 thumb_func_start sub_80C4858 @@ -5507,7 +5778,7 @@ sub_80C4B5C: @ 80C4B5C ldrh r0, [r0] cmp r0, 0x1 bne _080C4B90 - bl sub_8007ECC + bl IsLinkTaskFinished lsls r0, 24 cmp r0, 0 beq _080C4B9E diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s deleted file mode 100644 index 0ff6823b5..000000000 --- a/asm/contest_link_80C857C.s +++ /dev/null @@ -1,1305 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80C857C -sub_80C857C: @ 80C857C - push {r4,r5,lr} - adds r2, r0, 0 - lsls r4, r1, 16 - lsrs r4, 16 - ldr r5, _080C85A8 @ =gSharedMem + 0x1E000 - adds r0, r5, 0 - adds r1, r2, 0 - adds r2, r4, 0 - bl memcpy - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl SendBlock - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C85A8: .4byte gSharedMem + 0x1E000 - thumb_func_end sub_80C857C - - thumb_func_start sub_80C85AC -sub_80C85AC: @ 80C85AC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 17 - lsls r1, r0 - lsrs r4, r1, 24 - bl GetBlockReceivedStatus - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080C85D0 - adds r0, r4, 0 - bl ResetBlockReceivedFlag - movs r0, 0x1 - b _080C85D2 -_080C85D0: - movs r0, 0 -_080C85D2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C85AC - - thumb_func_start sub_80C85D8 -sub_80C85D8: @ 80C85D8 - push {r4,lr} - movs r4, 0 -_080C85DC: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r0, 24 - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080C85F2 - movs r0, 0 - b _080C85FE -_080C85F2: - adds r4, 0x1 - cmp r4, 0x3 - ble _080C85DC - bl ResetBlockReceivedFlags - movs r0, 0x1 -_080C85FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C85D8 - - thumb_func_start sub_80C8604 -sub_80C8604: @ 80C8604 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r5, _080C8638 @ =gTasks - ldr r6, _080C863C @ =sub_80C8644 - ldr r4, _080C8640 @ =gBlockRecvBuffer - movs r3, 0xFF -_080C8614: - lsls r0, r1, 8 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080C8614 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r5 - movs r1, 0 - strh r1, [r0, 0x8] - str r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C8638: .4byte gTasks -_080C863C: .4byte sub_80C8644 -_080C8640: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8604 - - thumb_func_start sub_80C8644 -sub_80C8644: @ 80C8644 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C8658 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080C865C @ =sub_80C8660 - str r0, [r1] - bx lr - .align 2, 0 -_080C8658: .4byte gTasks -_080C865C: .4byte sub_80C8660 - thumb_func_end sub_80C8644 - - thumb_func_start sub_80C8660 -sub_80C8660: @ 80C8660 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C8694 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080C868E - bl GetMultiplayerId - ldr r1, _080C8698 @ =gContestPlayerMonIndex - strb r0, [r1] - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _080C868E - ldr r1, _080C869C @ =gIsLinkContest - movs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C868E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8694: .4byte gReceivedRemoteLinkPlayers -_080C8698: .4byte gContestPlayerMonIndex -_080C869C: .4byte gIsLinkContest - thumb_func_end sub_80C8660 - - thumb_func_start sub_80C86A0 -sub_80C86A0: @ 80C86A0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0x2 - ldrb r0, [r4] - cmp r0, 0xFC - bne _080C86B6 - ldrb r0, [r4, 0x1] - cmp r0, 0x15 - bne _080C86B6 - movs r0, 0x2 - b _080C872C -_080C86B6: - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _080C872A - ldrb r0, [r4] - cmp r0, 0xFF - beq _080C872A -_080C86CA: - ldrb r1, [r4] - adds r0, r1, 0 - adds r0, 0x45 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x33 - bls _080C871E - adds r0, r1, 0 - adds r0, 0x5F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bls _080C871E - adds r0, r1, 0 - cmp r0, 0 - beq _080C871E - cmp r0, 0xAD - beq _080C871E - cmp r0, 0xB8 - beq _080C871E - cmp r0, 0xAB - beq _080C871E - cmp r0, 0xAC - beq _080C871E - cmp r0, 0xB5 - beq _080C871E - cmp r0, 0xB6 - beq _080C871E - cmp r0, 0xBA - beq _080C871E - cmp r0, 0xAE - beq _080C871E - cmp r0, 0xB0 - beq _080C871E - cmp r0, 0xB1 - beq _080C871E - cmp r0, 0xB2 - beq _080C871E - cmp r0, 0xB3 - beq _080C871E - cmp r0, 0xB1 - bne _080C8728 -_080C871E: - adds r4, 0x1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080C86CA - b _080C872A -_080C8728: - movs r5, 0x1 -_080C872A: - adds r0, r5, 0 -_080C872C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80C86A0 - - thumb_func_start sub_80C8734 -sub_80C8734: @ 80C8734 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080C8768 @ =gTasks - lsls r5, r0, 2 - adds r0, r5, r0 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C876C - cmp r0, 0x1 - beq _080C87D0 - movs r0, 0 - strh r0, [r4, 0x8] - mov r0, r9 - bl SwitchTaskToFollowupFunc - b _080C8896 - .align 2, 0 -_080C8768: .4byte gTasks -_080C876C: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C87A8 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8782 - b _080C8896 -_080C8782: - ldr r0, _080C879C @ =gBlockSendBuffer - ldr r1, _080C87A0 @ =gContestPlayerMonIndex - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87A4 @ =gContestMons - adds r1, r2 - movs r2, 0x40 - bl memcpy - movs r0, 0x2 - bl sub_8007E9C - b _080C87BA - .align 2, 0 -_080C879C: .4byte gBlockSendBuffer -_080C87A0: .4byte gContestPlayerMonIndex -_080C87A4: .4byte gContestMons -_080C87A8: - ldr r0, _080C87C4 @ =gBlockSendBuffer - ldr r1, _080C87C8 @ =gContestPlayerMonIndex - ldrb r1, [r1] - lsls r1, 6 - ldr r2, _080C87CC @ =gContestMons - adds r1, r2 - movs r2, 0x40 - bl memcpy -_080C87BA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8896 - .align 2, 0 -_080C87C4: .4byte gBlockSendBuffer -_080C87C8: .4byte gContestPlayerMonIndex -_080C87CC: .4byte gContestMons -_080C87D0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8896 - movs r7, 0 - str r5, [sp] - ldr r0, _080C8818 @ =gContestMons - ldr r6, _080C881C @ =gLinkPlayers - movs r5, 0 - mov r10, r0 - movs r2, 0xFF - mov r8, r2 -_080C87EA: - lsls r1, r7, 8 - ldr r0, _080C8820 @ =gBlockRecvBuffer - adds r1, r0 - mov r0, r10 - movs r2, 0x40 - bl memcpy - ldr r0, _080C8824 @ =gContestMons + 0x2 - adds r4, r5, r0 - ldrh r0, [r6, 0x1A] - cmp r0, 0x1 - bne _080C8828 - adds r0, r4, 0 - bl sub_80C86A0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ConvertInternationalString - b _080C883E - .align 2, 0 -_080C8818: .4byte gContestMons -_080C881C: .4byte gLinkPlayers -_080C8820: .4byte gBlockRecvBuffer -_080C8824: .4byte gContestMons + 0x2 -_080C8828: - ldrb r0, [r4, 0xA] - cmp r0, 0xFC - bne _080C8838 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _080C883E -_080C8838: - strb r0, [r4, 0x5] - mov r1, r8 - strb r1, [r4, 0xA] -_080C883E: - ldr r0, _080C886C @ =gUnknown_0203857D - adds r4, r5, r0 - ldrh r0, [r6, 0x1A] - cmp r0, 0x1 - bne _080C8870 - mov r2, r8 - strb r2, [r4, 0x7] - ldrb r0, [r4, 0x4] - strb r0, [r4, 0x6] - ldrb r0, [r4, 0x3] - strb r0, [r4, 0x5] - ldrb r0, [r4, 0x2] - strb r0, [r4, 0x4] - ldrb r0, [r4, 0x1] - strb r0, [r4, 0x3] - ldrb r0, [r4] - strb r0, [r4, 0x2] - movs r0, 0x15 - strb r0, [r4, 0x1] - movs r0, 0xFC - strb r0, [r4] - b _080C8878 - .align 2, 0 -_080C886C: .4byte gUnknown_0203857D -_080C8870: - ldrb r0, [r4, 0x7] - strb r0, [r4, 0x5] - mov r0, r8 - strb r0, [r4, 0x7] -_080C8878: - adds r6, 0x1C - adds r5, 0x40 - movs r1, 0x40 - add r10, r1 - adds r7, 0x1 - cmp r7, 0x3 - ble _080C87EA - ldr r0, _080C88A8 @ =gTasks - ldr r1, [sp] - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8896: - 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 -_080C88A8: .4byte gTasks - thumb_func_end sub_80C8734 - - thumb_func_start sub_80C88AC -sub_80C88AC: @ 80C88AC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C88D4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080C88D8 - cmp r0, 0x1 - beq _080C88FC - movs r0, 0 - strh r0, [r5, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8924 - .align 2, 0 -_080C88D4: .4byte gTasks -_080C88D8: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C891E - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8924 - ldr r0, _080C88F8 @ =gRngValue - movs r1, 0x4 - bl sub_80C857C - b _080C891E - .align 2, 0 -_080C88F8: .4byte gRngValue -_080C88FC: - movs r0, 0 - bl sub_80C85AC - lsls r0, 24 - cmp r0, 0 - beq _080C8924 - ldr r0, _080C892C @ =gRngValue - ldr r4, _080C8930 @ =gBlockRecvBuffer - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy - ldr r0, _080C8934 @ =gUnknown_03005D28 - adds r1, r4, 0 - movs r2, 0x4 - bl memcpy -_080C891E: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080C8924: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C892C: .4byte gRngValue -_080C8930: .4byte gBlockRecvBuffer -_080C8934: .4byte gUnknown_03005D28 - thumb_func_end sub_80C88AC - - thumb_func_start sub_80C8938 -sub_80C8938: @ 80C8938 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C8968 @ =gTasks - mov r8, r0 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - mov r1, r8 - adds r4, r7, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C896C - cmp r0, 0x1 - beq _080C8998 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C89CE - .align 2, 0 -_080C8968: .4byte gTasks -_080C896C: - ldr r1, _080C8994 @ =gBlockSendBuffer - ldrh r0, [r4, 0x1A] - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C898C - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C89CE - movs r0, 0x2 - bl sub_8007E9C -_080C898C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C89CE - .align 2, 0 -_080C8994: .4byte gBlockSendBuffer -_080C8998: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C89CE - movs r3, 0 - mov r12, r8 - adds r1, r6, 0 - ldr r4, _080C89D8 @ =gBlockRecvBuffer - mov r0, r12 - adds r0, 0xA - adds r2, r7, r0 - movs r6, 0x80 - lsls r6, 1 -_080C89B4: - ldrh r0, [r4] - strh r0, [r2] - adds r4, r6 - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - ble _080C89B4 - adds r1, r5 - lsls r1, 3 - add r1, r12 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C89CE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C89D8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8938 - - thumb_func_start sub_80C89DC -sub_80C89DC: @ 80C89DC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8A04 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A08 - cmp r0, 0x1 - beq _080C8A20 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8A30 - .align 2, 0 -_080C8A04: .4byte gTasks -_080C8A08: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 - ldr r0, _080C8A1C @ =gContestPlayerMonIndex - movs r1, 0x1 - bl sub_80C857C - b _080C8A2A - .align 2, 0 -_080C8A1C: .4byte gContestPlayerMonIndex -_080C8A20: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 -_080C8A2A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8A30: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C89DC - - thumb_func_start sub_80C8A38 -sub_80C8A38: @ 80C8A38 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r7, _080C8A60 @ =gTasks - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r7 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A64 - cmp r0, 0x1 - beq _080C8A94 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8AC2 - .align 2, 0 -_080C8A60: .4byte gTasks -_080C8A64: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r0, _080C8A8C @ =gContestPlayerMonIndex - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080C8A90 @ =gSharedMem + 0x19266 - adds r0, r1 - movs r1, 0x2 - bl sub_80C857C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8AC2 - .align 2, 0 -_080C8A8C: .4byte gContestPlayerMonIndex -_080C8A90: .4byte gSharedMem + 0x19266 -_080C8A94: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r1, _080C8AC8 @ =gBlockRecvBuffer - ldr r3, _080C8ACC @ =gSharedMem + 0x19266 - movs r4, 0x80 - lsls r4, 1 - movs r2, 0x3 -_080C8AA8: - ldrh r0, [r1] - strh r0, [r3] - adds r1, r4 - adds r3, 0x1C - subs r2, 0x1 - cmp r2, 0 - bge _080C8AA8 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r7 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8AC2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8AC8: .4byte gBlockRecvBuffer -_080C8ACC: .4byte gSharedMem + 0x19266 - thumb_func_end sub_80C8A38 - - thumb_func_start sub_80C8AD0 -sub_80C8AD0: @ 80C8AD0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8AF8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - adds r3, r1, 0 - cmp r0, 0xB - bls _080C8AEC - b _080C8C70 -_080C8AEC: - lsls r0, 2 - ldr r1, _080C8AFC @ =_080C8B00 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8AF8: .4byte gTasks -_080C8AFC: .4byte _080C8B00 - .align 2, 0 -_080C8B00: - .4byte _080C8B30 - .4byte _080C8B4C - .4byte _080C8B74 - .4byte _080C8B98 - .4byte _080C8BB0 - .4byte _080C8B74 - .4byte _080C8BD8 - .4byte _080C8BF0 - .4byte _080C8B74 - .4byte _080C8C18 - .4byte _080C8C30 - .4byte _080C8B74 -_080C8B30: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8B3C - b _080C8C7A -_080C8B3C: - ldr r0, _080C8B48 @ =gUnknown_02038678 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8B48: .4byte gUnknown_02038678 -_080C8B4C: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - bne _080C8B58 - b _080C8C7A -_080C8B58: - ldr r0, _080C8B68 @ =gUnknown_02038678 - ldr r1, _080C8B6C @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8B70 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8B68: .4byte gUnknown_02038678 -_080C8B6C: .4byte gUnknown_0203869B -_080C8B70: .4byte gBlockRecvBuffer -_080C8B74: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r3 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bgt _080C8B8C - b _080C8C7A -_080C8B8C: - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080C8C7A -_080C8B98: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BAC @ =gUnknown_02038680 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8BAC: .4byte gUnknown_02038680 -_080C8BB0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BCC @ =gUnknown_02038680 - ldr r1, _080C8BD0 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8BD4 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8BCC: .4byte gUnknown_02038680 -_080C8BD0: .4byte gUnknown_0203869B -_080C8BD4: .4byte gBlockRecvBuffer -_080C8BD8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8BEC @ =gUnknown_02038688 - movs r1, 0x8 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8BEC: .4byte gUnknown_02038688 -_080C8BF0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C0C @ =gUnknown_02038688 - ldr r1, _080C8C10 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8C14 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - b _080C8C48 - .align 2, 0 -_080C8C0C: .4byte gUnknown_02038688 -_080C8C10: .4byte gUnknown_0203869B -_080C8C14: .4byte gBlockRecvBuffer -_080C8C18: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C2C @ =gContestFinalStandings - movs r1, 0x4 - bl sub_80C857C - b _080C8C4C - .align 2, 0 -_080C8C2C: .4byte gContestFinalStandings -_080C8C30: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8C7A - ldr r0, _080C8C60 @ =gContestFinalStandings - ldr r1, _080C8C64 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8C68 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x4 -_080C8C48: - bl memcpy -_080C8C4C: - ldr r1, _080C8C6C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C8C7A - .align 2, 0 -_080C8C60: .4byte gContestFinalStandings -_080C8C64: .4byte gUnknown_0203869B -_080C8C68: .4byte gBlockRecvBuffer -_080C8C6C: .4byte gTasks -_080C8C70: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C8C7A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C8AD0 - - thumb_func_start sub_80C8C80 -sub_80C8C80: @ 80C8C80 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C8CA8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - adds r3, r1, 0 - cmp r0, 0xB - bls _080C8C9C - b _080C8E0C -_080C8C9C: - lsls r0, 2 - ldr r1, _080C8CAC @ =_080C8CB0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C8CA8: .4byte gTasks -_080C8CAC: .4byte _080C8CB0 - .align 2, 0 -_080C8CB0: - .4byte _080C8CE0 - .4byte _080C8CFC - .4byte _080C8D24 - .4byte _080C8D46 - .4byte _080C8D60 - .4byte _080C8D24 - .4byte _080C8D88 - .4byte _080C8DA0 - .4byte _080C8D24 - .4byte _080C8DB4 - .4byte _080C8DCC - .4byte _080C8D24 -_080C8CE0: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _080C8CEC - b _080C8E16 -_080C8CEC: - ldr r0, _080C8CF8 @ =gSharedMem + 0x19260 - movs r1, 0x70 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8CF8: .4byte gSharedMem + 0x19260 -_080C8CFC: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - bne _080C8D08 - b _080C8E16 -_080C8D08: - ldr r0, _080C8D18 @ =gSharedMem + 0x19260 - ldr r1, _080C8D1C @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8D20 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x70 - b _080C8DE4 - .align 2, 0 -_080C8D18: .4byte gSharedMem + 0x19260 -_080C8D1C: .4byte gUnknown_0203869B -_080C8D20: .4byte gBlockRecvBuffer -_080C8D24: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r3 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080C8E16 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080C8E16 -_080C8D46: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D5C @ =gSharedMem + 0x192D0 - movs r1, 0x14 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8D5C: .4byte gSharedMem + 0x192D0 -_080C8D60: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D7C @ =gSharedMem + 0x192D0 - ldr r1, _080C8D80 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8D84 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x14 - b _080C8DE4 - .align 2, 0 -_080C8D7C: .4byte gSharedMem + 0x192D0 -_080C8D80: .4byte gUnknown_0203869B -_080C8D84: .4byte gBlockRecvBuffer -_080C8D88: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8D9C @ =gSharedMem + 0x19328 - movs r1, 0x4 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8D9C: .4byte gSharedMem + 0x19328 -_080C8DA0: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DB0 @ =gSharedMem + 0x19328 - b _080C8DD8 - .align 2, 0 -_080C8DB0: .4byte gSharedMem + 0x19328 -_080C8DB4: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DC8 @ =gUnknown_02038696 - movs r1, 0x4 - bl sub_80C857C - b _080C8DE8 - .align 2, 0 -_080C8DC8: .4byte gUnknown_02038696 -_080C8DCC: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8E16 - ldr r0, _080C8DFC @ =gUnknown_02038696 -_080C8DD8: - ldr r1, _080C8E00 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8E04 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x4 -_080C8DE4: - bl memcpy -_080C8DE8: - ldr r1, _080C8E08 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _080C8E16 - .align 2, 0 -_080C8DFC: .4byte gUnknown_02038696 -_080C8E00: .4byte gUnknown_0203869B -_080C8E04: .4byte gBlockRecvBuffer -_080C8E08: .4byte gTasks -_080C8E0C: - movs r0, 0 - strh r0, [r2, 0x8] - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc -_080C8E16: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C8C80 - - thumb_func_start sub_80C8E1C -sub_80C8E1C: @ 80C8E1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C8E4C @ =gTasks - mov r8, r0 - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r7, r0, 3 - mov r1, r8 - adds r4, r7, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8E50 - cmp r0, 0x1 - beq _080C8E7C - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8EAE - .align 2, 0 -_080C8E4C: .4byte gTasks -_080C8E50: - ldr r1, _080C8E78 @ =gBlockSendBuffer - movs r0, 0x64 - strb r0, [r1] - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - bne _080C8E70 - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8EAE - movs r0, 0x2 - bl sub_8007E9C -_080C8E70: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8EAE - .align 2, 0 -_080C8E78: .4byte gBlockSendBuffer -_080C8E7C: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8EAE - ldr r1, _080C8EB8 @ =gBlockRecvBuffer - mov r0, r8 - adds r0, 0x12 - adds r2, r7, r0 - movs r4, 0x80 - lsls r4, 1 - movs r3, 0x3 -_080C8E94: - ldrh r0, [r1] - strh r0, [r2] - adds r1, r4 - adds r2, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080C8E94 - adds r1, r6, r5 - lsls r1, 3 - add r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8EAE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8EB8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8E1C - - thumb_func_start sub_80C8EBC -sub_80C8EBC: @ 80C8EBC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8EE4 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8EE8 - cmp r0, 0x1 - beq _080C8F00 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8F22 - .align 2, 0 -_080C8EE4: .4byte gTasks -_080C8EE8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8F22 - ldr r0, _080C8EFC @ =gUnknown_02038670 - movs r1, 0x8 - bl sub_80C857C - b _080C8F1C - .align 2, 0 -_080C8EFC: .4byte gUnknown_02038670 -_080C8F00: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8F22 - ldr r0, _080C8F28 @ =gUnknown_02038670 - ldr r1, _080C8F2C @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8F30 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x8 - bl memcpy -_080C8F1C: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8F22: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8F28: .4byte gUnknown_02038670 -_080C8F2C: .4byte gUnknown_0203869B -_080C8F30: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8EBC - - thumb_func_start sub_80C8F34 -sub_80C8F34: @ 80C8F34 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8F5C @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8F60 - cmp r0, 0x1 - beq _080C8F78 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8F9A - .align 2, 0 -_080C8F5C: .4byte gTasks -_080C8F60: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8F9A - ldr r0, _080C8F74 @ =gUnknown_02038696 - movs r1, 0x4 - bl sub_80C857C - b _080C8F94 - .align 2, 0 -_080C8F74: .4byte gUnknown_02038696 -_080C8F78: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8F9A - ldr r0, _080C8FA0 @ =gUnknown_02038696 - ldr r1, _080C8FA4 @ =gUnknown_0203869B - ldrb r1, [r1] - lsls r1, 8 - ldr r2, _080C8FA8 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x4 - bl memcpy -_080C8F94: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8F9A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C8FA0: .4byte gUnknown_02038696 -_080C8FA4: .4byte gUnknown_0203869B -_080C8FA8: .4byte gBlockRecvBuffer - thumb_func_end sub_80C8F34 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/crt0.s b/asm/crt0.s deleted file mode 100644 index 049392be9..000000000 --- a/asm/crt0.s +++ /dev/null @@ -1,227 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/misc_constants.inc" - .include "constants/version.inc" - - .syntax unified - - .global Start - - .text - - .arm - -Start: @ 8000000 - b Init - - .include "asm/rom_header.inc" - -@ 80000C0 - .word 0 - - .global GPIOPortData -GPIOPortData: @ 80000C4 - .hword 0 - - .global GPIOPortDirection -GPIOPortDirection: @ 80000C6 - .hword 0 - - .global GPIOPortReadEnable -GPIOPortReadEnable: @ 80000C8 - .hword 0 - - .space 6 - -@ 80000D0 - -@ TODO: figure out what this data is - - .ifdef GERMAN - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte 0xFFFFFFFF - .4byte GAME_VERSION - .4byte GAME_LANGUAGE - .ifdef SAPPHIRE - .ascii "pokemon sapphire version" - .space 8 - .else - .ascii "pokemon ruby version" - .space 12 - .endif - .4byte gMonFrontPicTable - .4byte gMonBackPicTable - .4byte gMonPaletteTable - .4byte gMonShinyPaletteTable - .4byte gMonIconTable - .4byte gMonIconPaletteIndices - .4byte gMonIconPaletteTable - .4byte gSpeciesNames - .4byte gMoveNames - .4byte gDecorations - .4byte 0x1220 - .4byte 0x1340 - .4byte 0x18 - .4byte 0x938 - .4byte 0x3A8C - .4byte 0x46 - .4byte 0x836 - .4byte 0x84C - .4byte 0x182 - .4byte 0xA0A0A07 - .4byte 0xC060C0C - .4byte 0xC121006 - .4byte 0x8010B0F - .4byte 0xC - .4byte 0x890 - .4byte 0x3AC0 - .4byte 0x234 - .4byte 0x238 - .4byte 9 - .4byte 0xA - .4byte 0 - .4byte 8 - .4byte 0x556 - .4byte 0x557 - .4byte 0x312F - .4byte 0x311B - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0xFFFFFFFF - .endif - - .arm - .align 2, 0 - .global Init -Init: - mov r0, PSR_IRQ_MODE - msr cpsr_cf, r0 - ldr sp, sp_irq - mov r0, PSR_SYS_MODE - msr cpsr_cf, r0 - ldr sp, sp_sys - ldr r1, =INTR_VECTOR - adr r0, IntrMain - str r0, [r1] - ldr r1, =AgbMain - mov lr, pc - bx r1 - b Init - - .align 2, 0 -sp_sys: .word IWRAM_END - 0x1a0 -sp_irq: .word IWRAM_END - 0x60 - - .arm - .align 2, 0 - .global IntrMain -IntrMain: - mov r3, REG_BASE - add r3, r3, 0x200 - ldr r2, [r3, OFFSET_REG_IE - 0x200] - ldrh r1, [r3, OFFSET_REG_IME - 0x200] - mrs r0, spsr - stmdb sp!, {r0-r3,lr} - mov r0, 1 - strh r0, [r3, OFFSET_REG_IME - 0x200] - and r1, r2, r2, lsr 16 - mov r12, 0 - ands r0, r1, INTR_FLAG_SERIAL - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_TIMER3 - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_HBLANK - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_VBLANK - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_VCOUNT - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_TIMER0 - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_TIMER1 - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_TIMER2 - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_DMA0 - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_DMA1 - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_DMA2 - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_DMA3 - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_KEYPAD - bne IntrMain_FoundIntr - add r12, r12, 0x4 - ands r0, r1, INTR_FLAG_GAMEPAK - strbne r0, [r3, OFFSET_REG_SOUNDCNT_X - 0x200] -IntrMain_Loop: - bne IntrMain_Loop -IntrMain_FoundIntr: - strh r0, [r3, OFFSET_REG_IF - 0x200] - mov r1, INTR_FLAG_SERIAL | INTR_FLAG_TIMER3 | INTR_FLAG_HBLANK - bic r2, r2, r0 - and r1, r1, r2 - strh r1, [r3, OFFSET_REG_IE - 0x200] - mrs r3, cpsr - bic r3, r3, PSR_I_BIT | PSR_F_BIT | PSR_MODE_MASK - orr r3, r3, PSR_SYS_MODE - msr cpsr_cf, r3 - ldr r1, =gIntrTable - add r1, r1, r12 - ldr r0, [r1] - stmdb sp!, {lr} - adr lr, IntrMain_RetAddr - bx r0 -IntrMain_RetAddr: - ldmia sp!, {lr} - mrs r3, cpsr - bic r3, r3, PSR_I_BIT | PSR_F_BIT | PSR_MODE_MASK - orr r3, r3, PSR_I_BIT | PSR_IRQ_MODE - msr cpsr_cf, r3 - ldmia sp!, {r0-r3,lr} - strh r2, [r3, OFFSET_REG_IE - 0x200] - strh r1, [r3, OFFSET_REG_IME - 0x200] - msr spsr_cf, r0 - bx lr - - .pool - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/current.s b/asm/current.s index e77218cc9..4ef537dc3 100755..100644 --- a/asm/current.s +++ b/asm/current.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified diff --git a/asm/cute_sketch.s b/asm/cute_sketch.s index da5dea0ce..bc72a6ef5 100644 --- a/asm/cute_sketch.s +++ b/asm/cute_sketch.s @@ -1,11 +1,10 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified .text - thumb_func_start sub_80FCB5C sub_80FCB5C: @ 80FCB5C push {r4-r7,lr} diff --git a/asm/dark.s b/asm/dark.s deleted file mode 100755 index 3fcc3f56c..000000000 --- a/asm/dark.s +++ /dev/null @@ -1,2013 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - @ dark - - thumb_func_start sub_80DFF1C -sub_80DFF1C: @ 80DFF1C - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DFF50 @ =gBattleAnimArgs - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - ldrb r1, [r5, 0x4] - adds r0, r4, 0 - bl StartSpriteAffineAnim - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x30] - ldrh r0, [r5, 0xA] - strh r0, [r4, 0x32] - ldr r0, _080DFF54 @ =sub_80DFF58 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DFF50: .4byte gBattleAnimArgs -_080DFF54: .4byte sub_80DFF58 - thumb_func_end sub_80DFF1C - - thumb_func_start sub_80DFF58 -sub_80DFF58: @ 80DFF58 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x36] - adds r0, r1 - strh r0, [r2, 0x36] - ldrh r1, [r2, 0x30] - ldrh r3, [r2, 0x38] - adds r1, r3 - strh r1, [r2, 0x38] - lsls r0, 16 - asrs r0, 24 - strh r0, [r2, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x32 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _080DFF8E - ldr r0, _080DFF94 @ =sub_80DFF98 - str r0, [r2, 0x1C] -_080DFF8E: - pop {r0} - bx r0 - .align 2, 0 -_080DFF94: .4byte sub_80DFF98 - thumb_func_end sub_80DFF58 - - thumb_func_start sub_80DFF98 -sub_80DFF98: @ 80DFF98 - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x36] - ldrh r0, [r3, 0x2E] - subs r1, r0 - strh r1, [r3, 0x36] - ldrh r0, [r3, 0x38] - ldrh r2, [r3, 0x30] - subs r0, r2 - strh r0, [r3, 0x38] - lsls r1, 16 - asrs r1, 24 - strh r1, [r3, 0x24] - lsls r0, 16 - asrs r0, 24 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _080DFFCA - adds r0, r3, 0 - bl move_anim_8074EE0 -_080DFFCA: - pop {r0} - bx r0 - thumb_func_end sub_80DFF98 - - thumb_func_start sub_80DFFD0 -sub_80DFFD0: @ 80DFFD0 - push {r4-r7,lr} - adds r4, r0, 0 - ldr r0, _080DFFE4 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - adds r3, r0, 0 - cmp r1, 0 - bne _080DFFEC - ldr r0, _080DFFE8 @ =gAnimBankAttacker - b _080DFFEE - .align 2, 0 -_080DFFE4: .4byte gBattleAnimArgs -_080DFFE8: .4byte gAnimBankAttacker -_080DFFEC: - ldr r0, _080E001C @ =gAnimBankTarget -_080DFFEE: - ldrb r5, [r0] - movs r6, 0x14 - ldrh r2, [r4, 0x4] - lsls r1, r2, 22 - lsrs r1, 22 - adds r1, 0x4 - ldr r7, _080E0020 @ =0x000003ff - adds r0, r7, 0 - ands r1, r0 - ldr r0, _080E0024 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - movs r1, 0x2 - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _080E004C - cmp r0, 0x1 - bgt _080E0028 - cmp r0, 0 - beq _080E0032 - b _080E00A0 - .align 2, 0 -_080E001C: .4byte gAnimBankTarget -_080E0020: .4byte 0x000003ff -_080E0024: .4byte 0xfffffc00 -_080E0028: - cmp r0, 0x2 - beq _080E0066 - cmp r0, 0x3 - beq _080E007E - b _080E00A0 -_080E0032: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r4, 0x22] - b _080E00A0 -_080E004C: - adds r0, r5, 0 - movs r1, 0x5 - bl sub_807A100 - subs r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x10 - strh r0, [r4, 0x22] - b _080E00A0 -_080E0066: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080E0094 -_080E007E: - adds r0, r5, 0 - movs r1, 0x4 - bl sub_807A100 - adds r0, 0xE - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x10 -_080E0094: - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - movs r6, 0xEC -_080E00A0: - movs r0, 0x20 - strh r0, [r4, 0x2E] - lsls r0, r6, 24 - asrs r0, 24 - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - adds r0, 0xC - strh r0, [r4, 0x36] - ldr r0, _080E00C8 @ =0x0000fff4 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080E00CC @ =sub_80E00D0 - str r0, [r4, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E00C8: .4byte 0x0000fff4 -_080E00CC: .4byte sub_80E00D0 - thumb_func_end sub_80DFFD0 - - thumb_func_start sub_80E00D0 -sub_80E00D0: @ 80E00D0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080E00E4 - adds r0, r4, 0 - bl move_anim_8074EE0 -_080E00E4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E00D0 - - thumb_func_start sub_80E00EC -sub_80E00EC: @ 80E00EC - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080E0150 @ =gTasks - adds r5, r1, r0 - ldr r4, _080E0154 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - strh r1, [r5, 0x12] - strh r0, [r5, 0x10] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r5, 0x24] - adds r0, 0x20 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080E015C - ldr r0, _080E0158 @ =0x0000fff4 - b _080E015E - .align 2, 0 -_080E0150: .4byte gTasks -_080E0154: .4byte gAnimBankAttacker -_080E0158: .4byte 0x0000fff4 -_080E015C: - ldr r0, _080E01A8 @ =0x0000ffc0 -_080E015E: - strh r0, [r5, 0x18] - ldr r0, _080E01AC @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080E01C4 - add r4, sp, 0xC - adds r0, r4, 0 - bl sub_8078914 - ldr r0, _080E01B0 @ =gBattle_BG1_Y - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080E01B4 @ =REG_BLDCNT - ldr r2, _080E01B8 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - ldrb r1, [r4, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - ldr r0, _080E01BC @ =REG_BG1VOFS - str r0, [sp] - movs r7, 0x2 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E01F4 - ldr r1, _080E01C0 @ =gBattle_BG2_X - b _080E01EE - .align 2, 0 -_080E01A8: .4byte 0x0000ffc0 -_080E01AC: .4byte gAnimBankAttacker -_080E01B0: .4byte gBattle_BG1_Y -_080E01B4: .4byte REG_BLDCNT -_080E01B8: .4byte 0x00003f42 -_080E01BC: .4byte REG_BG1VOFS -_080E01C0: .4byte gBattle_BG2_X -_080E01C4: - ldr r0, _080E0278 @ =gBattle_BG2_Y - ldrh r0, [r0] - strh r0, [r5, 0x1C] - ldr r1, _080E027C @ =REG_BLDCNT - ldr r2, _080E0280 @ =0x00003f44 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette - ldr r0, _080E0284 @ =REG_BG2VOFS - str r0, [sp] - movs r7, 0x4 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E01F4 - ldr r1, _080E0288 @ =gBattle_BG1_X -_080E01EE: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] -_080E01F4: - ldr r0, _080E028C @ =0xa2600001 - str r0, [sp, 0x4] - mov r2, sp - movs r1, 0 - movs r0, 0x1 - strb r0, [r2, 0x8] - mov r0, sp - strb r1, [r0, 0x9] - strh r1, [r5, 0x1E] - movs r0, 0x10 - strh r0, [r5, 0x20] - strh r1, [r5, 0x8] - strh r1, [r5, 0xA] - strh r1, [r5, 0xC] - movs r0, 0x3 - bl sub_80E08CC - movs r3, 0 - ldr r4, _080E0290 @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r4, r0 -_080E0220: - lsls r1, r3, 1 - adds r2, r1, r4 - ldrh r0, [r5, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r5, 0x1C] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080E0220 - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r1, _080E0294 @ =REG_WINOUT - movs r0, 0x3F - eors r7, r0 - movs r2, 0xFC - lsls r2, 6 - adds r0, r2, 0 - orrs r7, r0 - strh r7, [r1] - subs r1, 0x2 - adds r2, 0x3F - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080E0298 @ =gBattle_WIN0H - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E029C @ =gBattle_WIN0V - movs r0, 0xA0 - strh r0, [r1] - ldr r0, _080E02A0 @ =sub_80E02A4 - str r0, [r5] - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0278: .4byte gBattle_BG2_Y -_080E027C: .4byte REG_BLDCNT -_080E0280: .4byte 0x00003f44 -_080E0284: .4byte REG_BG2VOFS -_080E0288: .4byte gBattle_BG1_X -_080E028C: .4byte 0xa2600001 -_080E0290: .4byte gUnknown_03004DE0 -_080E0294: .4byte REG_WINOUT -_080E0298: .4byte gBattle_WIN0H -_080E029C: .4byte gBattle_WIN0V -_080E02A0: .4byte sub_80E02A4 - thumb_func_end sub_80E00EC - - thumb_func_start sub_80E02A4 -sub_80E02A4: @ 80E02A4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E02C8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E02BE - b _080E03B6 -_080E02BE: - lsls r0, 2 - ldr r1, _080E02CC @ =_080E02D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E02C8: .4byte gTasks -_080E02CC: .4byte _080E02D0 - .align 2, 0 -_080E02D0: - .4byte _080E02E4 - .4byte _080E0344 - .4byte _080E035E - .4byte _080E039C - .4byte _080E03B0 -_080E02E4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E03B6 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E0314 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0xC - beq _080E0322 - adds r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080E0322 -_080E0314: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - beq _080E0322 - subs r0, r1, 0x1 - strh r0, [r4, 0x20] -_080E0322: - ldr r2, _080E0340 @ =REG_BLDALPHA - ldrh r0, [r4, 0x20] - lsls r0, 8 - ldrh r1, [r4, 0x1E] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0xC - bne _080E03B6 - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - bne _080E03B6 - b _080E03A2 - .align 2, 0 -_080E0340: .4byte REG_BLDALPHA -_080E0344: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x18 - ldrsh r0, [r4, r2] - cmp r1, r0 - bge _080E03B6 - b _080E03A2 -_080E035E: - ldrh r0, [r4, 0x10] - subs r0, 0x8 - strh r0, [r4, 0x10] - adds r0, r4, 0 - bl sub_80E079C - ldrh r1, [r4, 0x24] - adds r1, 0x4 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r2, r0, 0x4 - strh r2, [r4, 0x26] - lsls r1, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _080E0380 - strh r2, [r4, 0x24] -_080E0380: - ldr r3, _080E0398 @ =gBattle_WIN0H - ldrh r2, [r4, 0x24] - lsls r0, r2, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r3] - lsls r2, 16 - lsls r1, 16 - cmp r2, r1 - bne _080E03B6 - b _080E03A2 - .align 2, 0 -_080E0398: .4byte gBattle_WIN0H -_080E039C: - ldr r1, _080E03AC @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E03A2: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E03B6 - .align 2, 0 -_080E03AC: .4byte gUnknown_03004DC0 -_080E03B0: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080E03B6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E02A4 - - thumb_func_start sub_80E03BC -sub_80E03BC: @ 80E03BC - push {r4-r7,lr} - sub sp, 0x18 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080E03E4 @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x4 - bls _080E03D8 - b _080E05F2 -_080E03D8: - lsls r0, 2 - ldr r1, _080E03E8 @ =_080E03EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E03E4: .4byte gTasks -_080E03E8: .4byte _080E03EC - .align 2, 0 -_080E03EC: - .4byte _080E0400 - .4byte _080E048C - .4byte _080E04D0 - .4byte _080E053C - .4byte _080E05A4 -_080E0400: - bl IsContest - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E043C - ldr r0, _080E042C @ =gBattle_WIN0H - movs r1, 0 - strh r1, [r0] - ldr r0, _080E0430 @ =gBattle_WIN0V - strh r1, [r0] - ldr r0, _080E0434 @ =REG_WININ - ldr r2, _080E0438 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080E05F2 - .align 2, 0 -_080E042C: .4byte gBattle_WIN0H -_080E0430: .4byte gBattle_WIN0V -_080E0434: .4byte REG_WININ -_080E0438: .4byte 0x00003f3f -_080E043C: - ldr r0, _080E045C @ =gAnimBankTarget - ldrb r0, [r0] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xE] - cmp r0, 0x1 - bne _080E046C - ldr r1, _080E0460 @ =REG_BLDCNT - ldr r2, _080E0464 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0468 @ =gBattle_BG2_X - b _080E0476 - .align 2, 0 -_080E045C: .4byte gAnimBankTarget -_080E0460: .4byte REG_BLDCNT -_080E0464: .4byte 0x00003f42 -_080E0468: .4byte gBattle_BG2_X -_080E046C: - ldr r1, _080E0480 @ =REG_BLDCNT - ldr r2, _080E0484 @ =0x00003f44 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0488 @ =gBattle_BG1_X -_080E0476: - ldrh r0, [r1] - adds r0, 0xF0 - strh r0, [r1] - b _080E0590 - .align 2, 0 -_080E0480: .4byte REG_BLDCNT -_080E0484: .4byte 0x00003f44 -_080E0488: .4byte gBattle_BG1_X -_080E048C: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080E04B4 - mov r0, sp - bl sub_8078914 - ldr r0, _080E04B0 @ =gBattle_BG1_Y - ldrh r0, [r0] - strh r0, [r5, 0x1C] - mov r0, sp - ldrb r1, [r0, 0x8] - lsls r1, 4 - movs r0, 0 - movs r2, 0x20 - bl FillPalette - b _080E04C4 - .align 2, 0 -_080E04B0: .4byte gBattle_BG1_Y -_080E04B4: - ldr r0, _080E04CC @ =gBattle_BG2_Y - ldrh r0, [r0] - strh r0, [r5, 0x1C] - movs r0, 0 - movs r1, 0x90 - movs r2, 0x20 - bl FillPalette -_080E04C4: - movs r0, 0x3 - bl sub_80E08CC - b _080E0590 - .align 2, 0 -_080E04CC: .4byte gBattle_BG2_Y -_080E04D0: - ldr r4, _080E051C @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1F - movs r6, 0 - strh r0, [r5, 0x16] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - subs r0, 0x7 - strh r0, [r5, 0x14] - ldrh r1, [r5, 0x16] - subs r1, r0 - lsls r1, 8 - strh r1, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - subs r1, r0, 0x4 - strh r1, [r5, 0x24] - adds r0, 0x4 - strh r0, [r5, 0x26] - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080E0524 - ldr r0, _080E0520 @ =0x0000fff4 - b _080E0526 - .align 2, 0 -_080E051C: .4byte gAnimBankTarget -_080E0520: .4byte 0x0000fff4 -_080E0524: - ldr r0, _080E0538 @ =0x0000ffc0 -_080E0526: - strh r0, [r5, 0x18] - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x10] - strh r0, [r5, 0x12] - movs r0, 0xC - strh r0, [r5, 0x1E] - movs r0, 0x8 - strh r0, [r5, 0x20] - b _080E0590 - .align 2, 0 -_080E0538: .4byte 0x0000ffc0 -_080E053C: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0x1 - bne _080E054C - ldr r0, _080E0548 @ =REG_BG1VOFS - b _080E054E - .align 2, 0 -_080E0548: .4byte REG_BG1VOFS -_080E054C: - ldr r0, _080E0598 @ =REG_BG2VOFS -_080E054E: - str r0, [sp, 0xC] - movs r3, 0 - add r4, sp, 0xC - ldr r6, _080E059C @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r7, r6, r0 -_080E055C: - lsls r1, r3, 1 - adds r2, r1, r6 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r2] - adds r1, r7 - ldrh r0, [r5, 0x1C] - adds r0, 0x9F - subs r0, r3 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x6F - bls _080E055C - ldr r1, _080E05A0 @ =0xa2600001 - str r1, [r4, 0x4] - movs r2, 0 - movs r0, 0x1 - strb r0, [r4, 0x8] - strb r2, [r4, 0x9] - ldr r0, [sp, 0xC] - ldr r2, [r4, 0x8] - bl sub_80895F8 -_080E0590: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080E05F2 - .align 2, 0 -_080E0598: .4byte REG_BG2VOFS -_080E059C: .4byte gUnknown_03004DE0 -_080E05A0: .4byte 0xa2600001 -_080E05A4: - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _080E05BC - ldr r1, _080E05B4 @ =REG_WINOUT - ldr r2, _080E05B8 @ =0x00003f3d - b _080E05C0 - .align 2, 0 -_080E05B4: .4byte REG_WINOUT -_080E05B8: .4byte 0x00003f3d -_080E05BC: - ldr r1, _080E05FC @ =REG_WINOUT - ldr r2, _080E0600 @ =0x00003f3b -_080E05C0: - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E0604 @ =REG_WININ - ldr r2, _080E0608 @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080E060C @ =gBattle_WIN0H - ldrh r0, [r5, 0x24] - lsls r0, 8 - ldrh r1, [r5, 0x26] - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E0610 @ =gBattle_WIN0V - movs r0, 0xA0 - strh r0, [r1] - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - strh r0, [r5, 0xC] - ldr r1, _080E0614 @ =REG_BLDALPHA - ldr r2, _080E0618 @ =0x0000080c - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E061C @ =sub_80E0620 - str r0, [r5] -_080E05F2: - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E05FC: .4byte REG_WINOUT -_080E0600: .4byte 0x00003f3b -_080E0604: .4byte REG_WININ -_080E0608: .4byte 0x00003f3f -_080E060C: .4byte gBattle_WIN0H -_080E0610: .4byte gBattle_WIN0V -_080E0614: .4byte REG_BLDALPHA -_080E0618: .4byte 0x0000080c -_080E061C: .4byte sub_80E0620 - thumb_func_end sub_80E03BC - - thumb_func_start sub_80E0620 -sub_80E0620: @ 80E0620 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080E0644 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080E063A - b _080E0784 -_080E063A: - lsls r0, 2 - ldr r1, _080E0648 @ =_080E064C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E0644: .4byte gTasks -_080E0648: .4byte _080E064C - .align 2, 0 -_080E064C: - .4byte _080E0660 - .4byte _080E068C - .4byte _080E06F4 - .4byte _080E0754 - .4byte _080E0768 -_080E0660: - ldrh r0, [r4, 0x12] - adds r0, 0x8 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x16] - movs r3, 0x16 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E0676 - strh r2, [r4, 0x12] -_080E0676: - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x12 - ldrsh r1, [r4, r0] - movs r2, 0x16 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080E068A - b _080E0784 -_080E068A: - b _080E075A -_080E068C: - movs r3, 0x26 - ldrsh r0, [r4, r3] - movs r2, 0x24 - ldrsh r1, [r4, r2] - subs r0, r1 - cmp r0, 0x3F - bgt _080E06A8 - ldrh r0, [r4, 0x24] - subs r0, 0x4 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - adds r0, 0x4 - strh r0, [r4, 0x26] - b _080E06AC -_080E06A8: - movs r0, 0x1 - strh r0, [r4, 0xA] -_080E06AC: - ldr r2, _080E06F0 @ =gBattle_WIN0H - ldrh r0, [r4, 0x24] - lsls r0, 8 - ldrh r1, [r4, 0x26] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, 0x10] - adds r0, 0x8 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - ldrh r2, [r4, 0x14] - movs r3, 0x14 - ldrsh r1, [r4, r3] - cmp r0, r1 - blt _080E06CE - strh r2, [r4, 0x10] -_080E06CE: - adds r0, r4, 0 - bl sub_80E079C - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080E0784 - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _080E0784 - movs r0, 0 - strh r0, [r4, 0xA] - b _080E075A - .align 2, 0 -_080E06F0: .4byte gBattle_WIN0H -_080E06F4: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080E0784 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E0724 - ldrh r1, [r4, 0x1E] - movs r2, 0x1E - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080E0732 - subs r0, r1, 0x1 - strh r0, [r4, 0x1E] - b _080E0732 -_080E0724: - ldrh r1, [r4, 0x20] - movs r3, 0x20 - ldrsh r0, [r4, r3] - cmp r0, 0xF - bgt _080E0732 - adds r0, r1, 0x1 - strh r0, [r4, 0x20] -_080E0732: - ldr r2, _080E0750 @ =REG_BLDALPHA - ldrh r0, [r4, 0x20] - lsls r0, 8 - ldrh r1, [r4, 0x1E] - orrs r0, r1 - strh r0, [r2] - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080E0784 - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bne _080E0784 - b _080E075A - .align 2, 0 -_080E0750: .4byte REG_BLDALPHA -_080E0754: - ldr r1, _080E0764 @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080E075A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080E0784 - .align 2, 0 -_080E0764: .4byte gUnknown_03004DC0 -_080E0768: - ldr r0, _080E078C @ =gBattle_WIN0H - movs r1, 0 - strh r1, [r0] - ldr r0, _080E0790 @ =gBattle_WIN0V - strh r1, [r0] - ldr r0, _080E0794 @ =REG_WININ - ldr r3, _080E0798 @ =0x00003f3f - adds r1, r3, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080E0784: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E078C: .4byte gBattle_WIN0H -_080E0790: .4byte gBattle_WIN0V -_080E0794: .4byte REG_WININ -_080E0798: .4byte 0x00003f3f - thumb_func_end sub_80E0620 - - thumb_func_start sub_80E079C -sub_80E079C: @ 80E079C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r0, [r6, 0x12] - ldrh r4, [r6, 0x10] - subs r0, r4 - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - beq _080E0890 - movs r2, 0x22 - ldrsh r0, [r6, r2] - bl __divsi3 - mov r8, r0 - movs r3, 0x14 - ldrsh r0, [r6, r3] - lsls r5, r0, 8 - lsls r0, r4, 16 - movs r4, 0 - cmp r0, 0 - ble _080E07FC - ldr r0, _080E0888 @ =gUnknown_03004DE0 - mov r12, r0 - ldr r7, _080E088C @ =gUnknown_03004DC0 -_080E07D0: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - ldrb r1, [r7, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r3, r0 - add r3, r12 - adds r1, r2, 0 - subs r1, 0x9F - ldrh r0, [r6, 0x1C] - subs r0, r1 - strh r0, [r3] - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x10 - ldrsh r0, [r6, r1] - cmp r2, r0 - blt _080E07D0 -_080E07FC: - ldrh r4, [r6, 0x10] - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - bgt _080E0846 - ldr r0, _080E0888 @ =gUnknown_03004DE0 - mov r12, r0 - ldr r7, _080E088C @ =gUnknown_03004DC0 -_080E0810: - asrs r4, r3, 16 - cmp r4, 0 - blt _080E0832 - asrs r1, r5, 8 - subs r1, r4 - lsls r3, r4, 1 - ldrb r2, [r7, 0x14] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 7 - adds r3, r0 - add r3, r12 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r6, 0x1C] - adds r1, r2 - strh r1, [r3] -_080E0832: - add r5, r8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r3, r4, 16 - asrs r1, r3, 16 - movs r2, 0x12 - ldrsh r0, [r6, r2] - cmp r1, r0 - ble _080E0810 -_080E0846: - movs r3, 0x1C - ldrsh r0, [r6, r3] - adds r0, 0x9F - lsls r2, r4, 16 - asrs r1, r2, 16 - subs r5, r0, r1 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - bge _080E08BE - ldr r7, _080E0888 @ =gUnknown_03004DE0 - ldr r4, _080E088C @ =gUnknown_03004DC0 -_080E085E: - asrs r3, r2, 16 - cmp r3, 0 - blt _080E0876 - lsls r2, r3, 1 - ldrb r1, [r4, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - adds r2, r7 - strh r5, [r2] - subs r5, 0x1 -_080E0876: - adds r0, r3, 0x1 - lsls r2, r0, 16 - asrs r1, r2, 16 - movs r3, 0x16 - ldrsh r0, [r6, r3] - cmp r1, r0 - blt _080E085E - b _080E08BE - .align 2, 0 -_080E0888: .4byte gUnknown_03004DE0 -_080E088C: .4byte gUnknown_03004DC0 -_080E0890: - movs r1, 0x1C - ldrsh r0, [r6, r1] - adds r5, r0, 0 - adds r5, 0x9F - movs r4, 0 - ldr r3, _080E08C8 @ =gUnknown_03004DE0 - movs r2, 0xF0 - lsls r2, 3 - adds r6, r3, r2 -_080E08A2: - lsls r0, r4, 16 - asrs r0, 16 - lsls r2, r0, 1 - adds r1, r2, r3 - strh r5, [r1] - adds r2, r6 - strh r5, [r2] - subs r5, 0x1 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _080E08A2 -_080E08BE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E08C8: .4byte gUnknown_03004DE0 - thumb_func_end sub_80E079C - - thumb_func_start sub_80E08CC -sub_80E08CC: @ 80E08CC - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - ldr r7, _080E0914 @ =gSprites - movs r1, 0x3 - ands r0, r1 - lsls r5, r0, 2 - movs r0, 0xD - negs r0, r0 - adds r6, r0, 0 -_080E08E2: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080E0902 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1, 0x5] - ands r0, r6 - orrs r0, r5 - strb r0, [r1, 0x5] -_080E0902: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _080E08E2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0914: .4byte gSprites - thumb_func_end sub_80E08CC - - thumb_func_start sub_80E0918 -sub_80E0918: @ 80E0918 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r6, _080E09B8 @ =gAnimBankAttacker - ldrb r0, [r6] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - ldrb r0, [r6] - adds r1, r4, 0 - bl sub_8076034 - ldr r0, _080E09BC @ =gSprites - mov r9, r0 - ldr r0, _080E09C0 @ =gObjectBankIDs - mov r8, r0 - ldrb r0, [r6] - add r0, r8 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - adds r1, 0x3E - ldrb r2, [r1] - movs r7, 0x5 - negs r7, r7 - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r6] - movs r5, 0x2 - eors r0, r5 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080E09A2 - ldrb r0, [r6] - eors r0, r5 - movs r1, 0x1 - eors r4, r1 - adds r1, r4, 0 - bl sub_8076034 - ldrb r0, [r6] - eors r0, r5 - add r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r2, [r0] - adds r1, r7, 0 - ands r1, r2 - strb r1, [r0] -_080E09A2: - mov r0, r10 - bl DestroyAnimVisualTask - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E09B8: .4byte gAnimBankAttacker -_080E09BC: .4byte gSprites -_080E09C0: .4byte gObjectBankIDs - thumb_func_end sub_80E0918 - - thumb_func_start sub_80E09C4 -sub_80E09C4: @ 80E09C4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _080E0A0C @ =gAnimBankAttacker - ldrb r0, [r4] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r5, 0 - bl sub_8076464 - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080E0A00 - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8076464 -_080E0A00: - adds r0, r6, 0 - bl DestroyAnimVisualTask - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E0A0C: .4byte gAnimBankAttacker - thumb_func_end sub_80E09C4 - - thumb_func_start sub_80E0A10 -sub_80E0A10: @ 80E0A10 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _080E0A40 @ =gBattleAnimArgs - ldrh r0, [r1] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrb r1, [r1, 0x4] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080E0A44 @ =sub_8078600 - str r0, [r4, 0x1C] - ldr r1, _080E0A48 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E0A40: .4byte gBattleAnimArgs -_080E0A44: .4byte sub_8078600 -_080E0A48: .4byte DestroyAnimSprite - thumb_func_end sub_80E0A10 - - thumb_func_start sub_80E0A4C -sub_80E0A4C: @ 80E0A4C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r7, 0 - ldr r0, _080E0B50 @ =gBattle_WIN0H - strh r7, [r0] - ldr r0, _080E0B54 @ =gBattle_WIN0V - strh r7, [r0] - ldr r1, _080E0B58 @ =REG_WININ - ldr r2, _080E0B5C @ =0x00003f3f - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E0B60 @ =0x00003f3d - adds r0, r3, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _080E0B64 @ =REG_BLDCNT - ldr r2, _080E0B68 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r3, _080E0B6C @ =0x00000c08 - adds r0, r3, 0 - strh r0, [r1] - ldr r5, _080E0B70 @ =REG_BG1CNT - ldrb r1, [r5] - movs r0, 0x4 - negs r0, r0 - mov r8, r0 - ands r0, r1 - strb r0, [r5] - ldrb r1, [r5, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r5, 0x1] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E0AC4 - ldrb r0, [r5] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r5] -_080E0AC4: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080E0B40 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E0B40 - ldr r4, _080E0B74 @ =gAnimBankAttacker - ldrb r0, [r4] - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080E0AF4 - ldrb r0, [r4] - bl GetBankIdentity - lsls r0, 24 - cmp r0, 0 - bne _080E0B40 -_080E0AF4: - ldrb r0, [r4] - movs r6, 0x2 - eors r0, r6 - bl IsAnimBankSpriteVisible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E0B40 - ldr r3, _080E0B78 @ =gSprites - ldr r1, _080E0B7C @ =gObjectBankIDs - ldrb r0, [r4] - eors r0, r6 - adds r0, r1 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r1, [r5] - mov r0, r8 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5] - movs r7, 0x1 -_080E0B40: - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080E0B84 - ldr r0, _080E0B80 @ =gSharedMem + 0x19348 - ldrh r5, [r0] - b _080E0BCC - .align 2, 0 -_080E0B50: .4byte gBattle_WIN0H -_080E0B54: .4byte gBattle_WIN0V -_080E0B58: .4byte REG_WININ -_080E0B5C: .4byte 0x00003f3f -_080E0B60: .4byte 0x00003f3d -_080E0B64: .4byte REG_BLDCNT -_080E0B68: .4byte 0x00003f42 -_080E0B6C: .4byte 0x00000c08 -_080E0B70: .4byte REG_BG1CNT -_080E0B74: .4byte gAnimBankAttacker -_080E0B78: .4byte gSprites -_080E0B7C: .4byte gObjectBankIDs -_080E0B80: .4byte gSharedMem + 0x19348 -_080E0B84: - ldr r4, _080E0BA4 @ =gAnimBankAttacker - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080E0BB0 - ldr r1, _080E0BA8 @ =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E0BAC @ =gEnemyParty - b _080E0BC0 - .align 2, 0 -_080E0BA4: .4byte gAnimBankAttacker -_080E0BA8: .4byte gBattlePartyID -_080E0BAC: .4byte gEnemyParty -_080E0BB0: - ldr r1, _080E0C58 @ =gBattlePartyID - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080E0C5C @ =gPlayerParty -_080E0BC0: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 -_080E0BCC: - movs r0, 0 - bl GetAnimBankSpriteId - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080E0C60 @ =gAnimBankAttacker - ldrb r0, [r0] - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_807A4A0 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _080E0C64 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080E0C68 @ =0x85000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080E0C6C @ =gUnknown_08D1D574 - bl LZDecompressVram - ldr r0, _080E0C70 @ =gUnknown_08D1D410 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080E0C74 @ =gUnknown_08D1D54C - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r2, _080E0C78 @ =gBattle_BG1_X - ldr r0, _080E0C7C @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x20] - negs r0, r0 - adds r0, 0x60 - strh r0, [r2] - ldr r2, _080E0C80 @ =gBattle_BG1_Y - ldrh r0, [r1, 0x22] - negs r0, r0 - adds r0, 0x20 - strh r0, [r2] - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - ldr r2, _080E0C84 @ =gBattleAnimArgs - movs r3, 0x2 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080E0C88 - adds r0, r1, 0 - movs r1, 0 - bl sub_8079108 - b _080E0C94 - .align 2, 0 -_080E0C58: .4byte gBattlePartyID -_080E0C5C: .4byte gPlayerParty -_080E0C60: .4byte gAnimBankAttacker -_080E0C64: .4byte 0x040000d4 -_080E0C68: .4byte 0x85000400 -_080E0C6C: .4byte gUnknown_08D1D574 -_080E0C70: .4byte gUnknown_08D1D410 -_080E0C74: .4byte gUnknown_08D1D54C -_080E0C78: .4byte gBattle_BG1_X -_080E0C7C: .4byte gSprites -_080E0C80: .4byte gBattle_BG1_Y -_080E0C84: .4byte gBattleAnimArgs -_080E0C88: - lsls r0, r1, 4 - ldrh r3, [r2, 0x4] - movs r1, 0x10 - movs r2, 0xB - bl BlendPalette -_080E0C94: - ldr r1, _080E0CC4 @ =gTasks - mov r2, r9 - lsls r0, r2, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r2, _080E0CC8 @ =gBattleAnimArgs - ldrh r1, [r2] - strh r1, [r0, 0xA] - ldrh r1, [r2, 0x2] - strh r1, [r0, 0xC] - ldrh r1, [r2, 0x4] - strh r1, [r0, 0xE] - strh r7, [r0, 0x14] - ldr r1, _080E0CCC @ =sub_80E0CD0 - str r1, [r0] - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0CC4: .4byte gTasks -_080E0CC8: .4byte gBattleAnimArgs -_080E0CCC: .4byte sub_80E0CD0 - thumb_func_end sub_80E0A4C - - thumb_func_start sub_80E0CD0 -sub_80E0CD0: @ 80E0CD0 - push {r4-r7,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080E0DF0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x1C] - adds r0, 0x4 - movs r5, 0 - strh r0, [r4, 0x1C] - ldr r2, _080E0DF4 @ =gBattle_BG1_X - ldrh r3, [r2] - subs r1, r3, 0x4 - strh r1, [r2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x80 - bne _080E0DE8 - strh r5, [r4, 0x1C] - adds r0, r3, 0 - adds r0, 0x7C - strh r0, [r2] - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080E0DE8 - movs r0, 0 - bl sub_8076464 - ldr r0, _080E0DF8 @ =gBattle_WIN0H - strh r5, [r0] - ldr r0, _080E0DFC @ =gBattle_WIN0V - strh r5, [r0] - ldr r0, _080E0E00 @ =REG_WININ - ldr r2, _080E0E04 @ =0x00003f3f - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080E0D40 - ldr r2, _080E0E08 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080E0D40: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - eors r0, r1 - strh r0, [r2] - ldr r0, _080E0E0C @ =REG_BLDCNT - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - ldr r6, _080E0E10 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x5] - lsrs r0, 4 - adds r0, 0x10 - adds r1, r0, 0 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080E0D84 - adds r0, r1, 0 - movs r1, 0x1 - bl sub_8079108 -_080E0D84: - movs r3, 0x8 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - str r5, [sp, 0xC] - ldr r1, _080E0E14 @ =0x040000d4 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _080E0E18 @ =0x85000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080E0DE2 - ldr r2, _080E0E1C @ =gObjectBankIDs - ldr r0, _080E0E20 @ =gAnimBankAttacker - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - adds r0, r2 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r6 - ldrb r3, [r2, 0x5] - lsls r1, r3, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] -_080E0DE2: - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080E0DE8: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E0DF0: .4byte gTasks -_080E0DF4: .4byte gBattle_BG1_X -_080E0DF8: .4byte gBattle_WIN0H -_080E0DFC: .4byte gBattle_WIN0V -_080E0E00: .4byte REG_WININ -_080E0E04: .4byte 0x00003f3f -_080E0E08: .4byte REG_BG1CNT -_080E0E0C: .4byte REG_BLDCNT -_080E0E10: .4byte gSprites -_080E0E14: .4byte 0x040000d4 -_080E0E18: .4byte 0x85000200 -_080E0E1C: .4byte gObjectBankIDs -_080E0E20: .4byte gAnimBankAttacker - thumb_func_end sub_80E0CD0 - - thumb_func_start sub_80E0E24 -sub_80E0E24: @ 80E0E24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _080E0E44 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r1, [r0, r2] - adds r2, r0, 0 - cmp r1, 0x7 - bhi _080E0E88 - lsls r0, r1, 2 - ldr r1, _080E0E48 @ =_080E0E4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E0E44: .4byte gBattleAnimArgs -_080E0E48: .4byte _080E0E4C - .align 2, 0 -_080E0E4C: - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E6C - .4byte _080E0E78 - .4byte _080E0E7C - .4byte _080E0E80 - .4byte _080E0E84 -_080E0E6C: - ldrb r0, [r2] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r2, r0, 24 - b _080E0E8A -_080E0E78: - movs r4, 0 - b _080E0E90 -_080E0E7C: - movs r4, 0x2 - b _080E0E90 -_080E0E80: - movs r4, 0x1 - b _080E0E90 -_080E0E84: - movs r4, 0x3 - b _080E0E90 -_080E0E88: - movs r2, 0xFF -_080E0E8A: - movs r0, 0 - cmp r0, 0 - beq _080E0EB6 -_080E0E90: - adds r0, r4, 0 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080E0EB4 - ldr r0, _080E0EB0 @ =gObjectBankIDs - adds r0, r4, r0 - ldrb r2, [r0] - b _080E0EB6 - .align 2, 0 -_080E0EB0: .4byte gObjectBankIDs -_080E0EB4: - movs r2, 0xFF -_080E0EB6: - cmp r2, 0xFF - beq _080E0ED2 - ldr r1, _080E0EE0 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - adds r0, 0x10 - ldr r1, _080E0EE4 @ =gBattleAnimArgs - ldrb r1, [r1, 0x2] - bl sub_8079108 -_080E0ED2: - adds r0, r5, 0 - bl DestroyAnimVisualTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E0EE0: .4byte gSprites -_080E0EE4: .4byte gBattleAnimArgs - thumb_func_end sub_80E0E24 - - thumb_func_start sub_80E0EE8 -sub_80E0EE8: @ 80E0EE8 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080E0F14 @ =gAnimMoveTurn - ldrb r0, [r2] - cmp r0, 0x1 - bhi _080E0EFC - ldr r1, _080E0F18 @ =gBattleAnimArgs - movs r0, 0 - strh r0, [r1, 0xE] -_080E0EFC: - ldrb r0, [r2] - cmp r0, 0x2 - bne _080E0F08 - ldr r1, _080E0F18 @ =gBattleAnimArgs - movs r0, 0x1 - strh r0, [r1, 0xE] -_080E0F08: - adds r0, r3, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080E0F14: .4byte gAnimMoveTurn -_080E0F18: .4byte gBattleAnimArgs - thumb_func_end sub_80E0EE8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/dragon.s b/asm/dragon.s deleted file mode 100755 index 7c4ea0547..000000000 --- a/asm/dragon.s +++ /dev/null @@ -1,1214 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - @ dragon - - thumb_func_start sub_80DF5A0 -sub_80DF5A0: @ 80DF5A0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DF5E8 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DF5F0 - ldr r2, _080DF5EC @ =gBattleAnimArgs - ldrh r0, [r5, 0x20] - ldrh r1, [r2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r2, 0x6] - negs r0, r0 - strh r0, [r2, 0x6] - ldrh r0, [r2, 0x8] - negs r0, r0 - strh r0, [r2, 0x8] - adds r1, r2, 0 - b _080DF5FA - .align 2, 0 -_080DF5E8: .4byte gAnimBankAttacker -_080DF5EC: .4byte gBattleAnimArgs -_080DF5F0: - ldr r1, _080DF630 @ =gBattleAnimArgs - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] -_080DF5FA: - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - strh r0, [r5, 0x2E] - ldrh r0, [r1, 0x6] - strh r0, [r5, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r5, 0x34] - ldrh r0, [r1, 0xA] - strh r0, [r5, 0x38] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080DF634 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData - ldr r0, _080DF638 @ =sub_8078504 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF630: .4byte gBattleAnimArgs -_080DF634: .4byte move_anim_8074EE0 -_080DF638: .4byte sub_8078504 - thumb_func_end sub_80DF5A0 - - thumb_func_start sub_80DF63C -sub_80DF63C: @ 80DF63C - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_8078650 - ldr r4, _080DF694 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080DF698 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DF6A0 - ldr r2, _080DF69C @ =gBattleAnimArgs - ldrh r0, [r5, 0x20] - ldrh r1, [r2, 0x2] - subs r0, r1 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r1, r0 - strh r1, [r5, 0x22] - ldrh r0, [r5, 0x32] - ldrh r1, [r2, 0x4] - subs r0, r1 - strh r0, [r5, 0x32] - ldrh r0, [r2, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - b _080DF6CA - .align 2, 0 -_080DF694: .4byte gAnimBankTarget -_080DF698: .4byte gAnimBankAttacker -_080DF69C: .4byte gBattleAnimArgs -_080DF6A0: - ldr r1, _080DF6E4 @ =gBattleAnimArgs - ldrh r0, [r1] - ldrh r2, [r5, 0x20] - adds r0, r2 - strh r0, [r5, 0x20] - ldrh r0, [r1, 0x2] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - ldrh r0, [r1, 0x4] - ldrh r2, [r5, 0x32] - adds r0, r2 - strh r0, [r5, 0x32] - ldrh r0, [r1, 0x6] - ldrh r1, [r5, 0x36] - adds r0, r1 - strh r0, [r5, 0x36] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080DF6CA: - ldr r0, _080DF6E4 @ =gBattleAnimArgs - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x2E] - ldr r0, _080DF6E8 @ =sub_8078B34 - str r0, [r5, 0x1C] - ldr r1, _080DF6EC @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF6E4: .4byte gBattleAnimArgs -_080DF6E8: .4byte sub_8078B34 -_080DF6EC: .4byte move_anim_8074EE0 - thumb_func_end sub_80DF63C - - thumb_func_start sub_80DF6F0 -sub_80DF6F0: @ 80DF6F0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _080DF704 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DF70C - ldr r4, _080DF708 @ =gAnimBankAttacker - b _080DF70E - .align 2, 0 -_080DF704: .4byte gBattleAnimArgs -_080DF708: .4byte gAnimBankAttacker -_080DF70C: - ldr r4, _080DF750 @ =gAnimBankTarget -_080DF70E: - ldrb r0, [r4] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldr r4, _080DF754 @ =gBattleAnimArgs - movs r0, 0x2 - ldrsh r1, [r4, r0] - adds r0, r5, 0 - bl sub_807867C - ldrh r0, [r4, 0x4] - ldrh r1, [r5, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldr r0, _080DF758 @ =sub_8078600 - str r0, [r5, 0x1C] - ldr r1, _080DF75C @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DF750: .4byte gAnimBankTarget -_080DF754: .4byte gBattleAnimArgs -_080DF758: .4byte sub_8078600 -_080DF75C: .4byte move_anim_8074EE0 - thumb_func_end sub_80DF6F0 - - thumb_func_start sub_80DF760 -sub_80DF760: @ 80DF760 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DF788 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DF77A - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080DF77A: - adds r0, r4, 0 - bl sub_80DF63C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DF788: .4byte gAnimBankAttacker - thumb_func_end sub_80DF760 - - thumb_func_start sub_80DF78C -sub_80DF78C: @ 80DF78C - push {r4-r7,lr} - adds r6, r0, 0 - ldr r4, _080DF7E0 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r6, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x22] - strh r5, [r6, 0x36] - movs r0, 0x1 - strh r0, [r6, 0x38] - ldr r0, _080DF7E4 @ =gBattleAnimArgs - ldrh r0, [r0] - strh r0, [r6, 0x3A] - ldr r4, _080DF7E8 @ =gBankAttacker - ldrb r0, [r4] - movs r1, 0 - bl sub_807A100 - lsls r7, r0, 16 - lsrs r5, r7, 16 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_807A100 - lsls r1, r0, 16 - lsrs r0, r1, 16 - cmp r5, r0 - bls _080DF7EC - lsrs r0, r7, 17 - b _080DF7EE - .align 2, 0 -_080DF7E0: .4byte gAnimBankAttacker -_080DF7E4: .4byte gBattleAnimArgs -_080DF7E8: .4byte gBankAttacker -_080DF7EC: - lsrs r0, r1, 17 -_080DF7EE: - strh r0, [r6, 0x3C] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Cos - strh r0, [r6, 0x24] - movs r1, 0x3A - ldrsh r0, [r6, r1] - movs r2, 0x3C - ldrsh r1, [r6, r2] - bl Sin - strh r0, [r6, 0x26] - ldr r0, _080DF818 @ =sub_80DF81C - str r0, [r6, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DF818: .4byte sub_80DF81C - thumb_func_end sub_80DF78C - - thumb_func_start sub_80DF81C -sub_80DF81C: @ 80DF81C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _080DF82E - cmp r5, 0x1 - beq _080DF89A - b _080DF91E -_080DF82E: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DF880 - strh r5, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DF880 - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080DF880 - movs r0, 0x10 - strh r0, [r4, 0x38] -_080DF880: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080DF91E - movs r0, 0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DF91E -_080DF89A: - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x38] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0x95 - bgt _080DF8C2 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r4, 0x3C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x95 - ble _080DF8C2 - movs r0, 0x96 - strh r0, [r4, 0x3C] -_080DF8C2: - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r2, 0x3C - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080DF90A - movs r0, 0 - strh r0, [r4, 0x36] - ldrh r1, [r4, 0x38] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0xF - bgt _080DF90A - adds r0, r1, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080DF90A - movs r0, 0x10 - strh r0, [r4, 0x38] -_080DF90A: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080DF91E - adds r0, r4, 0 - bl DestroyAnimSprite -_080DF91E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DF81C - - thumb_func_start sub_80DF924 -sub_80DF924: @ 80DF924 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DF950 @ =gTasks - adds r4, r1, r0 - ldr r0, _080DF954 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DF960 - ldr r0, _080DF958 @ =REG_BG1HOFS - str r0, [sp] - ldr r0, _080DF95C @ =gBattle_BG1_X - b _080DF966 - .align 2, 0 -_080DF950: .4byte gTasks -_080DF954: .4byte gAnimBankAttacker -_080DF958: .4byte REG_BG1HOFS -_080DF95C: .4byte gBattle_BG1_X -_080DF960: - ldr r0, _080DF9DC @ =REG_BG2HOFS - str r0, [sp] - ldr r0, _080DF9E0 @ =gBattle_BG2_X -_080DF966: - ldrh r0, [r0] - strh r0, [r4, 0xC] - ldr r0, _080DF9E4 @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r5, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r5, [r0, 0x9] - ldr r0, _080DF9E8 @ =gAnimBankAttacker - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - subs r1, 0x20 - strh r1, [r4, 0xE] - adds r0, 0x20 - strh r0, [r4, 0x10] - cmp r1, 0 - bge _080DF996 - strh r5, [r4, 0xE] -_080DF996: - ldrh r3, [r4, 0xE] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - bgt _080DF9C4 - ldr r5, _080DF9EC @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080DF9A8: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0xC] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0xC] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r3, r0 - ble _080DF9A8 -_080DF9C4: - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r0, _080DF9F0 @ =sub_80DF9F4 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DF9DC: .4byte REG_BG2HOFS -_080DF9E0: .4byte gBattle_BG2_X -_080DF9E4: .4byte 0xa2600001 -_080DF9E8: .4byte gAnimBankAttacker -_080DF9EC: .4byte gUnknown_03004DE0 -_080DF9F0: .4byte sub_80DF9F4 - thumb_func_end sub_80DF924 - - thumb_func_start sub_80DF9F4 -sub_80DF9F4: @ 80DF9F4 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - ldr r1, _080DFA18 @ =gTasks - adds r2, r0, r1 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _080DFAAA - lsls r0, 2 - ldr r1, _080DFA1C @ =_080DFA20 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DFA18: .4byte gTasks -_080DFA1C: .4byte _080DFA20 - .align 2, 0 -_080DFA20: - .4byte _080DFA34 - .4byte _080DFA56 - .4byte _080DFA66 - .4byte _080DFA92 - .4byte _080DFAA4 -_080DFA34: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DFA8A - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - adds r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DFA8A - b _080DFA84 -_080DFA56: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3C - ble _080DFA8A - b _080DFA84 -_080DFA66: - ldrh r0, [r2, 0x16] - adds r0, 0x1 - strh r0, [r2, 0x16] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DFA8A - movs r0, 0 - strh r0, [r2, 0x16] - ldrh r0, [r2, 0x14] - subs r0, 0x1 - strh r0, [r2, 0x14] - lsls r0, 16 - cmp r0, 0 - bne _080DFA8A -_080DFA84: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_080DFA8A: - adds r0, r2, 0 - bl sub_80DFAB0 - b _080DFAAA -_080DFA92: - ldr r1, _080DFAA0 @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080DFAAA - .align 2, 0 -_080DFAA0: .4byte gUnknown_03004DC0 -_080DFAA4: - adds r0, r3, 0 - bl DestroyAnimVisualTask -_080DFAAA: - pop {r0} - bx r0 - thumb_func_end sub_80DF9F4 - - thumb_func_start sub_80DFAB0 -sub_80DFAB0: @ 80DFAB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldrh r3, [r5, 0x12] - ldrh r4, [r5, 0xE] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r4, r0 - bgt _080DFB06 - ldr r7, _080DFB1C @ =gUnknown_03004DE0 - mov r12, r7 - ldr r0, _080DFB20 @ =gSineTable - mov r8, r0 - ldr r6, _080DFB24 @ =gUnknown_03004DC0 -_080DFACE: - lsls r2, r4, 1 - ldrb r1, [r6, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - adds r2, r0 - add r2, r12 - lsls r0, r3, 1 - add r0, r8 - movs r7, 0 - ldrsh r1, [r0, r7] - movs r7, 0x14 - ldrsh r0, [r5, r7] - muls r0, r1 - asrs r0, 7 - ldrh r1, [r5, 0xC] - adds r0, r1 - strh r0, [r2] - adds r3, 0x8 - movs r0, 0xFF - ands r3, r0 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0x10 - ldrsh r0, [r5, r7] - cmp r4, r0 - ble _080DFACE -_080DFB06: - ldrh r0, [r5, 0x12] - adds r0, 0x9 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x12] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DFB1C: .4byte gUnknown_03004DE0 -_080DFB20: .4byte gSineTable -_080DFB24: .4byte gUnknown_03004DC0 - thumb_func_end sub_80DFAB0 - - thumb_func_start sub_80DFB28 -sub_80DFB28: @ 80DFB28 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - ldr r5, _080DFBC8 @ =gBattleAnimArgs - movs r0, 0x4 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - movs r1, 0x5 - bl __divsi3 - adds r6, r0, 0 - ldr r1, _080DFBCC @ =gAnimBankAttacker - mov r8, r1 - ldrb r0, [r1] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r5, 0x8] - adds r0, r3 - strh r0, [r4, 0x22] - movs r1, 0x2 - ldrsh r0, [r5, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Cos - strh r0, [r4, 0x30] - movs r3, 0x2 - ldrsh r0, [r5, r3] - lsls r6, 16 - asrs r6, 16 - adds r1, r6, 0 - bl Sin - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - ldrh r2, [r5] - adds r3, r2, 0 - muls r3, r1 - adds r1, r3, 0 - ldrh r3, [r4, 0x20] - adds r1, r3 - strh r1, [r4, 0x20] - adds r1, r2, 0 - muls r1, r0 - adds r0, r1, 0 - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x34] - ldr r0, _080DFBD0 @ =sub_80DFBD8 - str r0, [r4, 0x1C] - adds r4, 0x2E - ldr r2, _080DFBD4 @ =gUnknown_03000730 - movs r1, 0x6 -_080DFBB0: - ldrh r0, [r4] - strh r0, [r2] - adds r4, 0x2 - adds r2, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _080DFBB0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DFBC8: .4byte gBattleAnimArgs -_080DFBCC: .4byte gAnimBankAttacker -_080DFBD0: .4byte sub_80DFBD8 -_080DFBD4: .4byte gUnknown_03000730 - thumb_func_end sub_80DFB28 - - thumb_func_start sub_80DFBD8 -sub_80DFBD8: @ 80DFBD8 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x38] - adds r0, r2 - strh r0, [r4, 0x38] - movs r1, 0x36 - ldrsh r0, [r4, r1] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x24] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r1, 0xA - bl __divsi3 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r0, r1 - ble _080DFC1C - adds r0, r4, 0 - bl DestroyAnimSprite -_080DFC1C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DFBD8 - - thumb_func_start sub_80DFC24 -sub_80DFC24: @ 80DFC24 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080DFC58 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080DFC5C @ =gBattleAnimArgs - ldrh r0, [r0] - strh r0, [r1, 0x8] - ldr r0, _080DFC60 @ =gAnimBankAttacker - ldrb r0, [r0] - movs r2, 0x10 - strh r2, [r1, 0xA] - ldr r1, _080DFC64 @ =REG_BLDALPHA - strh r2, [r1] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DFC70 - ldr r1, _080DFC68 @ =REG_BLDCNT - ldr r2, _080DFC6C @ =0x00003f42 - b _080DFC74 - .align 2, 0 -_080DFC58: .4byte gTasks -_080DFC5C: .4byte gBattleAnimArgs -_080DFC60: .4byte gAnimBankAttacker -_080DFC64: .4byte REG_BLDALPHA -_080DFC68: .4byte REG_BLDCNT -_080DFC6C: .4byte 0x00003f42 -_080DFC70: - ldr r1, _080DFC8C @ =REG_BLDCNT - ldr r2, _080DFC90 @ =0x00003f44 -_080DFC74: - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080DFC94 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _080DFC98 @ =sub_80DFC9C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DFC8C: .4byte REG_BLDCNT -_080DFC90: .4byte 0x00003f44 -_080DFC94: .4byte gTasks -_080DFC98: .4byte sub_80DFC9C - thumb_func_end sub_80DFC24 - - thumb_func_start sub_80DFC9C -sub_80DFC9C: @ 80DFC9C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080DFD04 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - lsrs r2, r0, 8 - lsls r0, 24 - lsrs r1, r0, 24 - movs r3, 0xC - ldrsh r0, [r4, r3] - ldrb r3, [r4, 0x8] - cmp r0, r3 - bne _080DFD18 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r2, 8 - orrs r1, r0 - movs r3, 0 - strh r1, [r4, 0xA] - ldr r0, _080DFD08 @ =REG_BLDALPHA - strh r1, [r0] - strh r3, [r4, 0xC] - cmp r2, 0x10 - bne _080DFD1E - ldr r2, _080DFD0C @ =gSprites - ldr r1, _080DFD10 @ =gObjectBankIDs - ldr r0, _080DFD14 @ =gAnimBankAttacker - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0 - bl DestroyAnimVisualTask - b _080DFD1E - .align 2, 0 -_080DFD04: .4byte gTasks -_080DFD08: .4byte REG_BLDALPHA -_080DFD0C: .4byte gSprites -_080DFD10: .4byte gObjectBankIDs -_080DFD14: .4byte gAnimBankAttacker -_080DFD18: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_080DFD1E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DFC9C - - thumb_func_start sub_80DFD24 -sub_80DFD24: @ 80DFD24 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DFD48 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080DFD4C @ =gBattleAnimArgs - ldrh r0, [r0] - strh r0, [r1, 0x8] - movs r2, 0x80 - lsls r2, 5 - strh r2, [r1, 0xA] - ldr r0, _080DFD50 @ =sub_80DFD58 - str r0, [r1] - ldr r0, _080DFD54 @ =REG_BLDALPHA - strh r2, [r0] - bx lr - .align 2, 0 -_080DFD48: .4byte gTasks -_080DFD4C: .4byte gBattleAnimArgs -_080DFD50: .4byte sub_80DFD58 -_080DFD54: .4byte REG_BLDALPHA - thumb_func_end sub_80DFD24 - - thumb_func_start sub_80DFD58 -sub_80DFD58: @ 80DFD58 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080DFDA8 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0xA] - lsrs r1, r0, 8 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0xC - ldrsh r0, [r2, r3] - ldrb r3, [r2, 0x8] - cmp r0, r3 - bne _080DFDB4 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r3, 8 - orrs r1, r0 - movs r0, 0 - strh r1, [r2, 0xA] - ldr r5, _080DFDAC @ =REG_BLDALPHA - strh r1, [r5] - strh r0, [r2, 0xC] - cmp r3, 0 - bne _080DFDBA - ldr r0, _080DFDB0 @ =REG_BLDCNT - strh r3, [r0] - strh r3, [r5] - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080DFDBA - .align 2, 0 -_080DFDA8: .4byte gTasks -_080DFDAC: .4byte REG_BLDALPHA -_080DFDB0: .4byte REG_BLDCNT -_080DFDB4: - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] -_080DFDBA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DFD58 - - thumb_func_start sub_80DFDC0 -sub_80DFDC0: @ 80DFDC0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080DFDE8 @ =REG_BLDALPHA - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080DFDEC @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DFDF8 - ldr r1, _080DFDF0 @ =REG_BLDCNT - ldr r2, _080DFDF4 @ =0x00003f42 - b _080DFDFC - .align 2, 0 -_080DFDE8: .4byte REG_BLDALPHA -_080DFDEC: .4byte gAnimBankAttacker -_080DFDF0: .4byte REG_BLDCNT -_080DFDF4: .4byte 0x00003f42 -_080DFDF8: - ldr r1, _080DFE0C @ =REG_BLDCNT - ldr r2, _080DFE10 @ =0x00003f44 -_080DFDFC: - adds r0, r2, 0 - strh r0, [r1] - adds r0, r4, 0 - bl DestroyAnimVisualTask - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DFE0C: .4byte REG_BLDCNT -_080DFE10: .4byte 0x00003f44 - thumb_func_end sub_80DFDC0 - - thumb_func_start sub_80DFE14 -sub_80DFE14: @ 80DFE14 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _080DFE80 @ =gAnimBankTarget - ldrb r0, [r6] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x30] - ldr r5, _080DFE84 @ =gAnimBankAttacker - ldrb r0, [r5] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r6] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x34] - ldrb r0, [r5] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x36] - movs r0, 0x7E - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_8078A5C - ldrh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - negs r0, r0 - strh r0, [r4, 0x36] - ldr r0, _080DFE88 @ =0x0000ffd8 - strh r0, [r4, 0x3A] - ldr r1, _080DFE8C @ =sub_80DFE90 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DFE80: .4byte gAnimBankTarget -_080DFE84: .4byte gAnimBankAttacker -_080DFE88: .4byte 0x0000ffd8 -_080DFE8C: .4byte sub_80DFE90 - thumb_func_end sub_80DFE14 - - thumb_func_start sub_80DFE90 -sub_80DFE90: @ 80DFE90 - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r5, [r4, 0x30] - ldrh r0, [r4, 0x34] - adds r2, r5, r0 - strh r2, [r4, 0x34] - ldrh r3, [r4, 0x32] - ldrh r6, [r4, 0x36] - adds r1, r3, r6 - strh r1, [r4, 0x36] - lsls r0, r2, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r0, r1, 16 - asrs r0, 24 - strh r0, [r4, 0x26] - movs r6, 0x3C - ldrsh r0, [r4, r6] - cmp r0, 0 - bne _080DFED2 - adds r0, r2, r5 - strh r0, [r4, 0x34] - adds r1, r3 - strh r1, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - strh r0, [r4, 0x24] - lsls r1, 16 - asrs r1, 24 - strh r1, [r4, 0x26] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] -_080DFED2: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x3A - ldrsh r1, [r4, r2] - bl Sin - ldrh r6, [r4, 0x26] - adds r0, r6 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - cmp r0, 0x7F - ble _080DFF02 - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - adds r0, 0x14 - strh r0, [r4, 0x3A] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] -_080DFF02: - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _080DFF14 - adds r0, r4, 0 - bl DestroyAnimSprite -_080DFF14: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DFE90 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/easy_chat.s b/asm/easy_chat.s deleted file mode 100644 index e08d71083..000000000 --- a/asm/easy_chat.s +++ /dev/null @@ -1,10732 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80E60D8 -sub_80E60D8: @ 80E60D8 - push {r4-r7,lr} - movs r4, 0x3 - ldr r0, _080E60F4 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - adds r7, r0, 0 - cmp r1, 0xD - bls _080E60E8 - b _080E6284 -_080E60E8: - lsls r0, r1, 2 - ldr r1, _080E60F8 @ =_080E60FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E60F4: .4byte gSpecialVar_0x8004 -_080E60F8: .4byte _080E60FC - .align 2, 0 -_080E60FC: - .4byte _080E6134 - .4byte _080E613C - .4byte _080E6144 - .4byte _080E614C - .4byte _080E6154 - .4byte _080E619C - .4byte _080E616C - .4byte _080E61BC - .4byte _080E61E0 - .4byte _080E61FC - .4byte _080E6200 - .4byte _080E6214 - .4byte _080E623C - .4byte _080E6260 -_080E6134: - ldr r1, _080E6138 @ =gSaveBlock1 + 0x2B1C - b _080E624C - .align 2, 0 -_080E6138: .4byte gSaveBlock1 + 0x2B1C -_080E613C: - ldr r1, _080E6140 @ =gSaveBlock1 + 0x2B28 - b _080E6276 - .align 2, 0 -_080E6140: .4byte gSaveBlock1 + 0x2B28 -_080E6144: - ldr r1, _080E6148 @ =gSaveBlock1 + 0x2B34 - b _080E624C - .align 2, 0 -_080E6148: .4byte gSaveBlock1 + 0x2B34 -_080E614C: - ldr r1, _080E6150 @ =gSaveBlock1 + 0x2B40 - b _080E6276 - .align 2, 0 -_080E6150: .4byte gSaveBlock1 + 0x2B40 -_080E6154: - ldr r0, _080E6164 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6168 @ =gSaveBlock1 + 0x2B4C - adds r1, r0, r1 - b _080E624C - .align 2, 0 -_080E6164: .4byte gSpecialVar_0x8005 -_080E6168: .4byte gSaveBlock1 + 0x2B4C -_080E616C: - ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94 - movs r2, 0 - ldr r1, _080E6198 @ =sub_80546B8 - mov r12, r1 - adds r3, r0, 0 - adds r3, 0xE - adds r5, r0, 0x2 - adds r6, r3, 0 -_080E617C: - lsls r0, r2, 1 - adds r1, r3, r0 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _080E617C - adds r1, r6, 0 - b _080E627A - .align 2, 0 -_080E6194: .4byte gSaveBlock1 + 0x2D94 -_080E6198: .4byte sub_80546B8 -_080E619C: - ldr r0, _080E61B0 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C - adds r1, r0, r1 - ldr r0, _080E61B8 @ =gSpecialVar_0x8006 - ldrb r4, [r0] - b _080E6276 - .align 2, 0 -_080E61B0: .4byte gSpecialVar_0x8005 -_080E61B4: .4byte gSaveBlock1 + 0x273C -_080E61B8: .4byte gSpecialVar_0x8006 -_080E61BC: - ldr r0, _080E61D4 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754 - adds r1, r0 - ldr r0, _080E61DC @ =gSpecialVar_0x8006 - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - b _080E624A - .align 2, 0 -_080E61D4: .4byte gSpecialVar_0x8005 -_080E61D8: .4byte gSaveBlock1 + 0x2754 -_080E61DC: .4byte gSpecialVar_0x8006 -_080E61E0: - ldr r0, _080E61F4 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E61F8 @ =gSaveBlock1 + 0x273A - adds r1, r0, r1 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E61F4: .4byte gSpecialVar_0x8005 -_080E61F8: .4byte gSaveBlock1 + 0x273A -_080E61FC: - movs r1, 0 - b _080E624C -_080E6200: - ldr r1, _080E620C @ =gSaveBlock1 + 0x2B16 - ldr r2, _080E6210 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - b _080E624A - .align 2, 0 -_080E620C: .4byte gSaveBlock1 + 0x2B16 -_080E6210: .4byte 0x0000ffff -_080E6214: - ldr r0, _080E6230 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C - adds r1, r0 - ldr r0, _080E6238 @ =gSpecialVar_0x8006 - ldrh r0, [r0] - lsls r0, 1 - adds r1, r0 - movs r4, 0 - b _080E6276 - .align 2, 0 -_080E6230: .4byte gSpecialVar_0x8005 -_080E6234: .4byte gSaveBlock1 + 0x273C -_080E6238: .4byte gSpecialVar_0x8006 -_080E623C: - ldr r0, _080E6254 @ =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E6258 @ =gSaveBlock1 + 0x2750 - adds r1, r0, r1 -_080E624A: - movs r4, 0x1 -_080E624C: - ldr r0, _080E625C @ =sub_80546B8 - mov r12, r0 - b _080E627A - .align 2, 0 -_080E6254: .4byte gSpecialVar_0x8005 -_080E6258: .4byte gSaveBlock1 + 0x2750 -_080E625C: .4byte sub_80546B8 -_080E6260: - ldr r1, _080E628C @ =gSharedMem + 0x1000 - ldr r0, _080E6290 @ =0x00009c7c - adds r2, r1, r0 - ldr r0, _080E6294 @ =0x0000ffff - strh r0, [r2] - ldr r0, _080E6298 @ =0x00009c7e - adds r1, r0 - movs r0, 0x1 - negs r0, r0 - strh r0, [r1] - adds r1, r2, 0 -_080E6276: - ldr r2, _080E629C @ =sub_80546B8 - mov r12, r2 -_080E627A: - ldrb r0, [r7] - mov r2, r12 - adds r3, r4, 0 - bl sub_80E62A0 -_080E6284: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E628C: .4byte gSharedMem + 0x1000 -_080E6290: .4byte 0x00009c7c -_080E6294: .4byte 0x0000ffff -_080E6298: .4byte 0x00009c7e -_080E629C: .4byte sub_80546B8 - thumb_func_end sub_80E60D8 - - thumb_func_start sub_80E62A0 -sub_80E62A0: @ 80E62A0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _080E62DC @ =gSharedMem + 0x1000 - str r2, [r4] - str r1, [r4, 0x4] - strb r0, [r4, 0x8] - strb r3, [r4, 0xB] - cmp r0, 0x9 - bne _080E62D0 - ldr r0, _080E62E0 @ =0x00009c7c - adds r2, r4, r0 - str r2, [r4, 0x4] - ldr r0, _080E62E4 @ =gSaveBlock1 - ldr r3, _080E62E8 @ =0x00002dd8 - adds r1, r0, r3 - ldrh r1, [r1] - strh r1, [r2] - ldr r1, _080E62EC @ =0x00002dda - adds r0, r1 - ldrh r1, [r0] - ldr r2, _080E62F0 @ =0x00009c7e - adds r0, r4, r2 - strh r1, [r0] -_080E62D0: - ldr r0, _080E62F4 @ =sub_80E62F8 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E62DC: .4byte gSharedMem + 0x1000 -_080E62E0: .4byte 0x00009c7c -_080E62E4: .4byte gSaveBlock1 -_080E62E8: .4byte 0x00002dd8 -_080E62EC: .4byte 0x00002dda -_080E62F0: .4byte 0x00009c7e -_080E62F4: .4byte sub_80E62F8 - thumb_func_end sub_80E62A0 - - thumb_func_start sub_80E62F8 -sub_80E62F8: @ 80E62F8 - push {lr} - sub sp, 0x4 - ldr r0, _080E6314 @ =gMain - ldr r1, _080E6318 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bhi _080E6344 - lsls r0, 2 - ldr r1, _080E631C @ =_080E6320 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6314: .4byte gMain -_080E6318: .4byte 0x0000043c -_080E631C: .4byte _080E6320 - .align 2, 0 -_080E6320: - .4byte _080E6344 - .4byte _080E6380 - .4byte _080E638C - .4byte _080E63A8 - .4byte _080E63AE - .4byte _080E63B4 - .4byte _080E63BE - .4byte _080E63D8 - .4byte _080E63EA -_080E6344: - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - movs r0, 0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetSpriteData - bl dp12_8087EA4 - bl remove_some_task - bl sub_80EAD08 - ldr r2, _080E637C @ =gUnknown_083DB698 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_80895F8 - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - b _080E6402 - .align 2, 0 -_080E637C: .4byte gUnknown_083DB698 -_080E6380: - ldr r0, _080E6388 @ =gWindowConfig_81E6DA8 - bl SetUpWindowConfig - b _080E6402 - .align 2, 0 -_080E6388: .4byte gWindowConfig_81E6DA8 -_080E638C: - ldr r0, _080E63A0 @ =gWindowConfig_81E6D54 - bl InitMenuWindow - ldr r0, _080E63A4 @ =gWindowConfig_81E6DA8 - bl InitMenuWindow - bl MenuZeroFillScreen - b _080E6402 - .align 2, 0 -_080E63A0: .4byte gWindowConfig_81E6D54 -_080E63A4: .4byte gWindowConfig_81E6DA8 -_080E63A8: - bl sub_80E6424 - b _080E6402 -_080E63AE: - bl sub_80E8DD8 - b _080E6402 -_080E63B4: - bl sub_80E8218 - bl sub_80E8CEC - b _080E6402 -_080E63BE: - bl sub_80E69F8 - ldr r0, _080E63D0 @ =sub_80E6AA8 - bl sub_80E682C - ldr r0, _080E63D4 @ =sub_80E6A6C - bl SetVBlankCallback - b _080E6402 - .align 2, 0 -_080E63D0: .4byte sub_80E6AA8 -_080E63D4: .4byte sub_80E6A6C -_080E63D8: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _080E6402 -_080E63EA: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E6414 @ =sub_80E6A88 - bl SetMainCallback2 - ldr r0, _080E6418 @ =0x00000805 - bl FlagSet -_080E6402: - ldr r1, _080E641C @ =gMain - ldr r0, _080E6420 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080E6414: .4byte sub_80E6A88 -_080E6418: .4byte 0x00000805 -_080E641C: .4byte gMain -_080E6420: .4byte 0x0000043c - thumb_func_end sub_80E62F8 - - thumb_func_start sub_80E6424 -sub_80E6424: @ 80E6424 - push {lr} - ldr r2, _080E6444 @ =gSharedMem + 0x1000 - ldr r0, _080E6448 @ =gUnknown_083DB6A4 - ldrb r1, [r2, 0x8] - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2, 0x9] - ldrb r0, [r2, 0x9] - adds r3, r2, 0 - cmp r0, 0x5 - bhi _080E6512 - lsls r0, 2 - ldr r1, _080E644C @ =_080E6450 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6444: .4byte gSharedMem + 0x1000 -_080E6448: .4byte gUnknown_083DB6A4 -_080E644C: .4byte _080E6450 - .align 2, 0 -_080E6450: - .4byte _080E64A0 - .4byte _080E64B8 - .4byte _080E64DA - .4byte _080E64F6 - .4byte _080E6468 - .4byte _080E6480 -_080E6468: - movs r2, 0x4 - strb r2, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - movs r1, 0x2 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x5 - b _080E64D0 -_080E6480: - movs r1, 0x4 - strb r1, [r3, 0xA] - adds r2, r3, 0 - adds r2, 0x83 - movs r0, 0x1 - strb r0, [r2] - adds r0, r3, 0 - adds r0, 0x84 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - b _080E6510 -_080E64A0: - movs r0, 0x6 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r0, r3, 0 - adds r0, 0x84 - movs r2, 0x3 - strb r2, [r0] - adds r1, 0x5 - b _080E64CE -_080E64B8: - movs r2, 0 - movs r0, 0x9 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - movs r0, 0x2 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x5 - strb r0, [r1] - adds r1, 0x4 -_080E64CE: - movs r0, 0x4 -_080E64D0: - strh r0, [r1] - adds r0, r3, 0 - adds r0, 0x8A - strh r2, [r0] - b _080E6512 -_080E64DA: - movs r1, 0x1 - strb r1, [r3, 0xA] - adds r0, r3, 0 - adds r0, 0x83 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - adds r1, r3, 0 - adds r1, 0x88 - movs r0, 0x10 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - b _080E6510 -_080E64F6: - movs r0, 0x2 - strb r0, [r3, 0xA] - adds r1, r3, 0 - adds r1, 0x83 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0x1 - strb r0, [r1] - adds r1, 0x4 - movs r0, 0x5 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x3 -_080E6510: - strh r0, [r1] -_080E6512: - adds r1, r3, 0 - adds r1, 0x86 - movs r0, 0 - strb r0, [r1] - subs r1, 0x1 - strb r0, [r1] - adds r1, 0x2 - strb r0, [r1] - subs r1, 0x61 - strb r0, [r1] - movs r2, 0xDD - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - movs r0, 0xDF - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0x2 - strb r0, [r1] - bl sub_80E6554 - bl sub_80EAECC - bl sub_80EB040 - bl sub_80E7E50 - bl sub_80E6630 - bl sub_80E6690 - pop {r0} - bx r0 - thumb_func_end sub_80E6424 - - thumb_func_start sub_80E6554 -sub_80E6554: @ 80E6554 - push {r4-r7,lr} - sub sp, 0x4 - movs r4, 0 - movs r7, 0 - ldr r0, _080E6564 @ =gSharedMem + 0x1000 - mov r12, r0 - b _080E656E - .align 2, 0 -_080E6564: .4byte gSharedMem + 0x1000 -_080E6568: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080E656E: - movs r5, 0 - lsls r3, r7, 1 - mov r6, r12 - adds r6, 0x2A - adds r2, r3, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - beq _080E65A6 -_080E6586: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bhi _080E65A2 - adds r2, r5, r3 - adds r2, r6 - adds r1, r4, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - strb r1, [r2] - cmp r4, 0x11 - bne _080E6586 -_080E65A2: - cmp r4, 0x11 - bne _080E6568 -_080E65A6: - movs r0, 0x11 - mov r1, r12 - strh r0, [r1, 0x28] - cmp r4, 0x15 - bhi _080E6612 - mov r6, r12 - adds r2, r6, 0 - adds r2, 0x78 -_080E65B6: - lsls r0, r4, 24 - lsrs r0, 24 - str r2, [sp] - bl sub_80EAD7C - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [sp] - cmp r1, 0 - beq _080E65FC - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E65DC - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - movs r5, 0 -_080E65DC: - lsls r0, r7, 1 - adds r0, r5, r0 - adds r1, r6, 0 - adds r1, 0x2A - adds r0, r1 - strb r4, [r0] - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - ldrh r0, [r6, 0x28] - adds r0, 0x1 - strh r0, [r6, 0x28] - mov r12, r6 - b _080E6608 -_080E65FC: - adds r0, r4, 0 - subs r0, 0x11 - adds r0, r2 - strb r1, [r0] - ldr r0, _080E662C @ =gSharedMem + 0x1000 - mov r12, r0 -_080E6608: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x15 - bls _080E65B6 -_080E6612: - mov r1, r12 - ldrh r0, [r1, 0x28] - adds r0, 0x1 - asrs r0, 1 - movs r1, 0xDB - lsls r1, 1 - add r1, r12 - strb r0, [r1] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E662C: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E6554 - - thumb_func_start sub_80E6630 -sub_80E6630: @ 80E6630 - push {r4-r7,lr} - movs r1, 0 - ldr r0, _080E6664 @ =gUnknown_083DB6B2 - mov r12, r0 -_080E6638: - lsls r0, r1, 4 - mov r2, r12 - adds r5, r0, r2 - movs r3, 0 - ldrb r0, [r5] - adds r7, r1, 0x1 - cmp r0, 0xFF - beq _080E6680 - lsls r0, r1, 3 - subs r0, r1 - lsls r4, r0, 1 - ldr r6, _080E6668 @ =gSharedMem + 0x1040 -_080E6650: - adds r0, r5, r3 - ldrb r1, [r0] - adds r2, r1, 0 - cmp r2, 0 - beq _080E666C - adds r0, r3, r4 - adds r0, r6 - adds r1, 0x46 - strb r1, [r0] - b _080E6672 - .align 2, 0 -_080E6664: .4byte gUnknown_083DB6B2 -_080E6668: .4byte gSharedMem + 0x1040 -_080E666C: - adds r0, r3, r4 - adds r0, r6 - strb r2, [r0] -_080E6672: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E6650 -_080E6680: - lsls r0, r7, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _080E6638 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80E6630 - - thumb_func_start sub_80E6690 -sub_80E6690: @ 80E6690 - push {r4-r6,lr} - sub sp, 0x10 - mov r0, sp - ldr r1, _080E66E0 @ =gUnknown_083DB7DC - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldr r1, [r1] - str r1, [r0] - movs r5, 0 - ldr r6, _080E66E4 @ =gUnknown_083DB7C0 -_080E66A4: - ldr r0, _080E66E8 @ =gSharedMem + 0x1000 - ldrb r0, [r0, 0x8] - lsls r0, 1 - adds r0, r5, r0 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E66EC @ =gUnknown_083DB6F4 - adds r4, r0, r1 - lsls r0, r5, 3 - add r0, sp - ldr r0, [r0] - ldr r1, [r4] - bl StringCopy - adds r3, r0, 0 - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _080E66F0 - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r1, [r4, 0x4] - bl StringCopy - b _080E670A - .align 2, 0 -_080E66E0: .4byte gUnknown_083DB7DC -_080E66E4: .4byte gUnknown_083DB7C0 -_080E66E8: .4byte gSharedMem + 0x1000 -_080E66EC: .4byte gUnknown_083DB6F4 -_080E66F0: - strb r0, [r3] - adds r3, 0x1 - ldr r1, [r4, 0x4] - adds r0, r3, 0 - bl StringCopy - lsls r0, r5, 1 - adds r0, 0x1 - lsls r0, 2 - add r0, sp - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1] -_080E670A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E66A4 - movs r5, 0 - ldr r3, _080E6758 @ =gSharedMem + 0x1000 - ldr r0, _080E675C @ =0x00009da4 - adds r2, r3, r0 - movs r1, 0 -_080E671E: - adds r0, r5, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x23 - bls _080E671E - ldr r1, _080E675C @ =0x00009da4 - adds r0, r3, r1 - adds r0, r5, r0 - movs r4, 0x1 - negs r4, r4 - adds r2, r4, 0 - movs r1, 0xFF - strb r1, [r0] - ldr r0, _080E6760 @ =0x00009f6e - adds r3, r0 - movs r0, 0xFC - strb r0, [r3] - movs r0, 0x11 - strb r0, [r3, 0x1] - movs r0, 0xE0 - strb r0, [r3, 0x2] - strb r2, [r3, 0x3] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E6758: .4byte gSharedMem + 0x1000 -_080E675C: .4byte 0x00009da4 -_080E6760: .4byte 0x00009f6e - thumb_func_end sub_80E6690 - - thumb_func_start InitEasyChatPhrases -InitEasyChatPhrases: @ 80E6764 - push {r4-r6,lr} - movs r3, 0 - ldr r4, _080E680C @ =gSaveBlock1 + 0x2B1C - ldr r2, _080E6810 @ =gUnknown_083DB7EC -_080E676C: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080E676C - movs r3, 0 - ldr r4, _080E6814 @ =gSaveBlock1 + 0x2B28 - ldr r2, _080E6818 @ =gUnknown_083DB7F4 -_080E6786: - lsls r0, r3, 1 - adds r1, r0, r4 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E6786 - movs r3, 0 - ldr r5, _080E681C @ =gSaveBlock1 + 0x2B34 - ldr r0, _080E6820 @ =0x0000ffff - adds r4, r0, 0 - adds r6, r5, 0 - adds r6, 0xC -_080E67A6: - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r2] - orrs r0, r4 - strh r0, [r2] - adds r1, r6 - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080E67A6 - movs r3, 0 - ldr r6, _080E6824 @ =gSaveBlock1 + 0x2B4C - ldr r0, _080E6820 @ =0x0000ffff - adds r5, r0, 0 -_080E67CA: - movs r2, 0 - lsls r0, r3, 3 - adds r0, r3 - lsls r4, r0, 2 -_080E67D2: - lsls r0, r2, 1 - adds r0, r4 - adds r0, r6 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x8 - bls _080E67D2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0xF - bls _080E67CA - movs r3, 0 - ldr r2, _080E6828 @ =gSaveBlock1 + 0x2D8C - movs r1, 0 -_080E67F8: - adds r0, r3, r2 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080E67F8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E680C: .4byte gSaveBlock1 + 0x2B1C -_080E6810: .4byte gUnknown_083DB7EC -_080E6814: .4byte gSaveBlock1 + 0x2B28 -_080E6818: .4byte gUnknown_083DB7F4 -_080E681C: .4byte gSaveBlock1 + 0x2B34 -_080E6820: .4byte 0x0000ffff -_080E6824: .4byte gSaveBlock1 + 0x2B4C -_080E6828: .4byte gSaveBlock1 + 0x2D8C - thumb_func_end InitEasyChatPhrases - - thumb_func_start sub_80E682C -sub_80E682C: @ 80E682C - ldr r1, _080E6838 @ =gSharedMem + 0x1000 - str r0, [r1, 0x20] - movs r0, 0 - strh r0, [r1, 0x24] - bx lr - .align 2, 0 -_080E6838: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E682C - - thumb_func_start sub_80E683C -sub_80E683C: @ 80E683C - push {r4,r5,lr} - ldr r1, _080E6890 @ =gSharedMem + 0x1000 - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0 - bne _080E6898 - movs r1, 0 - movs r0, 0xDB - lsls r0, 1 - adds r3, r2, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - bge _080E6876 - movs r0, 0xD5 - lsls r0, 1 - adds r5, r2, r0 - movs r4, 0x2 -_080E6864: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r1, r0 - blt _080E6864 -_080E6876: - adds r0, r2, r1 - ldr r1, _080E6894 @ =0x000001a9 - adds r3, r0, r1 - ldrh r0, [r2, 0x28] - movs r1, 0x1 - ands r0, r1 - strb r0, [r3] - cmp r0, 0 - bne _080E68B8 - movs r0, 0x2 - strb r0, [r3] - b _080E68B8 - .align 2, 0 -_080E6890: .4byte gSharedMem + 0x1000 -_080E6894: .4byte 0x000001a9 -_080E6898: - movs r3, 0xD5 - lsls r3, 1 - adds r1, r2, r3 - movs r0, 0x7 - strb r0, [r1] - ldr r1, _080E68E0 @ =0x000001ab - adds r3, r2, r1 - movs r1, 0x6 - strb r1, [r3] - movs r3, 0xD6 - lsls r3, 1 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x1 - adds r1, r2, r3 - strb r0, [r1] -_080E68B8: - movs r0, 0xD4 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - ldr r3, _080E68E4 @ =0x000001a9 - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0xC - adds r1, r2, r3 - strb r0, [r1] - adds r3, 0x2 - adds r1, r2, r3 - strb r0, [r1] - bl sub_80E9A4C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E68E0: .4byte 0x000001ab -_080E68E4: .4byte 0x000001a9 - thumb_func_end sub_80E683C - - thumb_func_start sub_80E68E8 -sub_80E68E8: @ 80E68E8 - push {r4-r6,lr} - bl sub_80EB0B0 - ldr r3, _080E694C @ =gSharedMem + 0x1000 - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E695C - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E6950 @ =0x00004178 - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E6954 @ =0x00009a28 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E693A - ldr r3, _080E6958 @ =0x000099a6 - adds r4, r5, r3 - movs r3, 0x2 -_080E6928: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E6928 -_080E693A: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E6958 @ =0x000099a6 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E6950 @ =0x00004178 - b _080E69AC - .align 2, 0 -_080E694C: .4byte gSharedMem + 0x1000 -_080E6950: .4byte 0x00004178 -_080E6954: .4byte 0x00009a28 -_080E6958: .4byte 0x000099a6 -_080E695C: - movs r1, 0xDC - lsls r1, 1 - adds r0, r3, r1 - ldrb r6, [r0] - lsls r0, r6, 1 - ldr r2, _080E69E0 @ =0x00004142 - adds r1, r3, r2 - adds r0, r1 - ldrh r0, [r0] - adds r0, 0x1 - asrs r0, 1 - ldr r1, _080E69E4 @ =0x00009a28 - adds r2, r3, r1 - strb r0, [r2] - movs r1, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - adds r5, r3, 0 - cmp r1, r0 - bge _080E699C - ldr r3, _080E69E8 @ =0x000099a6 - adds r4, r5, r3 - movs r3, 0x2 -_080E698A: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r1, r0 - blt _080E698A -_080E699C: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - ldr r2, _080E69E8 @ =0x000099a6 - adds r0, r5, r2 - adds r2, r1, r0 - lsls r0, r6, 1 - ldr r3, _080E69E0 @ =0x00004142 -_080E69AC: - adds r1, r5, r3 - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x1 - ands r0, r1 - strb r0, [r2] - cmp r0, 0 - bne _080E69C0 - movs r0, 0x2 - strb r0, [r2] -_080E69C0: - ldr r1, _080E69EC @ =0x000099a4 - adds r0, r5, r1 - movs r1, 0 - strb r1, [r0] - ldr r2, _080E69F0 @ =0x000099a5 - adds r0, r5, r2 - strb r1, [r0] - ldr r3, _080E69F4 @ =0x00009a29 - adds r0, r5, r3 - strb r1, [r0] - bl sub_80E9A4C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E69E0: .4byte 0x00004142 -_080E69E4: .4byte 0x00009a28 -_080E69E8: .4byte 0x000099a6 -_080E69EC: .4byte 0x000099a4 -_080E69F0: .4byte 0x000099a5 -_080E69F4: .4byte 0x00009a29 - thumb_func_end sub_80E68E8 - - thumb_func_start sub_80E69F8 -sub_80E69F8: @ 80E69F8 - push {r4,lr} - ldr r0, _080E6A10 @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0x8] - adds r4, r0, 0 - cmp r1, 0xD - bhi _080E6A50 - lsls r0, r1, 2 - ldr r1, _080E6A14 @ =_080E6A18 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E6A10: .4byte gSharedMem + 0x1000 -_080E6A14: .4byte _080E6A18 - .align 2, 0 -_080E6A18: - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A58 - .4byte _080E6A50 -_080E6A50: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - b _080E6A66 -_080E6A58: - ldrb r0, [r4, 0x8] - bl sub_80E9368 - ldrb r0, [r4, 0xB] - ldrb r1, [r4, 0x9] - bl sub_80E8BF4 -_080E6A66: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E69F8 - - thumb_func_start sub_80E6A6C -sub_80E6A6C: @ 80E6A6C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_80EAC5C - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - thumb_func_end sub_80E6A6C - - thumb_func_start sub_80E6A88 -sub_80E6A88: @ 80E6A88 - push {lr} - ldr r0, _080E6AA4 @ =gSharedMem + 0x1000 - ldr r0, [r0, 0x20] - bl _call_via_r0 - bl AnimateSprites - bl BuildOamBuffer - bl sub_80EAD08 - pop {r0} - bx r0 - .align 2, 0 -_080E6AA4: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E6A88 - - thumb_func_start sub_80E6AA8 -sub_80E6AA8: @ 80E6AA8 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E6ABA - ldr r0, _080E6AC0 @ =sub_80E6AC4 - bl sub_80E682C -_080E6ABA: - pop {r0} - bx r0 - .align 2, 0 -_080E6AC0: .4byte sub_80E6AC4 - thumb_func_end sub_80E6AA8 - - thumb_func_start sub_80E6AC4 -sub_80E6AC4: @ 80E6AC4 - push {lr} - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8398 - movs r0, 0 - bl sub_80E91D4 - ldr r0, _080E6AE0 @ =sub_80E6AE4 - bl sub_80E682C - pop {r0} - bx r0 - .align 2, 0 -_080E6AE0: .4byte sub_80E6AE4 - thumb_func_end sub_80E6AC4 - - thumb_func_start sub_80E6AE4 -sub_80E6AE4: @ 80E6AE4 - push {r4,r5,lr} - bl sub_80E75D8 - ldr r4, _080E6B44 @ =gSharedMem + 0x1000 - adds r1, r4, 0 - adds r1, 0x87 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - beq _080E6AFE - movs r0, 0x5 - bl PlaySE -_080E6AFE: - ldr r2, _080E6B48 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - adds r5, r2, 0 - cmp r0, 0 - beq _080E6BA4 - movs r0, 0x5 - bl PlaySE - adds r1, r4, 0 - adds r1, 0x86 - adds r0, r4, 0 - adds r0, 0x84 - ldrb r2, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E6B78 - adds r0, r4, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _080E6B60 - cmp r0, 0x1 - bgt _080E6B4C - cmp r0, 0 - beq _080E6B52 - b _080E6BA4 - .align 2, 0 -_080E6B44: .4byte gSharedMem + 0x1000 -_080E6B48: .4byte gMain -_080E6B4C: - cmp r0, 0x2 - beq _080E6B6C - b _080E6BA4 -_080E6B52: - ldr r0, _080E6B5C @ =sub_80E6BC0 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B5C: .4byte sub_80E6BC0 -_080E6B60: - ldr r0, _080E6B68 @ =sub_80E6C84 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B68: .4byte sub_80E6C84 -_080E6B6C: - ldr r0, _080E6B74 @ =sub_80E6D7C - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6B74: .4byte sub_80E6D7C -_080E6B78: - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x85 - adds r3, r0, 0 - muls r3, r2 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x27 - strb r0, [r1] - bl sub_80E7574 - ldr r0, _080E6BA0 @ =sub_80E6F68 - bl sub_80E682C - b _080E6BB4 - .align 2, 0 -_080E6BA0: .4byte sub_80E6F68 -_080E6BA4: - ldrh r1, [r5, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E6BB4 - ldr r0, _080E6BBC @ =sub_80E6C84 - bl sub_80E682C -_080E6BB4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E6BBC: .4byte sub_80E6C84 - thumb_func_end sub_80E6AE4 - - thumb_func_start sub_80E6BC0 -sub_80E6BC0: @ 80E6BC0 - push {r4,lr} - ldr r4, _080E6BD4 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6C12 - cmp r0, 0x1 - bgt _080E6BD8 - cmp r0, 0 - beq _080E6BE2 - b _080E6C76 - .align 2, 0 -_080E6BD4: .4byte gSharedMem + 0x1000 -_080E6BD8: - cmp r0, 0x2 - beq _080E6C54 - cmp r0, 0x64 - beq _080E6C64 - b _080E6C76 -_080E6BE2: - movs r0, 0x2 - bl sub_80E8398 - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6BFA - movs r0, 0x6 - bl sub_80E91D4 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6BFA: - movs r0, 0x2 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0x1 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - b _080E6C3E -_080E6C12: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6C32 - cmp r1, 0 - bgt _080E6C2C - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6C46 - b _080E6C76 -_080E6C2C: - cmp r1, 0x1 - beq _080E6C46 - b _080E6C76 -_080E6C32: - bl sub_80E7D6C - bl sub_80E98C4 - bl sub_80E95A4 -_080E6C3E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6C76 -_080E6C46: - ldr r1, _080E6C50 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6C76 - .align 2, 0 -_080E6C50: .4byte gSharedMem + 0x1000 -_080E6C54: - bl sub_80E81FC - ldr r0, _080E6C60 @ =sub_80E6AC4 - bl sub_80E682C - b _080E6C76 - .align 2, 0 -_080E6C60: .4byte sub_80E6AC4 -_080E6C64: - ldr r0, _080E6C7C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6C76 - ldr r0, _080E6C80 @ =sub_80E6AC4 - bl sub_80E682C -_080E6C76: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6C7C: .4byte gMain -_080E6C80: .4byte sub_80E6AC4 - thumb_func_end sub_80E6BC0 - - thumb_func_start sub_80E6C84 -sub_80E6C84: @ 80E6C84 - push {r4,lr} - ldr r4, _080E6C98 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - cmp r0, 0x1 - beq _080E6CF4 - cmp r0, 0x1 - bgt _080E6C9C - cmp r0, 0 - beq _080E6CA6 - b _080E6D72 - .align 2, 0 -_080E6C98: .4byte gSharedMem + 0x1000 -_080E6C9C: - cmp r0, 0x2 - beq _080E6D24 - cmp r0, 0xFF - beq _080E6D64 - b _080E6D72 -_080E6CA6: - movs r0, 0x2 - bl sub_80E8398 - movs r0, 0x3 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor - ldrb r0, [r4, 0x8] - cmp r0, 0x9 - beq _080E6CE8 - cmp r0, 0x4 - beq _080E6CE8 - cmp r0, 0x7 - beq _080E6CE8 - cmp r0, 0x8 - beq _080E6CE8 - cmp r0, 0xA - beq _080E6CE8 - cmp r0, 0xB - beq _080E6CE8 - cmp r0, 0xC - beq _080E6CE8 - cmp r0, 0x5 - beq _080E6CE8 - cmp r0, 0xD - bne _080E6D1C -_080E6CE8: - ldr r1, _080E6CF0 @ =gSharedMem + 0x1000 - movs r0, 0x2 - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6CF0: .4byte gSharedMem + 0x1000 -_080E6CF4: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D06 - cmp r1, 0 - ble _080E6D34 - b _080E6D3E -_080E6D06: - movs r0, 0x4 - bl sub_80E91D4 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0x1 - bl MoveMenuCursor -_080E6D1C: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6D72 -_080E6D24: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080E6D44 - cmp r1, 0 - bgt _080E6D3E -_080E6D34: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080E6D58 - b _080E6D72 -_080E6D3E: - cmp r1, 0x1 - beq _080E6D58 - b _080E6D72 -_080E6D44: - ldr r0, _080E6D50 @ =gSpecialVar_Result - strh r1, [r0] - ldr r0, _080E6D54 @ =sub_80E752C - bl sub_80E682C - b _080E6D72 - .align 2, 0 -_080E6D50: .4byte gSpecialVar_Result -_080E6D54: .4byte sub_80E752C -_080E6D58: - ldr r1, _080E6D60 @ =gSharedMem + 0x1000 - movs r0, 0xFF - strh r0, [r1, 0x24] - b _080E6D72 - .align 2, 0 -_080E6D60: .4byte gSharedMem + 0x1000 -_080E6D64: - bl HandleDestroyMenuCursors - bl sub_80E81FC - ldr r0, _080E6D78 @ =sub_80E6AC4 - bl sub_80E682C -_080E6D72: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6D78: .4byte sub_80E6AC4 - thumb_func_end sub_80E6C84 - - thumb_func_start sub_80E6D7C -sub_80E6D7C: @ 80E6D7C - push {r4-r7,lr} - ldr r5, _080E6D98 @ =gSharedMem + 0x1000 - ldrh r0, [r5, 0x24] - cmp r0, 0xA - bne _080E6D88 - b _080E6F06 -_080E6D88: - cmp r0, 0xA - bgt _080E6D9C - cmp r0, 0 - beq _080E6DB6 - cmp r0, 0x1 - beq _080E6E3C - b _080E6F5E - .align 2, 0 -_080E6D98: .4byte gSharedMem + 0x1000 -_080E6D9C: - cmp r0, 0x65 - bne _080E6DA2 - b _080E6F30 -_080E6DA2: - cmp r0, 0x65 - bgt _080E6DAE - cmp r0, 0x64 - bne _080E6DAC - b _080E6F24 -_080E6DAC: - b _080E6F5E -_080E6DAE: - cmp r0, 0x66 - bne _080E6DB4 - b _080E6F50 -_080E6DB4: - b _080E6F5E -_080E6DB6: - movs r0, 0x2 - bl sub_80E8398 - bl sub_80E8054 - lsls r0, 24 - cmp r0, 0 - beq _080E6DCA - movs r0, 0x5 - b _080E6DEE -_080E6DCA: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6DFC - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6DDE - movs r0, 0x8 - b _080E6DEE -_080E6DDE: - ldrh r0, [r5, 0xC] - ldr r1, _080E6DF8 @ =0x0000ffff - cmp r0, r1 - beq _080E6DEC - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6DFC -_080E6DEC: - movs r0, 0x9 -_080E6DEE: - bl sub_80E91D4 - movs r0, 0xA - strh r0, [r5, 0x24] - b _080E6F5E - .align 2, 0 -_080E6DF8: .4byte 0x0000ffff -_080E6DFC: - ldr r0, _080E6E18 @ =gSharedMem + 0x1000 - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - bne _080E6E20 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - bne _080E6E20 - ldr r0, _080E6E1C @ =sub_80E6C84 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6E18: .4byte gSharedMem + 0x1000 -_080E6E1C: .4byte sub_80E6C84 -_080E6E20: - movs r0, 0x1 - bl sub_80E91D4 - bl sub_80E9744 - movs r0, 0x17 - movs r1, 0x8 - movs r2, 0 - bl DisplayYesNoMenu - movs r0, 0 - bl MoveMenuCursor - b _080E6F3C -_080E6E3C: - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r6, r0, 24 - cmp r6, 0 - beq _080E6E5C - cmp r6, 0 - bgt _080E6E56 - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - beq _080E6EDC - b _080E6F5E -_080E6E56: - cmp r6, 0x1 - beq _080E6EDC - b _080E6F5E -_080E6E5C: - ldr r7, _080E6EC8 @ =gSpecialVar_Result - bl sub_80E7FA8 - lsls r0, 24 - lsrs r0, 24 - negs r0, r0 - lsrs r0, 31 - strh r0, [r7] - bl sub_80E7D9C - ldrb r0, [r5, 0x8] - cmp r0, 0 - bne _080E6E82 - ldr r4, _080E6ECC @ =gSpecialVar_0x8004 - bl sub_80E8094 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E82: - ldrb r0, [r5, 0x8] - cmp r0, 0x9 - bne _080E6E9C - bl sub_80E81C0 - ldr r4, _080E6ECC @ =gSpecialVar_0x8004 - ldr r1, _080E6ED0 @ =0x00009c7c - adds r0, r5, r1 - bl sub_80FA364 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6E9C: - ldrb r0, [r5, 0x8] - cmp r0, 0xD - bne _080E6EBE - ldrh r0, [r5, 0xC] - ldr r1, _080E6ED4 @ =0x0000ffff - cmp r0, r1 - beq _080E6EB0 - ldrh r0, [r5, 0xE] - cmp r0, r1 - bne _080E6EB2 -_080E6EB0: - strh r6, [r7] -_080E6EB2: - ldr r4, _080E6ECC @ =gSpecialVar_0x8004 - bl sub_80E810C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_080E6EBE: - ldr r0, _080E6ED8 @ =sub_80E752C - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6EC8: .4byte gSpecialVar_Result -_080E6ECC: .4byte gSpecialVar_0x8004 -_080E6ED0: .4byte 0x00009c7c -_080E6ED4: .4byte 0x0000ffff -_080E6ED8: .4byte sub_80E752C -_080E6EDC: - bl HandleDestroyMenuCursors - bl sub_80E81FC - ldr r4, _080E6EFC @ =gSharedMem + 0x1000 - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - bne _080E6F00 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6F00 - movs r0, 0x64 - strh r0, [r4, 0x24] - b _080E6F5E - .align 2, 0 -_080E6EFC: .4byte gSharedMem + 0x1000 -_080E6F00: - bl sub_80E95A4 - b _080E6F12 -_080E6F06: - ldr r0, _080E6F1C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F12: - ldr r0, _080E6F20 @ =sub_80E6AC4 - bl sub_80E682C - b _080E6F5E - .align 2, 0 -_080E6F1C: .4byte gMain -_080E6F20: .4byte sub_80E6AC4 -_080E6F24: - movs r0, 0x7 - bl sub_80E91D4 - ldrh r0, [r5, 0x24] - adds r0, 0x1 - strh r0, [r5, 0x24] -_080E6F30: - ldr r0, _080E6F48 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E6F5E -_080E6F3C: - ldr r1, _080E6F4C @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E6F5E - .align 2, 0 -_080E6F48: .4byte gMain -_080E6F4C: .4byte gSharedMem + 0x1000 -_080E6F50: - bl sub_80E7E50 - bl sub_80E95A4 - ldr r0, _080E6F64 @ =sub_80E6AC4 - bl sub_80E682C -_080E6F5E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E6F64: .4byte sub_80E6AC4 - thumb_func_end sub_80E6D7C - - thumb_func_start sub_80E6F68 -sub_80E6F68: @ 80E6F68 - push {r4,lr} - ldr r4, _080E6F78 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - cmp r0, 0 - beq _080E6F7C - cmp r0, 0x1 - beq _080E6F9C - b _080E6FBC - .align 2, 0 -_080E6F78: .4byte gSharedMem + 0x1000 -_080E6F7C: - movs r0, 0x1 - bl sub_80E8398 - movs r0, 0xA - bl sub_80E91D4 - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E6FBC -_080E6F9C: - bl sub_80E9EA8 - lsls r0, 24 - cmp r0, 0 - beq _080E6FBC - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E6FC4 @ =sub_80E6FC8 - bl sub_80E682C -_080E6FBC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E6FC4: .4byte sub_80E6FC8 - thumb_func_end sub_80E6F68 - - thumb_func_start sub_80E6FC8 -sub_80E6FC8: @ 80E6FC8 - push {r4,lr} - bl sub_80E77C8 - adds r1, r0, 0 - ldr r4, _080E7000 @ =gSharedMem + 0x1000 - adds r0, r4, 0 - adds r0, 0x96 - strb r1, [r0] - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E700C - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E7004 @ =sub_80E6FC8 - str r1, [r0] - ldr r0, _080E7008 @ =sub_80E7458 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E7000: .4byte gSharedMem + 0x1000 -_080E7004: .4byte sub_80E6FC8 -_080E7008: .4byte sub_80E7458 -_080E700C: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E7018 - movs r0, 0x5 - bl PlaySE -_080E7018: - ldr r0, _080E7054 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E70E8 - ldr r2, _080E7058 @ =0x000001b7 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7090 - movs r0, 0x5 - bl PlaySE - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - beq _080E7070 - cmp r0, 0x2 - bgt _080E705C - cmp r0, 0x1 - beq _080E7062 - b _080E710A - .align 2, 0 -_080E7054: .4byte gMain -_080E7058: .4byte 0x000001b7 -_080E705C: - cmp r0, 0x3 - beq _080E70F0 - b _080E710A -_080E7062: - ldr r0, _080E706C @ =sub_80E718C - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E706C: .4byte sub_80E718C -_080E7070: - ldrb r0, [r4, 0x8] - cmp r0, 0x6 - beq _080E710A - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - ldr r1, _080E708C @ =0x0000ffff - bl sub_80E7F00 - bl sub_80E7574 - bl sub_80E95A4 - b _080E710A - .align 2, 0 -_080E708C: .4byte 0x0000ffff -_080E7090: - adds r0, r4, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - beq _080E70CA - ldr r2, _080E70DC @ =0x000001a9 - adds r0, r4, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r4, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r0, [r2] - lsls r0, 1 - ldr r2, _080E70E0 @ =0x00004142 - adds r1, r4, r2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080E710A -_080E70CA: - movs r0, 0x5 - bl PlaySE - bl sub_80E7AD4 - ldr r0, _080E70E4 @ =sub_80E7218 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70DC: .4byte 0x000001a9 -_080E70E0: .4byte 0x00004142 -_080E70E4: .4byte sub_80E7218 -_080E70E8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E70FC -_080E70F0: - ldr r0, _080E70F8 @ =sub_80E7114 - bl sub_80E682C - b _080E710A - .align 2, 0 -_080E70F8: .4byte sub_80E7114 -_080E70FC: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E710A - ldr r0, _080E7110 @ =sub_80E718C - bl sub_80E682C -_080E710A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7110: .4byte sub_80E718C - thumb_func_end sub_80E6FC8 - - thumb_func_start sub_80E7114 -sub_80E7114: @ 80E7114 - push {lr} - ldr r0, _080E712C @ =gSharedMem + 0x1000 - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E7182 - lsls r0, r1, 2 - ldr r1, _080E7130 @ =_080E7134 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E712C: .4byte gSharedMem + 0x1000 -_080E7130: .4byte _080E7134 - .align 2, 0 -_080E7134: - .4byte _080E7148 - .4byte _080E715C - .4byte _080E715C - .4byte _080E7164 - .4byte _080E717C -_080E7148: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - movs r0, 0 - bl sub_80E8D8C - b _080E716E -_080E715C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E7182 -_080E7164: - bl sub_80E9F50 - lsls r0, 24 - cmp r0, 0 - beq _080E7182 -_080E716E: - ldr r1, _080E7178 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7182 - .align 2, 0 -_080E7178: .4byte gSharedMem + 0x1000 -_080E717C: - ldr r0, _080E7188 @ =sub_80E6AC4 - bl sub_80E682C -_080E7182: - pop {r0} - bx r0 - .align 2, 0 -_080E7188: .4byte sub_80E6AC4 - thumb_func_end sub_80E7114 - - thumb_func_start sub_80E718C -sub_80E718C: @ 80E718C - push {r4,lr} - ldr r0, _080E71A4 @ =gSharedMem + 0x1000 - ldrh r1, [r0, 0x24] - adds r4, r0, 0 - cmp r1, 0x1 - beq _080E71C6 - cmp r1, 0x1 - bgt _080E71A8 - cmp r1, 0 - beq _080E71AE - b _080E71EC - .align 2, 0 -_080E71A4: .4byte gSharedMem + 0x1000 -_080E71A8: - cmp r1, 0x8 - beq _080E71F4 - b _080E71EC -_080E71AE: - bl sub_80E8504 - bl sub_80E9E98 - bl sub_80E88F0 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - bl sub_80E8D54 - b _080E720E -_080E71C6: - bl sub_80E9FD4 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - movs r2, 0 - adds r1, r4, 0 - adds r1, 0x26 - ldrb r0, [r1] - cmp r0, 0 - bne _080E71DE - movs r2, 0x1 -_080E71DE: - strb r2, [r1] - bl sub_80E683C - bl sub_80E9974 - bl sub_80E9E98 -_080E71EC: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E720E -_080E71F4: - bl sub_80EA014 - lsls r0, 24 - cmp r0, 0 - beq _080E720E - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 - ldr r0, _080E7214 @ =sub_80E6FC8 - bl sub_80E682C -_080E720E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7214: .4byte sub_80E6FC8 - thumb_func_end sub_80E718C - - thumb_func_start sub_80E7218 -sub_80E7218: @ 80E7218 - push {r4,lr} - ldr r4, _080E7230 @ =gSharedMem + 0x1000 - ldrh r0, [r4, 0x24] - adds r1, r4, 0 - cmp r0, 0x9 - beq _080E7260 - cmp r0, 0x9 - bgt _080E7234 - cmp r0, 0x8 - beq _080E7244 - b _080E723C - .align 2, 0 -_080E7230: .4byte gSharedMem + 0x1000 -_080E7234: - cmp r0, 0xA - beq _080E7276 - cmp r0, 0xB - beq _080E7288 -_080E723C: - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E7288 -_080E7244: - movs r0, 0 - bl sub_80E8D8C - bl sub_80E8504 - bl sub_80E9AD4 - bl sub_80E68E8 - bl sub_80E88F0 - bl sub_80E9E98 - b _080E726E -_080E7260: - bl sub_80EA050 - lsls r0, 24 - cmp r0, 0 - beq _080E7288 - bl sub_80E9C94 -_080E726E: - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7288 -_080E7276: - movs r0, 0x1 - bl sub_80E87CC - movs r0, 0x1 - bl sub_80E8958 - ldr r0, _080E7290 @ =sub_80E7294 - bl sub_80E682C -_080E7288: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7290: .4byte sub_80E7294 - thumb_func_end sub_80E7218 - - thumb_func_start sub_80E7294 -sub_80E7294: @ 80E7294 - push {r4,lr} - bl sub_80E7B40 - adds r1, r0, 0 - ldr r4, _080E72CC @ =gSharedMem + 0x1000 - ldr r2, _080E72D0 @ =0x000001b9 - adds r0, r4, r2 - strb r1, [r0] - adds r2, 0x7 - adds r0, r4, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E72DC - movs r0, 0x5 - bl PlaySE - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, _080E72D4 @ =sub_80E7294 - str r1, [r0] - ldr r0, _080E72D8 @ =sub_80E7458 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E72CC: .4byte gSharedMem + 0x1000 -_080E72D0: .4byte 0x000001b9 -_080E72D4: .4byte sub_80E7294 -_080E72D8: .4byte sub_80E7458 -_080E72DC: - lsls r0, r1, 24 - cmp r0, 0 - beq _080E72E8 - movs r0, 0x5 - bl PlaySE -_080E72E8: - ldr r0, _080E7304 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E730C - movs r0, 0x5 - bl PlaySE - ldr r0, _080E7308 @ =sub_80E7324 - bl sub_80E682C - b _080E731A - .align 2, 0 -_080E7304: .4byte gMain -_080E7308: .4byte sub_80E7324 -_080E730C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080E731A - ldr r0, _080E7320 @ =sub_80E73D0 - bl sub_80E682C -_080E731A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7320: .4byte sub_80E73D0 - thumb_func_end sub_80E7294 - - thumb_func_start sub_80E7324 -sub_80E7324: @ 80E7324 - push {lr} - ldr r0, _080E733C @ =gSharedMem + 0x1000 - ldrh r1, [r0, 0x24] - adds r2, r0, 0 - cmp r1, 0x4 - bhi _080E73C6 - lsls r0, r1, 2 - ldr r1, _080E7340 @ =_080E7344 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E733C: .4byte gSharedMem + 0x1000 -_080E7340: .4byte _080E7344 - .align 2, 0 -_080E7344: - .4byte _080E7358 - .4byte _080E737C - .4byte _080E7384 - .4byte _080E738A - .4byte _080E73A4 -_080E7358: - bl sub_80E7DD0 - lsls r0, 24 - cmp r0, 0 - bne _080E7370 - ldr r0, _080E736C @ =sub_80E7294 - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E736C: .4byte sub_80E7294 -_080E7370: - bl sub_80E88F0 - movs r0, 0 - bl sub_80E87CC - b _080E7394 -_080E737C: - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - b _080E73C6 -_080E7384: - bl sub_80E9E98 - b _080E7394 -_080E738A: - bl sub_80EA184 - lsls r0, 24 - cmp r0, 0 - beq _080E73C6 -_080E7394: - ldr r1, _080E73A0 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E73C6 - .align 2, 0 -_080E73A0: .4byte gSharedMem + 0x1000 -_080E73A4: - ldrb r0, [r2, 0x8] - cmp r0, 0x6 - bne _080E73C0 - bl sub_80E7FA8 - lsls r0, 24 - cmp r0, 0 - beq _080E73C0 - ldr r0, _080E73BC @ =sub_80E6D7C - bl sub_80E682C - b _080E73C6 - .align 2, 0 -_080E73BC: .4byte sub_80E6D7C -_080E73C0: - ldr r0, _080E73CC @ =sub_80E6AC4 - bl sub_80E682C -_080E73C6: - pop {r0} - bx r0 - .align 2, 0 -_080E73CC: .4byte sub_80E6AC4 - thumb_func_end sub_80E7324 - - thumb_func_start sub_80E73D0 -sub_80E73D0: @ 80E73D0 - push {lr} - ldr r0, _080E73E4 @ =gSharedMem + 0x1000 - ldrh r0, [r0, 0x24] - cmp r0, 0x4 - bhi _080E744E - lsls r0, 2 - ldr r1, _080E73E8 @ =_080E73EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E73E4: .4byte gSharedMem + 0x1000 -_080E73E8: .4byte _080E73EC - .align 2, 0 -_080E73EC: - .4byte _080E7400 - .4byte _080E740C - .4byte _080E7416 - .4byte _080E742C - .4byte _080E7444 -_080E7400: - movs r0, 0 - bl sub_80E87CC - bl sub_80E88F0 - b _080E7436 -_080E740C: - bl sub_80E9AD4 - bl sub_80E9E98 - b _080E7436 -_080E7416: - bl sub_80EA0E4 - lsls r0, 24 - cmp r0, 0 - beq _080E744E - movs r0, 0x1 - bl sub_80E8D8C - bl sub_80E9A14 - b _080E7436 -_080E742C: - bl sub_80E8420 - movs r0, 0 - bl sub_80E8958 -_080E7436: - ldr r1, _080E7440 @ =gSharedMem + 0x1000 - ldrh r0, [r1, 0x24] - adds r0, 0x1 - strh r0, [r1, 0x24] - b _080E744E - .align 2, 0 -_080E7440: .4byte gSharedMem + 0x1000 -_080E7444: - bl sub_80E9974 - ldr r0, _080E7454 @ =sub_80E6FC8 - bl sub_80E682C -_080E744E: - pop {r0} - bx r0 - .align 2, 0 -_080E7454: .4byte sub_80E6FC8 - thumb_func_end sub_80E73D0 - - thumb_func_start sub_80E7458 -sub_80E7458: @ 80E7458 - push {r4,r5,lr} - ldr r4, _080E7468 @ =gSharedMem + 0x1000 - ldrh r5, [r4, 0x24] - cmp r5, 0 - beq _080E746C - cmp r5, 0x1 - beq _080E74A4 - b _080E7518 - .align 2, 0 -_080E7468: .4byte gSharedMem + 0x1000 -_080E746C: - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E7480 @ =sub_80E6FC8 - cmp r1, r0 - bne _080E7484 - bl sub_80E9D7C - b _080E7488 - .align 2, 0 -_080E7480: .4byte sub_80E6FC8 -_080E7484: - bl sub_80E9D00 -_080E7488: - ldr r4, _080E74A0 @ =gSharedMem + 0x1000 - movs r2, 0xDF - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_80E9E08 - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E7518 - .align 2, 0 -_080E74A0: .4byte gSharedMem + 0x1000 -_080E74A4: - bl sub_80E9E54 - lsls r0, 24 - cmp r0, 0 - beq _080E7518 - movs r1, 0xE2 - lsls r1, 1 - adds r0, r4, r1 - ldr r1, [r0] - ldr r0, _080E74DC @ =sub_80E6FC8 - cmp r1, r0 - bne _080E74E4 - bl sub_80E9D7C - ldr r2, _080E74E0 @ =0x000001b5 - adds r1, r4, r2 - adds r2, 0xB - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7A98 - adds r0, r4, 0 - adds r0, 0x96 - b _080E74FE - .align 2, 0 -_080E74DC: .4byte sub_80E6FC8 -_080E74E0: .4byte 0x000001b5 -_080E74E4: - ldr r0, _080E7520 @ =0x00009a29 - adds r1, r4, r0 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r4, r2 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - bl sub_80E7D30 - ldr r1, _080E7524 @ =0x000001b9 - adds r0, r4, r1 -_080E74FE: - strb r5, [r0] - ldr r1, _080E7528 @ =gSharedMem + 0x1000 - movs r0, 0xDF - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0x2 - strb r0, [r2] - movs r2, 0xE2 - lsls r2, 1 - adds r0, r1, r2 - ldr r0, [r0] - bl sub_80E682C -_080E7518: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7520: .4byte 0x00009a29 -_080E7524: .4byte 0x000001b9 -_080E7528: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7458 - - thumb_func_start sub_80E752C -sub_80E752C: @ 80E752C - push {r4,lr} - sub sp, 0x4 - ldr r4, _080E7540 @ =gSharedMem + 0x1000 - ldrh r1, [r4, 0x24] - cmp r1, 0 - beq _080E7544 - cmp r1, 0x1 - beq _080E755C - b _080E756C - .align 2, 0 -_080E7540: .4byte gSharedMem + 0x1000 -_080E7544: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x24] - adds r0, 0x1 - strh r0, [r4, 0x24] - b _080E756C -_080E755C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _080E756C - ldr r0, [r4] - bl SetMainCallback2 -_080E756C: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80E752C - - thumb_func_start sub_80E7574 -sub_80E7574: @ 80E7574 - push {r4,r5,lr} - ldr r4, _080E75B8 @ =gSharedMem + 0x1000 - ldrb r5, [r4, 0x8] - cmp r5, 0x1 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r4, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080E75BC - adds r0, r4, 0 - adds r0, 0x27 - ldrb r0, [r0] - lsls r0, 1 - subs r1, 0x72 - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - beq _080E75BC - adds r0, r4, 0 - adds r0, 0x7D - strb r5, [r0] - adds r1, r4, 0 - b _080E75C6 - .align 2, 0 -_080E75B8: .4byte gSharedMem + 0x1000 -_080E75BC: - ldr r1, _080E75D4 @ =gSharedMem + 0x1000 - adds r2, r1, 0 - adds r2, 0x7D - movs r0, 0 - strb r0, [r2] -_080E75C6: - adds r1, 0x7D - movs r0, 0 - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E75D4: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7574 - - thumb_func_start sub_80E75D8 -sub_80E75D8: @ 80E75D8 - push {r4-r6,lr} - movs r4, 0 - ldr r2, _080E75FC @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7604 - ldr r1, _080E7600 @ =gSharedMem + 0x1000 - adds r0, r1, 0 - adds r0, 0x84 - ldrb r0, [r0] - adds r2, r1, 0 - adds r2, 0x86 - strb r0, [r2] - adds r1, 0x85 - movs r0, 0x2 - b _080E768E - .align 2, 0 -_080E75FC: .4byte gMain -_080E7600: .4byte gSharedMem + 0x1000 -_080E7604: - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080E7630 - ldr r2, _080E762C @ =gSharedMem + 0x1000 - adds r1, r2, 0 - adds r1, 0x86 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E765C - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - strb r0, [r1] - b _080E765C - .align 2, 0 -_080E762C: .4byte gSharedMem + 0x1000 -_080E7630: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080E7658 - ldr r0, _080E7684 @ =gSharedMem + 0x1000 - adds r3, r0, 0 - adds r3, 0x86 - ldrb r1, [r3] - adds r1, 0x1 - strb r1, [r3] - adds r0, 0x84 - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - ble _080E7656 - strb r4, [r3] -_080E7656: - movs r4, 0x1 -_080E7658: - cmp r4, 0 - beq _080E76EA -_080E765C: - ldr r2, _080E7684 @ =gSharedMem + 0x1000 - ldrb r3, [r2, 0x9] - cmp r3, 0x2 - bne _080E7692 - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7688 - adds r0, r2, 0 - adds r0, 0x85 - strb r3, [r0] - b _080E77BC - .align 2, 0 -_080E7684: .4byte gSharedMem + 0x1000 -_080E7688: - adds r1, r2, 0 - adds r1, 0x85 - movs r0, 0 -_080E768E: - strb r0, [r1] - b _080E77BC -_080E7692: - movs r0, 0x85 - adds r0, r2 - mov r12, r0 - adds r4, r2, 0 - adds r4, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrb r3, [r4] - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r1, r0 - blt _080E76B0 - subs r0, r3, 0x1 - mov r1, r12 - strb r0, [r1] -_080E76B0: - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r3, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - beq _080E77BC - ldrb r0, [r4] - adds r4, r0, 0 - muls r4, r3 - adds r0, r4, 0 - mov r5, r12 - ldrb r5, [r5] - adds r0, r5 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 - mov r6, r12 - strb r0, [r6] - b _080E77BC -_080E76EA: - ldrh r2, [r2, 0x30] - movs r0, 0x20 - ands r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080E7744 - ldr r2, _080E7728 @ =gSharedMem + 0x1000 - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] - lsls r0, 24 - cmp r0, 0 - bge _080E77BC - adds r1, r2, 0 - adds r1, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - ldrb r4, [r1] - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E772C - movs r0, 0x2 - b _080E77BA - .align 2, 0 -_080E7728: .4byte gSharedMem + 0x1000 -_080E772C: - adds r0, r2, 0 - adds r0, 0x83 - ldrb r0, [r0] - subs r1, r0, 0x1 - strb r1, [r3] - adds r5, r4, 0 - muls r5, r0 - adds r0, r5, 0 - adds r1, r0 - lsls r1, 24 - lsrs r0, r1, 24 - b _080E77B2 -_080E7744: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - beq _080E77C0 - ldr r2, _080E777C @ =gSharedMem + 0x1000 - adds r5, r2, 0 - adds r5, 0x86 - adds r0, r2, 0 - adds r0, 0x84 - movs r1, 0 - ldrsb r1, [r5, r1] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _080E7780 - adds r1, r2, 0 - adds r1, 0x85 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - ble _080E77BC - strb r4, [r1] - b _080E77BC - .align 2, 0 -_080E777C: .4byte gSharedMem + 0x1000 -_080E7780: - adds r3, r2, 0 - adds r3, 0x85 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r6, 0x83 - adds r6, r2 - mov r12, r6 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - blt _080E779E - strb r4, [r3] -_080E779E: - ldrb r1, [r5] - mov r4, r12 - ldrb r0, [r4] - adds r5, r0, 0 - muls r5, r1 - adds r0, r5, 0 - ldrb r6, [r3] - adds r0, r6 - lsls r0, 24 - lsrs r0, 24 -_080E77B2: - ldrb r1, [r2, 0xA] - cmp r0, r1 - bcc _080E77BC - subs r0, r1 -_080E77BA: - strb r0, [r3] -_080E77BC: - movs r0, 0x1 - b _080E77C2 -_080E77C0: - movs r0, 0 -_080E77C2: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80E75D8 - - thumb_func_start sub_80E77C8 -sub_80E77C8: @ 80E77C8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r7, 0 - ldr r1, _080E780C @ =gSharedMem + 0x1000 - ldr r2, _080E7810 @ =0x000001b7 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r3, r1, 0 - cmp r0, 0 - beq _080E783E - ldr r1, _080E7814 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7818 - movs r4, 0xD4 - lsls r4, 1 - adds r1, r3, r4 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - ble _080E7806 - b _080E7948 -_080E7806: - movs r0, 0x3 - strb r0, [r1] - b _080E7948 - .align 2, 0 -_080E780C: .4byte gSharedMem + 0x1000 -_080E7810: .4byte 0x000001b7 -_080E7814: .4byte gMain -_080E7818: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - bne _080E7822 - b _080E7950 -_080E7822: - movs r5, 0xD4 - lsls r5, 1 - adds r1, r3, r5 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bgt _080E7838 - b _080E7948 -_080E7838: - movs r0, 0x1 - strb r0, [r1] - b _080E7948 -_080E783E: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080E789A - movs r4, 0 - ldr r1, _080E7870 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E7874 - movs r6, 0xD4 - lsls r6, 1 - adds r1, r3, r6 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bge _080E7944 - movs r0, 0x3 - strb r0, [r1] - b _080E7944 - .align 2, 0 -_080E7870: .4byte gMain -_080E7874: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E7894 - movs r0, 0xD4 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - ble _080E7892 - strb r7, [r1] -_080E7892: - movs r4, 0x1 -_080E7894: - cmp r4, 0 - beq _080E7950 - b _080E7944 -_080E789A: - movs r4, 0 - movs r1, 0xE0 - lsls r1, 1 - adds r5, r3, r1 - strb r7, [r5] - ldr r1, _080E78E0 @ =gMain - ldrh r2, [r1, 0x30] - movs r0, 0x40 - ands r0, r2 - adds r6, r1, 0 - cmp r0, 0 - beq _080E78E8 - movs r2, 0xD4 - lsls r2, 1 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E78C4 - b _080E7A88 -_080E78C4: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E78E4 @ =0x000001b5 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7932 - movs r0, 0xFF - strb r0, [r5] - b _080E7932 - .align 2, 0 -_080E78E0: .4byte gMain -_080E78E4: .4byte 0x000001b5 -_080E78E8: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080E792E - movs r0, 0xD4 - lsls r0, 1 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - movs r4, 0xDB - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E790E - b _080E7A88 -_080E790E: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E794C @ =0x000001b5 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x3 - cmp r1, r0 - ble _080E792C - movs r0, 0x1 - strb r0, [r5] -_080E792C: - movs r4, 0x1 -_080E792E: - cmp r4, 0 - beq _080E7950 -_080E7932: - movs r4, 0xE0 - lsls r4, 1 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7944 - b _080E7A88 -_080E7944: - bl sub_80E7A98 -_080E7948: - movs r0, 0x1 - b _080E7A8A - .align 2, 0 -_080E794C: .4byte 0x000001b5 -_080E7950: - ldrh r1, [r6, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0 - beq _080E7992 - ldr r5, _080E7974 @ =0x000001a9 - adds r2, r3, r5 - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - beq _080E7978 - subs r0, r1, 0x1 - strb r0, [r2] - b _080E79E6 - .align 2, 0 -_080E7974: .4byte 0x000001a9 -_080E7978: - movs r6, 0xD4 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - movs r4, 0xD5 - lsls r4, 1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - b _080E79E6 -_080E7992: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E79E2 - ldr r5, _080E79D4 @ =0x000001b7 - adds r0, r3, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E79CC - ldr r0, _080E79D8 @ =0x000001a9 - adds r4, r3, r0 - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD5 - lsls r2, 1 - adds r0, r3, r2 - adds r1, r0 - ldrb r5, [r4] - movs r2, 0 - ldrsb r2, [r4, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E79DC -_080E79CC: - ldr r4, _080E79D8 @ =0x000001a9 - adds r0, r3, r4 - strb r6, [r0] - b _080E79E0 - .align 2, 0 -_080E79D4: .4byte 0x000001b7 -_080E79D8: .4byte 0x000001a9 -_080E79DC: - adds r0, r5, 0x1 - strb r0, [r4] -_080E79E0: - movs r7, 0x1 -_080E79E2: - cmp r7, 0 - beq _080E7A88 -_080E79E6: - adds r2, r3, 0 - ldr r5, _080E7A48 @ =0x000001b7 - adds r7, r2, r5 - ldrb r6, [r7] - mov r9, r6 - movs r1, 0 - ldr r0, _080E7A4C @ =0x000001a9 - adds r0, r2 - mov r12, r0 - subs r5, 0xF - adds r4, r2, r5 - movs r0, 0 - ldrsb r0, [r4, r0] - movs r6, 0xD5 - lsls r6, 1 - adds r6, r2 - mov r8, r6 - add r0, r8 - mov r6, r12 - movs r5, 0 - ldrsb r5, [r6, r5] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E7A1C - movs r1, 0x1 -_080E7A1C: - strb r1, [r7] - cmp r1, 0 - beq _080E7A58 - ldr r0, _080E7A50 @ =0x000001b5 - adds r1, r2, r0 - ldrb r0, [r4] - ldrb r1, [r1] - subs r0, r1 - strb r0, [r4] - lsls r0, 24 - cmp r0, 0 - beq _080E7A36 - b _080E7948 -_080E7A36: - movs r0, 0x1 - strb r0, [r4] - ldr r1, _080E7A54 @ =0x000001ab - adds r0, r2, r1 - ldrb r0, [r0] - mov r2, r12 - strb r0, [r2] - b _080E7948 - .align 2, 0 -_080E7A48: .4byte 0x000001b7 -_080E7A4C: .4byte 0x000001a9 -_080E7A50: .4byte 0x000001b5 -_080E7A54: .4byte 0x000001ab -_080E7A58: - mov r6, r9 - cmp r6, 0 - bne _080E7A60 - b _080E7948 -_080E7A60: - ldr r1, _080E7A84 @ =0x000001b5 - adds r0, r3, r1 - ldrb r0, [r0] - ldrb r2, [r4] - adds r0, r2 - strb r0, [r4] - cmp r5, 0 - bne _080E7A72 - b _080E7948 -_080E7A72: - movs r0, 0 - ldrsb r0, [r4, r0] - add r0, r8 - ldrb r0, [r0] - subs r0, 0x1 - mov r4, r12 - strb r0, [r4] - b _080E7948 - .align 2, 0 -_080E7A84: .4byte 0x000001b5 -_080E7A88: - movs r0, 0 -_080E7A8A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E77C8 - - thumb_func_start sub_80E7A98 -sub_80E7A98: @ 80E7A98 - push {lr} - ldr r1, _080E7ACC @ =gSharedMem + 0x1000 - ldr r0, _080E7AD0 @ =0x000001a9 - adds r3, r1, r0 - movs r2, 0xD4 - lsls r2, 1 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0x2 - adds r1, r2 - adds r0, r1 - movs r1, 0 - ldrsb r1, [r3, r1] - ldrb r2, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - blt _080E7AC6 - subs r0, r2, 0x1 - strb r0, [r3] -_080E7AC6: - pop {r0} - bx r0 - .align 2, 0 -_080E7ACC: .4byte gSharedMem + 0x1000 -_080E7AD0: .4byte 0x000001a9 - thumb_func_end sub_80E7A98 - - thumb_func_start sub_80E7AD4 -sub_80E7AD4: @ 80E7AD4 - push {lr} - ldr r3, _080E7B08 @ =gSharedMem + 0x1000 - adds r0, r3, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E7B10 - ldr r1, _080E7B0C @ =0x000001a9 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0xD4 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 1 - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x2A - adds r1, r0 - ldrb r1, [r1] - adds r2, 0x10 - b _080E7B34 - .align 2, 0 -_080E7B08: .4byte gSharedMem + 0x1000 -_080E7B0C: .4byte 0x000001a9 -_080E7B10: - ldr r1, _080E7B3C @ =0x000001a9 - adds r0, r3, r1 - movs r2, 0 - ldrsb r2, [r0, r2] - subs r1, 0x1 - adds r0, r3, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - adds r2, r0 - adds r0, r3, 0 - adds r0, 0x40 - adds r2, r0 - ldrb r1, [r2] - movs r2, 0xDC - lsls r2, 1 -_080E7B34: - adds r0, r3, r2 - strb r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E7B3C: .4byte 0x000001a9 - thumb_func_end sub_80E7AD4 - - thumb_func_start sub_80E7B40 -sub_80E7B40: @ 80E7B40 - push {r4-r7,lr} - movs r5, 0 - ldr r2, _080E7B8C @ =gSharedMem + 0x1000 - movs r0, 0xE0 - lsls r0, 1 - adds r6, r2, r0 - strb r5, [r6] - ldr r1, _080E7B90 @ =gMain - ldrh r4, [r1, 0x30] - movs r0, 0x40 - ands r0, r4 - adds r3, r2, 0 - adds r7, r1, 0 - cmp r0, 0 - beq _080E7B9C - ldr r2, _080E7B94 @ =0x000099a4 - adds r1, r3, r2 - ldrb r2, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080E7B6E - b _080E7D1A -_080E7B6E: - subs r0, r2, 0x1 - strb r0, [r1] - ldr r4, _080E7B98 @ =0x00009a29 - adds r1, r3, r4 - lsls r0, 24 - asrs r0, 24 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - cmp r0, r1 - bge _080E7BF2 - movs r0, 0xFF - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7B8C: .4byte gSharedMem + 0x1000 -_080E7B90: .4byte gMain -_080E7B94: .4byte 0x000099a4 -_080E7B98: .4byte 0x00009a29 -_080E7B9C: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _080E7BEE - ldr r0, _080E7BE0 @ =0x000099a4 - adds r2, r3, r0 - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r4, _080E7BE4 @ =0x00009a28 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, 0x1 - cmp r1, r0 - blt _080E7BBE - b _080E7D1A -_080E7BBE: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - movs r1, 0 - ldrsb r1, [r2, r1] - ldr r2, _080E7BE8 @ =0x00009a29 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - cmp r1, r0 - blt _080E7BEC - movs r0, 0x1 - strb r0, [r6] - b _080E7D1A - .align 2, 0 -_080E7BE0: .4byte 0x000099a4 -_080E7BE4: .4byte 0x00009a28 -_080E7BE8: .4byte 0x00009a29 -_080E7BEC: - movs r5, 0x1 -_080E7BEE: - cmp r5, 0 - beq _080E7BFA -_080E7BF2: - bl sub_80E7D30 -_080E7BF6: - movs r0, 0x1 - b _080E7D1C -_080E7BFA: - ldrh r1, [r7, 0x30] - movs r0, 0x20 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080E7C38 - ldr r4, _080E7C30 @ =0x000099a5 - adds r2, r3, r4 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] - lsls r0, 24 - cmp r0, 0 - bge _080E7BF6 - ldr r6, _080E7C34 @ =0x000099a4 - adds r0, r3, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, 0x1 - adds r1, r3, r4 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r2] - b _080E7BF6 - .align 2, 0 -_080E7C30: .4byte 0x000099a5 -_080E7C34: .4byte 0x000099a4 -_080E7C38: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080E7C70 - ldr r6, _080E7C68 @ =0x000099a5 - adds r4, r3, r6 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r2, _080E7C6C @ =0x000099a4 - adds r1, r3, r2 - movs r2, 0 - ldrsb r2, [r1, r2] - adds r6, 0x1 - adds r1, r3, r6 - adds r2, r1 - lsls r0, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r2, r1] - cmp r0, r1 - blt _080E7BF6 - strb r5, [r4] - b _080E7BF6 - .align 2, 0 -_080E7C68: .4byte 0x000099a5 -_080E7C6C: .4byte 0x000099a4 -_080E7C70: - ldrh r1, [r7, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080E7CC4 - ldr r1, _080E7CBC @ =0x00009a29 - adds r0, r3, r1 - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080E7CA2 - negs r0, r1 - movs r4, 0xE0 - lsls r4, 1 - adds r2, r3, r4 - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x4 - negs r1, r1 - cmp r0, r1 - bge _080E7CA2 - strb r1, [r2] -_080E7CA2: - ldr r6, _080E7CC0 @ =0x000099a4 - adds r1, r3, r6 - movs r2, 0xE0 - lsls r2, 1 - adds r0, r3, r2 - ldrb r0, [r0] - ldrb r4, [r1] - adds r0, r4 - strb r0, [r1] - movs r6, 0xDF - lsls r6, 1 - adds r1, r3, r6 - b _080E7D16 - .align 2, 0 -_080E7CBC: .4byte 0x00009a29 -_080E7CC0: .4byte 0x000099a4 -_080E7CC4: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080E7D1A - ldr r0, _080E7D24 @ =0x00009a29 - adds r4, r3, r0 - movs r1, 0 - ldrsb r1, [r4, r1] - ldr r6, _080E7D28 @ =0x00009a28 - adds r2, r3, r6 - movs r0, 0 - ldrsb r0, [r2, r0] - subs r0, 0x4 - cmp r1, r0 - bge _080E7CFE - ldrb r1, [r4] - adds r1, 0x4 - ldrb r0, [r2] - subs r0, r1 - movs r2, 0xE0 - lsls r2, 1 - adds r1, r3, r2 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - ble _080E7CFE - movs r0, 0x4 - strb r0, [r1] -_080E7CFE: - ldr r4, _080E7D2C @ =0x000099a4 - adds r1, r3, r4 - movs r6, 0xE0 - lsls r6, 1 - adds r0, r3, r6 - ldrb r0, [r0] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - movs r4, 0xDF - lsls r4, 1 - adds r1, r3, r4 -_080E7D16: - movs r0, 0x4 - strb r0, [r1] -_080E7D1A: - movs r0, 0 -_080E7D1C: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E7D24: .4byte 0x00009a29 -_080E7D28: .4byte 0x00009a28 -_080E7D2C: .4byte 0x000099a4 - thumb_func_end sub_80E7B40 - - thumb_func_start sub_80E7D30 -sub_80E7D30: @ 80E7D30 - push {r4,lr} - ldr r0, _080E7D60 @ =gSharedMem + 0x1000 - ldr r1, _080E7D64 @ =0x000099a5 - adds r4, r0, r1 - ldr r2, _080E7D68 @ =0x000099a4 - adds r1, r0, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - adds r2, 0x2 - adds r0, r2 - adds r1, r0 - movs r2, 0 - ldrsb r2, [r4, r2] - ldrb r3, [r1] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - blt _080E7D5A - subs r0, r3, 0x1 - strb r0, [r4] -_080E7D5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E7D60: .4byte gSharedMem + 0x1000 -_080E7D64: .4byte 0x000099a5 -_080E7D68: .4byte 0x000099a4 - thumb_func_end sub_80E7D30 - - thumb_func_start sub_80E7D6C -sub_80E7D6C: @ 80E7D6C - push {r4,r5,lr} - movs r4, 0 - ldr r0, _080E7D94 @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0xA] - cmp r4, r1 - bcs _080E7D8E - adds r5, r0, 0 -_080E7D7A: - adds r0, r4, 0 - ldr r1, _080E7D98 @ =0x0000ffff - bl sub_80E7F00 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r0, [r5, 0xA] - cmp r4, r0 - bcc _080E7D7A -_080E7D8E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7D94: .4byte gSharedMem + 0x1000 -_080E7D98: .4byte 0x0000ffff - thumb_func_end sub_80E7D6C - - thumb_func_start sub_80E7D9C -sub_80E7D9C: @ 80E7D9C - push {r4,r5,lr} - movs r2, 0 - ldr r0, _080E7DCC @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0xA] - cmp r2, r1 - bcs _080E7DC6 - adds r3, r0, 0 - ldr r4, [r3, 0x4] - adds r5, r3, 0 - adds r5, 0xC -_080E7DB0: - lsls r0, r2, 1 - adds r1, r0, r4 - adds r0, r5 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r3, 0xA] - cmp r2, r0 - bcc _080E7DB0 -_080E7DC6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E7DCC: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7D9C - - thumb_func_start sub_80E7DD0 -sub_80E7DD0: @ 80E7DD0 - push {r4,lr} - ldr r2, _080E7E28 @ =gSharedMem + 0x1000 - ldr r1, _080E7E2C @ =0x000099a5 - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - ldr r3, _080E7E30 @ =0x000099a4 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r1, r0 - adds r3, 0x86 - adds r0, r2, r3 - adds r1, r0 - ldrh r4, [r1] - adds r0, r2, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E7E34 - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r2, 0 - adds r1, 0x7E - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bls _080E7E34 - adds r0, r4, 0 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x7 - bne _080E7E34 - movs r0, 0 - b _080E7E46 - .align 2, 0 -_080E7E28: .4byte gSharedMem + 0x1000 -_080E7E2C: .4byte 0x000099a5 -_080E7E30: .4byte 0x000099a4 -_080E7E34: - ldr r0, _080E7E4C @ =gSharedMem + 0x1000 - adds r0, 0x27 - ldrb r0, [r0] - adds r1, r4, 0 - bl sub_80E7F00 - bl sub_80E95A4 - movs r0, 0x1 -_080E7E46: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E7E4C: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7DD0 - - thumb_func_start sub_80E7E50 -sub_80E7E50: @ 80E7E50 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r5, 0 - movs r2, 0 - ldr r1, _080E7EF0 @ =gSharedMem + 0x1000 - adds r3, r1, 0 - adds r3, 0x84 - movs r0, 0 - ldrsb r0, [r3, r0] - cmp r2, r0 - bge _080E7EDE - mov r8, r1 - adds r0, r1, 0 - str r0, [sp] -_080E7E74: - mov r0, r8 - adds r0, 0x7E - adds r0, r2, r0 - movs r1, 0 - strb r1, [r0] - movs r3, 0 - ldr r6, _080E7EF4 @ =gSharedMem + 0x1083 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r1, r2, 0x1 - str r1, [sp, 0x4] - cmp r3, r0 - bge _080E7ECE - ldr r6, [sp] - mov r12, r6 - movs r0, 0 - mov r10, r0 - ldr r1, _080E7EF4 @ =gSharedMem + 0x1083 - mov r9, r1 - ldr r7, _080E7EF8 @ =gSharedMem + 0x100C - lsls r4, r2, 1 -_080E7E9E: - lsls r1, r5, 1 - adds r2, r1, r7 - mov r6, r12 - ldr r0, [r6, 0x4] - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - adds r0, r3, r4 - mov r1, r12 - adds r1, 0x8C - adds r0, r1 - mov r1, r10 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - mov r6, r9 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r3, r0 - blt _080E7E9E -_080E7ECE: - ldr r1, [sp, 0x4] - lsls r0, r1, 16 - lsrs r2, r0, 16 - ldr r6, _080E7EFC @ =gSharedMem + 0x1084 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r2, r0 - blt _080E7E74 -_080E7EDE: - 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 -_080E7EF0: .4byte gSharedMem + 0x1000 -_080E7EF4: .4byte gSharedMem + 0x1083 -_080E7EF8: .4byte gSharedMem + 0x100C -_080E7EFC: .4byte gSharedMem + 0x1084 - thumb_func_end sub_80E7E50 - - thumb_func_start sub_80E7F00 -sub_80E7F00: @ 80E7F00 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r7, _080E7F68 @ =gSharedMem + 0x1000 - adds r0, r7, 0 - adds r0, 0x83 - movs r4, 0 - ldrsb r4, [r0, r4] - adds r0, r6, 0 - adds r1, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r6, 0 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r0, r6, 1 - adds r1, r7, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - bl sub_80EB2D4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r9 - bl sub_80EB2D4 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r4, 0x7 - bne _080E7F6C - cmp r3, 0x7 - beq _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - subs r0, 0x1 - b _080E7F7A - .align 2, 0 -_080E7F68: .4byte gSharedMem + 0x1000 -_080E7F6C: - cmp r3, 0x7 - bne _080E7F7C - adds r1, r7, 0 - adds r1, 0x7E - adds r1, r5, r1 - ldrb r0, [r1] - adds r0, 0x1 -_080E7F7A: - strb r0, [r1] -_080E7F7C: - movs r3, 0 - ldr r2, _080E7FA4 @ =gSharedMem + 0x1000 - lsls r0, r5, 1 - add r0, r8 - adds r1, r2, 0 - adds r1, 0x8C - adds r0, r1 - strb r3, [r0] - lsls r0, r6, 1 - adds r2, 0xC - adds r0, r2 - mov r1, r9 - strh r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E7FA4: .4byte gSharedMem + 0x1000 - thumb_func_end sub_80E7F00 - - thumb_func_start sub_80E7FA8 -sub_80E7FA8: @ 80E7FA8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r8, r0 - movs r5, 0 - ldr r0, _080E8040 @ =gSharedMem + 0x1000 - ldrb r1, [r0, 0xA] - cmp r8, r1 - bcs _080E802E - ldr r3, _080E8044 @ =0x00009e14 - adds r6, r0, r3 - ldr r1, _080E8048 @ =0x00009e41 - adds r1, r0 - mov r9, r1 -_080E7FC8: - ldr r3, _080E804C @ =0xffff61ec - adds r7, r6, r3 - ldr r0, [r7, 0x4] - lsls r4, r5, 1 - adds r0, r4, r0 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r1, _080E8050 @ =0xffff61f8 - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - mov r0, r9 - movs r2, 0 - bl sub_80EB218 - adds r1, r6, 0 - mov r2, r9 - ldrb r0, [r1] - adds r4, r5, 0x1 - ldrb r3, [r2] - cmp r0, r3 - bne _080E8018 - adds r3, r7, 0 - cmp r0, 0xFF - beq _080E8010 -_080E8000: - adds r1, 0x1 - adds r2, 0x1 - ldrb r0, [r1] - ldrb r5, [r2] - cmp r0, r5 - bne _080E8018 - cmp r0, 0xFF - bne _080E8000 -_080E8010: - ldrb r0, [r1] - ldrb r2, [r2] - cmp r0, r2 - beq _080E8024 -_080E8018: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r3, _080E8040 @ =gSharedMem + 0x1000 -_080E8024: - lsls r0, r4, 16 - lsrs r5, r0, 16 - ldrb r3, [r3, 0xA] - cmp r5, r3 - bcc _080E7FC8 -_080E802E: - mov r1, r8 - lsls r0, r1, 24 - lsrs r0, 24 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080E8040: .4byte gSharedMem + 0x1000 -_080E8044: .4byte 0x00009e14 -_080E8048: .4byte 0x00009e41 -_080E804C: .4byte 0xffff61ec -_080E8050: .4byte 0xffff61f8 - thumb_func_end sub_80E7FA8 - - thumb_func_start sub_80E8054 -sub_80E8054: @ 80E8054 - push {r4,lr} - movs r1, 0 - ldr r2, _080E8078 @ =gSharedMem + 0x1000 - ldrb r0, [r2, 0xA] - cmp r1, r0 - bcs _080E808A - adds r4, r2, 0 - adds r4, 0xC - ldr r3, _080E807C @ =0x0000ffff - adds r2, r0, 0 -_080E8068: - lsls r0, r1, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - beq _080E8080 - movs r0, 0 - b _080E808C - .align 2, 0 -_080E8078: .4byte gSharedMem + 0x1000 -_080E807C: .4byte 0x0000ffff -_080E8080: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bcc _080E8068 -_080E808A: - movs r0, 0x1 -_080E808C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E8054 - - thumb_func_start sub_80E8094 -sub_80E8094: @ 80E8094 - push {r4-r7,lr} - movs r5, 0 - ldr r6, _080E80C4 @ =gSharedMem + 0xAE14 - adds r7, r6, 0 - adds r7, 0x2D -_080E809E: - lsls r4, r5, 1 - ldr r1, _080E80C8 @ =0xffff61f8 - adds r0, r6, r1 - adds r0, r4 - ldrh r1, [r0] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - ldr r0, _080E80CC @ =gMysteryEventPhrase - adds r4, r0 - ldrh r1, [r4] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - adds r3, r6, 0 - adds r4, r7, 0 - b _080E80D8 - .align 2, 0 -_080E80C4: .4byte gSharedMem + 0xAE14 -_080E80C8: .4byte 0xffff61f8 -_080E80CC: .4byte gMysteryEventPhrase -_080E80D0: - adds r4, 0x1 - adds r3, 0x1 - cmp r2, r1 - bne _080E80F4 -_080E80D8: - ldrb r2, [r3] - adds r0, r2, 0 - cmp r0, 0xFF - beq _080E80EE - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _080E80D0 - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E80F4 -_080E80EE: - ldrb r0, [r4] - cmp r0, 0xFF - beq _080E80F8 -_080E80F4: - movs r0, 0 - b _080E8104 -_080E80F8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080E809E - movs r0, 0x1 -_080E8104: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E8094 - - thumb_func_start sub_80E810C -sub_80E810C: @ 80E810C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r6, _080E8198 @ =gSharedMem + 0xAE6E - ldr r0, _080E819C @ =0xffff6192 - adds r0, r6 - mov r9, r0 - movs r1, 0 - mov r8, r1 - adds r7, r6, 0 - adds r7, 0x80 - ldr r2, _080E81A0 @ =gBerryMasterWifePhrases - mov r10, r2 -_080E812C: - mov r0, r9 - ldrh r1, [r0, 0xC] - adds r0, r6, 0 - movs r2, 0 - bl sub_80EB218 - mov r1, r8 - strb r1, [r0] - adds r0, 0x1 - mov r2, r9 - ldrh r1, [r2, 0xE] - movs r2, 0 - bl sub_80EB218 - lsls r4, r5, 2 - mov r1, r10 - adds r0, r4, r1 - ldrh r1, [r0] - adds r0, r7, 0 - movs r2, 0 - bl sub_80EB218 - mov r2, r8 - strb r2, [r0] - adds r0, 0x1 - ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2 - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - adds r0, r6, 0 - adds r3, r7, 0 - adds r4, r5, 0x1 -_080E8170: - ldrb r2, [r0] - cmp r2, 0xFF - beq _080E818A - ldrb r1, [r3] - cmp r1, 0xFF - beq _080E8184 - adds r3, 0x1 - adds r0, 0x1 - cmp r2, r1 - beq _080E8170 -_080E8184: - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E81A8 -_080E818A: - ldrb r0, [r3] - cmp r0, 0xFF - bne _080E81A8 - lsls r0, r4, 24 - lsrs r0, 24 - b _080E81B2 - .align 2, 0 -_080E8198: .4byte gSharedMem + 0xAE6E -_080E819C: .4byte 0xffff6192 -_080E81A0: .4byte gBerryMasterWifePhrases -_080E81A4: .4byte gBerryMasterWifePhrases + 0x2 -_080E81A8: - lsls r0, r4, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _080E812C - movs r0, 0 -_080E81B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80E810C - - thumb_func_start sub_80E81C0 -sub_80E81C0: @ 80E81C0 - push {r4,lr} - ldr r0, _080E81EC @ =gStringVar2 - ldr r4, _080E81F0 @ =gSharedMem + 0x1000 - ldr r2, _080E81F4 @ =0x00009c7c - adds r1, r4, r2 - ldrh r1, [r1] - movs r2, 0 - bl sub_80EB218 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - ldr r1, _080E81F8 @ =0x00009c7e - adds r4, r1 - ldrh r1, [r4] - movs r2, 0 - bl sub_80EB218 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E81EC: .4byte gStringVar2 -_080E81F0: .4byte gSharedMem + 0x1000 -_080E81F4: .4byte 0x00009c7c -_080E81F8: .4byte 0x00009c7e - thumb_func_end sub_80E81C0 - - thumb_func_start sub_80E81FC -sub_80E81FC: @ 80E81FC - push {lr} - movs r0, 0x5 - bl PlaySE - bl sub_80E95A4 - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xD - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_80E81FC - - thumb_func_start sub_80E8218 -sub_80E8218: @ 80E8218 - push {r4,r5,lr} - sub sp, 0x40 - mov r1, sp - ldr r0, _080E8260 @ =gSpriteSheets_Interview - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r4,r5} - stm r1!, {r2,r4,r5} - ldr r0, [r0] - str r0, [r1] - add r4, sp, 0x28 - adds r1, r4, 0 - ldr r0, _080E8264 @ =gSpritePalettes_Interview - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - mov r0, sp - bl LoadSpriteSheets - adds r0, r4, 0 - bl LoadSpritePalettes - bl sub_80E8268 - bl sub_80E8818 - bl sub_80E8A7C - add sp, 0x40 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8260: .4byte gSpriteSheets_Interview -_080E8264: .4byte gSpritePalettes_Interview - thumb_func_end sub_80E8218 - - thumb_func_start sub_80E8268 -sub_80E8268: @ 80E8268 - push {lr} - ldr r0, _080E82B0 @ =gSpriteTemplate_83DBBFC - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E82B4 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r0, _080E82B8 @ =gUnknown_083DB694 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x8A - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x8 - movs r2, 0 - strh r0, [r1, 0x22] - adds r0, r3, 0 - adds r0, 0x88 - ldrh r0, [r0] - lsls r0, 3 - adds r0, 0x4 - strh r0, [r1, 0x20] - strh r2, [r1, 0x2E] - strh r2, [r1, 0x30] - adds r0, r3, 0 - adds r0, 0x98 - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080E82B0: .4byte gSpriteTemplate_83DBBFC -_080E82B4: .4byte gSprites -_080E82B8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8268 - - thumb_func_start sub_80E82BC -sub_80E82BC: @ 80E82BC - push {r4-r7,lr} - adds r3, r0, 0 - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080E838C - ldr r0, _080E8334 @ =gUnknown_083DB694 - ldr r2, [r0] - adds r1, r2, 0 - adds r1, 0x87 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _080E836C - adds r0, r2, 0 - adds r0, 0x86 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r2, 0 - adds r0, 0x85 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r4, r0, 16 - movs r7, 0 - movs r1, 0 - cmp r7, r4 - bcs _080E8316 - lsls r6, r5, 1 - adds r2, 0x8C -_080E8300: - adds r0, r1, r6 - adds r0, r2, r0 - ldrb r0, [r0] - adds r0, r7, r0 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r4 - bcc _080E8300 -_080E8316: - mov r0, r12 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r5, r0 - bne _080E8338 - movs r0, 0x60 - strh r0, [r3, 0x22] - lsls r0, r4, 3 - subs r0, r4 - adds r0, 0x3 - b _080E8356 - .align 2, 0 -_080E8334: .4byte gUnknown_083DB694 -_080E8338: - adds r1, r2, 0 - adds r1, 0x8A - lsls r0, r5, 1 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 3 - adds r0, 0x8 - strh r0, [r3, 0x22] - adds r0, r2, 0 - adds r0, 0x88 - ldrh r0, [r0] - adds r0, r7 - movs r1, 0xB - muls r1, r4 - adds r0, r1 -_080E8356: - lsls r0, 3 - adds r0, 0x4 - strh r0, [r3, 0x20] - movs r1, 0 - ldr r0, _080E8368 @ =0x0000fffa - strh r0, [r3, 0x24] - strh r1, [r3, 0x2E] - b _080E838C - .align 2, 0 -_080E8368: .4byte 0x0000fffa -_080E836C: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E838C - strh r1, [r3, 0x2E] - ldrh r0, [r3, 0x24] - adds r0, 0x1 - strh r0, [r3, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E838C - ldr r0, _080E8394 @ =0x0000fffa - strh r0, [r3, 0x24] -_080E838C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8394: .4byte 0x0000fffa - thumb_func_end sub_80E82BC - - thumb_func_start sub_80E8398 -sub_80E8398: @ 80E8398 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - beq _080E83D4 - cmp r3, 0x1 - bgt _080E83AC - cmp r3, 0 - beq _080E83B2 - b _080E8416 -_080E83AC: - cmp r3, 0x2 - beq _080E83F8 - b _080E8416 -_080E83B2: - ldr r0, _080E83D0 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0x98 - ldr r1, [r0] - strh r3, [r1, 0x30] - ldr r1, [r0] - strh r3, [r1, 0x24] - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83D0: .4byte gUnknown_083DB694 -_080E83D4: - ldr r0, _080E83F4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0x98 - ldr r0, [r1] - movs r2, 0 - strh r3, [r0, 0x30] - ldr r0, [r1] - strh r2, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _080E8414 - .align 2, 0 -_080E83F4: .4byte gUnknown_083DB694 -_080E83F8: - ldr r0, _080E841C @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0x98 - ldr r2, [r1] - movs r3, 0 - movs r0, 0x1 - strh r0, [r2, 0x30] - ldr r0, [r1] - strh r3, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_080E8414: - strb r0, [r1] -_080E8416: - pop {r0} - bx r0 - .align 2, 0 -_080E841C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8398 - - thumb_func_start sub_80E8420 -sub_80E8420: @ 80E8420 - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E84E0 @ =gSpriteTemplate_83DBCAC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080E84E4 @ =gUnknown_083DB694 - ldr r7, [r1] - adds r5, r7, 0 - adds r5, 0x9C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r4, _080E84E8 @ =gSprites - adds r1, r4 - str r1, [r5] - ldr r0, _080E84EC @ =gSpriteAnimTable_83DBC8C - str r0, [sp, 0x8] - ldr r0, _080E84F0 @ =sub_80E872C - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r6, r7, 0 - adds r6, 0xA0 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r6] - ldr r0, _080E84F4 @ =gSpriteAnimTable_83DBC9C - str r0, [sp, 0x8] - ldr r0, _080E84F8 @ =sub_80E8760 - str r0, [sp, 0x14] - mov r0, sp - movs r1, 0 - movs r2, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r2, r7, 0 - adds r2, 0xA4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - str r1, [r2] - ldr r0, [r5] - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r0, [r6] - strh r1, [r0, 0x2E] - ldr r0, [r2] - strh r1, [r0, 0x2E] - movs r0, 0x1 - bl IndexOfSpritePaletteTag - ldr r1, [r5] - lsls r0, 24 - lsrs r0, 20 - ldr r2, _080E84FC @ =0x00000101 - adds r0, r2 - strh r0, [r1, 0x34] - bl sub_80E8534 - adds r1, r7, 0 - adds r1, 0x96 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080E8500 @ =REG_BLDCNT - movs r3, 0xFD - lsls r3, 6 - adds r0, r3, 0 - strh r0, [r1] - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E84E0: .4byte gSpriteTemplate_83DBCAC -_080E84E4: .4byte gUnknown_083DB694 -_080E84E8: .4byte gSprites -_080E84EC: .4byte gSpriteAnimTable_83DBC8C -_080E84F0: .4byte sub_80E872C -_080E84F4: .4byte gSpriteAnimTable_83DBC9C -_080E84F8: .4byte sub_80E8760 -_080E84FC: .4byte 0x00000101 -_080E8500: .4byte REG_BLDCNT - thumb_func_end sub_80E8420 - - thumb_func_start sub_80E8504 -sub_80E8504: @ 80E8504 - push {r4,lr} - ldr r0, _080E8530 @ =gUnknown_083DB694 - ldr r4, [r0] - adds r0, r4, 0 - adds r0, 0x9C - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0 - adds r0, 0xA4 - ldr r0, [r0] - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8530: .4byte gUnknown_083DB694 - thumb_func_end sub_80E8504 - - thumb_func_start sub_80E8534 -sub_80E8534: @ 80E8534 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _080E8554 @ =gUnknown_083DB694 - ldr r3, [r1] - ldr r2, _080E8558 @ =0x000001b7 - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r4, r1, 0 - cmp r0, 0 - beq _080E8560 - ldr r1, _080E855C @ =gUnknown_020388AC - movs r0, 0x1 - b _080E8598 - .align 2, 0 -_080E8554: .4byte gUnknown_083DB694 -_080E8558: .4byte 0x000001b7 -_080E855C: .4byte gUnknown_020388AC -_080E8560: - adds r0, r3, 0 - adds r0, 0x26 - ldrb r2, [r0] - cmp r2, 0 - bne _080E8578 - ldr r0, _080E8574 @ =gUnknown_020388AC - strb r2, [r0] - adds r7, r0, 0 - b _080E859C - .align 2, 0 -_080E8574: .4byte gUnknown_020388AC -_080E8578: - movs r1, 0xD4 - lsls r1, 1 - adds r0, r3, r1 - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 3 - cmp r1, r0 - bne _080E8594 - ldr r1, _080E8590 @ =gUnknown_020388AC - movs r0, 0x2 - b _080E8598 - .align 2, 0 -_080E8590: .4byte gUnknown_020388AC -_080E8594: - ldr r1, _080E85F4 @ =gUnknown_020388AC - movs r0, 0x3 -_080E8598: - strb r0, [r1] - adds r7, r1, 0 -_080E859C: - ldr r2, [r4] - adds r4, r2, 0 - adds r4, 0x9C - ldr r1, [r4] - ldrb r0, [r7] - movs r3, 0 - mov r8, r3 - strh r0, [r1, 0x32] - adds r5, r2, 0 - adds r5, 0xA0 - ldr r1, [r5] - ldrb r0, [r7] - strh r0, [r1, 0x32] - adds r6, r2, 0 - adds r6, 0xA4 - ldr r1, [r6] - ldrb r0, [r7] - strh r0, [r1, 0x32] - ldr r0, [r4] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r5] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r6] - ldrb r1, [r7] - bl StartSpriteAnim - ldr r0, [r4] - movs r1, 0x8 - strh r1, [r0, 0x38] - ldr r0, [r4] - strh r1, [r0, 0x3A] - ldr r0, [r4] - mov r1, r8 - strh r1, [r0, 0x30] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E85F4: .4byte gUnknown_020388AC - thumb_func_end sub_80E8534 - - thumb_func_start sub_80E85F8 -sub_80E85F8: @ 80E85F8 - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080E8624 - ldr r1, _080E8620 @ =gSineTable - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 21 - adds r0, 0x8 - strh r0, [r5, 0x38] - b _080E863A - .align 2, 0 -_080E8620: .4byte gSineTable -_080E8624: - ldr r1, _080E8688 @ =gSineTable - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 21 - movs r0, 0x8 - subs r0, r1 - strh r0, [r5, 0x3A] -_080E863A: - ldrh r0, [r5, 0x30] - adds r0, 0x5 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x30] - ldr r2, _080E868C @ =REG_BLDALPHA - ldrh r0, [r5, 0x3A] - lsls r0, 8 - ldrh r1, [r5, 0x38] - orrs r0, r1 - strh r0, [r2] - ldr r0, _080E8690 @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E871A - bl sub_80E8534 - adds r1, r6, 0 - adds r1, 0x9C - ldr r0, [r1] - movs r2, 0x8 - strh r2, [r0, 0x38] - ldr r0, [r1] - strh r2, [r0, 0x3A] - ldr r1, [r1] - movs r0, 0 - strh r0, [r1, 0x30] - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080E86C4 - cmp r0, 0x1 - bgt _080E8694 - cmp r0, 0 - beq _080E869E - b _080E871A - .align 2, 0 -_080E8688: .4byte gSineTable -_080E868C: .4byte REG_BLDALPHA -_080E8690: .4byte gUnknown_083DB694 -_080E8694: - cmp r0, 0x2 - beq _080E86D6 - cmp r0, 0x3 - beq _080E86DE - b _080E871A -_080E869E: - ldr r2, _080E86C0 @ =0x000001a9 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x20 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r2, 0xC - b _080E870A - .align 2, 0 -_080E86C0: .4byte 0x000001a9 -_080E86C4: - movs r0, 0xD8 - strh r0, [r5, 0x20] - movs r1, 0xD4 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _080E8714 -_080E86D6: - movs r0, 0x97 - strh r0, [r5, 0x20] - movs r0, 0x60 - b _080E8718 -_080E86DE: - ldr r4, _080E8720 @ =gUnknown_083DBCC4 - ldr r2, _080E8724 @ =0x000001a9 - adds r0, r6, r2 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xD4 - lsls r0, 1 - adds r3, r6, r0 - movs r2, 0 - ldrsb r2, [r3, r2] - lsls r0, r2, 3 - subs r0, r2 - adds r1, r0 - adds r1, r4 - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 3 - adds r0, 0x1F - strh r0, [r5, 0x20] - movs r0, 0 - ldrsb r0, [r3, r0] - ldr r2, _080E8728 @ =0x000001b5 -_080E870A: - adds r1, r6, r2 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 -_080E8714: - lsls r0, 4 - adds r0, 0x60 -_080E8718: - strh r0, [r5, 0x22] -_080E871A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8720: .4byte gUnknown_083DBCC4 -_080E8724: .4byte 0x000001a9 -_080E8728: .4byte 0x000001b5 - thumb_func_end sub_80E85F8 - - thumb_func_start sub_80E872C -sub_80E872C: @ 80E872C - push {lr} - adds r2, r0, 0 - ldr r0, _080E875C @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8756 - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - bne _080E8756 - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x20 - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E8756: - pop {r0} - bx r0 - .align 2, 0 -_080E875C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E872C - - thumb_func_start sub_80E8760 -sub_80E8760: @ 80E8760 - push {lr} - adds r2, r0, 0 - ldr r0, _080E8780 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x96 - ldrb r0, [r0] - cmp r0, 0 - beq _080E879E - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080E8784 - cmp r0, 0x2 - beq _080E878E - b _080E879E - .align 2, 0 -_080E8780: .4byte gUnknown_083DB694 -_080E8784: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x40 - b _080E8796 -_080E878E: - adds r1, 0x9C - ldr r0, [r1] - ldrh r0, [r0, 0x20] - adds r0, 0x15 -_080E8796: - strh r0, [r2, 0x20] - ldr r0, [r1] - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x22] -_080E879E: - pop {r0} - bx r0 - thumb_func_end sub_80E8760 - - thumb_func_start sub_80E87A4 -sub_80E87A4: @ 80E87A4 - push {r4,lr} - lsls r0, 24 - ldr r1, _080E87C8 @ =gUnknown_083DB694 - ldr r1, [r1] - adds r2, r1, 0 - adds r2, 0xA8 - ldr r3, [r2] - movs r4, 0 - cmp r0, 0 - bne _080E87BA - movs r4, 0x1 -_080E87BA: - movs r1, 0 - strh r4, [r3, 0x30] - ldr r0, [r2] - strh r1, [r0, 0x24] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E87C8: .4byte gUnknown_083DB694 - thumb_func_end sub_80E87A4 - - thumb_func_start sub_80E87CC -sub_80E87CC: @ 80E87CC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E8810 @ =gUnknown_083DB694 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0xA8 - ldr r0, [r0] - movs r3, 0 - cmp r4, 0 - bne _080E87E6 - movs r3, 0x1 -_080E87E6: - adds r2, r0, 0 - adds r2, 0x3E - lsls r3, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - adds r0, r4, 0 - bl sub_80E87A4 - cmp r4, 0 - beq _080E880A - ldr r0, _080E8814 @ =0x000001b9 - adds r1, r5, r0 - movs r0, 0x1 - strb r0, [r1] -_080E880A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E8810: .4byte gUnknown_083DB694 -_080E8814: .4byte 0x000001b9 - thumb_func_end sub_80E87CC - - thumb_func_start sub_80E8818 -sub_80E8818: @ 80E8818 - push {lr} - ldr r0, _080E8850 @ =gSpriteTemplate_83DBBFC - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080E8854 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x2E] - strh r0, [r1, 0x30] - ldr r0, _080E8858 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xA8 - str r1, [r0] - ldr r0, _080E885C @ =sub_80E8860 - str r0, [r1, 0x1C] - movs r0, 0 - bl sub_80E87CC - pop {r0} - bx r0 - .align 2, 0 -_080E8850: .4byte gSpriteTemplate_83DBBFC -_080E8854: .4byte gSprites -_080E8858: .4byte gUnknown_083DB694 -_080E885C: .4byte sub_80E8860 - thumb_func_end sub_80E8818 - - thumb_func_start sub_80E8860 -sub_80E8860: @ 80E8860 - push {r4,r5,lr} - adds r2, r0, 0 - movs r0, 0x30 - ldrsh r4, [r2, r0] - cmp r4, 0 - bne _080E88E4 - ldr r0, _080E88B0 @ =gUnknown_083DB694 - ldr r3, [r0] - ldr r1, _080E88B4 @ =0x000001b9 - adds r0, r3, r1 - ldrb r1, [r0] - cmp r1, 0 - beq _080E88C4 - ldr r5, _080E88B8 @ =0x000099a5 - adds r0, r3, r5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x58 - muls r0, r1 - adds r0, 0x2C - strh r0, [r2, 0x20] - ldr r1, _080E88BC @ =0x000099a4 - adds r0, r3, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r5, 0x84 - adds r1, r3, r5 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 - lsls r0, 4 - adds r0, 0x60 - strh r0, [r2, 0x22] - ldr r0, _080E88C0 @ =0x0000fffa - strh r0, [r2, 0x24] - strh r4, [r2, 0x2E] - b _080E88E4 - .align 2, 0 -_080E88B0: .4byte gUnknown_083DB694 -_080E88B4: .4byte 0x000001b9 -_080E88B8: .4byte 0x000099a5 -_080E88BC: .4byte 0x000099a4 -_080E88C0: .4byte 0x0000fffa -_080E88C4: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _080E88E4 - strh r1, [r2, 0x2E] - ldrh r0, [r2, 0x24] - adds r0, 0x1 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - ble _080E88E4 - ldr r0, _080E88EC @ =0x0000fffa - strh r0, [r2, 0x24] -_080E88E4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E88EC: .4byte 0x0000fffa - thumb_func_end sub_80E8860 - - thumb_func_start sub_80E88F0 -sub_80E88F0: @ 80E88F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r0, _080E8950 @ =gUnknown_083DB694 - mov r8, r0 - ldr r0, [r0] - movs r6, 0x4 - movs r5, 0 - movs r1, 0xB4 - adds r1, r0 - mov r12, r1 - adds r7, r0, 0 - adds r7, 0xAC -_080E890C: - lsls r2, r4, 2 - adds r3, r7, r2 - ldr r1, [r3] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r3] - strh r5, [r0, 0x30] - add r2, r12 - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - ldr r0, [r2] - strh r5, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E890C - mov r1, r8 - ldr r0, [r1] - ldr r1, _080E8954 @ =0x00009c70 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8950: .4byte gUnknown_083DB694 -_080E8954: .4byte 0x00009c70 - thumb_func_end sub_80E88F0 - - thumb_func_start sub_80E8958 -sub_80E8958: @ 80E8958 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _080E89B4 - movs r0, 0x64 - mov r9, r0 - ldr r0, _080E8998 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r3, _080E899C @ =0x00009c6c - adds r1, r2, r3 - ldr r3, _080E89A0 @ =0x000001b5 - adds r0, r2, r3 - str r0, [r1] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E89A8 - movs r1, 0xDB - lsls r1, 1 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E89A4 @ =0x00009c71 - adds r1, r2, r3 - strb r0, [r1] - b _080E8A00 - .align 2, 0 -_080E8998: .4byte gUnknown_083DB694 -_080E899C: .4byte 0x00009c6c -_080E89A0: .4byte 0x000001b5 -_080E89A4: .4byte 0x00009c71 -_080E89A8: - ldr r1, _080E89B0 @ =0x00009c71 - adds r0, r2, r1 - strb r7, [r0] - b _080E8A00 - .align 2, 0 -_080E89B0: .4byte 0x00009c71 -_080E89B4: - movs r3, 0x78 - mov r9, r3 - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E8A68 @ =0x00009c6c - adds r1, r2, r0 - ldr r3, _080E8A6C @ =0x00009a29 - adds r0, r2, r3 - str r0, [r1] - ldr r1, _080E8A70 @ =0x00009a28 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x4 - ldr r3, _080E8A74 @ =0x00009c71 - adds r1, r2, r3 - strb r0, [r1] - movs r4, 0 - adds r5, r2, 0 - adds r5, 0xB4 - movs r0, 0x5 - negs r0, r0 - mov r12, r0 - movs r6, 0x1 -_080E89E2: - lsls r3, r4, 2 - adds r3, r5, r3 - ldr r1, [r3] - adds r1, 0x3E - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - strh r6, [r0, 0x30] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E89E2 -_080E8A00: - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r3, _080E8A74 @ =0x00009c71 - adds r1, r2, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E8A14 - movs r0, 0 - strb r0, [r1] -_080E8A14: - movs r4, 0 - adds r6, r2, 0 - adds r6, 0xAC - movs r0, 0x5 - negs r0, r0 - mov r8, r0 -_080E8A20: - lsls r2, r4, 2 - adds r2, r6, r2 - ldr r0, [r2] - mov r1, r9 - strh r1, [r0, 0x20] - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r8 - ands r0, r3 - strb r0, [r1] - ldr r0, [r2] - movs r5, 0x1 - strh r5, [r0, 0x30] - ldr r0, [r2] - adds r1, r7, 0 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E8A20 - ldr r0, _080E8A64 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E8A78 @ =0x00009c70 - adds r0, r1 - strb r5, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8A64: .4byte gUnknown_083DB694 -_080E8A68: .4byte 0x00009c6c -_080E8A6C: .4byte 0x00009a29 -_080E8A70: .4byte 0x00009a28 -_080E8A74: .4byte 0x00009c71 -_080E8A78: .4byte 0x00009c70 - thumb_func_end sub_80E8958 - - thumb_func_start sub_80E8A7C -sub_80E8A7C: @ 80E8A7C - push {r4-r7,lr} - sub sp, 0x18 - mov r1, sp - ldr r0, _080E8B68 @ =gSpriteTemplate_83DBD18 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r5, 0 -_080E8A8E: - lsls r2, r5, 3 - adds r2, r5 - lsls r2, 19 - movs r0, 0xA8 - lsls r0, 15 - adds r2, r0 - asrs r2, 16 - mov r0, sp - movs r1, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C @ =gUnknown_083DB694 - ldr r2, [r0] - lsls r0, r5, 2 - adds r2, 0xAC - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 @ =gSprites - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - adds r3, 0x3F - movs r0, 0x1 - adds r2, r5, 0 - ands r2, r0 - lsls r2, 1 - ldrb r0, [r3] - movs r4, 0x3 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8A8E - mov r0, sp - movs r1, 0x3 - strh r1, [r0] - ldr r0, _080E8B74 @ =gSpriteAnimTable_83DBD10 - str r0, [sp, 0x8] - movs r5, 0 - movs r7, 0x3F - movs r6, 0x40 -_080E8AF6: - lsls r4, r5, 2 - adds r1, r4, r5 - lsls r1, 19 - movs r0, 0x8E - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - mov r0, sp - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080E8B6C @ =gUnknown_083DB694 - ldr r2, [r0] - adds r2, 0xB4 - adds r2, r4 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8B70 @ =gSprites - adds r0, r1 - str r0, [r2] - strh r5, [r0, 0x2E] - ldr r3, [r2] - ldrb r1, [r3, 0x1] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x1] - ldr r3, [r2] - ldrb r1, [r3, 0x3] - adds r0, r7, 0 - ands r0, r1 - orrs r0, r6 - strb r0, [r3, 0x3] - ldr r0, [r2] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080E8AF6 - movs r0, 0 - bl sub_80E8958 - bl sub_80E88F0 - add sp, 0x18 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8B68: .4byte gSpriteTemplate_83DBD18 -_080E8B6C: .4byte gUnknown_083DB694 -_080E8B70: .4byte gSprites -_080E8B74: .4byte gSpriteAnimTable_83DBD10 - thumb_func_end sub_80E8A7C - - thumb_func_start sub_80E8B78 -sub_80E8B78: @ 80E8B78 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _080E8BB0 @ =gUnknown_083DB694 - ldr r1, [r0] - ldr r2, _080E8BB4 @ =0x00009c70 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x30 - ldrsh r0, [r3, r2] - cmp r0, 0 - beq _080E8BE8 - movs r2, 0x2E - ldrsh r0, [r3, r2] - cmp r0, 0 - bne _080E8BBC - movs r4, 0 - ldr r2, _080E8BB8 @ =0x00009c6c - adds r0, r1, r2 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - bne _080E8BD6 - b _080E8BD4 - .align 2, 0 -_080E8BB0: .4byte gUnknown_083DB694 -_080E8BB4: .4byte 0x00009c70 -_080E8BB8: .4byte 0x00009c6c -_080E8BBC: - movs r4, 0 - ldr r2, _080E8BF0 @ =0x00009c6c - adds r0, r1, r2 - ldr r0, [r0] - adds r2, 0x5 - adds r1, r2 - movs r2, 0 - ldrsb r2, [r0, r2] - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _080E8BD6 -_080E8BD4: - movs r4, 0x1 -_080E8BD6: - adds r2, r3, 0 - adds r2, 0x3E - lsls r3, r4, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_080E8BE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E8BF0: .4byte 0x00009c6c - thumb_func_end sub_80E8B78 - - thumb_func_start sub_80E8BF4 -sub_80E8BF4: @ 80E8BF4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - ldr r0, _080E8C28 @ =gUnknown_083DBD30 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x4] - str r1, [sp, 0x8] - ldr r0, _080E8C2C @ =gUnknown_083DBD38 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - cmp r2, 0x2 - beq _080E8C20 - cmp r2, 0x5 - beq _080E8C30 -_080E8C20: - movs r4, 0x40 - movs r5, 0x28 - b _080E8C34 - .align 2, 0 -_080E8C28: .4byte gUnknown_083DBD30 -_080E8C2C: .4byte gUnknown_083DBD38 -_080E8C30: - movs r4, 0x24 - movs r5, 0x30 -_080E8C34: - cmp r3, 0 - beq _080E8C3C - cmp r3, 0x1 - beq _080E8C40 -_080E8C3C: - movs r0, 0x43 - b _080E8C42 -_080E8C40: - movs r0, 0x44 -_080E8C42: - mov r8, r0 - add r0, sp, 0x4 - bl LoadCompressedObjectPic - add r0, sp, 0xC - bl LoadSpritePalette - ldr r0, _080E8CDC @ =gSpriteTemplate_83DBD48 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x1 - bl CreateSprite - ldr r0, _080E8CE0 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - movs r1, 0x69 - cmp r0, 0 - bne _080E8C68 - movs r1, 0x64 -_080E8C68: - ldr r7, _080E8CE4 @ =SpriteCallbackDummy - adds r2, r4, 0 - subs r2, 0xC - movs r6, 0 - str r6, [sp] - adds r0, r1, 0 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8C9E - ldr r1, _080E8CE8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x3 - bl StartSpriteAnim -_080E8C9E: - adds r2, r4, 0 - adds r2, 0xC - str r6, [sp] - mov r0, r8 - adds r1, r7, 0 - adds r3, r5, 0 - bl AddPseudoFieldObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E8CD0 - ldr r1, _080E8CE8 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x2 - bl StartSpriteAnim -_080E8CD0: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E8CDC: .4byte gSpriteTemplate_83DBD48 -_080E8CE0: .4byte gSaveBlock2 -_080E8CE4: .4byte SpriteCallbackDummy -_080E8CE8: .4byte gSprites - thumb_func_end sub_80E8BF4 - - thumb_func_start sub_80E8CEC -sub_80E8CEC: @ 80E8CEC - push {lr} - ldr r0, _080E8D24 @ =gUnknown_083DBD60 - bl LoadCompressedObjectPic - ldr r0, _080E8D28 @ =gUnknown_083DBD68 - bl LoadSpritePalette - ldr r0, _080E8D2C @ =gSpriteTemplate_83DBDE4 - movs r1, 0xE0 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080E8D3C - ldr r0, _080E8D30 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E8D34 @ =0x00009c74 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080E8D38 @ =gSprites - adds r0, r1 - str r0, [r2] - b _080E8D48 - .align 2, 0 -_080E8D24: .4byte gUnknown_083DBD60 -_080E8D28: .4byte gUnknown_083DBD68 -_080E8D2C: .4byte gSpriteTemplate_83DBDE4 -_080E8D30: .4byte gUnknown_083DB694 -_080E8D34: .4byte 0x00009c74 -_080E8D38: .4byte gSprites -_080E8D3C: - ldr r0, _080E8D4C @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E8D50 @ =0x00009c74 - adds r0, r1 - movs r1, 0 - str r1, [r0] -_080E8D48: - pop {r0} - bx r0 - .align 2, 0 -_080E8D4C: .4byte gUnknown_083DB694 -_080E8D50: .4byte 0x00009c74 - thumb_func_end sub_80E8CEC - - thumb_func_start sub_80E8D54 -sub_80E8D54: @ 80E8D54 - push {lr} - ldr r0, _080E8D78 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r1, _080E8D7C @ =0x00009c74 - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8D88 - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8D80 - adds r0, r1, 0 - movs r1, 0x1 - bl StartSpriteAnim - b _080E8D88 - .align 2, 0 -_080E8D78: .4byte gUnknown_083DB694 -_080E8D7C: .4byte 0x00009c74 -_080E8D80: - adds r0, r1, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080E8D88: - pop {r0} - bx r0 - thumb_func_end sub_80E8D54 - - thumb_func_start sub_80E8D8C -sub_80E8D8C: @ 80E8D8C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080E8DB8 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r1, _080E8DBC @ =0x00009c74 - adds r0, r2, r1 - ldr r1, [r0] - cmp r1, 0 - beq _080E8DD2 - cmp r3, 0 - beq _080E8DCA - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E8DC0 - adds r0, r1, 0 - movs r1, 0x3 - bl StartSpriteAnim - b _080E8DD2 - .align 2, 0 -_080E8DB8: .4byte gUnknown_083DB694 -_080E8DBC: .4byte 0x00009c74 -_080E8DC0: - adds r0, r1, 0 - movs r1, 0x4 - bl StartSpriteAnim - b _080E8DD2 -_080E8DCA: - adds r0, r1, 0 - movs r1, 0x5 - bl StartSpriteAnim -_080E8DD2: - pop {r0} - bx r0 - thumb_func_end sub_80E8D8C - - thumb_func_start sub_80E8DD8 -sub_80E8DD8: @ 80E8DD8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - ldr r0, _080E8F2C @ =REG_BG0HOFS - movs r6, 0 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - subs r0, 0x2 - strh r6, [r0] - adds r0, 0x4 - strh r6, [r0] - adds r0, 0x2 - strh r6, [r0] - ldr r1, _080E8F30 @ =REG_BG0CNT - movs r2, 0x8B - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _080E8F34 @ =0x00000d09 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080E8F38 @ =gUnknown_08E945D0 - ldr r1, _080E8F3C @ =gUnknown_083DB694 - ldr r1, [r1] - mov r8, r1 - movs r4, 0xE4 - lsls r4, 1 - add r4, r8 - movs r5, 0xA0 - lsls r5, 2 - adds r1, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F40 @ =gUnknown_08E953D0 - movs r1, 0xD9 - lsls r1, 3 - add r1, r8 - bl LZ77UnCompWram - ldr r0, _080E8F44 @ =gMenuWordGroupFrame_Gfx - ldr r1, _080E8F48 @ =0x06008000 - bl LZ77UnCompVram - ldr r1, _080E8F4C @ =0x06006800 - adds r0, r4, 0 - adds r2, r5, 0 - bl CpuSet - ldr r0, _080E8F50 @ =gMenuWordGroupFrame1_Pal - movs r1, 0x40 - movs r2, 0x40 - bl LoadPalette - ldr r1, _080E8F54 @ =REG_BG2CNT - ldr r2, _080E8F58 @ =0x00000e02 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F5C @ =0x06007000 - movs r5, 0x80 - lsls r5, 4 - mov r0, sp - strh r6, [r0] - ldr r4, _080E8F60 @ =0x040000d4 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r0, r5, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F64 @ =gUnknown_08E9AB00 - ldr r2, _080E8F68 @ =0x06006000 - str r0, [r4] - str r2, [r4, 0x4] - ldr r0, _080E8F6C @ =0x80000020 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F70 @ =gUnknown_08E9AB60 - bl LZ77UnCompVram - ldr r0, _080E8F74 @ =gUnknown_08E9AB40 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F78 @ =gUnknown_083DBDFC - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r1, _080E8F7C @ =REG_BG3CNT - ldr r2, _080E8F80 @ =0x00000f0f - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _080E8F84 @ =0x06007800 - movs r0, 0 - mov r9, r0 - str r0, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r4] - str r1, [r4, 0x4] - lsrs r5, 2 - movs r0, 0x85 - lsls r0, 24 - orrs r5, r0 - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _080E8F88 @ =gUnknown_083DBE40 - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080E8F8C @ =gPlttBufferUnfaded - adds r1, r0, 0 - adds r1, 0x7E - ldr r3, _080E8F90 @ =0x00007fff - strh r3, [r1] - subs r1, 0x1C - ldr r2, _080E8F94 @ =0x00006f5b - strh r2, [r1] - adds r0, 0x70 - ldr r1, _080E8F98 @ =0x0000739c - strh r1, [r0] - ldr r0, _080E8F9C @ =gPlttBufferFaded - adds r4, r0, 0 - adds r4, 0x7E - strh r3, [r4] - adds r3, r0, 0 - adds r3, 0x62 - strh r2, [r3] - adds r0, 0x70 - strh r1, [r0] - movs r1, 0xBC - add r8, r1 - mov r2, r8 - strb r6, [r2] - bl sub_80E8FA4 - bl sub_80E948C - movs r0, 0xA - bl sub_80E9198 - movs r0, 0 - bl sub_80E91D4 - bl sub_80E95A4 - ldr r0, _080E8FA0 @ =REG_BLDCNT - mov r1, r9 - strh r1, [r0] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E8F2C: .4byte REG_BG0HOFS -_080E8F30: .4byte REG_BG0CNT -_080E8F34: .4byte 0x00000d09 -_080E8F38: .4byte gUnknown_08E945D0 -_080E8F3C: .4byte gUnknown_083DB694 -_080E8F40: .4byte gUnknown_08E953D0 -_080E8F44: .4byte gMenuWordGroupFrame_Gfx -_080E8F48: .4byte 0x06008000 -_080E8F4C: .4byte 0x06006800 -_080E8F50: .4byte gMenuWordGroupFrame1_Pal -_080E8F54: .4byte REG_BG2CNT -_080E8F58: .4byte 0x00000e02 -_080E8F5C: .4byte 0x06007000 -_080E8F60: .4byte 0x040000d4 -_080E8F64: .4byte gUnknown_08E9AB00 -_080E8F68: .4byte 0x06006000 -_080E8F6C: .4byte 0x80000020 -_080E8F70: .4byte gUnknown_08E9AB60 -_080E8F74: .4byte gUnknown_08E9AB40 -_080E8F78: .4byte gUnknown_083DBDFC -_080E8F7C: .4byte REG_BG3CNT -_080E8F80: .4byte 0x00000f0f -_080E8F84: .4byte 0x06007800 -_080E8F88: .4byte gUnknown_083DBE40 -_080E8F8C: .4byte gPlttBufferUnfaded -_080E8F90: .4byte 0x00007fff -_080E8F94: .4byte 0x00006f5b -_080E8F98: .4byte 0x0000739c -_080E8F9C: .4byte gPlttBufferFaded -_080E8FA0: .4byte REG_BLDCNT - thumb_func_end sub_80E8DD8 - - thumb_func_start sub_80E8FA4 -sub_80E8FA4: @ 80E8FA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - movs r0, 0 - mov r9, r0 - mov r1, sp - adds r1, 0x18 - str r1, [sp, 0x24] - add r2, sp, 0xC - mov r12, r2 -_080E8FBE: - mov r3, r9 - lsls r1, r3, 1 - ldr r4, _080E90F4 @ =gMenuWordGroupFrame2_Pal + 0x2 - adds r0, r1, r4 - ldrh r2, [r0] - movs r0, 0x1F - ands r0, r2 - lsls r0, 8 - str r0, [sp] - ldr r5, _080E90F8 @ =gMenuWordGroupFrame2_Pal + 0x8 - adds r1, r5 - ldrh r1, [r1] - movs r0, 0x1F - ands r0, r1 - lsls r0, 8 - str r0, [sp, 0xC] - lsls r2, 16 - lsrs r0, r2, 21 - movs r3, 0x1F - ands r0, r3 - lsls r0, 8 - str r0, [sp, 0x4] - lsls r1, 16 - lsrs r0, r1, 21 - ands r0, r3 - lsls r0, 8 - mov r4, r12 - str r0, [r4, 0x4] - lsrs r2, 26 - ands r2, r3 - lsls r2, 8 - str r2, [sp, 0x8] - lsrs r1, 26 - ands r1, r3 - lsls r1, 8 - str r1, [r4, 0x8] - movs r3, 0 - mov r5, r9 - lsls r5, 3 - mov r10, r5 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x28] - ldr r4, [sp, 0x24] -_080E9016: - lsls r0, r3, 2 - adds r2, r4, r0 - mov r5, r12 - adds r1, r5, r0 - add r0, sp - ldr r1, [r1] - ldr r0, [r0] - subs r0, r1, r0 - cmp r0, 0 - bge _080E902C - adds r0, 0x7 -_080E902C: - asrs r0, 3 - str r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9016 - movs r4, 0 - ldr r0, _080E90FC @ =gUnknown_083DB694 - ldr r1, [r0] - mov r0, r10 - add r0, r9 - lsls r0, 1 - mov r8, r0 - movs r5, 0x1F - ldr r6, [sp, 0x24] - ldr r0, _080E9100 @ =0x00009c34 - adds r7, r1, r0 -_080E9050: - lsls r2, r4, 1 - add r2, r8 - adds r2, r7, r2 - ldr r1, [sp, 0x8] - asrs r1, 8 - ands r1, r5 - lsls r1, 10 - ldr r0, [sp, 0x4] - asrs r0, 8 - ands r0, r5 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp] - asrs r0, 8 - ands r0, r5 - orrs r1, r0 - strh r1, [r2] - movs r3, 0 - adds r4, 0x1 -_080E9076: - lsls r0, r3, 2 - mov r1, sp - adds r2, r1, r0 - adds r0, r6, r0 - ldr r1, [r2] - ldr r0, [r0] - adds r1, r0 - str r1, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x2 - bls _080E9076 - lsls r0, r4, 16 - lsrs r4, r0, 16 - cmp r4, 0x7 - bls _080E9050 - ldr r2, _080E90FC @ =gUnknown_083DB694 - ldr r3, [r2] - mov r0, r10 - add r0, r9 - adds r0, r4 - lsls r0, 1 - ldr r4, _080E9100 @ =0x00009c34 - adds r2, r3, r4 - adds r2, r0 - mov r5, r12 - ldr r1, [r5, 0x8] - asrs r1, 8 - movs r0, 0x1F - ands r1, r0 - lsls r1, 10 - ldr r0, [r5, 0x4] - asrs r0, 8 - movs r4, 0x1F - ands r0, r4 - lsls r0, 5 - orrs r1, r0 - ldr r0, [sp, 0xC] - asrs r0, 8 - ands r0, r4 - orrs r1, r0 - strh r1, [r2] - ldr r5, [sp, 0x28] - lsls r0, r5, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x2 - bhi _080E90DA - b _080E8FBE -_080E90DA: - ldr r0, _080E9104 @ =0x00009c32 - adds r1, r3, r0 - movs r0, 0 - strb r0, [r1] - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E90F4: .4byte gMenuWordGroupFrame2_Pal + 0x2 -_080E90F8: .4byte gMenuWordGroupFrame2_Pal + 0x8 -_080E90FC: .4byte gUnknown_083DB694 -_080E9100: .4byte 0x00009c34 -_080E9104: .4byte 0x00009c32 - thumb_func_end sub_80E8FA4 - - thumb_func_start sub_80E9108 -sub_80E9108: @ 80E9108 - push {r4-r7,lr} - lsls r0, 24 - ldr r1, _080E9164 @ =gUnknown_083DB694 - ldr r2, [r1] - ldr r3, _080E9168 @ =0x00009c32 - adds r1, r2, r3 - lsrs r0, 24 - ldrb r3, [r1] - adds r0, r3 - strb r0, [r1] - movs r4, 0 - ldr r0, _080E916C @ =gPlttBufferUnfaded - mov r12, r0 - adds r6, r1, 0 - ldr r3, _080E9170 @ =0x00009c34 - adds r5, r2, r3 - ldr r7, _080E9174 @ =gPlttBufferFaded -_080E912A: - adds r2, r4, 0 - adds r2, 0x51 - lsls r2, 1 - mov r0, r12 - adds r3, r2, r0 - ldrb r0, [r6] - lsls r0, 1 - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r3] - adds r2, r7 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x2 - bls _080E912A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9164: .4byte gUnknown_083DB694 -_080E9168: .4byte 0x00009c32 -_080E916C: .4byte gPlttBufferUnfaded -_080E9170: .4byte 0x00009c34 -_080E9174: .4byte gPlttBufferFaded - thumb_func_end sub_80E9108 - - thumb_func_start sub_80E9178 -sub_80E9178: @ 80E9178 - push {lr} - ldr r0, _080E9190 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E9194 @ =0x00009c32 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0 - bl sub_80E9108 - pop {r0} - bx r0 - .align 2, 0 -_080E9190: .4byte gUnknown_083DB694 -_080E9194: .4byte 0x00009c32 - thumb_func_end sub_80E9178 - - thumb_func_start sub_80E9198 -sub_80E9198: @ 80E9198 - ldr r1, _080E91A0 @ =gUnknown_03000740 - strb r0, [r1] - bx lr - .align 2, 0 -_080E91A0: .4byte gUnknown_03000740 - thumb_func_end sub_80E9198 - - thumb_func_start sub_80E91A4 -sub_80E91A4: @ 80E91A4 - ldr r0, _080E91AC @ =gUnknown_03000740 - ldrb r0, [r0] - bx lr - .align 2, 0 -_080E91AC: .4byte gUnknown_03000740 - thumb_func_end sub_80E91A4 - - thumb_func_start sub_80E91B0 -sub_80E91B0: @ 80E91B0 - push {lr} - sub sp, 0x8 - lsls r2, 24 - lsls r1, 27 - lsrs r1, 24 - lsrs r2, 21 - lsls r3, 27 - lsrs r3, 24 - str r3, [sp] - movs r3, 0x1 - str r3, [sp, 0x4] - movs r3, 0xB0 - bl sub_8072AB0 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80E91B0 - - thumb_func_start sub_80E91D4 -sub_80E91D4: @ 80E91D4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _080E91FC @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - cmp r4, 0xA - bne _080E9200 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0xA - bl sub_80E9198 - b _080E935C - .align 2, 0 -_080E91FC: .4byte gWindowConfig_81E6DA8 -_080E9200: - bl sub_80E91A4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xA - bne _080E9218 - movs r0, 0x3 - movs r1, 0xE - movs r2, 0x1A - movs r3, 0x13 - bl MenuDrawTextWindow -_080E9218: - adds r0, r4, 0 - bl sub_80E9198 - cmp r4, 0x9 - bls _080E9224 - b _080E935C -_080E9224: - lsls r0, r4, 2 - ldr r1, _080E9230 @ =_080E9234 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9230: .4byte _080E9234 - .align 2, 0 -_080E9234: - .4byte _080E925C - .4byte _080E9284 - .4byte _080E92AC - .4byte _080E92C4 - .4byte _080E92F0 - .4byte _080E9308 - .4byte _080E9310 - .4byte _080E9318 - .4byte _080E933C - .4byte _080E9350 -_080E925C: - ldr r0, _080E9278 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r1, _080E927C @ =0x00009c80 - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9280 @ =0x00009cc9 - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E9278: .4byte gUnknown_083DB694 -_080E927C: .4byte 0x00009c80 -_080E9280: .4byte 0x00009cc9 -_080E9284: - ldr r0, _080E92A0 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r1, _080E92A4 @ =0x00009d12 - adds r0, r4, r1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92A8 @ =0x00009d5b - adds r4, r0 - adds r0, r4, 0 - b _080E9326 - .align 2, 0 -_080E92A0: .4byte gUnknown_083DB694 -_080E92A4: .4byte 0x00009d12 -_080E92A8: .4byte 0x00009d5b -_080E92AC: - ldr r0, _080E92BC @ =gOtherText_TextDeletedConfirmPage1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E92C0 @ =gOtherText_TextDeletedConfirmPage2 - b _080E9326 - .align 2, 0 -_080E92BC: .4byte gOtherText_TextDeletedConfirmPage1 -_080E92C0: .4byte gOtherText_TextDeletedConfirmPage2 -_080E92C4: - ldr r0, _080E92D8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0x4 - beq _080E92E0 - cmp r0, 0x9 - bne _080E92E8 - ldr r0, _080E92DC @ =gOtherText_QuitGivingInfo - b _080E933E - .align 2, 0 -_080E92D8: .4byte gUnknown_083DB694 -_080E92DC: .4byte gOtherText_QuitGivingInfo -_080E92E0: - ldr r0, _080E92E4 @ =gOtherText_StopGivingMail - b _080E933E - .align 2, 0 -_080E92E4: .4byte gOtherText_StopGivingMail -_080E92E8: - ldr r0, _080E92EC @ =gOtherText_QuitEditing - b _080E933E - .align 2, 0 -_080E92EC: .4byte gOtherText_QuitEditing -_080E92F0: - ldr r0, _080E9300 @ =gOtherText_EditedTextNoSavePage1 - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9304 @ =gOtherText_EditedTextNoSavePage2 - b _080E9326 - .align 2, 0 -_080E9300: .4byte gOtherText_EditedTextNoSavePage1 -_080E9304: .4byte gOtherText_EditedTextNoSavePage2 -_080E9308: - ldr r0, _080E930C @ =gOtherText_EnterAPhraseOrWord - b _080E933E - .align 2, 0 -_080E930C: .4byte gOtherText_EnterAPhraseOrWord -_080E9310: - ldr r0, _080E9314 @ =gOtherText_TextNoDelete - b _080E933E - .align 2, 0 -_080E9314: .4byte gOtherText_TextNoDelete -_080E9318: - ldr r0, _080E9334 @ =gOtherText_OnlyOnePhrase - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x2 - bl sub_80E91B0 - ldr r0, _080E9338 @ =gOtherText_OriginalSongRestored -_080E9326: - movs r1, 0x4 - movs r2, 0x11 - movs r3, 0x2 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E9334: .4byte gOtherText_OnlyOnePhrase -_080E9338: .4byte gOtherText_OriginalSongRestored -_080E933C: - ldr r0, _080E934C @ =gOtherText_TrendyAlready -_080E933E: - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 - b _080E935C - .align 2, 0 -_080E934C: .4byte gOtherText_TrendyAlready -_080E9350: - ldr r0, _080E9364 @ =gOtherText_CombineTwoPhrases - movs r1, 0x4 - movs r2, 0xF - movs r3, 0x4 - bl sub_80E91B0 -_080E935C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9364: .4byte gOtherText_CombineTwoPhrases - thumb_func_end sub_80E91D4 - - thumb_func_start sub_80E9368 -sub_80E9368: @ 80E9368 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bhi _080E93F8 - lsls r0, 2 - ldr r1, _080E937C @ =_080E9380 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E937C: .4byte _080E9380 - .align 2, 0 -_080E9380: - .4byte _080E93B8 - .4byte _080E93C0 - .4byte _080E93C8 - .4byte _080E93D0 - .4byte _080E93F8 - .4byte _080E93E8 - .4byte _080E93D8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E0 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93E8 - .4byte _080E93F0 -_080E93B8: - ldr r4, _080E93BC @ =gOtherText_Profile - b _080E93FA - .align 2, 0 -_080E93BC: .4byte gOtherText_Profile -_080E93C0: - ldr r4, _080E93C4 @ =gOtherText_AtBattleStart - b _080E93FA - .align 2, 0 -_080E93C4: .4byte gOtherText_AtBattleStart -_080E93C8: - ldr r4, _080E93CC @ =gOtherText_UponWinningBattle - b _080E93FA - .align 2, 0 -_080E93CC: .4byte gOtherText_UponWinningBattle -_080E93D0: - ldr r4, _080E93D4 @ =gOtherText_UponLosingBattle - b _080E93FA - .align 2, 0 -_080E93D4: .4byte gOtherText_UponLosingBattle -_080E93D8: - ldr r4, _080E93DC @ =gOtherText_TheBardsSong - b _080E93FA - .align 2, 0 -_080E93DC: .4byte gOtherText_TheBardsSong -_080E93E0: - ldr r4, _080E93E4 @ =gOtherText_WhatsHipHappening - b _080E93FA - .align 2, 0 -_080E93E4: .4byte gOtherText_WhatsHipHappening -_080E93E8: - ldr r4, _080E93EC @ =gOtherText_Interview - b _080E93FA - .align 2, 0 -_080E93EC: .4byte gOtherText_Interview -_080E93F0: - ldr r4, _080E93F4 @ =gOtherText_GoodSaying - b _080E93FA - .align 2, 0 -_080E93F4: .4byte gOtherText_GoodSaying -_080E93F8: - movs r4, 0 -_080E93FA: - ldr r0, _080E943C @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E9440 @ =gUnknown_083DB694 - ldr r2, [r0] - ldr r0, _080E9444 @ =0x00009f8e - adds r5, r2, r0 - movs r3, 0xFC - strb r3, [r5] - adds r0, 0x1 - adds r1, r2, r0 - movs r0, 0x5 - strb r0, [r1] - ldr r0, _080E9448 @ =0x00009f90 - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] - cmp r4, 0 - beq _080E9450 - ldr r1, _080E944C @ =0x00009f91 - adds r0, r2, r1 - adds r1, r4, 0 - movs r2, 0xF0 - movs r3, 0x2 - bl sub_8072C74 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - b _080E9476 - .align 2, 0 -_080E943C: .4byte gWindowConfig_81E6D8C -_080E9440: .4byte gUnknown_083DB694 -_080E9444: .4byte 0x00009f8e -_080E9448: .4byte 0x00009f90 -_080E944C: .4byte 0x00009f91 -_080E9450: - ldr r0, _080E9484 @ =0x00009f91 - adds r1, r2, r0 - strb r3, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0x1C - movs r2, 0 - bl MenuPrint -_080E9476: - ldr r0, _080E9488 @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9484: .4byte 0x00009f91 -_080E9488: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9368 - - thumb_func_start sub_80E948C -sub_80E948C: @ 80E948C - push {lr} - sub sp, 0x10 - ldr r0, _080E94A8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bls _080E949C - b _080E9594 -_080E949C: - lsls r0, 2 - ldr r1, _080E94AC @ =_080E94B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E94A8: .4byte gUnknown_083DB694 -_080E94AC: .4byte _080E94B0 - .align 2, 0 -_080E94B0: - .4byte _080E9508 - .4byte _080E9530 - .4byte _080E9554 - .4byte _080E9578 - .4byte _080E94C8 - .4byte _080E94E8 -_080E94C8: - ldr r0, _080E94E0 @ =0x06006800 - ldr r3, _080E94E4 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x1A - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x6 - str r1, [sp, 0xC] - movs r1, 0x3 - b _080E9568 - .align 2, 0 -_080E94E0: .4byte 0x06006800 -_080E94E4: .4byte gUnknown_08E94AD0 -_080E94E8: - ldr r0, _080E9500 @ =0x06006800 - ldr r3, _080E9504 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - movs r1, 0xD - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0xE - b _080E951E - .align 2, 0 -_080E9500: .4byte 0x06006800 -_080E9504: .4byte gUnknown_08E94AD0 -_080E9508: - ldr r0, _080E9528 @ =0x06006800 - ldr r3, _080E952C @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0xA - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0x8 - str r1, [sp, 0xC] - movs r1, 0x2 -_080E951E: - movs r2, 0x2 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9528: .4byte 0x06006800 -_080E952C: .4byte gUnknown_08E94AD0 -_080E9530: - ldr r0, _080E954C @ =0x06006800 - ldr r3, _080E9550 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x1A - str r1, [sp, 0x8] - movs r1, 0xA - str r1, [sp, 0xC] - movs r1, 0x2 - movs r2, 0 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E954C: .4byte 0x06006800 -_080E9550: .4byte gUnknown_08E94AD0 -_080E9554: - ldr r0, _080E9570 @ =0x06006800 - ldr r3, _080E9574 @ =gUnknown_08E94AD0 - movs r2, 0xD - str r2, [sp] - movs r1, 0x12 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0xE -_080E9568: - movs r2, 0x3 - bl sub_809D104 - b _080E9594 - .align 2, 0 -_080E9570: .4byte 0x06006800 -_080E9574: .4byte gUnknown_08E94AD0 -_080E9578: - ldr r0, _080E959C @ =0x06006800 - ldr r3, _080E95A0 @ =gUnknown_08E94AD0 - movs r1, 0 - str r1, [sp] - movs r1, 0x20 - str r1, [sp, 0x4] - movs r1, 0x18 - str r1, [sp, 0x8] - movs r1, 0x4 - str r1, [sp, 0xC] - movs r1, 0x3 - movs r2, 0x2 - bl sub_809D104 -_080E9594: - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080E959C: .4byte 0x06006800 -_080E95A0: .4byte gUnknown_08E94AD0 - thumb_func_end sub_80E948C - - thumb_func_start sub_80E95A4 -sub_80E95A4: @ 80E95A4 - push {lr} - ldr r0, _080E95C0 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E95C4 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9612 - lsls r0, 2 - ldr r1, _080E95C8 @ =_080E95CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E95C0: .4byte gWindowConfig_81E6D8C -_080E95C4: .4byte gUnknown_083DB694 -_080E95C8: .4byte _080E95CC - .align 2, 0 -_080E95CC: - .4byte _080E95F2 - .4byte _080E95F6 - .4byte _080E9600 - .4byte _080E960A - .4byte _080E95E4 - .4byte _080E95EE -_080E95E4: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E9620 - b _080E9612 -_080E95EE: - movs r0, 0x2 - b _080E9602 -_080E95F2: - movs r0, 0x3 - b _080E95F8 -_080E95F6: - movs r0, 0 -_080E95F8: - movs r1, 0x5 - bl sub_80E9620 - b _080E9612 -_080E9600: - movs r0, 0x4 -_080E9602: - movs r1, 0x11 - bl sub_80E9620 - b _080E9612 -_080E960A: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E9620 -_080E9612: - ldr r0, _080E961C @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E961C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E95A4 - - thumb_func_start sub_80E9620 -sub_80E9620: @ 80E9620 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r1, 0 - mov r10, r1 - lsrs r7, r0, 16 - mov r9, r1 - ldr r0, _080E9644 @ =gUnknown_083DB694 - ldr r0, [r0] - b _080E971A - .align 2, 0 -_080E9644: .4byte gUnknown_083DB694 -_080E9648: - ldr r6, [sp, 0x14] - movs r2, 0 - mov r8, r2 - adds r0, r7, 0x2 - str r0, [sp, 0x1C] - mov r1, r9 - adds r1, 0x1 - str r1, [sp, 0x18] - b _080E96E4 -_080E965A: - mov r2, r10 - lsls r0, r2, 1 - adds r1, r5, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - ldr r2, _080E9690 @ =0x0000ffff - cmp r0, r2 - bne _080E969C - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - str r1, [sp, 0x10] - ldr r0, _080E9694 @ =0x06007000 - adds r1, r6, 0 - adds r2, r7, 0 - ldr r3, _080E9698 @ =gUnknown_083DBE1C - bl sub_8095C8C - adds r0, r6, 0 - adds r0, 0xB - b _080E96CC - .align 2, 0 -_080E9690: .4byte 0x0000ffff -_080E9694: .4byte 0x06007000 -_080E9698: .4byte gUnknown_083DBE1C -_080E969C: - ldr r0, _080E9738 @ =0x00009e14 - adds r4, r5, r0 - ldrh r1, [r1] - adds r0, r4, 0 - movs r2, 0xB - bl sub_80EB218 - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - adds r0, r4, 0 - bl MenuPrint - mov r1, r9 - lsls r0, r1, 1 - add r0, r8 - adds r1, r5, 0 - adds r1, 0x8C - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xB - ldrb r1, [r1] - adds r0, r1 -_080E96CC: - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r10 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_080E96E4: - ldr r0, _080E973C @ =gUnknown_083DB694 - ldr r5, [r0] - adds r0, r5, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r8, r0 - bge _080E970A - ldrb r2, [r5, 0xA] - cmp r10, r2 - bcc _080E965A - lsls r1, r6, 24 - lsrs r1, 24 - lsls r2, r7, 24 - lsrs r2, 24 - ldr r0, _080E9740 @ =gUnknown_083DBEA8 - bl MenuPrint -_080E970A: - ldr r1, [sp, 0x1C] - lsls r0, r1, 16 - lsrs r7, r0, 16 - ldr r2, [sp, 0x18] - lsls r0, r2, 16 - lsrs r0, 16 - mov r9, r0 - adds r0, r5, 0 -_080E971A: - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r9, r0 - blt _080E9648 - 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 -_080E9738: .4byte 0x00009e14 -_080E973C: .4byte gUnknown_083DB694 -_080E9740: .4byte gUnknown_083DBEA8 - thumb_func_end sub_80E9620 - - thumb_func_start sub_80E9744 -sub_80E9744: @ 80E9744 - push {lr} - ldr r0, _080E9760 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E9764 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E97B2 - lsls r0, 2 - ldr r1, _080E9768 @ =_080E976C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9760: .4byte gWindowConfig_81E6D8C -_080E9764: .4byte gUnknown_083DB694 -_080E9768: .4byte _080E976C - .align 2, 0 -_080E976C: - .4byte _080E9792 - .4byte _080E9796 - .4byte _080E97A0 - .4byte _080E97AA - .4byte _080E9784 - .4byte _080E978E -_080E9784: - movs r0, 0x4 - movs r1, 0x6 - bl sub_80E97C0 - b _080E97B2 -_080E978E: - movs r0, 0x2 - b _080E97A2 -_080E9792: - movs r0, 0x3 - b _080E9798 -_080E9796: - movs r0, 0 -_080E9798: - movs r1, 0x5 - bl sub_80E97C0 - b _080E97B2 -_080E97A0: - movs r0, 0x4 -_080E97A2: - movs r1, 0x11 - bl sub_80E97C0 - b _080E97B2 -_080E97AA: - movs r0, 0x3 - movs r1, 0x6 - bl sub_80E97C0 -_080E97B2: - ldr r0, _080E97BC @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow - pop {r0} - bx r0 - .align 2, 0 -_080E97BC: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E9744 - - thumb_func_start sub_80E97C0 -sub_80E97C0: @ 80E97C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r7, 0 - movs r3, 0 - ldr r1, _080E98B8 @ =gUnknown_083DB694 - ldr r0, [r1] - adds r0, 0x84 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r3, r0 - bge _080E98A6 -_080E97EA: - ldr r1, [r1] - ldr r0, _080E98BC @ =0x00009e6e - adds r2, r1, r0 - movs r6, 0 - adds r0, r1, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldr r4, [sp] - lsls r4, 24 - mov r8, r4 - lsls r4, r5, 24 - mov r9, r4 - adds r5, 0x2 - mov r10, r5 - adds r3, 0x1 - str r3, [sp, 0x4] - cmp r6, r0 - bge _080E985E - ldrb r1, [r1, 0xA] - cmp r7, r1 - bcs _080E985E - ldr r0, _080E98B8 @ =gUnknown_083DB694 - ldr r4, [r0] - ldr r5, _080E98C0 @ =0x0000ffff -_080E981E: - lsls r0, r7, 1 - adds r1, r4, 0 - adds r1, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, r5 - beq _080E983E - adds r1, r0, 0 - adds r0, r2, 0 - movs r2, 0 - bl sub_80EB218 - adds r2, r0, 0 - movs r0, 0 - strb r0, [r2] - adds r2, 0x1 -_080E983E: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - adds r0, 0x83 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E985E - ldrb r0, [r4, 0xA] - cmp r7, r0 - bcc _080E981E -_080E985E: - ldr r1, _080E98B8 @ =gUnknown_083DB694 - ldr r4, [r1] - adds r0, r4, 0 - adds r0, 0x83 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0xB - muls r1, r0 - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x13 - strb r0, [r2, 0x1] - lsls r1, 3 - strb r1, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r2, _080E98BC @ =0x00009e6e - adds r0, r4, r2 - mov r3, r8 - lsrs r1, r3, 24 - mov r3, r9 - lsrs r2, r3, 24 - bl MenuPrint - mov r1, r10 - lsls r0, r1, 16 - lsrs r5, r0, 16 - ldr r2, [sp, 0x4] - lsls r0, r2, 24 - lsrs r3, r0, 24 - ldr r1, _080E98B8 @ =gUnknown_083DB694 - adds r4, 0x84 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r3, r0 - blt _080E97EA -_080E98A6: - 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 -_080E98B8: .4byte gUnknown_083DB694 -_080E98BC: .4byte 0x00009e6e -_080E98C0: .4byte 0x0000ffff - thumb_func_end sub_80E97C0 - - thumb_func_start sub_80E98C4 -sub_80E98C4: @ 80E98C4 - push {lr} - ldr r0, _080E98E0 @ =gWindowConfig_81E6D8C - bl BasicInitMenuWindow - ldr r0, _080E98E4 @ =gUnknown_083DB694 - ldr r0, [r0] - ldrb r0, [r0, 0x9] - cmp r0, 0x5 - bhi _080E9936 - lsls r0, 2 - ldr r1, _080E98E8 @ =_080E98EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E98E0: .4byte gWindowConfig_81E6D8C -_080E98E4: .4byte gUnknown_083DB694 -_080E98E8: .4byte _080E98EC - .align 2, 0 -_080E98EC: - .4byte _080E990A - .4byte _080E9910 - .4byte _080E9916 - .4byte _080E991A - .4byte _080E9904 - .4byte _080E990A -_080E9904: - movs r1, 0x4 - movs r3, 0x2 - b _080E991E -_080E990A: - movs r1, 0x3 - movs r3, 0x2 - b _080E991E -_080E9910: - movs r1, 0x1 - movs r3, 0x3 - b _080E991E -_080E9916: - movs r1, 0x4 - b _080E991C -_080E991A: - movs r1, 0x3 -_080E991C: - movs r3, 0x1 -_080E991E: - lsls r3, 1 - adds r3, r1, r3 - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x2 - movs r2, 0x1B - bl MenuFillWindowRectWithBlankTile - ldr r0, _080E993C @ =gWindowConfig_81E6DA8 - bl BasicInitMenuWindow -_080E9936: - pop {r0} - bx r0 - .align 2, 0 -_080E993C: .4byte gWindowConfig_81E6DA8 - thumb_func_end sub_80E98C4 - - thumb_func_start sub_80E9940 -sub_80E9940: @ 80E9940 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r5, r1, 24 - lsrs r5, 24 - movs r4, 0x7 - ands r4, r5 - lsls r3, r4, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0x2 - movs r2, 0x1F - bl MenuFillWindowRectWithBlankTile - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80E9A7C - lsls r4, 1 - adds r0, r6, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_80E9A60 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9940 - - thumb_func_start sub_80E9974 -sub_80E9974: @ 80E9974 - push {r4-r6,lr} - ldr r0, _080E99C4 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - ldr r0, _080E99C8 @ =gUnknown_083DB694 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E99D4 - ldr r1, _080E99CC @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r1, r0, 16 - lsrs r4, r1, 16 - adds r0, 0x4 - cmp r4, r0 - bge _080E9A08 - adds r5, r2, 0 - ldr r2, _080E99CC @ =0x000001b5 - adds r6, r5, r2 -_080E99A4: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E99D0 @ =0x00009dc9 - adds r0, r5, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, 0x4 - cmp r4, r0 - blt _080E99A4 - b _080E9A08 - .align 2, 0 -_080E99C4: .4byte gWindowConfig_81E6D54 -_080E99C8: .4byte gUnknown_083DB694 -_080E99CC: .4byte 0x000001b5 -_080E99D0: .4byte 0x00009dc9 -_080E99D4: - bl sub_80E9AD4 - ldr r4, _080E9A10 @ =gUnknown_083DBEAC - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0 - bl sub_80E9A60 - adds r0, r4, 0 - adds r0, 0x20 - movs r1, 0x2 - movs r2, 0x2 - bl sub_80E9A60 - adds r0, r4, 0 - adds r0, 0x40 - movs r1, 0x2 - movs r2, 0x4 - bl sub_80E9A60 - adds r4, 0x60 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0x6 - bl sub_80E9A60 -_080E9A08: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9A10: .4byte gUnknown_083DBEAC - thumb_func_end sub_80E9974 - - thumb_func_start sub_80E9A14 -sub_80E9A14: @ 80E9A14 - push {lr} - bl sub_80E9A4C - ldr r0, _080E9A44 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x26 - ldrb r0, [r0] - cmp r0, 0 - bne _080E9A40 - movs r0, 0xDD - lsls r0, 1 - adds r2, r1, r0 - ldr r3, _080E9A48 @ =0x000001b5 - adds r0, r1, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 4 - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] -_080E9A40: - pop {r0} - bx r0 - .align 2, 0 -_080E9A44: .4byte gUnknown_083DB694 -_080E9A48: .4byte 0x000001b5 - thumb_func_end sub_80E9A14 - - thumb_func_start sub_80E9A4C -sub_80E9A4C: @ 80E9A4C - ldr r0, _080E9A5C @ =gUnknown_083DB694 - ldr r0, [r0] - movs r2, 0xDD - lsls r2, 1 - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_080E9A5C: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A4C - - thumb_func_start sub_80E9A60 -sub_80E9A60: @ 80E9A60 - push {lr} - lsls r2, 16 - movs r3, 0xF0 - lsls r3, 12 - ands r3, r2 - lsls r1, 24 - lsrs r1, 24 - lsrs r3, 16 - adds r2, r3, 0 - bl MenuPrint - pop {r0} - bx r0 - thumb_func_end sub_80E9A60 - - thumb_func_start sub_80E9A7C -sub_80E9A7C: @ 80E9A7C - push {r4-r7,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r0, r7, 17 - lsrs r5, r0, 16 - movs r4, 0 - ldr r0, _080E9AD0 @ =gUnknown_083DB694 - ldr r6, [r0] -_080E9A8E: - movs r0, 0xFC - strb r0, [r2] - movs r0, 0x12 - strb r0, [r2, 0x1] - movs r0, 0x58 - muls r0, r4 - strb r0, [r2, 0x2] - adds r2, 0x3 - lsls r1, r7, 1 - adds r1, r4, r1 - adds r0, r6, 0 - adds r0, 0x2A - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0xB - bl sub_80EAD64 - adds r2, r0, 0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r6, 0x28] - cmp r5, r0 - bcs _080E9ACA - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080E9A8E -_080E9ACA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9AD0: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9A7C - - thumb_func_start sub_80E9AD4 -sub_80E9AD4: @ 80E9AD4 - push {r4,lr} - ldr r0, _080E9AF4 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - movs r4, 0 -_080E9ADE: - adds r0, r4, 0 - bl sub_80E9C74 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xF - bls _080E9ADE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080E9AF4: .4byte gWindowConfig_81E6D54 - thumb_func_end sub_80E9AD4 - - thumb_func_start sub_80E9AF8 -sub_80E9AF8: @ 80E9AF8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r7, 0 - bl sub_80E9C74 - ldr r4, _080E9B7C @ =gUnknown_083DB694 - ldr r5, [r4] - ldr r0, _080E9B80 @ =0x00009e14 - adds r0, r5 - mov r8, r0 - movs r0, 0xFC - mov r1, r8 - strb r0, [r1] - movs r0, 0x11 - strb r0, [r1, 0x1] - movs r0, 0x10 - strb r0, [r1, 0x2] - ldr r2, _080E9B84 @ =0x00009e17 - adds r2, r5 - mov r8, r2 - adds r0, r5, 0 - adds r0, 0x7D - ldrb r0, [r0] - cmp r0, 0 - beq _080E9BF4 - movs r6, 0 - ldr r3, _080E9B88 @ =0x000099a6 - adds r0, r5, r3 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - blt _080E9B4A - b _080E9C52 -_080E9B4A: - lsls r0, r7, 2 - mov r9, r0 - ldr r1, _080E9B8C @ =0x00009a2a - adds r1, r5, r1 - str r1, [sp] - lsls r2, r7, 17 - mov r10, r2 -_080E9B58: - lsls r4, r6, 1 - mov r3, r9 - adds r0, r4, r3 - ldr r1, [sp] - adds r0, r1, r0 - ldrh r0, [r0] - bl sub_80EB2D4 - lsls r0, 16 - lsrs r0, 16 - adds r5, r4, 0 - cmp r0, 0x7 - bne _080E9B94 - ldr r0, _080E9B90 @ =gWindowConfig_81E6D70 - bl BasicInitMenuWindow - b _080E9B9A - .align 2, 0 -_080E9B7C: .4byte gUnknown_083DB694 -_080E9B80: .4byte 0x00009e14 -_080E9B84: .4byte 0x00009e17 -_080E9B88: .4byte 0x000099a6 -_080E9B8C: .4byte 0x00009a2a -_080E9B90: .4byte gWindowConfig_81E6D70 -_080E9B94: - ldr r0, _080E9BE0 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow -_080E9B9A: - ldr r2, _080E9BE4 @ =gUnknown_083DB694 - ldr r4, [r2] - mov r3, r9 - adds r1, r5, r3 - ldr r2, _080E9BE8 @ =0x00009a2a - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - ldr r3, _080E9BEC @ =0x00009e14 - adds r0, r4, r3 - movs r1, 0xB - muls r1, r6 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - mov r3, r10 - lsrs r2, r3, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _080E9BF0 @ =0x000099a6 - adds r4, r0 - adds r4, r7 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r6, r0 - blt _080E9B58 - b _080E9C52 - .align 2, 0 -_080E9BE0: .4byte gWindowConfig_81E6D54 -_080E9BE4: .4byte gUnknown_083DB694 -_080E9BE8: .4byte 0x00009a2a -_080E9BEC: .4byte 0x00009e14 -_080E9BF0: .4byte 0x000099a6 -_080E9BF4: - ldr r0, _080E9C64 @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - movs r6, 0 - ldr r1, _080E9C68 @ =0x000099a6 - adds r0, r5, r1 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r6, r0 - bge _080E9C52 - adds r4, r5, 0 - adds r0, r4, r1 - adds r0, r7 - mov r9, r0 - lsls r5, r7, 17 -_080E9C16: - lsls r1, r6, 1 - lsls r0, r7, 2 - adds r1, r0 - ldr r2, _080E9C6C @ =0x00009a2a - adds r0, r4, r2 - adds r0, r1 - ldrh r1, [r0] - mov r0, r8 - movs r2, 0x9 - bl sub_80EB218 - movs r0, 0xB - adds r1, r6, 0 - muls r1, r0 - adds r1, 0x4 - lsls r1, 16 - lsrs r1, 16 - ldr r3, _080E9C70 @ =0x00009e14 - adds r0, r4, r3 - lsrs r2, r5, 16 - bl sub_80E9A60 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - mov r1, r9 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r6, r0 - blt _080E9C16 -_080E9C52: - 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 -_080E9C64: .4byte gWindowConfig_81E6D54 -_080E9C68: .4byte 0x000099a6 -_080E9C6C: .4byte 0x00009a2a -_080E9C70: .4byte 0x00009e14 - thumb_func_end sub_80E9AF8 - - thumb_func_start sub_80E9C74 -sub_80E9C74: @ 80E9C74 - push {lr} - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 16 - lsls r3, r1, 1 - adds r1, r3, 0 - adds r3, 0x1 - movs r0, 0 - movs r2, 0x1D - bl MenuFillWindowRectWithBlankTile - pop {r0} - bx r0 - thumb_func_end sub_80E9C74 - - thumb_func_start sub_80E9C94 -sub_80E9C94: @ 80E9C94 - push {r4-r6,lr} - ldr r0, _080E9CAC @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r2, _080E9CB0 @ =0x00009a28 - adds r1, r0, r2 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x3 - bgt _080E9CB4 - lsls r0, 16 - lsrs r0, 16 - b _080E9CB6 - .align 2, 0 -_080E9CAC: .4byte gUnknown_083DB694 -_080E9CB0: .4byte 0x00009a28 -_080E9CB4: - movs r0, 0x4 -_080E9CB6: - adds r5, r0, 0 - movs r4, 0 - cmp r4, r5 - bcs _080E9CF4 - ldr r0, _080E9CE0 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080E9CE4 @ =0x00009a29 - adds r6, r0, r1 -_080E9CC6: - movs r0, 0 - ldrsb r0, [r6, r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r0, 16 - bl sub_80E9AF8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r5 - bcc _080E9CC6 - b _080E9CF4 - .align 2, 0 -_080E9CE0: .4byte gUnknown_083DB694 -_080E9CE4: .4byte 0x00009a29 -_080E9CE8: - adds r0, r4, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_80E9C74 -_080E9CF4: - cmp r4, 0x3 - bls _080E9CE8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80E9C94 - - thumb_func_start sub_80E9D00 -sub_80E9D00: @ 80E9D00 - push {r4-r6,lr} - ldr r0, _080E9D28 @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - ble _080E9D30 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D2C @ =0x00009a29 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 - b _080E9D46 - .align 2, 0 -_080E9D28: .4byte gUnknown_083DB694 -_080E9D2C: .4byte 0x00009a29 -_080E9D30: - movs r0, 0 - ldrsb r0, [r1, r0] - negs r0, r0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r1, _080E9D74 @ =0x00009a29 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r4 -_080E9D46: - lsls r0, 16 - lsrs r5, r0, 16 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080E9D78 @ =0x0000ffff - cmp r4, r0 - beq _080E9D6E - adds r6, r0, 0 -_080E9D58: - adds r0, r5, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r5, r1, 16 - bl sub_80E9AF8 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r6 - bne _080E9D58 -_080E9D6E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080E9D74: .4byte 0x00009a29 -_080E9D78: .4byte 0x0000ffff - thumb_func_end sub_80E9D00 - - thumb_func_start sub_80E9D7C -sub_80E9D7C: @ 80E9D7C - push {r4-r7,lr} - ldr r0, _080E9DAC @ =gWindowConfig_81E6D54 - bl BasicInitMenuWindow - ldr r0, _080E9DB0 @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _080E9DB8 - negs r0, r0 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DB4 @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - subs r0, r6 - b _080E9DCC - .align 2, 0 -_080E9DAC: .4byte gWindowConfig_81E6D54 -_080E9DB0: .4byte gUnknown_083DB694 -_080E9DB4: .4byte 0x000001b5 -_080E9DB8: - movs r0, 0 - ldrsb r0, [r1, r0] - lsls r0, 16 - lsrs r6, r0, 16 - ldr r1, _080E9DFC @ =0x000001b5 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, 0x4 -_080E9DCC: - lsls r0, 16 - lsrs r4, r0, 16 - movs r5, 0 - cmp r5, r6 - bcs _080E9DF6 - ldr r0, _080E9E00 @ =gUnknown_083DB694 - ldr r7, [r0] -_080E9DDA: - lsls r1, r4, 24 - lsrs r1, 24 - ldr r2, _080E9E04 @ =0x00009dc9 - adds r0, r7, r2 - bl sub_80E9940 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r6 - bcc _080E9DDA -_080E9DF6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080E9DFC: .4byte 0x000001b5 -_080E9E00: .4byte gUnknown_083DB694 -_080E9E04: .4byte 0x00009dc9 - thumb_func_end sub_80E9D7C - - thumb_func_start sub_80E9E08 -sub_80E9E08: @ 80E9E08 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080E9E4C @ =gUnknown_083DB694 - ldr r3, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r3, r0 - movs r5, 0xE0 - lsls r5, 1 - adds r2, r3, r5 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 4 - ldrh r1, [r1] - adds r0, r1 - movs r1, 0x7F - ands r0, r1 - subs r5, 0x4 - adds r1, r3, r5 - strh r0, [r1] - adds r1, r4, 0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0 - bge _080E9E3E - negs r1, r4 -_080E9E3E: - ldr r2, _080E9E50 @ =0x000001bf - adds r0, r3, r2 - strb r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080E9E4C: .4byte gUnknown_083DB694 -_080E9E50: .4byte 0x000001bf - thumb_func_end sub_80E9E08 - - thumb_func_start sub_80E9E54 -sub_80E9E54: @ 80E9E54 - push {r4,lr} - ldr r0, _080E9E8C @ =gUnknown_083DB694 - ldr r2, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r3, r2, r0 - ldr r1, _080E9E90 @ =0x000001bf - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - ldrh r4, [r3] - adds r0, r4 - movs r1, 0x7F - ands r0, r1 - strh r0, [r3] - movs r3, 0 - movs r4, 0xDE - lsls r4, 1 - adds r1, r2, r4 - ldrh r1, [r1] - cmp r0, r1 - bne _080E9E84 - movs r3, 0x1 -_080E9E84: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080E9E8C: .4byte gUnknown_083DB694 -_080E9E90: .4byte 0x000001bf - thumb_func_end sub_80E9E54 - - thumb_func_start nullsub_23 -nullsub_23: @ 80E9E94 - bx lr - thumb_func_end nullsub_23 - - thumb_func_start sub_80E9E98 -sub_80E9E98: @ 80E9E98 - ldr r0, _080E9EA4 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - movs r1, 0 - strh r1, [r0] - bx lr - .align 2, 0 -_080E9EA4: .4byte gUnknown_083DB694 - thumb_func_end sub_80E9E98 - - thumb_func_start sub_80E9EA8 -sub_80E9EA8: @ 80E9EA8 - push {lr} - ldr r1, _080E9EC4 @ =gUnknown_083DB694 - ldr r0, [r1] - adds r0, 0xBE - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x5 - bhi _080E9F48 - lsls r0, 2 - ldr r1, _080E9EC8 @ =_080E9ECC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9EC4: .4byte gUnknown_083DB694 -_080E9EC8: .4byte _080E9ECC - .align 2, 0 -_080E9ECC: - .4byte _080E9EE4 - .4byte _080E9EF4 - .4byte _080E9F0C - .4byte _080E9F24 - .4byte _080E9F38 - .4byte _080E9F44 -_080E9EE4: - bl sub_80EA24C - ldr r0, _080E9F08 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9EF4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA4A4 - ldr r0, _080E9F08 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F08: .4byte gUnknown_083DB694 -_080E9F0C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - bl sub_80EA704 - ldr r0, _080E9F20 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F20: .4byte gUnknown_083DB694 -_080E9F24: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9F48 - ldr r0, _080E9F34 @ =gUnknown_083DB694 - ldr r1, [r0] - b _080E9F3A - .align 2, 0 -_080E9F34: .4byte gUnknown_083DB694 -_080E9F38: - ldr r1, [r2] -_080E9F3A: - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9F48 -_080E9F44: - movs r0, 0x1 - b _080E9F4A -_080E9F48: - movs r0, 0 -_080E9F4A: - pop {r1} - bx r1 - thumb_func_end sub_80E9EA8 - - thumb_func_start sub_80E9F50 -sub_80E9F50: @ 80E9F50 - push {lr} - ldr r0, _080E9F68 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x6 - bhi _080E9FCC - lsls r0, 2 - ldr r1, _080E9F6C @ =_080E9F70 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080E9F68: .4byte gUnknown_083DB694 -_080E9F6C: .4byte _080E9F70 - .align 2, 0 -_080E9F70: - .4byte _080E9F8C - .4byte _080E9FAC - .4byte _080E9F96 - .4byte _080E9FAC - .4byte _080E9F9C - .4byte _080E9FAC - .4byte _080E9FC8 -_080E9F8C: - bl nullsub_23 - bl sub_80EA764 - b _080E9FA0 -_080E9F96: - bl sub_80EA5A0 - b _080E9FA0 -_080E9F9C: - bl sub_80EA348 -_080E9FA0: - ldr r0, _080E9FC4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080E9FAC: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080E9FCC - ldr r0, _080E9FC4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080E9FCC - .align 2, 0 -_080E9FC4: .4byte gUnknown_083DB694 -_080E9FC8: - movs r0, 0x1 - b _080E9FCE -_080E9FCC: - movs r0, 0 -_080E9FCE: - pop {r1} - bx r1 - thumb_func_end sub_80E9F50 - - thumb_func_start sub_80E9FD4 -sub_80E9FD4: @ 80E9FD4 - push {r4,lr} - ldr r0, _080E9FEC @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080E9FF0 - cmp r0, 0x1 - beq _080E9FFE - b _080EA00C - .align 2, 0 -_080E9FEC: .4byte gUnknown_083DB694 -_080E9FF0: - bl nullsub_23 - bl sub_80EA5A0 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080E9FFE: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA00C - movs r0, 0x1 - b _080EA00E -_080EA00C: - movs r0, 0 -_080EA00E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80E9FD4 - - thumb_func_start sub_80EA014 -sub_80EA014: @ 80EA014 - push {r4,lr} - ldr r0, _080EA02C @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0 - beq _080EA030 - cmp r0, 0x1 - beq _080EA03A - b _080EA048 - .align 2, 0 -_080EA02C: .4byte gUnknown_083DB694 -_080EA030: - bl sub_80EA4A4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA03A: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA048 - movs r0, 0x1 - b _080EA04A -_080EA048: - movs r0, 0 -_080EA04A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA014 - - thumb_func_start sub_80EA050 -sub_80EA050: @ 80EA050 - push {lr} - ldr r0, _080EA068 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA0DC - lsls r0, 2 - ldr r1, _080EA06C @ =_080EA070 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA068: .4byte gUnknown_083DB694 -_080EA06C: .4byte _080EA070 - .align 2, 0 -_080EA070: - .4byte _080EA084 - .4byte _080EA08E - .4byte _080EA09E - .4byte _080EA0B4 - .4byte _080EA0D8 -_080EA084: - bl nullsub_23 - bl sub_80EA764 - b _080EA0C4 -_080EA08E: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA7F4 - b _080EA0C4 -_080EA09E: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC - bl sub_80EA8BC - b _080EA0C4 -_080EA0B4: - movs r0, 0x1 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA0DC -_080EA0C4: - ldr r0, _080EA0D4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA0DC - .align 2, 0 -_080EA0D4: .4byte gUnknown_083DB694 -_080EA0D8: - movs r0, 0x1 - b _080EA0DE -_080EA0DC: - movs r0, 0 -_080EA0DE: - pop {r1} - bx r1 - thumb_func_end sub_80EA050 - - thumb_func_start sub_80EA0E4 -sub_80EA0E4: @ 80EA0E4 - push {lr} - ldr r0, _080EA0FC @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBE - ldrh r0, [r0] - cmp r0, 0x4 - bhi _080EA17C - lsls r0, 2 - ldr r1, _080EA100 @ =_080EA104 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EA0FC: .4byte gUnknown_083DB694 -_080EA100: .4byte _080EA104 - .align 2, 0 -_080EA104: - .4byte _080EA118 - .4byte _080EA128 - .4byte _080EA144 - .4byte _080EA15C - .4byte _080EA178 -_080EA118: - bl sub_80EA948 - ldr r0, _080EA140 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_080EA128: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EAA44 - b _080EA166 - .align 2, 0 -_080EA140: .4byte gUnknown_083DB694 -_080EA144: - movs r0, 0x1 - negs r0, r0 - bl sub_80E9108 - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C - bl sub_80EA704 - b _080EA166 -_080EA15C: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA17C -_080EA166: - ldr r0, _080EA174 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA17C - .align 2, 0 -_080EA174: .4byte gUnknown_083DB694 -_080EA178: - movs r0, 0x1 - b _080EA17E -_080EA17C: - movs r0, 0 -_080EA17E: - pop {r1} - bx r1 - thumb_func_end sub_80EA0E4 - - thumb_func_start sub_80EA184 -sub_80EA184: @ 80EA184 - push {r4,lr} - ldr r0, _080EA1A0 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0xBE - ldrh r0, [r4] - cmp r0, 0x1 - beq _080EA1B4 - cmp r0, 0x1 - bgt _080EA1A4 - cmp r0, 0 - beq _080EA1AA - b _080EA1D8 - .align 2, 0 -_080EA1A0: .4byte gUnknown_083DB694 -_080EA1A4: - cmp r0, 0x2 - beq _080EA1D0 - b _080EA1D8 -_080EA1AA: - bl sub_80EAAD4 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] -_080EA1B4: - bl sub_80EA1E0 - lsls r0, 24 - cmp r0, 0 - beq _080EA1D8 - ldr r0, _080EA1CC @ =gUnknown_083DB694 - ldr r1, [r0] - adds r1, 0xBE - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080EA1D8 - .align 2, 0 -_080EA1CC: .4byte gUnknown_083DB694 -_080EA1D0: - bl sub_80E9178 - movs r0, 0x1 - b _080EA1DA -_080EA1D8: - movs r0, 0 -_080EA1DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EA184 - - thumb_func_start sub_80EA1E0 -sub_80EA1E0: @ 80EA1E0 - push {r4-r6,lr} - ldr r0, _080EA240 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xC4 - ldrh r0, [r0] - cmp r0, 0 - beq _080EA244 - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EA228 - adds r5, r1, 0 - adds r6, r0, 0 -_080EA200: - lsls r0, r4, 4 - adds r0, 0xC8 - adds r0, r5, r0 - bl sub_80EAC0C - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r1 - adds r0, r5, r0 - bl sub_80EAC48 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EA200 -_080EA228: - ldr r0, _080EA240 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0xBC - movs r0, 0x1 - strb r0, [r2] - adds r1, 0xC4 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - movs r0, 0 - b _080EA246 - .align 2, 0 -_080EA240: .4byte gUnknown_083DB694 -_080EA244: - movs r0, 0x1 -_080EA246: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EA1E0 - - thumb_func_start sub_80EA24C -sub_80EA24C: @ 80EA24C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA340 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - ldr r1, _080EA344 @ =0x0000fffe - mov r8, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0 - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r6, 0x10 - str r6, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xD - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0xC - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x1E - movs r2, 0x9 - mov r3, r8 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA340: .4byte gUnknown_083DB694 -_080EA344: .4byte 0x0000fffe - thumb_func_end sub_80EA24C - - thumb_func_start sub_80EA348 -sub_80EA348: @ 80EA348 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA49C @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r5, 0xF - str r5, [sp] - movs r1, 0x2 - mov r9, r1 - str r1, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EA4A0 @ =0x0000fffe - mov r8, r1 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0x2 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r5, 0x10 - str r5, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0x2 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - mov r1, r9 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r6, r7, r1 - str r6, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r6, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xE - mov r3, r8 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA49C: .4byte gUnknown_083DB694 -_080EA4A0: .4byte 0x0000fffe - thumb_func_end sub_80EA348 - - thumb_func_start sub_80EA4A4 -sub_80EA4A4: @ 80EA4A4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA598 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, _080EA59C @ =0x0000ffff - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xE - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xE - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x10 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - movs r6, 0x1 - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x9 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xC2 - movs r1, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA598: .4byte gUnknown_083DB694 -_080EA59C: .4byte 0x0000ffff - thumb_func_end sub_80EA4A4 - - thumb_func_start sub_80EA5A0 -sub_80EA5A0: @ 80EA5A0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EA6FC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0xF - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r1, 0x1 - mov r8, r1 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r2, 0xA - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0xC - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EA700 @ =0x0000ffff - str r6, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0xD - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0xC - movs r2, 0xF - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - mov r1, r8 - str r1, [sp] - str r5, [sp, 0x4] - movs r1, 0x12 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x84 - lsls r1, 1 - adds r0, r7, r1 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - mov r1, r8 - str r1, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xBC - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x50 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - movs r1, 0x8C - lsls r1, 1 - adds r0, r7, r1 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xC2 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x6 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x4 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA6FC: .4byte gUnknown_083DB694 -_080EA700: .4byte 0x0000ffff - thumb_func_end sub_80EA5A0 - - thumb_func_start sub_80EA704 -sub_80EA704: @ 80EA704 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA75C @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r1, 0x14 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - ldr r3, _080EA760 @ =0x0000ffff - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x5 - movs r2, 0xA - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xC2 - strh r5, [r0] - adds r1, r6, 0 - adds r1, 0xC4 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA75C: .4byte gUnknown_083DB694 -_080EA760: .4byte 0x0000ffff - thumb_func_end sub_80EA704 - - thumb_func_start sub_80EA764 -sub_80EA764: @ 80EA764 - push {r4-r7,lr} - sub sp, 0x14 - ldr r0, _080EA7EC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EA7F0 @ =0x0000ffff - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xC - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1E - movs r2, 0xC - movs r3, 0x1F - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0x1E - movs r2, 0xC - adds r3, r5, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6 - strh r0, [r1] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA7EC: .4byte gUnknown_083DB694 -_080EA7F0: .4byte 0x0000ffff - thumb_func_end sub_80EA764 - - thumb_func_start sub_80EA7F4 -sub_80EA7F4: @ 80EA7F4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - ldr r0, _080EA8B4 @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r5, 0x1 - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x14 - movs r2, 0xA - movs r3, 0x19 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - ldr r3, _080EA8B8 @ =0x0000ffff - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r2, r7 - mov r8, r2 - str r2, [sp, 0x4] - movs r1, 0x19 - movs r2, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r7, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r2, r8 - str r2, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x3 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EA8B4: .4byte gUnknown_083DB694 -_080EA8B8: .4byte 0x0000ffff - thumb_func_end sub_80EA7F4 - - thumb_func_start sub_80EA8BC -sub_80EA8BC: @ 80EA8BC - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EA944 @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x4 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EA944: .4byte gUnknown_083DB694 - thumb_func_end sub_80EA8BC - - thumb_func_start sub_80EA948 -sub_80EA948: @ 80EA948 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EAA3C @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r6, 0x14 - str r6, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r5, _080EAA40 @ =0x0000ffff - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x2 - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x80 - adds r1, r7 - mov r9, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x3 - movs r2, 0xA - movs r3, 0x5 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x1A - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r9 - str r1, [sp, 0x4] - movs r1, 0x1A - movs r2, 0xA - adds r3, r5, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - str r6, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - str r5, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x19 - movs r2, 0xA - movs r3, 0x1A - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EAA3C: .4byte gUnknown_083DB694 -_080EAA40: .4byte 0x0000ffff - thumb_func_end sub_80EA948 - - thumb_func_start sub_80EAA44 -sub_80EAA44: @ 80EAA44 - push {r4-r6,lr} - sub sp, 0x14 - ldr r0, _080EAACC @ =gUnknown_083DB694 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0xC8 - movs r5, 0x14 - str r5, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xE4 - lsls r2, 1 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x18 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r6, 0 - adds r0, 0xD8 - str r5, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - ldr r1, _080EAAD0 @ =0x0000ffff - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x17 - movs r2, 0xA - movs r3, 0x18 - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r6, r1 - str r4, [sp] - movs r2, 0xD9 - lsls r2, 3 - adds r1, r6, r2 - str r1, [sp, 0x4] - movs r1, 0x1D - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r1, r6, 0 - adds r1, 0xC2 - movs r0, 0x2 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1 - strh r0, [r1] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EAACC: .4byte gUnknown_083DB694 -_080EAAD0: .4byte 0x0000ffff - thumb_func_end sub_80EAA44 - - thumb_func_start sub_80EAAD4 -sub_80EAAD4: @ 80EAAD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - ldr r0, _080EABCC @ =gUnknown_083DB694 - ldr r7, [r0] - adds r0, r7, 0 - adds r0, 0xC8 - movs r1, 0xF - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - movs r5, 0x1 - str r5, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xA4 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - movs r1, 0xD9 - lsls r1, 3 - adds r1, r7 - mov r8, r1 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xD8 - movs r1, 0x14 - mov r9, r1 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - ldr r6, _080EABD0 @ =0x0000ffff - str r6, [sp, 0x10] - movs r1, 0 - movs r2, 0xF - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xAA - lsls r1, 1 - adds r0, r7, r1 - str r5, [sp] - mov r1, r8 - str r1, [sp, 0x4] - movs r1, 0 - movs r2, 0x5 - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xE8 - movs r1, 0xA - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r5, [sp, 0x10] - movs r1, 0 - movs r2, 0xA - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB0 - lsls r1, 1 - adds r0, r7, r1 - str r4, [sp] - adds r1, 0x68 - adds r5, r7, r1 - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl sub_80EAC30 - adds r0, r7, 0 - adds r0, 0xF8 - mov r1, r9 - str r1, [sp] - str r4, [sp, 0x4] - str r6, [sp, 0x8] - str r4, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0 - movs r2, 0x14 - movs r3, 0x1E - bl sub_80EABD4 - movs r1, 0xB6 - lsls r1, 1 - adds r0, r7, r1 - str r6, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x14 - movs r3, 0 - bl sub_80EAC30 - adds r1, r7, 0 - adds r1, 0xC2 - movs r0, 0x4 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x5 - strh r0, [r1] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EABCC: .4byte gUnknown_083DB694 -_080EABD0: .4byte 0x0000ffff - thumb_func_end sub_80EAAD4 - - thumb_func_start sub_80EABD4 -sub_80EABD4: @ 80EABD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r5, [sp, 0x1C] - ldr r6, [sp, 0x20] - ldr r4, [sp, 0x24] - mov r9, r4 - ldr r4, [sp, 0x28] - ldr r7, [sp, 0x2C] - mov r8, r7 - strh r1, [r0] - strh r3, [r0, 0x2] - strh r2, [r0, 0x4] - strh r5, [r0, 0x6] - strh r6, [r0, 0x8] - strh r4, [r0, 0xA] - mov r1, r9 - strh r1, [r0, 0xC] - mov r4, r8 - strh r4, [r0, 0xE] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EABD4 - - thumb_func_start sub_80EAC0C -sub_80EAC0C: @ 80EAC0C - ldrh r1, [r0, 0x8] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0xA] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - ldrh r1, [r0, 0xC] - ldrh r2, [r0, 0x4] - adds r1, r2 - strh r1, [r0, 0x4] - ldrh r1, [r0, 0xE] - ldrh r2, [r0, 0x6] - adds r1, r2 - strh r1, [r0, 0x6] - bx lr - thumb_func_end sub_80EAC0C - - thumb_func_start sub_80EAC30 -sub_80EAC30: @ 80EAC30 - push {r4,r5,lr} - ldr r4, [sp, 0xC] - ldr r5, [sp, 0x10] - strh r1, [r0] - strh r2, [r0, 0x2] - strh r3, [r0, 0x4] - strh r4, [r0, 0x6] - str r5, [r0, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80EAC30 - - thumb_func_start sub_80EAC48 -sub_80EAC48: @ 80EAC48 - ldrh r1, [r0, 0x4] - ldrh r2, [r0] - adds r1, r2 - strh r1, [r0] - ldrh r1, [r0, 0x6] - ldrh r2, [r0, 0x2] - adds r1, r2 - strh r1, [r0, 0x2] - bx lr - thumb_func_end sub_80EAC48 - - thumb_func_start sub_80EAC5C -sub_80EAC5C: @ 80EAC5C - push {r4-r6,lr} - ldr r0, _080EACB4 @ =gUnknown_083DB694 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xBC - ldrb r0, [r0] - cmp r0, 0 - beq _080EACAC - movs r4, 0 - adds r0, r1, 0 - adds r0, 0xC2 - ldrh r2, [r0] - cmp r4, r2 - bcs _080EACA2 - adds r5, r1, 0 - adds r6, r0, 0 -_080EAC7C: - lsls r1, r4, 4 - adds r1, 0xC8 - adds r1, r5, r1 - lsls r2, r4, 1 - adds r2, r4 - lsls r2, 2 - movs r0, 0xA4 - lsls r0, 1 - adds r2, r0 - adds r2, r5, r2 - ldr r0, _080EACB8 @ =0x06006800 - bl sub_80EACBC - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r2, [r6] - cmp r4, r2 - bcc _080EAC7C -_080EACA2: - ldr r0, _080EACB4 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, 0xBC - movs r1, 0 - strb r1, [r0] -_080EACAC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EACB4: .4byte gUnknown_083DB694 -_080EACB8: .4byte 0x06006800 - thumb_func_end sub_80EAC5C - - thumb_func_start sub_80EACBC -sub_80EACBC: @ 80EACBC - push {r4-r7,lr} - sub sp, 0x10 - adds r7, r0, 0 - adds r3, r1, 0 - adds r4, r2, 0 - ldrh r2, [r3, 0x2] - ldrh r0, [r3] - subs r2, r0 - ldrh r0, [r3, 0x6] - ldrh r1, [r3, 0x4] - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - lsls r6, r2, 16 - cmp r6, 0 - ble _080EACFE - lsls r5, r0, 16 - cmp r5, 0 - ble _080EACFE - ldrh r1, [r3] - ldrh r2, [r3, 0x4] - ldr r3, [r4, 0x8] - ldrh r0, [r4] - str r0, [sp] - ldrh r0, [r4, 0x2] - str r0, [sp, 0x4] - lsrs r0, r6, 16 - str r0, [sp, 0x8] - lsrs r0, r5, 16 - str r0, [sp, 0xC] - adds r0, r7, 0 - bl sub_809D104 -_080EACFE: - add sp, 0x10 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EACBC - - thumb_func_start sub_80EAD08 -sub_80EAD08: @ 80EAD08 - push {r4,r5,lr} - ldr r0, _080EAD58 @ =gUnknown_03004DC0 - ldrb r1, [r0, 0x14] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 7 - ldr r1, _080EAD5C @ =gUnknown_03004DE0 - adds r4, r0, r1 - adds r4, 0xB0 - ldr r0, _080EAD60 @ =gUnknown_083DB694 - ldr r1, [r0] - movs r0, 0xDD - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - adds r2, r0, 0 - subs r2, 0x58 - movs r0, 0xFF - ands r2, r0 - movs r3, 0 - movs r5, 0xFF -_080EAD32: - ldrh r0, [r1] - adds r0, r3 - cmp r0, 0x80 - bne _080EAD42 - negs r0, r3 - adds r2, r0, 0 - subs r2, 0x58 - ands r2, r5 -_080EAD42: - strh r2, [r4] - adds r4, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3F - bls _080EAD32 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080EAD58: .4byte gUnknown_03004DC0 -_080EAD5C: .4byte gUnknown_03004DE0 -_080EAD60: .4byte gUnknown_083DB694 - thumb_func_end sub_80EAD08 - - thumb_func_start sub_80EAD64 -sub_80EAD64: @ 80EAD64 - push {lr} - lsls r1, 24 - ldr r2, _080EAD78 @ =gEasyChatGroupNames - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - pop {r1} - bx r1 - .align 2, 0 -_080EAD78: .4byte gEasyChatGroupNames - thumb_func_end sub_80EAD64 - - thumb_func_start sub_80EAD7C -sub_80EAD7C: @ 80EAD7C - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x14 - beq _080EADA2 - cmp r0, 0x14 - bgt _080EAD9C - cmp r0, 0x11 - blt _080EADBA - ldr r0, _080EAD98 @ =0x00000804 - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EAD98: .4byte 0x00000804 -_080EAD9C: - cmp r1, 0x15 - beq _080EADB0 - b _080EADBA -_080EADA2: - ldr r0, _080EADAC @ =0x00000806 - bl FlagGet - b _080EADB4 - .align 2, 0 -_080EADAC: .4byte 0x00000806 -_080EADB0: - bl sub_80EB9C8 -_080EADB4: - lsls r0, 24 - lsrs r0, 24 - b _080EADBC -_080EADBA: - movs r0, 0x1 -_080EADBC: - pop {r1} - bx r1 - thumb_func_end sub_80EAD7C - - thumb_func_start sub_80EADC0 -sub_80EADC0: @ 80EADC0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - cmp r2, 0x15 - bhi _080EAE82 - lsls r0, r2, 2 - ldr r1, _080EADD8 @ =_080EADDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080EADD8: .4byte _080EADDC - .align 2, 0 -_080EADDC: - .4byte _080EAE50 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE82 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE62 - .4byte _080EAE34 - .4byte _080EAE78 -_080EAE34: - ldr r0, _080EAE4C @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - beq _080EAE70 - lsls r0, r3, 24 - lsrs r0, 24 - bl sub_80EB868 - b _080EAE7C - .align 2, 0 -_080EAE4C: .4byte gUnknown_083DB694 -_080EAE50: - adds r0, r3, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl GetSetPokedexFlag - b _080EAE7C -_080EAE62: - ldr r0, _080EAE74 @ =gUnknown_083DB694 - ldr r0, [r0] - adds r0, r2 - adds r0, 0x67 - ldrb r0, [r0] - cmp r0, 0 - bne _080EAE82 -_080EAE70: - movs r0, 0 - b _080EAE84 - .align 2, 0 -_080EAE74: .4byte gUnknown_083DB694 -_080EAE78: - bl sub_80EB9C8 -_080EAE7C: - lsls r0, 24 - lsrs r0, 24 - b _080EAE84 -_080EAE82: - movs r0, 0x1 -_080EAE84: - pop {r1} - bx r1 - thumb_func_end sub_80EADC0 - - thumb_func_start sub_80EAE88 -sub_80EAE88: @ 80EAE88 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080EAEA6 - cmp r4, 0x14 - beq _080EAEB2 - adds r0, r4, 0 - bl sub_80EAD7C - lsls r0, 24 - cmp r0, 0 - bne _080EAEBC - movs r0, 0 - b _080EAEC2 -_080EAEA6: - movs r0, 0 - bl GetHoennPokedexCount - lsls r0, 16 - lsrs r0, 16 - b _080EAEC2 -_080EAEB2: - bl sub_80EB8C0 - lsls r0, 24 - lsrs r0, 24 - b _080EAEC2 -_080EAEBC: - ldr r0, _080EAEC8 @ =gEasyChatGroupSizes - adds r0, r4, r0 - ldrb r0, [r0] -_080EAEC2: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080EAEC8: .4byte gEasyChatGroupSizes - thumb_func_end sub_80EAE88 - - thumb_func_start sub_80EAECC -sub_80EAECC: @ 80EAECC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r0, 0 - mov r8, r0 - ldr r1, _080EAF10 @ =gUnknown_083DB694 - ldr r0, [r1] - ldr r3, _080EAF14 @ =0x00004142 - adds r3, r0, r3 - str r3, [sp, 0x4] -_080EAEE6: - ldr r1, _080EAF18 @ =gEasyChatWordsByLetter - mov r7, r8 - lsls r2, r7, 1 - adds r0, r2, r1 - ldrh r4, [r0] - mov r3, r8 - adds r3, 0x1 - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - str r0, [sp] - ldr r0, [sp, 0x4] - adds r1, r0, r2 - movs r0, 0 - strh r0, [r1] - mov r9, r0 - adds r6, r4, 0 - mov r10, r2 - str r3, [sp, 0x8] - b _080EB00C - .align 2, 0 -_080EAF10: .4byte gUnknown_083DB694 -_080EAF14: .4byte 0x00004142 -_080EAF18: .4byte gEasyChatWordsByLetter -_080EAF1C: - ldr r2, _080EAFB0 @ =gEasyChatWordsAlphabetized - adds r0, r6, 0 - adds r1, r0, 0x1 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - adds r4, r1, 0 - ldr r0, _080EAFB4 @ =0x0000feff - cmp r1, r0 - bls _080EAFCC - movs r0, 0xFF - ands r1, r0 - movs r7, 0 - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r3, _080EAFB8 @ =0x0000ffff - cmp r5, r3 - beq _080EB00C - mov r1, r8 - lsls r0, r1, 8 - subs r0, r1 - lsls r3, r0, 1 -_080EAF4E: - adds r1, r6, 0 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 1 - ldr r0, _080EAFB0 @ =gEasyChatWordsAlphabetized - adds r1, r0 - ldrh r4, [r1] - lsrs r0, r4, 9 - ldr r1, _080EAFBC @ =0x000001ff - adds r2, r1, 0 - adds r1, r4, 0 - ands r1, r2 - str r3, [sp, 0xC] - bl sub_80EADC0 - lsls r0, 24 - ldr r3, [sp, 0xC] - cmp r0, 0 - beq _080EAFA2 - cmp r7, 0 - bne _080EAFA2 - ldr r7, _080EAFC0 @ =gUnknown_083DB694 - ldr r2, [r7] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r1, 1 - adds r1, r3 - ldr r7, _080EAFC4 @ =0x00000b78 - adds r0, r2, r7 - adds r0, r1 - strh r4, [r0] - ldr r0, _080EAFC8 @ =0x00004142 - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - movs r7, 0x1 -_080EAFA2: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080EAFB8 @ =0x0000ffff - cmp r5, r1 - bne _080EAF4E - b _080EB00C - .align 2, 0 -_080EAFB0: .4byte gEasyChatWordsAlphabetized -_080EAFB4: .4byte 0x0000feff -_080EAFB8: .4byte 0x0000ffff -_080EAFBC: .4byte 0x000001ff -_080EAFC0: .4byte gUnknown_083DB694 -_080EAFC4: .4byte 0x00000b78 -_080EAFC8: .4byte 0x00004142 -_080EAFCC: - lsrs r0, r4, 9 - ldr r3, _080EB030 @ =0x000001ff - adds r2, r3, 0 - adds r1, r4, 0 - ands r1, r2 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB00C - ldr r7, _080EB034 @ =gUnknown_083DB694 - ldr r2, [r7] - mov r1, r9 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r3, r8 - lsls r0, r3, 8 - subs r0, r3 - adds r0, r1 - lsls r0, 1 - ldr r7, _080EB038 @ =0x00000b78 - adds r1, r2, r7 - adds r1, r0 - strh r4, [r1] - ldr r0, _080EB03C @ =0x00004142 - adds r2, r0 - add r2, r10 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] -_080EB00C: - ldr r1, [sp] - cmp r6, r1 - bcc _080EAF1C - ldr r3, [sp, 0x8] - lsls r0, r3, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0x1A - bhi _080EB020 - b _080EAEE6 -_080EB020: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080EB030: .4byte 0x000001ff -_080EB034: .4byte gUnknown_083DB694 -_080EB038: .4byte 0x00000b78 -_080EB03C: .4byte 0x00004142 - thumb_func_end sub_80EAECC - - thumb_func_start sub_80EB040 -sub_80EB040: @ 80EB040 - push {r4-r6,lr} - movs r3, 0 -_080EB044: - adds r6, r3, 0x1 - cmp r3, 0 - beq _080EB094 - cmp r3, 0x15 - beq _080EB094 - cmp r3, 0x12 - beq _080EB094 - cmp r3, 0x13 - beq _080EB094 - ldr r0, _080EB0A4 @ =gEasyChatGroupWords - lsls r1, r3, 2 - adds r1, r0 - ldr r2, [r1] - movs r4, 0 - ldrb r0, [r2] - cmp r0, 0xFF - beq _080EB094 - ldr r0, _080EB0A8 @ =gUnknown_083DB694 - ldr r0, [r0] - ldr r1, _080EB0AC @ =0x000041a4 - adds r5, r0, r1 -_080EB06E: - lsls r0, r4, 2 - lsls r1, r3, 10 - adds r0, r1 - adds r0, r5, r0 - str r2, [r0] - ldrb r0, [r2] - adds r1, r4, 0x1 - cmp r0, 0xFF - beq _080EB088 -_080EB080: - adds r2, 0x1 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB080 -_080EB088: - adds r2, 0x1 - lsls r0, r1, 16 - lsrs r4, r0, 16 - ldrb r0, [r2] - cmp r0, 0xFF - bne _080EB06E -_080EB094: - lsls r0, r6, 16 - lsrs r3, r0, 16 - cmp r3, 0x15 - bls _080EB044 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080EB0A4: .4byte gEasyChatGroupWords -_080EB0A8: .4byte gUnknown_083DB694 -_080EB0AC: .4byte 0x000041a4 - thumb_func_end sub_80EB040 - - thumb_func_start sub_80EB0B0 -sub_80EB0B0: @ 80EB0B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r3, _080EB184 @ =gUnknown_083DB694 - ldr r4, [r3] - adds r0, r4, 0 - adds r0, 0x26 - ldrb r5, [r0] - cmp r5, 0 - bne _080EB19C - movs r0, 0xDC - lsls r0, 1 - adds r2, r4, r0 - ldrb r6, [r2] - lsls r1, r6, 1 - ldr r7, _080EB188 @ =0x00004178 - adds r0, r4, r7 - adds r0, r1 - strh r5, [r0] - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r1, _080EB18C @ =gEasyChatGroupOrders - lsls r0, r6, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [sp] - movs r1, 0 - mov r8, r1 - ldr r1, _080EB190 @ =gEasyChatGroupSizes - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB0FE - b _080EB1FA -_080EB0FE: - movs r2, 0xDC - lsls r2, 1 - adds r2, r4, r2 - str r2, [sp, 0x4] - lsls r5, r6, 24 - mov r10, r5 -_080EB10A: - mov r1, r8 - lsls r0, r1, 1 - ldr r2, [sp] - adds r5, r0, r2 - ldrh r1, [r5] - mov r2, r10 - lsrs r0, r2, 24 - bl sub_80EADC0 - lsls r0, 24 - cmp r0, 0 - beq _080EB16A - ldr r0, _080EB184 @ =gUnknown_083DB694 - ldr r3, [r0] - lsls r1, r7, 1 - mov r2, r9 - lsls r0, r2, 2 - adds r1, r0 - ldr r0, _080EB194 @ =0x00009a2a - adds r4, r3, r0 - adds r4, r1 - movs r0, 0x7F - ands r0, r6 - lsls r0, 9 - ldrh r1, [r5] - ldr r5, _080EB198 @ =0x000001ff - adds r2, r5, 0 - ands r1, r2 - orrs r0, r1 - strh r0, [r4] - lsls r0, r6, 1 - ldr r1, _080EB188 @ =0x00004178 - adds r3, r1 - adds r3, r0 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _080EB16A - movs r7, 0 - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 -_080EB16A: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r1, _080EB190 @ =gEasyChatGroupSizes - ldr r2, [sp, 0x4] - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - cmp r8, r0 - bcc _080EB10A - b _080EB1FA - .align 2, 0 -_080EB184: .4byte gUnknown_083DB694 -_080EB188: .4byte 0x00004178 -_080EB18C: .4byte gEasyChatGroupOrders -_080EB190: .4byte gEasyChatGroupSizes -_080EB194: .4byte 0x00009a2a -_080EB198: .4byte 0x000001ff -_080EB19C: - movs r5, 0xDC - lsls r5, 1 - adds r0, r4, r5 - ldrb r2, [r0] - movs r3, 0 - movs r6, 0 - movs r5, 0 - lsls r1, r2, 1 - ldr r7, _080EB20C @ =0x00004142 - adds r0, r4, r7 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r5, r0 - bcs _080EB1FA - ldr r7, _080EB210 @ =0x00009a2a - adds r7, r4 - mov r8, r7 - lsls r0, r2, 8 - subs r0, r2 - lsls r7, r0, 1 - ldr r0, _080EB214 @ =0x00000b78 - adds r2, r4, r0 - adds r4, r1, 0 -_080EB1CA: - lsls r1, r3, 1 - lsls r0, r6, 2 - adds r1, r0 - add r1, r8 - lsls r0, r5, 1 - adds r0, r7 - adds r0, r2, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _080EB1EE - movs r3, 0 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_080EB1EE: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r1, [r4] - cmp r5, r1 - bcc _080EB1CA -_080EB1FA: - 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 -_080EB20C: .4byte 0x00004142 -_080EB210: .4byte 0x00009a2a -_080EB214: .4byte 0x00000b78 - thumb_func_end sub_80EB0B0 - - thumb_func_start sub_80EB218 -sub_80EB218: @ 80EB218 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r4, r6, 16 - adds r7, r4, 0 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB240 - ldr r1, _080EB23C @ =gOtherText_ThreeQuestions - b _080EB2A2 - .align 2, 0 -_080EB23C: .4byte gOtherText_ThreeQuestions -_080EB240: - ldr r0, _080EB250 @ =0x0000ffff - cmp r4, r0 - bne _080EB254 - adds r1, r5, 0 - movs r0, 0xFF - strb r0, [r1] - b _080EB2AA - .align 2, 0 -_080EB250: .4byte 0x0000ffff -_080EB254: - lsrs r2, r6, 25 - ldr r1, _080EB268 @ =0x000001ff - ands r1, r7 - cmp r2, 0x13 - bgt _080EB26C - cmp r2, 0x12 - bge _080EB280 - cmp r2, 0 - beq _080EB270 - b _080EB290 - .align 2, 0 -_080EB268: .4byte 0x000001ff -_080EB26C: - cmp r2, 0x15 - bne _080EB290 -_080EB270: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB27C @ =gSpeciesNames - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB27C: .4byte gSpeciesNames -_080EB280: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB28C @ =gMoveNames - adds r1, r0 - b _080EB2A2 - .align 2, 0 -_080EB28C: .4byte gMoveNames -_080EB290: - ldr r0, _080EB2CC @ =gUnknown_083DB694 - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB2D0 @ =0x000041a4 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB2A2: - adds r0, r5, 0 - bl StringCopy - adds r1, r0, 0 -_080EB2AA: - movs r0, 0xFC - strb r0, [r1] - movs r0, 0x13 - strb r0, [r1, 0x1] - mov r2, r8 - lsls r0, r2, 3 - strb r0, [r1, 0x2] - adds r1, 0x3 - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB2CC: .4byte gUnknown_083DB694 -_080EB2D0: .4byte 0x000041a4 - thumb_func_end sub_80EB218 - - thumb_func_start sub_80EB2D4 -sub_80EB2D4: @ 80EB2D4 - push {r4-r6,lr} - lsls r5, r0, 16 - lsrs r4, r5, 16 - adds r6, r4, 0 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB2F8 - ldr r0, _080EB2F4 @ =gOtherText_ThreeQuestions - bl StringLength - lsls r0, 16 - lsrs r0, 16 - b _080EB374 - .align 2, 0 -_080EB2F4: .4byte gOtherText_ThreeQuestions -_080EB2F8: - ldr r0, _080EB304 @ =0x0000ffff - cmp r4, r0 - bne _080EB308 - movs r0, 0 - b _080EB374 - .align 2, 0 -_080EB304: .4byte 0x0000ffff -_080EB308: - lsrs r2, r5, 25 - ldr r1, _080EB31C @ =0x000001ff - ands r1, r6 - cmp r2, 0x13 - bgt _080EB320 - cmp r2, 0x12 - bge _080EB334 - cmp r2, 0 - beq _080EB324 - b _080EB344 - .align 2, 0 -_080EB31C: .4byte 0x000001ff -_080EB320: - cmp r2, 0x15 - bne _080EB344 -_080EB324: - movs r0, 0xB - muls r1, r0 - ldr r0, _080EB330 @ =gSpeciesNames - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB330: .4byte gSpeciesNames -_080EB334: - movs r0, 0xD - muls r1, r0 - ldr r0, _080EB340 @ =gMoveNames - adds r1, r0 - b _080EB356 - .align 2, 0 -_080EB340: .4byte gMoveNames -_080EB344: - ldr r0, _080EB35C @ =gUnknown_083DB694 - ldr r0, [r0] - lsls r1, 2 - lsls r2, 10 - adds r1, r2 - ldr r2, _080EB360 @ =0x000041a4 - adds r0, r2 - adds r0, r1 - ldr r1, [r0] -_080EB356: - movs r2, 0 - b _080EB36C - .align 2, 0 -_080EB35C: .4byte gUnknown_083DB694 -_080EB360: .4byte 0x000041a4 -_080EB364: - adds r1, 0x1 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 -_080EB36C: - ldrb r0, [r1] - cmp r0, 0xFF - bne _080EB364 - adds r0, r2, 0 -_080EB374: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EB2D4 - - thumb_func_start sub_80EB37C -sub_80EB37C: @ 80EB37C - push {r4,r5,lr} - lsls r1, r0, 16 - lsrs r3, r1, 16 - ldr r0, _080EB3A0 @ =0x0000ffff - cmp r3, r0 - beq _080EB3EA - lsrs r2, r1, 25 - ldr r5, _080EB3A4 @ =0x000001ff - ands r5, r3 - cmp r2, 0x15 - bhi _080EB3F4 - cmp r2, 0x13 - bgt _080EB3A8 - cmp r2, 0x12 - bge _080EB3AC - cmp r2, 0 - beq _080EB3AC - b _080EB3E0 - .align 2, 0 -_080EB3A0: .4byte 0x0000ffff -_080EB3A4: .4byte 0x000001ff -_080EB3A8: - cmp r2, 0x15 - bne _080EB3E0 -_080EB3AC: - ldr r0, _080EB3D8 @ =gEasyChatGroupWords - lsls r1, r2, 2 - adds r1, r0 - ldr r4, [r1] - movs r3, 0 - ldr r0, _080EB3DC @ =gEasyChatGroupSizes - adds r0, r2, r0 - ldrb r0, [r0] - cmp r3, r0 - bcs _080EB3F4 - adds r1, r0, 0 -_080EB3C2: - lsls r0, r3, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r5, r0 - beq _080EB3EA - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - bcc _080EB3C2 - b _080EB3F4 - .align 2, 0 -_080EB3D8: .4byte gEasyChatGroupWords -_080EB3DC: .4byte gEasyChatGroupSizes -_080EB3E0: - ldr r0, _080EB3F0 @ =gEasyChatGroupSizes - adds r0, r2, r0 - ldrb r0, [r0] - cmp r5, r0 - bcs _080EB3F4 -_080EB3EA: - movs r0, 0 - b _080EB3F6 - .align 2, 0 -_080EB3F0: .4byte gEasyChatGroupSizes -_080EB3F4: - movs r0, 0x1 -_080EB3F6: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80EB37C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fight.s b/asm/fight.s index d0d042113..e8e3299af 100755..100644 --- a/asm/fight.s +++ b/asm/fight.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -1688,7 +1688,7 @@ _080D9CDE: lsls r0, 24 cmp r0, 0 bne _080D9D14 - ldr r1, _080D9D10 @ =gUnknown_030041B0 + ldr r1, _080D9D10 @ =gBattle_BG3_X ldrh r0, [r4, 0x1A] lsls r0, 16 asrs r0, 24 @@ -1699,9 +1699,9 @@ _080D9CDE: b _080D9D24 .align 2, 0 _080D9D0C: .4byte gAnimBankTarget -_080D9D10: .4byte gUnknown_030041B0 +_080D9D10: .4byte gBattle_BG3_X _080D9D14: - ldr r2, _080D9D64 @ =gUnknown_030041B0 + ldr r2, _080D9D64 @ =gBattle_BG3_X ldrh r1, [r4, 0x1A] lsls r1, 16 asrs r1, 24 @@ -1710,7 +1710,7 @@ _080D9D14: strh r0, [r2] adds r7, r2, 0 _080D9D24: - ldr r3, _080D9D68 @ =gUnknown_030041B8 + ldr r3, _080D9D68 @ =gBattle_BG3_Y ldrh r2, [r4, 0x1C] lsls r0, r2, 16 asrs r0, 24 @@ -1741,8 +1741,8 @@ _080D9D5C: pop {r0} bx r0 .align 2, 0 -_080D9D64: .4byte gUnknown_030041B0 -_080D9D68: .4byte gUnknown_030041B8 +_080D9D64: .4byte gBattle_BG3_X +_080D9D68: .4byte gBattle_BG3_Y _080D9D6C: .4byte gBattleAnimArgs thumb_func_end sub_80D9C80 diff --git a/asm/flying.s b/asm/flying.s index 99cb11913..ce3fb050b 100755..100644 --- a/asm/flying.s +++ b/asm/flying.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified diff --git a/asm/ghost.s b/asm/ghost.s index 0db176d08..2934f6dbd 100755..100644 --- a/asm/ghost.s +++ b/asm/ghost.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -1334,7 +1334,7 @@ _080DE584: _080DE59C: movs r2, 0x2 movs r3, 0x6 - bl sub_8089944 + bl ScanlineEffect_InitWave lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] @@ -1507,7 +1507,7 @@ _080DE6E8: beq _080DE740 b _080DE7AA _080DE6EE: - ldr r1, _080DE710 @ =gUnknown_03004DC0 + ldr r1, _080DE710 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] movs r0, 0x1 @@ -1523,7 +1523,7 @@ _080DE6EE: ldr r0, _080DE714 @ =0x0000fdff b _080DE720 .align 2, 0 -_080DE710: .4byte gUnknown_03004DC0 +_080DE710: .4byte gScanlineEffect _080DE714: .4byte 0x0000fdff _080DE718: movs r2, 0x80 diff --git a/asm/ground.s b/asm/ground.s index fd4cecbfd..3d4b69a9f 100755..100644 --- a/asm/ground.s +++ b/asm/ground.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -631,7 +631,7 @@ _080E13D6: _080E13F8: .4byte gBattle_BG2_Y _080E13FC: .4byte gSprites _080E1400: - ldr r1, _080E1410 @ =gUnknown_03004DC0 + ldr r1, _080E1410 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _080E1406: @@ -640,7 +640,7 @@ _080E1406: strh r0, [r4, 0x8] b _080E1432 .align 2, 0 -_080E1410: .4byte gUnknown_03004DC0 +_080E1410: .4byte gScanlineEffect _080E1414: adds r0, r2, 0 bl DestroyAnimVisualTask @@ -925,7 +925,7 @@ _080E161C: ldrsh r0, [r0, r1] cmp r0, 0 bne _080E1662 - ldr r1, _080E1658 @ =gUnknown_03004DC0 + ldr r1, _080E1658 @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] _080E164A: @@ -935,7 +935,7 @@ _080E164A: b _080E1662 .align 2, 0 _080E1654: .4byte gSprites -_080E1658: .4byte gUnknown_03004DC0 +_080E1658: .4byte gScanlineEffect _080E165C: adds r0, r2, 0 bl DestroyAnimVisualTask @@ -980,7 +980,7 @@ _080E169C: asrs r4, r0, 16 cmp r2, r0 bge _080E16C8 - ldr r5, _080E1720 @ =gUnknown_03004DE0 + ldr r5, _080E1720 @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -1003,7 +1003,7 @@ _080E16C8: asrs r0, r1, 16 cmp r0, 0x9F bgt _080E16F6 - ldr r4, _080E1720 @ =gUnknown_03004DE0 + ldr r4, _080E1720 @ =gScanlineEffectRegBuffers lsls r0, r3, 16 asrs r0, 16 adds r3, r0, 0 @@ -1035,7 +1035,7 @@ _080E16F6: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80895F8 + bl ScanlineEffect_SetParams add sp, 0xC pop {r4-r6} pop {r0} @@ -1043,7 +1043,7 @@ _080E16F6: .align 2, 0 _080E1718: .4byte gBattle_BG2_X _080E171C: .4byte REG_BG2HOFS -_080E1720: .4byte gUnknown_03004DE0 +_080E1720: .4byte gScanlineEffectRegBuffers _080E1724: .4byte 0xa2600001 thumb_func_end sub_80E1668 @@ -1243,14 +1243,14 @@ _080E189C: beq _080E18C8 cmp r0, 0x5 bne _080E1908 - ldr r0, _080E18C0 @ =gUnknown_030041B0 + ldr r0, _080E18C0 @ =gBattle_BG3_X ldrh r0, [r0] strh r0, [r4, 0x22] ldr r0, _080E18C4 @ =sub_80E1934 b _080E1926 .align 2, 0 _080E18BC: .4byte gAnimMovePower -_080E18C0: .4byte gUnknown_030041B0 +_080E18C0: .4byte gBattle_BG3_X _080E18C4: .4byte sub_80E1934 _080E18C8: movs r0, 0 @@ -1351,16 +1351,16 @@ _080E1962: ands r0, r1 cmp r0, 0 bne _080E198C - ldr r1, _080E1988 @ =gUnknown_030041B0 + ldr r1, _080E1988 @ =gBattle_BG3_X ldrh r0, [r3, 0x26] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r1] b _080E1996 .align 2, 0 -_080E1988: .4byte gUnknown_030041B0 +_080E1988: .4byte gBattle_BG3_X _080E198C: - ldr r0, _080E19B4 @ =gUnknown_030041B0 + ldr r0, _080E19B4 @ =gBattle_BG3_X ldrh r1, [r3, 0x22] ldrh r2, [r3, 0x26] subs r1, r2 @@ -1382,7 +1382,7 @@ _080E1996: strh r0, [r3, 0x24] b _080E1A0C .align 2, 0 -_080E19B4: .4byte gUnknown_030041B0 +_080E19B4: .4byte gBattle_BG3_X _080E19B8: ldrh r0, [r3, 0xA] adds r0, 0x1 @@ -1397,16 +1397,16 @@ _080E19B8: ands r1, r0 cmp r1, 0 bne _080E19E4 - ldr r1, _080E19E0 @ =gUnknown_030041B0 + ldr r1, _080E19E0 @ =gBattle_BG3_X ldrh r0, [r3, 0x24] ldrh r2, [r3, 0x22] adds r0, r2 strh r0, [r1] b _080E19EE .align 2, 0 -_080E19E0: .4byte gUnknown_030041B0 +_080E19E0: .4byte gBattle_BG3_X _080E19E4: - ldr r0, _080E1A14 @ =gUnknown_030041B0 + ldr r0, _080E1A14 @ =gBattle_BG3_X ldrh r1, [r3, 0x22] ldrh r2, [r3, 0x24] subs r1, r2 @@ -1433,9 +1433,9 @@ _080E1A0C: strh r0, [r3, 0x8] b _080E1A24 .align 2, 0 -_080E1A14: .4byte gUnknown_030041B0 +_080E1A14: .4byte gBattle_BG3_X _080E1A18: - ldr r1, _080E1A28 @ =gUnknown_030041B0 + ldr r1, _080E1A28 @ =gBattle_BG3_X ldrh r0, [r3, 0x22] strh r0, [r1] adds r0, r2, 0 @@ -1444,7 +1444,7 @@ _080E1A24: pop {r0} bx r0 .align 2, 0 -_080E1A28: .4byte gUnknown_030041B0 +_080E1A28: .4byte gBattle_BG3_X thumb_func_end sub_80E1934 thumb_func_start sub_80E1A2C @@ -1719,10 +1719,10 @@ _080E1BE2: movs r0, 0xFF ands r1, r0 strh r1, [r4, 0xC] - ldr r2, _080E1C50 @ =gUnknown_030041B0 + ldr r2, _080E1C50 @ =gBattle_BG3_X ldrh r0, [r4, 0xA] strh r0, [r2] - ldr r0, _080E1C54 @ =gUnknown_030041B8 + ldr r0, _080E1C54 @ =gBattle_BG3_Y strh r1, [r0] ldrh r0, [r6, 0x4] strh r0, [r4, 0xE] @@ -1736,8 +1736,8 @@ _080E1C40: .4byte gAnimBankAttacker _080E1C44: .4byte sub_80E1C58 _080E1C48: .4byte gTasks _080E1C4C: .4byte 0x000001ff -_080E1C50: .4byte gUnknown_030041B0 -_080E1C54: .4byte gUnknown_030041B8 +_080E1C50: .4byte gBattle_BG3_X +_080E1C54: .4byte gBattle_BG3_Y thumb_func_end sub_80E1BB0 thumb_func_start sub_80E1C58 @@ -1757,10 +1757,10 @@ sub_80E1C58: @ 80E1C58 ldrsh r0, [r2, r4] cmp r1, r0 bne _080E1C98 - ldr r0, _080E1C90 @ =gUnknown_030041B0 + ldr r0, _080E1C90 @ =gBattle_BG3_X movs r1, 0 strh r1, [r0] - ldr r0, _080E1C94 @ =gUnknown_030041B8 + ldr r0, _080E1C94 @ =gBattle_BG3_Y strh r1, [r0] adds r0, r3, 0 bl DestroyTask @@ -1768,13 +1768,13 @@ sub_80E1C58: @ 80E1C58 .align 2, 0 _080E1C88: .4byte gTasks _080E1C8C: .4byte gBattleAnimArgs -_080E1C90: .4byte gUnknown_030041B0 -_080E1C94: .4byte gUnknown_030041B8 +_080E1C90: .4byte gBattle_BG3_X +_080E1C94: .4byte gBattle_BG3_Y _080E1C98: - ldr r1, _080E1CAC @ =gUnknown_030041B0 + ldr r1, _080E1CAC @ =gBattle_BG3_X ldrh r0, [r2, 0xA] strh r0, [r1] - ldr r1, _080E1CB0 @ =gUnknown_030041B8 + ldr r1, _080E1CB0 @ =gBattle_BG3_Y ldrh r0, [r2, 0xC] strh r0, [r1] _080E1CA4: @@ -1782,8 +1782,8 @@ _080E1CA4: pop {r0} bx r0 .align 2, 0 -_080E1CAC: .4byte gUnknown_030041B0 -_080E1CB0: .4byte gUnknown_030041B8 +_080E1CAC: .4byte gBattle_BG3_X +_080E1CB0: .4byte gBattle_BG3_Y thumb_func_end sub_80E1C58 .align 2, 0 @ Don't pad with nop. diff --git a/asm/ice.s b/asm/ice.s index 1fad057ed..032da59c3 100755..100644 --- a/asm/ice.s +++ b/asm/ice.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -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/libagbsyscall.s b/asm/libagbsyscall.s deleted file mode 100644 index de59d4c27..000000000 --- a/asm/libagbsyscall.s +++ /dev/null @@ -1,91 +0,0 @@ - .include "asm/macros.inc" - .syntax unified - - .text - - thumb_func_start ArcTan2 -ArcTan2: @ 81E07E0 - swi 0xA - bx lr - thumb_func_end ArcTan2 - - thumb_func_start BgAffineSet -BgAffineSet: @ 81E07E4 - swi 0xE - bx lr - thumb_func_end BgAffineSet - - thumb_func_start CpuFastSet -CpuFastSet: @ 81E07E8 - swi 0xC - bx lr - thumb_func_end CpuFastSet - - thumb_func_start CpuSet -CpuSet: @ 81E07EC - swi 0xB - bx lr - thumb_func_end CpuSet - - thumb_func_start LZ77UnCompVram -LZ77UnCompVram: @ 81E07F4 - swi 0x12 - bx lr - thumb_func_end LZ77UnCompVram - - thumb_func_start LZ77UnCompWram -LZ77UnCompWram: @ 81E07F8 - swi 0x11 - bx lr - thumb_func_end LZ77UnCompWram - - thumb_func_start ObjAffineSet -ObjAffineSet: @ 81E0804 - swi 0xF - bx lr - thumb_func_end ObjAffineSet - - thumb_func_start RLUnCompVram -RLUnCompVram: @ 81E0808 - swi 0x15 - bx lr - thumb_func_end RLUnCompVram - - thumb_func_start RLUnCompWram -RLUnCompWram: @ 81E080C - swi 0x14 - bx lr - thumb_func_end RLUnCompWram - - thumb_func_start RegisterRamReset -RegisterRamReset: @ 81E0810 - swi 0x1 - bx lr - thumb_func_end RegisterRamReset - - thumb_func_start SoftReset -SoftReset: @ 81E0814 - ldr r3, =0x04000208 - movs r2, 0 - strb r2, [r3] - ldr r1, =0x03007f00 @ User Stack - mov sp, r1 - swi 0x1 - swi 0 - .pool - thumb_func_end SoftReset - - thumb_func_start Sqrt -Sqrt: @ 81E082C - swi 0x8 - bx lr - thumb_func_end Sqrt - - thumb_func_start VBlankIntrWait -VBlankIntrWait: @ 81E0830 - movs r2, 0 - swi 0x5 - bx lr - thumb_func_end VBlankIntrWait - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/libgcnmultiboot.s b/asm/libgcnmultiboot.s deleted file mode 100644 index 91bc1890c..000000000 --- a/asm/libgcnmultiboot.s +++ /dev/null @@ -1,641 +0,0 @@ -@ This library can be used to download and execute a multi-boot image from -@ a GameCube using the JOY Bus protocol over the link cable. - - .include "asm/macros.inc" - .include "constants/constants.inc" - - .equiv GCMB_STRUCT_COUNTER1, 0x00 - .equiv GCMB_STRUCT_COUNTER2, 0x01 - .equiv GCMB_STRUCT_MBPROGRESS, 0x02 - .equiv GCMB_STRUCT_SAVEDVCOUNT, 0x03 - .equiv GCMB_STRUCT_KEYA, 0x04 - .equiv GCMB_STRUCT_KEYB, 0x08 - .equiv GCMB_STRUCT_KEYC, 0x0C - .equiv GCMB_STRUCT_BOOT_KEY, 0x10 - .equiv GCMB_STRUCT_IMAGE_SIZE, 0x12 - .equiv GCMB_STRUCT_SESSION_KEY, 0x14 - .equiv GCMB_STRUCT_HASH_VAL, 0x18 - .equiv GCMB_STRUCT_KEYC_DERIVATION, 0x1C - .equiv GCMB_STRUCT_BASE_DEST_PTR, 0x20 - .equiv GCMB_STRUCT_CUR_DEST_PTR, 0x24 - .equiv GCMB_STRUCT_SERIAL_INTR_HANDLER, 0x28 - - .equiv ROM_HEADER_NINTENDO_LOGO_OFFSET, 0x04 - .equiv ROM_HEADER_NINTENDO_LOGO_LENGTH, 0x98 - .equiv ROM_HEADER_NINTENDO_LOGO_END, 0xA0 - - .equiv MBPROGRESS_NONE, 0x00 - .equiv MBPROGRESS_LOGO_CORRECT, 0x01 - .equiv MBPROGRESS_READY_TO_BOOT, 0x02 - - .equiv GCMB_MAGIC_BOOTKEY_HASHVAL, 0xBB - .equiv GCMB_MAGIC_BOOTKEY, 0xBB - .equiv GCMB_MAGIC_COUNTER2, 0xCC - .equiv GCMB_MAGIC_KEYA, 0xDD - .equiv GCMB_MAGIC_KEYB, 0xEE - .equiv GCMB_MAGIC_KEYCDERIVATION, 0xFF - - .syntax unified - - .text - - thumb_func_start GameCubeMultiBoot_Hash -GameCubeMultiBoot_Hash: @ 81DCB38 - push {r4,lr} - ldr r4, pool_HashVal - eors r3, r1 - movs r2, 0x20 - -GameCubeMultiBoot_Hash_Loop: - lsrs r3, 1 - bcc GameCubeMultiBoot_Hash_SkipEor - - eors r3, r4 - -GameCubeMultiBoot_Hash_SkipEor: - subs r2, 0x1 - bne GameCubeMultiBoot_Hash_Loop - - pop {r4,pc} - thumb_func_end GameCubeMultiBoot_Hash - - thumb_func_start GameCubeMultiBoot_Main -@ void GameCubeMultiBoot_Main(struct GameCubeMultiBoot *mb)@ -GameCubeMultiBoot_Main: @ 81DCB4C - @ If there is no interrupt handler, skip counter manipulation - ldr r1, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER] - cmp r1, 0 - beq GameCubeMultiBoot_Main_SkipCounters - @ Increment the second counter - ldrb r1, [r0, GCMB_STRUCT_COUNTER2] - adds r1, 0x1 - strb r1, [r0, GCMB_STRUCT_COUNTER2] - @ If there is nothing more to do, bail out - ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS] - cmp r1, MBPROGRESS_READY_TO_BOOT - beq GameCubeMultiBoot_Main_Return - @ Save current interrupt master register value - ldr r3, pool_InterruptRegs - ldrh r2, [r3, OFFSET_REG_IME - 0x200] - @ Disable all interrupts - movs r1, 0 - strh r1, [r3, OFFSET_REG_IME - 0x200] - @ Increment the first counter, if it's less than or equal to 10. - ldrb r1, [r0, GCMB_STRUCT_COUNTER1] - cmp r1, 0xA - bgt GameCubeMultiBoot_Main_SkipCounter1Inc - adds r1, 0x1 - strb r1, [r0, GCMB_STRUCT_COUNTER1] -GameCubeMultiBoot_Main_SkipCounter1Inc: - @ Load the saved interrupt master register value (re-enables interrupts if they were enabled before) - strh r2, [r3, OFFSET_REG_IME - 0x200] -GameCubeMultiBoot_Main_SkipCounters: - @ Initialise multiboot structures if required - bcs GameCubeMultiBoot_Init - @ Skip this section (check Nintendo logo) if the check has already passed - ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS] - cmp r1, MBPROGRESS_NONE - bne GameCubeMultiBoot_Main_SkipLogoCheck - @ Bail out if no multiboot image data has been transferred yet - ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR] - ldr r2, [r0, GCMB_STRUCT_BASE_DEST_PTR] - subs r1, r2 - beq GameCubeMultiBoot_Main_Return2 - @ Also bail out if not enough data has been transferred - cmp r1, ROM_HEADER_NINTENDO_LOGO_END - bcc GameCubeMultiBoot_Main_Return2 - @ Compare the Nintendo logo of the transferred multiboot image header, with the one in the ROM image of the inserted cart - push {r4-r6} - movs r1, ROM_HEADER_NINTENDO_LOGO_LENGTH - adds r2, ROM_HEADER_NINTENDO_LOGO_OFFSET - ldr r4, pool_NintendoLogo -GameCubeMultiBoot_Main_LogoCmpLoop: - ldm r2!, {r5} - ldm r4!, {r6} - cmp r5, r6 - bne GameCubeMultiBoot_Main_LogoCmpEnd - subs r1, 0x4 - bne GameCubeMultiBoot_Main_LogoCmpLoop - ldm r2!, {r5} - ldm r4!, {r6} - eors r5, r6 - lsrs r5, 8 - str r2, [r0, GCMB_STRUCT_BASE_DEST_PTR] -GameCubeMultiBoot_Main_LogoCmpEnd: - pop {r4-r6} - @ Throw everything away if the logo data didn't match - bne GameCubeMultiBoot_Init - @ Logo matched, set the relevent multiboot progress bit - movs r1, MBPROGRESS_LOGO_CORRECT - strb r1, [r0, GCMB_STRUCT_MBPROGRESS] - @ XOR together KeyA and KeyB to get the initial multiboot image checksum value - ldr r1, [r0, GCMB_STRUCT_KEYA] - ldr r2, [r0, GCMB_STRUCT_KEYB] - eors r1, r2 - str r1, [r0, GCMB_STRUCT_HASH_VAL] - @ ...also use it as the initial value for the image encryption session key. Algorithm is the same as the GBA BIOS multiboot: sessionkey = (initialvalue * 0x6177614b) + 1 - ldr r2, pool_Kawa - muls r1, r2 - adds r1, 0x1 - str r1, [r0, GCMB_STRUCT_SESSION_KEY] -GameCubeMultiBoot_Main_Return: - bx lr -GameCubeMultiBoot_Main_SkipLogoCheck: - @ If this code is executed, then the logo check has passed, and the data being transferred in is encrypted. - @ Set up registers. - ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR] - mov r12, r1 - ldr r3, [r0, GCMB_STRUCT_HASH_VAL] - push {r4-r7} - ldr r4, [r0, GCMB_STRUCT_BASE_DEST_PTR] - ldr r5, pool_Kawa - ldr r6, [r0, GCMB_STRUCT_SESSION_KEY] - ldr r7, pool_HashVal -GameCubeMultiBoot_Main_ImageDecryptHashLoop: - @ If there's no more data, break out of the loop - cmp r4, r12 - bcs GameCubeMultiBoot_Main_ImageDecryptHashEnd - @ Get the next uint32 - ldr r1, [r4] - @ Decrypt the ciphertext: plaintext = (ciphertext ^ sessionkey) + hashval - eors r1, r6 - adds r1, r3 - @ Save the current uint32 of plaintext and advance the pointer - stm r4!, {r1} - @ Advance the hashval with this uint32 of plaintext -- this is the same code as GameCubeMultiBoot_Hash. - eors r3, r1 - movs r2, 0x20 -GameCubeMultiBoot_Main_HashLoop: - lsrs r3, 1 - bcc GameCubeMultiBoot_Main_HashSkipEor - eors r3, r7 -GameCubeMultiBoot_Main_HashSkipEor: - subs r2, 0x1 - bne GameCubeMultiBoot_Main_HashLoop - @ Advance the sessionkey with the usual algorithm: sessionkey = (sessionkey * 0x6177614b) + 1 - muls r6, r5 - adds r6, 0x1 - b GameCubeMultiBoot_Main_ImageDecryptHashLoop -GameCubeMultiBoot_Main_ImageDecryptHashEnd: - @ Save the new pointer, sessionkey, hashval - str r4, [r0, GCMB_STRUCT_BASE_DEST_PTR] - str r6, [r0, GCMB_STRUCT_SESSION_KEY] - pop {r4-r7} - str r3, [r0, GCMB_STRUCT_HASH_VAL] - @ Bail out if the image size is unknown - ldrh r1, [r0, GCMB_STRUCT_IMAGE_SIZE] - cmp r1, 0 - bne GameCubeMultiBoot_Main_Return2 - @ Bail out if no image data has been transferred - ldr r1, [r0, GCMB_STRUCT_CUR_DEST_PTR] - ldr r2, [r0, GCMB_STRUCT_BASE_DEST_PTR] - cmp r1, r2 - bne GameCubeMultiBoot_Main_Return2 - @ If KeyC hasn't been generated yet, go generate it - ldr r1, [r0, GCMB_STRUCT_KEYC] - cmp r1, 0 - beq GameCubeMultiBoot_Main_GenerateKeyC - @ If the other side hasn't sent its boot key yet, bail out - ldrh r1, [r0, GCMB_STRUCT_BOOT_KEY] - cmp r1, 0 - beq GameCubeMultiBoot_Main_Return - @ Save off LR so it doesn't get clobbered by the upcoming function call - mov r12, lr - @ Generate the real boot key, which is the checksum of a hardcoded value and KeyC - movs r1, GCMB_MAGIC_BOOTKEY_HASHVAL - ldr r3, [r0, GCMB_STRUCT_KEYC] - bl GameCubeMultiBoot_Hash - ldrh r1, [r0, GCMB_STRUCT_BOOT_KEY] - @ Restore the saved LR value - mov lr, r12 - @ Compare the two boot keys (real and passed in), if they don't match then throw everything away - subs r1, r3 - bne GameCubeMultiBoot_Init - @ The two boot keys matched, tell the caller that the image is ready to boot - movs r1, MBPROGRESS_READY_TO_BOOT - strb r1, [r0, GCMB_STRUCT_MBPROGRESS] - @ Nothing more to do, return. - bx lr -GameCubeMultiBoot_Main_GenerateKeyC: - @ Save off LR so it doesn't get clobbered by the upcoming function call - mov r12, lr - @ KeyC = (SavedVCount << 24) - 1 - ldrb r1, [r0, GCMB_STRUCT_SAVEDVCOUNT] - lsls r1, 24 - subs r1, 0x1 - str r1, [r0, GCMB_STRUCT_KEYC] - @ Hash the KeyC with the multiboot image checksum to generate the KeyC derivation material to be sent to the other side of the link - bl GameCubeMultiBoot_Hash - @ Make sure the sent KeyC derivation material contains a magic value so that the other side can detect it - lsls r3, 8 - adds r3, GCMB_MAGIC_KEYCDERIVATION - @ Save off the KeyC derivation material and return to caller - str r3, [r0, GCMB_STRUCT_KEYC_DERIVATION] - bx r12 -GameCubeMultiBoot_Main_Return2: - bx lr - thumb_func_end GameCubeMultiBoot_Main - - .align 2, 0 - -pool_HashVal: .4byte 0xa1c1 - -pool_Kawa: .ascii "Kawa" @ name of BIOS developer - -pool_NintendoLogo: .4byte RomHeaderNintendoLogo - - thumb_func_start GameCubeMultiBoot_ExecuteProgram -@ void GameCubeMultiBoot_ExecuteProgram(struct GameCubeMultiBoot *mb)@ -GameCubeMultiBoot_ExecuteProgram: @ 81DCC4C - @ If there's no multiboot image ready, just return to caller - ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS] - cmp r1, MBPROGRESS_READY_TO_BOOT - bne GameCubeMultiBoot_ExecuteProgram_Fail - @ Disable interrupts - ldr r3, pool_InterruptRegs - movs r1, 0 - strh r1, [r3, OFFSET_REG_IME - 0x200] - @ Jump to the real entry point of the multiboot image (past the image header), in ARM mode - ldr r1, pool_MultiBootLoadAddr - adds r1, 0xC0 - bx r1 -GameCubeMultiBoot_ExecuteProgram_Fail: - bx lr - thumb_func_end GameCubeMultiBoot_ExecuteProgram - - thumb_func_start GameCubeMultiBoot_Init -@ void GameCubeMultiBoot_Init(struct GameCubeMultiBoot *mb)@ -GameCubeMultiBoot_Init: @ 81DCC60 - ldr r3, pool_InterruptRegs - -@ Save IME register. - ldrh r2, [r3, OFFSET_REG_IME - 0x200] - -@ Disable interrupts. - movs r1, 0 - strh r1, [r3, OFFSET_REG_IME - 0x200] - -@ Set the handler to the "Stop" routine. -@ Unless the first command that is received is a device reset command, the -@ "Stop" routine will be executed and no further commands will be processed. - adr r3, GcMbIntrHandler_Stop - str r3, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER] - - ldrb r3, [r0, 0x3] - push {r3} - ldrb r3, [r0, 0x1] - push {r0,r3} - - adds r3, r0, 0 - adds r3, GCMB_STRUCT_BASE_DEST_PTR - -@ clear all but the last 3 fields of the struct -GameCubeMultiBoot_Init_ClearStructLoop: - stm r0!, {r1} - cmp r0, r3 - blo GameCubeMultiBoot_Init_ClearStructLoop - - pop {r0,r3} - lsrs r3, 1 - strb r3, [r0, 0x3] - pop {r3} - strb r3, [r0, 0x1] - - ldr r3, pool_SerialRegs - -@ Turn off JOY Bus mode. - lsls r0, r3, 10 - strh r0, [r3, OFFSET_REG_RCNT - 0x120] - -@ Turn on JOY Bus mode. - movs r0, 0xC0 - lsls r0, 8 - strh r0, [r3, OFFSET_REG_RCNT - 0x120] - -@ Init JOY Bus registers. - movs r0, 0x47 - strh r0, [r3, OFFSET_REG_JOYCNT - 0x120] - strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120] - - ldr r3, pool_InterruptRegs - -@ Acknowledge serial interrupt. - movs r0, INTR_FLAG_SERIAL - strh r0, [r3, OFFSET_REG_IF - 0x200] - -@ Enable serial interrupt. - ldrh r1, [r3, OFFSET_REG_IE - 0x200] - orrs r1, r0 - strh r1, [r3, OFFSET_REG_IE - 0x200] - -@ Restore IME register. - strh r2, [r3, OFFSET_REG_IME - 0x200] - - bx lr - thumb_func_end GameCubeMultiBoot_Init - - non_word_aligned_thumb_func_start GameCubeMultiBoot_HandleSerialInterrupt -@ void GameCubeMultiBoot_HandleSerialInterrupt(struct GameCubeMultiBoot *mb)@ -GameCubeMultiBoot_HandleSerialInterrupt: @ 81DCCAA - ldr r3, pool_SerialRegs - -@ Acknowledge reset/receive/send flags. - ldrh r1, [r3, OFFSET_REG_JOYCNT - 0x120] - strh r1, [r3, OFFSET_REG_JOYCNT - 0x120] - - movs r2, 0 - strb r2, [r0] - - ldr r2, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER] - cmp r2, 0 - beq GameCubeMultiBoot_HandleSerialInterruptDone - - lsrs r1, 1 @ was a device reset command received? - bcs GameCubeMultiBoot_BeginHandshake @ branch if so - - mov pc, r2 - - .align 2, 0 - -@ Zero the status and the interrupt handler pointer. -@ Commands from the GameCube will not be processed after this is executed -@ unless GameCubeMultiBoot_Init() is called again. -GcMbIntrHandler_Stop: - movs r2, 0 - strh r2, [r3, OFFSET_REG_JOYSTAT - 0x120] - -GameCubeMultiBoot_SetInterruptHandler: - str r2, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER] - -GameCubeMultiBoot_ReadVCount: - ldr r3, pool_RegDispstat - ldrh r1, [r3, OFFSET_REG_VCOUNT - OFFSET_REG_DISPSTAT] - strb r1, [r0, 0x3] - -GameCubeMultiBoot_HandleSerialInterruptDone: - bx lr - -GameCubeMultiBoot_BeginHandshake: - @ Throw away anything that got sent - ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120] - @ Send the game code, the other side of the link must send back the same game code - ldr r1, pool_RubyUSAGameCode - str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120] - movs r1, 0x10 - strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120] - @ Use the saved VCount value to provide 8 bits of entropy for KeyB - ldrb r1, [r0, GCMB_STRUCT_SAVEDVCOUNT] - strb r1, [r0, GCMB_STRUCT_KEYB + 1] - @ If a multiboot image has been transferred at least enough such that the Nintendo logo check has passed, stop everything. - ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS] - cmp r1, 0 - bne GcMbIntrHandler_Stop - @ Set the image destination pointers. - ldr r1, pool_MultiBootLoadAddr - str r1, [r0, GCMB_STRUCT_BASE_DEST_PTR] - str r1, [r0, GCMB_STRUCT_CUR_DEST_PTR] - @ Set the new interrupt handler. - adr r2, GcMbIntrHandler_CheckGameCodeSent - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_CheckGameCodeSent: @ 81DCCEC - lsls r1, 31 - bcc GcMbIntrHandler_Stop @ stop if send failed - bmi GameCubeMultiBoot_CheckHandshakeResponse @ branch if receive is complete - -@ If the response hasn't been fully received yet, -@ check again upon the next interrupt. - adr r2, GcMbIntrHandler_CheckHandshakeResponse - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_CheckHandshakeResponse: @ 81DCCF8 - lsrs r1, 1 @ is receive complete? - bcc GcMbIntrHandler_Stop @ stop if not - -GameCubeMultiBoot_CheckHandshakeResponse: - ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120] - ldr r2, pool_RubyUSAGameCode - cmp r1, r2 - bne GcMbIntrHandler_Stop @ stop if the GameCube didn't reply with the same game code - @ Use the saved VCount value to provide another 8 bits of entropy for KeyB. - ldrb r1, [r0, GCMB_STRUCT_SAVEDVCOUNT] - strb r1, [r0, GCMB_STRUCT_KEYB + 3] - adr r2, GcMbIntrHandler_ReceiveKeyA - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_ReceiveKeyA: @ 81DCD0C - lsrs r1, 1 @ is receive complete? - bcc GcMbIntrHandler_Stop @ branch if not - ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120] - @ make sure top 8 bits of the received value is the KeyA magic number, stop if KeyA is invalid - lsrs r2, r1, 24 - cmp r2, GCMB_MAGIC_KEYA - bne GcMbIntrHandler_Stop - @ save received KeyA - str r1, [r0, GCMB_STRUCT_KEYA] - @ use the second GameCubeMultiBoot_Main() counter as another 8 bits of entropy for KeyB - ldrb r1, [r0, GCMB_STRUCT_COUNTER2] - strb r1, [r0, GCMB_STRUCT_KEYB + 2] - movs r2, 0 - movs r3, 0 - ldr r1, [r0, GCMB_STRUCT_KEYB] - lsrs r1, 8 - @ make sure KeyB is valid (other side of the link is supposed to check KeyB too), if it's not then change the byte that was just set so it is -GameCubeMultiBoot_KeyBCheckLoop: - lsrs r1, 1 - adcs r2, r3 - cmp r1, 0 - bne GameCubeMultiBoot_KeyBCheckLoop - cmp r2, 0xE - bgt GameCubeMultiBoot_KeyBSaveNewByte - cmp r2, 0x7 - bge GameCubeMultiBoot_KeyBCheckEnd - movs r1, 0xFF -GameCubeMultiBoot_KeyBSaveNewByte: - strb r1, [r0, GCMB_STRUCT_KEYB + 2] -GameCubeMultiBoot_KeyBCheckEnd: - @ add in the KeyB magic number and send off KeyB - ldr r1, [r0, GCMB_STRUCT_KEYB] - adds r1, GCMB_MAGIC_KEYB - ldr r3, pool_SerialRegs - str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120] - movs r1, 0x30 - strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120] - @ set new interrupt handler - adr r2, GcMbIntrHandler_CheckKeyBSent - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_CheckKeyBSent: @ 81DCD4C - lsls r1, 31 - bcc GcMbIntrHandler_Stop @ stop if send failed - bmi GameCubeMultiBoot_CheckImageSizeResponse @ branch if receive is complete - adr r2, GcMbIntrHandler_CheckImageSizeResponse - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_CheckImageSizeResponse: @ 81DCD58 - lsrs r1, 1 @ is receive complete? - bcc GcMbIntrHandler_Stop @ branch if not -GameCubeMultiBoot_CheckImageSizeResponse: - ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120] - ldr r2, GameCubeMultiBoot_MaximumImageSizeUInt32s - cmp r1, r2 - bhs GcMbIntrHandler_Stop - adds r1, 0x1 - adds r1, r1 - strh r1, [r0, GCMB_STRUCT_IMAGE_SIZE] - ldrb r1, [r0, GCMB_STRUCT_MBPROGRESS] - cmp r1, 0 -GcMbIntrHandler_StopIfNotEqual: - bne GcMbIntrHandler_Stop - ldr r1, pool_MultiBootLoadAddr - str r1, [r0, GCMB_STRUCT_BASE_DEST_PTR] - str r1, [r0, GCMB_STRUCT_CUR_DEST_PTR] - adr r2, GcMbIntrHandler_CheckImageResponse - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_CheckImageResponse: @ 81DCD7C - lsrs r1, 1 @ is receive complete? - bcc GcMbIntrHandler_Stop @ branch if not - ldr r2, [r0, GCMB_STRUCT_CUR_DEST_PTR] - movs r1, 0x4 - ands r1, r2 - adds r1, 0x8 - lsls r1, 2 - strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120] - @ get the recieved uint32 - ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120] - @ put it in the current destination pointer and advance that pointer - stm r2!, {r1} - @ save off the advanced pointer - str r2, [r0, GCMB_STRUCT_CUR_DEST_PTR] - @ decrease the image size (in uint32s) - ldrh r1, [r0, GCMB_STRUCT_IMAGE_SIZE] - subs r1, 0x1 - strh r1, [r0, GCMB_STRUCT_IMAGE_SIZE] - @ branch away if the transfer is not yet complete - bne GameCubeMultiBoot_ReadVCount - -GcMbIntrHandler_SendCounter2: - @ send counter2 with magic number - ldrb r1, [r0, GCMB_STRUCT_COUNTER2] - lsls r1, 8 - adds r1, GCMB_MAGIC_COUNTER2 - str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120] - adr r2, GcMbIntrHandler_CheckCounter2Sent - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_CheckCounter2Sent: - lsls r1, 31 - -GcMbIntrHandler_StopIfSendFailed: - bcc GcMbIntrHandler_Stop @ stop if send failed - @ if KeyC derivation value has not yet been generated, send Counter2 again, otherwise, send KeyC derivation - ldr r1, [r0, GCMB_STRUCT_KEYC_DERIVATION] - cmp r1, 0 - beq GcMbIntrHandler_SendCounter2 - str r1, [r3, OFFSET_REG_JOY_TRANS - 0x120] - adr r2, GcMbIntrHandler_CheckKeyCDerivationSent - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_CheckKeyCDerivationSent: @ 81DCDB8 - lsls r1, 31 - bcc GcMbIntrHandler_StopIfSendFailed @ branch if send failed - bmi GameCubeMultiBoot_CheckBootKeyResponse @ branch if receive is complete - adr r2, GcMbIntrHandler_CheckBootKeyResponse - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_CheckBootKeyResponse: @ 81DCDC4 - lsrs r1, 1 @ is receive complete? - bcc GcMbIntrHandler_StopIfSendFailed @ branch if not - -GameCubeMultiBoot_CheckBootKeyResponse: - ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120] - @ make sure received boot key contains expected magic number, stop if not - lsrs r2, r1, 24 - cmp r2, GCMB_MAGIC_BOOTKEY - bne GcMbIntrHandler_StopIfNotEqual - @ save received bootkey to be checked in GameCubeMultiBoot_Main() - strh r1, [r0, GCMB_STRUCT_BOOT_KEY] - @ stop if anything more gets sent - adr r2, GcMbIntrHandler_StopUnconditionally - b GameCubeMultiBoot_SetInterruptHandler - - .align 2, 0 - -GcMbIntrHandler_StopUnconditionally: @ 81DCDD8 - b GcMbIntrHandler_Stop - - thumb_func_end GameCubeMultiBoot_HandleSerialInterrupt - - non_word_aligned_thumb_func_start GameCubeMultiBoot_Quit -@ void GameCubeMultiBoot_Quit()@ -GameCubeMultiBoot_Quit: @ 81DCDDA - ldr r3, pool_InterruptRegs - -@ Save IME register. - ldrh r2, [r3, OFFSET_REG_IME - 0x200] - -@ Disable interrupts. - movs r1, 0 - strh r1, [r3, OFFSET_REG_IME - 0x200] - - ldr r3, pool_SerialRegs - -@ Acknowledge all JOYCNT flags. - movs r0, 0x7 - strh r0, [r3, OFFSET_REG_JOYCNT - 0x120] - -@ Turn off JOY Bus mode. - lsls r0, r3, 10 - strh r0, [r3, OFFSET_REG_RCNT - 0x120] @ store 0x8000 - - ldr r3, pool_InterruptRegs - -@ Acknowledge serial interrupt. - movs r0, INTR_FLAG_SERIAL - strh r0, [r3, OFFSET_REG_IF - 0x200] - -@ Disable serial interrupt. - ldrh r1, [r3, OFFSET_REG_IE - 0x200] - bics r1, r0 - strh r1, [r3, OFFSET_REG_IE - 0x200] - -@ Restore IME register. - strh r2, [r3, OFFSET_REG_IME - 0x200] - - bx lr - thumb_func_end GameCubeMultiBoot_Quit - - .align 2, 0 - -GameCubeMultiBoot_MaximumImageSizeUInt32s: .4byte 0x00004000 - -pool_InterruptRegs: .4byte REG_BASE + 0x200 - -pool_SerialRegs: .4byte REG_BASE + 0x120 - -pool_RegDispstat: .4byte REG_DISPSTAT - -pool_RubyUSAGameCode: .ascii "AXVE" - -pool_MultiBootLoadAddr: .4byte EWRAM_START - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/m4a_1.s b/asm/m4a_1.s deleted file mode 100644 index 849cf5c2d..000000000 --- a/asm/m4a_1.s +++ /dev/null @@ -1,1911 +0,0 @@ - .include "asm/macros.inc" - .include "constants/gba_constants.inc" - .include "constants/m4a_constants.inc" - - .syntax unified - - .lcomm gUnknown_030007B8, 0x770 - - .text - - thumb_func_start umul3232H32 -umul3232H32: - adr r2, __umul3232H32 - bx r2 - .arm -__umul3232H32: - umull r2, r3, r0, r1 - add r0, r3, 0 - bx lr - thumb_func_end umul3232H32 - - thumb_func_start SoundMain -SoundMain: - ldr r0, lt_SOUND_INFO_PTR - ldr r0, [r0] - ldr r2, lt_ID_NUMBER - ldr r3, [r0, o_SoundInfo_ident] - cmp r2, r3 - beq SoundMain_1 - bx lr @ Exit the function if ident doesn't match ID_NUMBER. -SoundMain_1: - adds r3, 1 - str r3, [r0, o_SoundInfo_ident] - push {r4-r7,lr} - mov r1, r8 - mov r2, r9 - mov r3, r10 - mov r4, r11 - push {r0-r4} - sub sp, 0x18 - ldrb r1, [r0, o_SoundInfo_maxLines] - cmp r1, 0 @ if maxLines is 0, there is no maximum - beq SoundMain_3 - ldr r2, lt_REG_VCOUNT - ldrb r2, [r2] - cmp r2, VCOUNT_VBLANK - bhs SoundMain_2 - adds r2, TOTAL_SCANLINES -SoundMain_2: - adds r1, r2 -SoundMain_3: - str r1, [sp, 0x14] - ldr r3, [r0, o_SoundInfo_func] - cmp r3, 0 - beq SoundMain_4 - ldr r0, [r0, o_SoundInfo_intp] - bl _081DD25E - ldr r0, [sp, 0x18] -SoundMain_4: - ldr r3, [r0, o_SoundInfo_CgbSound] - bl _081DD25E - ldr r0, [sp, 0x18] - ldr r3, [r0, o_SoundInfo_pcmSamplesPerVBlank] - mov r8, r3 - ldr r5, lt_o_SoundInfo_pcmBuffer - adds r5, r0 - ldrb r4, [r0, o_SoundInfo_pcmDmaCounter] - subs r7, r4, 1 - bls SoundMain_5 - ldrb r1, [r0, o_SoundInfo_pcmDmaPeriod] - subs r1, r7 - mov r2, r8 - muls r2, r1 - adds r5, r2 -SoundMain_5: - str r5, [sp, 0x8] - ldr r6, lt_PCM_DMA_BUF_SIZE - ldr r3, lt_SoundMainRAM_Buffer - bx r3 - - .align 2, 0 -lt_SOUND_INFO_PTR: .word SOUND_INFO_PTR -lt_ID_NUMBER: .word ID_NUMBER -lt_SoundMainRAM_Buffer: .word SoundMainRAM_Buffer + 1 -lt_REG_VCOUNT: .word REG_VCOUNT -lt_o_SoundInfo_pcmBuffer: .word o_SoundInfo_pcmBuffer -lt_PCM_DMA_BUF_SIZE: .word PCM_DMA_BUF_SIZE - thumb_func_end SoundMain - - thumb_func_start SoundMainRAM -SoundMainRAM: - ldrb r3, [r0, o_SoundInfo_reverb] - cmp r3, 0 - beq SoundMainRAM_NoReverb - adr r1, SoundMainRAM_Reverb - bx r1 - .arm -SoundMainRAM_Reverb: - cmp r4, 0x2 - addeq r7, r0, o_SoundInfo_pcmBuffer - addne r7, r5, r8 - mov r4, r8 -_081DCEC4: - ldrsb r0, [r5, r6] - ldrsb r1, [r5] - add r0, r0, r1 - ldrsb r1, [r7, r6] - add r0, r0, r1 - ldrsb r1, [r7], 0x1 - add r0, r0, r1 - mul r1, r0, r3 - mov r0, r1, asr 9 - tst r0, 0x80 - addne r0, r0, 0x1 - strb r0, [r5, r6] - strb r0, [r5], 0x1 - subs r4, r4, 0x1 - bgt _081DCEC4 - adr r0, _081DCF36 + 1 @ plus 1 because THUMB - bx r0 - .thumb -SoundMainRAM_NoReverb: - movs r0, 0 - mov r1, r8 - adds r6, r5 - lsrs r1, 3 - bcc SoundMainRAM_NoReverb_Ok - stm r5!, {r0} - stm r6!, {r0} -SoundMainRAM_NoReverb_Ok: - lsrs r1, 1 - bcc SoundMainRAM_NoReverb_Loop - stm r5!, {r0} - stm r6!, {r0} - stm r5!, {r0} - stm r6!, {r0} -SoundMainRAM_NoReverb_Loop: - stm r5!, {r0} - stm r6!, {r0} - stm r5!, {r0} - stm r6!, {r0} - stm r5!, {r0} - stm r6!, {r0} - stm r5!, {r0} - stm r6!, {r0} - subs r1, 1 - bgt SoundMainRAM_NoReverb_Loop -_081DCF36: - ldr r4, [sp, 0x18] - ldr r0, [r4, o_SoundInfo_divFreq] - mov r12, r0 - ldrb r0, [r4, o_SoundInfo_maxChans] - adds r4, o_SoundInfo_chans - -SoundMainRAM_ChanLoop: - str r0, [sp, 0x4] - ldr r3, [r4, o_SoundChannel_wav] - ldr r0, [sp, 0x14] - cmp r0, 0 - beq _081DCF60 - ldr r1, =REG_VCOUNT - ldrb r1, [r1] - cmp r1, VCOUNT_VBLANK - bhs _081DCF54 - adds r1, TOTAL_SCANLINES -_081DCF54: - cmp r1, r0 - blo _081DCF60 - b _081DD24A - - .pool - -_081DCF60: - ldrb r6, [r4, o_SoundChannel_status] - movs r0, 0xC7 - tst r0, r6 - bne _081DCF6A - b _081DD240 -_081DCF6A: - movs r0, 0x80 - tst r0, r6 - beq _081DCFA0 - movs r0, 0x40 - tst r0, r6 - bne _081DCFB0 - movs r6, 0x3 - strb r6, [r4, o_SoundChannel_status] - adds r0, r3, 0 - adds r0, 0x10 - ldr r1, [r4, o_SoundChannel_ct] - adds r0, r1 - str r0, [r4, o_SoundChannel_cp] - ldr r0, [r3, 0xC] - subs r0, r1 - str r0, [r4, o_SoundChannel_ct] - movs r5, 0 - strb r5, [r4, o_SoundChannel_ev] - str r5, [r4, o_SoundChannel_fw] - ldrb r2, [r3, 0x3] - movs r0, 0xC0 - tst r0, r2 - beq _081DCFF8 - movs r0, 0x10 - orrs r6, r0 - strb r6, [r4, o_SoundChannel_status] - b _081DCFF8 -_081DCFA0: - ldrb r5, [r4, o_SoundChannel_ev] - movs r0, 0x4 - tst r0, r6 - beq _081DCFB6 - ldrb r0, [r4, o_SoundChannel_iel] - subs r0, 1 - strb r0, [r4, o_SoundChannel_iel] - bhi _081DD006 -_081DCFB0: - movs r0, 0 - strb r0, [r4, o_SoundChannel_status] - b _081DD240 -_081DCFB6: - movs r0, 0x40 - tst r0, r6 - beq _081DCFD6 - ldrb r0, [r4, o_SoundChannel_release] - muls r5, r0 - lsrs r5, 8 - ldrb r0, [r4, o_SoundChannel_iev] - cmp r5, r0 - bhi _081DD006 -_081DCFC8: - ldrb r5, [r4, o_SoundChannel_iev] - cmp r5, 0 - beq _081DCFB0 - movs r0, 0x4 - orrs r6, r0 - strb r6, [r4, o_SoundChannel_status] - b _081DD006 -_081DCFD6: - movs r2, 0x3 - ands r2, r6 - cmp r2, 0x2 - bne _081DCFF4 - ldrb r0, [r4, o_SoundChannel_decay] - muls r5, r0 - lsrs r5, 8 - ldrb r0, [r4, o_SoundChannel_sustain] - cmp r5, r0 - bhi _081DD006 - adds r5, r0, 0 - beq _081DCFC8 - subs r6, 0x1 - strb r6, [r4, o_SoundChannel_status] - b _081DD006 -_081DCFF4: - cmp r2, 0x3 - bne _081DD006 -_081DCFF8: - ldrb r0, [r4, o_SoundChannel_attack] - adds r5, r0 - cmp r5, 0xFF - bcc _081DD006 - movs r5, 0xFF - subs r6, 0x1 - strb r6, [r4, o_SoundChannel_status] -_081DD006: - strb r5, [r4, o_SoundChannel_ev] - ldr r0, [sp, 0x18] - ldrb r0, [r0, o_SoundChannel_release] - adds r0, 0x1 - muls r0, r5 - lsrs r5, r0, 4 - ldrb r0, [r4, o_SoundChannel_rightVolume] - muls r0, r5 - lsrs r0, 8 - strb r0, [r4, o_SoundChannel_er] - ldrb r0, [r4, o_SoundChannel_leftVolume] - muls r0, r5 - lsrs r0, 8 - strb r0, [r4, o_SoundChannel_el] - movs r0, 0x10 - ands r0, r6 - str r0, [sp, 0x10] - beq _081DD03A - adds r0, r3, 0 - adds r0, 0x10 - ldr r1, [r3, 0x8] - adds r0, r1 - str r0, [sp, 0xC] - ldr r0, [r3, 0xC] - subs r0, r1 - str r0, [sp, 0x10] -_081DD03A: - ldr r5, [sp, 0x8] - ldr r2, [r4, o_SoundChannel_ct] - ldr r3, [r4, o_SoundChannel_cp] - adr r0, _081DD044 - bx r0 - .arm -_081DD044: - str r8, [sp] - ldr r9, [r4, o_SoundChannel_fw] - ldrb r10, [r4, o_SoundChannel_er] - ldrb r11, [r4, o_SoundChannel_el] - ldrb r0, [r4, o_SoundChannel_type] - tst r0, 0x30 - beq _081DD068 - bl sub_81DD264 - b _081DD228 -_081DD068: - mov r10, r10, lsl 16 - mov r11, r11, lsl 16 - ldrb r0, [r4, o_SoundChannel_type] - tst r0, 0x8 - beq _081DD19C -_081DD07C: - cmp r2, 0x4 - ble _081DD0EC - subs r2, r2, r8 - movgt r9, 0 - bgt _081DD0A8 - mov r9, r8 - add r2, r2, r8 - sub r8, r2, 0x4 - sub r9, r9, r8 - ands r2, r2, 0x3 - moveq r2, 0x4 -_081DD0A8: - ldr r6, [r5] - ldr r7, [r5, 0x630] -_081DD0B0: - ldrsb r0, [r3], 0x1 - mul r1, r10, r0 - bic r1, r1, 0xFF0000 - add r6, r1, r6, ror 8 - mul r1, r11, r0 - bic r1, r1, 0xFF0000 - add r7, r1, r7, ror 8 - adds r5, r5, 0x40000000 - bcc _081DD0B0 - str r7, [r5, 0x630] - str r6, [r5], 0x4 - subs r8, r8, 0x4 - bgt _081DD0A8 - adds r8, r8, r9 - beq _081DD22C -_081DD0EC: - ldr r6, [r5] - ldr r7, [r5, 0x630] -_081DD0F4: - ldrsb r0, [r3], 0x1 - mul r1, r10, r0 - bic r1, r1, 0xFF0000 - add r6, r1, r6, ror 8 - mul r1, r11, r0 - bic r1, r1, 0xFF0000 - add r7, r1, r7, ror 8 - subs r2, r2, 0x1 - beq _081DD164 -_081DD118: - adds r5, r5, 0x40000000 - bcc _081DD0F4 - str r7, [r5, 0x630] - str r6, [r5], 0x4 - subs r8, r8, 0x4 - bgt _081DD07C - b _081DD22C -_081DD134: - ldr r0, [sp, 0x18] - cmp r0, 0 - beq _081DD158 - ldr r3, [sp, 0x14] - rsb lr, r2, 0 -_081DD148: - adds r2, r0, r2 - bgt _081DD1FC - sub lr, lr, r0 - b _081DD148 -_081DD158: - pop {r4,r12} - mov r2, 0 - b _081DD174 -_081DD164: - ldr r2, [sp, 0x10] - cmp r2, 0 - ldrne r3, [sp, 0xC] - bne _081DD118 -_081DD174: - strb r2, [r4, o_SoundChannel_status] - mov r0, r5, lsr 30 - bic r5, r5, 0xC0000000 - rsb r0, r0, 0x3 - mov r0, r0, lsl 3 - mov r6, r6, ror r0 - mov r7, r7, ror r0 - str r7, [r5, 0x630] - str r6, [r5], 0x4 - b _081DD234 -_081DD19C: - push {r4,r12} - ldr r1, [r4, o_SoundChannel_freq] - mul r4, r12, r1 - ldrsb r0, [r3] - ldrsb r1, [r3, 0x1]! - sub r1, r1, r0 -_081DD1B4: - ldr r6, [r5] - ldr r7, [r5, 0x630] -_081DD1BC: - mul lr, r9, r1 - add lr, r0, lr, asr 23 - mul r12, r10, lr - bic r12, r12, 0xFF0000 - add r6, r12, r6, ror 8 - mul r12, r11, lr - bic r12, r12, 0xFF0000 - add r7, r12, r7, ror 8 - add r9, r9, r4 - movs lr, r9, lsr 23 - beq _081DD208 - bic r9, r9, 0x3F800000 - subs r2, r2, lr - ble _081DD134 - subs lr, lr, 0x1 - addeq r0, r0, r1 -_081DD1FC: - ldrsbne r0, [r3, lr]! - ldrsb r1, [r3, 0x1]! - sub r1, r1, r0 -_081DD208: - adds r5, r5, 0x40000000 - bcc _081DD1BC - str r7, [r5, 0x630] - str r6, [r5], 0x4 - subs r8, r8, 0x4 - bgt _081DD1B4 - sub r3, r3, 0x1 - pop {r4,r12} -_081DD228: - str r9, [r4, o_SoundChannel_fw] -_081DD22C: - str r2, [r4, o_SoundChannel_ct] - str r3, [r4, o_SoundChannel_cp] -_081DD234: - ldr r8, [sp] - add r0, pc, 0x1 - bx r0 - .thumb -_081DD240: - ldr r0, [sp, 0x4] - subs r0, 1 - ble _081DD24A - adds r4, SoundChannel_size - b SoundMainRAM_ChanLoop -_081DD24A: - ldr r0, [sp, 0x18] - ldr r3, =ID_NUMBER - str r3, [r0] - add sp, 0x1C - pop {r0-r7} - mov r8, r0 - mov r9, r1 - mov r10, r2 - mov r11, r3 - pop {r3} -_081DD25E: - bx r3 - .pool - thumb_func_end SoundMainRAM - - arm_func_start sub_81DD264 -sub_81DD264: - ldr r6, [r4, o_SoundChannel_wav] - ldrb r0, [r4, o_SoundChannel_status] - tst r0, 0x20 - bne _081DD2B4 - orr r0, r0, 0x20 - strb r0, [r4, o_SoundChannel_status] - ldrb r0, [r4, o_SoundChannel_type] - tst r0, 0x10 - beq _081DD29C - ldr r1, [r6, 0xC] - add r1, r1, r6, lsl 1 - add r1, r1, 0x20 - sub r3, r1, r3 - str r3, [r4, o_SoundChannel_cp] -_081DD29C: - ldrh r0, [r6] - cmp r0, 0 - beq _081DD2B4 - sub r3, r3, r6 - sub r3, r3, 0x10 - str r3, [r4, o_SoundChannel_cp] -_081DD2B4: - push {r8,r12,lr} - mov r10, r10, lsl 16 - mov r11, r11, lsl 16 - ldr r1, [r4, o_SoundChannel_freq] - ldrb r0, [r4, o_SoundChannel_type] - tst r0, 0x8 - movne r8, 0x800000 - muleq r8, r12, r1 - ldrh r0, [r6] - cmp r0, 0 - beq _081DD468 - mov r0, 0xFF000000 - str r0, [r4, o_SoundChannel_xpi] - ldrb r0, [r4, o_SoundChannel_type] - tst r0, 0x10 - bne _081DD3C0 - bl sub_81DD520 - mov r0, r1 - add r3, r3, 0x1 - bl sub_81DD520 - sub r1, r1, r0 -_081DD308: - ldr r6, [r5] - ldr r7, [r5, 0x630] -_081DD310: - mul lr, r9, r1 - add lr, r0, lr, asr 23 - mul r12, r10, lr - bic r12, r12, 0xFF0000 - add r6, r12, r6, ror 8 - mul r12, r11, lr - bic r12, r12, 0xFF0000 - add r7, r12, r7, ror 8 - add r9, r9, r8 - movs lr, r9, lsr 23 - beq _081DD370 - bic r9, r9, 0x3F800000 - subs r2, r2, lr - ble _081DD398 - subs lr, lr, 0x1 - bne _081DD358 - add r0, r0, r1 - b _081DD364 -_081DD358: - add r3, r3, lr - bl sub_81DD520 - mov r0, r1 -_081DD364: - add r3, r3, 0x1 - bl sub_81DD520 - sub r1, r1, r0 -_081DD370: - adds r5, r5, 0x40000000 - bcc _081DD310 - str r7, [r5, 0x630] - str r6, [r5], 0x4 - ldr r6, [sp] - subs r6, r6, 0x4 - str r6, [sp] - bgt _081DD308 - sub r3, r3, 0x1 - b _081DD4F0 -_081DD398: - ldr r0, [sp, 0x1C] - cmp r0, 0 - beq _081DD4F4 - ldr r3, [r4, o_SoundChannel_wav] - ldr r3, [r3, 0x8] - rsb lr, r2, 0 -_081DD3B0: - adds r2, r2, r0 - bgt _081DD358 - sub lr, lr, r0 - b _081DD3B0 -_081DD3C0: - sub r3, r3, 0x1 - bl sub_81DD520 - mov r0, r1 - sub r3, r3, 0x1 - bl sub_81DD520 - sub r1, r1, r0 -_081DD3D8: - ldr r6, [r5] - ldr r7, [r5, 0x630] -_081DD3E0: - mul lr, r9, r1 - add lr, r0, lr, asr 23 - mul r12, r10, lr - bic r12, r12, 0xFF0000 - add r6, r12, r6, ror 8 - mul r12, r11, lr - bic r12, r12, 0xFF0000 - add r7, r12, r7, ror 8 - add r9, r9, r8 - movs lr, r9, lsr 23 - beq _081DD440 - bic r9, r9, 0x3F800000 - subs r2, r2, lr - ble _081DD4F4 - subs lr, lr, 0x1 - bne _081DD428 - add r0, r0, r1 - b _081DD434 -_081DD428: - sub r3, r3, lr - bl sub_81DD520 - mov r0, r1 -_081DD434: - sub r3, r3, 0x1 - bl sub_81DD520 - sub r1, r1, r0 -_081DD440: - adds r5, r5, 0x40000000 - bcc _081DD3E0 - str r7, [r5, 0x630] - str r6, [r5], 0x4 - ldr r6, [sp] - subs r6, r6, 0x4 - str r6, [sp] - bgt _081DD3D8 - add r3, r3, 0x2 - b _081DD4F0 -_081DD468: - ldrb r0, [r4, o_SoundChannel_type] - tst r0, 0x10 - beq _081DD4F0 - ldrsb r0, [r3, -0x1]! - ldrsb r1, [r3, -0x1] - sub r1, r1, r0 -_081DD480: - ldr r6, [r5] - ldr r7, [r5, 0x630] -_081DD488: - mul lr, r9, r1 - add lr, r0, lr, asr 23 - mul r12, r10, lr - bic r12, r12, 0xFF0000 - add r6, r12, r6, ror 8 - mul r12, r11, lr - bic r12, r12, 0xFF0000 - add r7, r12, r7, ror 8 - add r9, r9, r8 - movs lr, r9, lsr 23 - beq _081DD4CC - bic r9, r9, 0x3F800000 - subs r2, r2, lr - ble _081DD4F4 - ldrsb r0, [r3, -lr]! - ldrsb r1, [r3, -0x1] - sub r1, r1, r0 -_081DD4CC: - adds r5, r5, 0x40000000 - bcc _081DD488 - str r7, [r5, 0x630] - str r6, [r5], 0x4 - ldr r6, [sp] - subs r6, r6, 0x4 - str r6, [sp] - bgt _081DD480 - add r3, r3, 0x1 -_081DD4F0: - pop {r8,r12,pc} -_081DD4F4: - mov r2, 0 - strb r2, [r4, o_SoundChannel_status] - mov r0, r5, lsr 30 - bic r5, r5, 0xC0000000 - rsb r0, r0, 0x3 - mov r0, r0, lsl 3 - mov r6, r6, ror r0 - mov r7, r7, ror r0 - str r7, [r5, 0x630] - str r6, [r5], 0x4 - pop {r8,r12,pc} - arm_func_end sub_81DD264 - - arm_func_start sub_81DD520 -sub_81DD520: - push {r0,r2,r5-r7,lr} - mov r0, r3, lsr 6 - ldr r1, [r4, o_SoundChannel_xpi] - cmp r0, r1 - beq _081DD594 - str r0, [r4, o_SoundChannel_xpi] - mov r1, 0x21 - mul r2, r1, r0 - ldr r1, [r4, o_SoundChannel_wav] - add r2, r2, r1 - add r2, r2, 0x10 - ldr r5, =gUnknown_030007B8 - ldr r6, =gDeltaEncodingTable - mov r7, 0x40 - ldrb lr, [r2], 1 - strb lr, [r5], 1 - ldrb r1, [r2], 1 - b _081DD57C -_081DD568: - ldrb r1, [r2], 1 - mov r0, r1, lsr 4 - ldrsb r0, [r6, r0] - add lr, lr, r0 - strb lr, [r5], 1 -_081DD57C: - and r0, r1, 0xF - ldrsb r0, [r6, r0] - add lr, lr, r0 - strb lr, [r5], 1 - subs r7, r7, 2 - bgt _081DD568 -_081DD594: - ldr r5, =gUnknown_030007B8 - and r0, r3, 0x3F - ldrsb r1, [r5, r0] - pop {r0,r2,r5-r7,pc} - .pool - arm_func_end sub_81DD520 - - thumb_func_start SoundMainBTM -SoundMainBTM: - mov r12, r4 - movs r1, 0 - movs r2, 0 - movs r3, 0 - movs r4, 0 - stm r0!, {r1-r4} - stm r0!, {r1-r4} - stm r0!, {r1-r4} - stm r0!, {r1-r4} - mov r4, r12 - bx lr - thumb_func_end SoundMainBTM - - thumb_func_start RealClearChain -RealClearChain: - ldr r3, [r0, 0x2C] - cmp r3, 0 - beq _081DD5E2 - ldr r1, [r0, 0x34] - ldr r2, [r0, 0x30] - cmp r2, 0 - beq _081DD5D6 - str r1, [r2, 0x34] - b _081DD5D8 -_081DD5D6: - str r1, [r3, 0x20] -_081DD5D8: - cmp r1, 0 - beq _081DD5DE - str r2, [r1, 0x30] -_081DD5DE: - movs r1, 0 - str r1, [r0, 0x2C] -_081DD5E2: - bx lr - thumb_func_end RealClearChain - - thumb_func_start ply_fine -ply_fine: - push {r4,r5,lr} - adds r5, r1, 0 - ldr r4, [r5, o_MusicPlayerTrack_chan] - cmp r4, 0 - beq ply_fine_done -ply_fine_loop: - ldrb r1, [r4] - movs r0, 0xC7 - tst r0, r1 - beq ply_fine_ok - movs r0, 0x40 - orrs r1, r0 - strb r1, [r4] -ply_fine_ok: - adds r0, r4, 0 - bl RealClearChain - ldr r4, [r4, 0x34] - cmp r4, 0 - bne ply_fine_loop -ply_fine_done: - movs r0, 0 - strb r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ply_fine - - thumb_func_start MPlayJumpTableCopy -MPlayJumpTableCopy: - mov r12, lr - movs r1, 0x24 - ldr r2, lt_MPlayJumpTableTemplate -MPlayJumpTableCopy_Loop: - ldr r3, [r2] - bl chk_adr_r2 - stm r0!, {r3} - adds r2, 0x4 - subs r1, 0x1 - bgt MPlayJumpTableCopy_Loop - bx r12 - thumb_func_end MPlayJumpTableCopy - - .align 2, 0 - .thumb_func -ldrb_r3_r2: - ldrb r3, [r2] - -@ This attempts to protect against reading anything from the BIOS ROM -@ besides the jump table template. -@ It assumes that the jump table template is located at the end of the ROM. - .thumb_func -chk_adr_r2: - push {r0} - lsrs r0, r2, 25 - bne chk_adr_r2_done @ if adr >= 0x2000000 (i.e. not in BIOS ROM), accept it - ldr r0, lt_MPlayJumpTableTemplate - cmp r2, r0 - blo chk_adr_r2_reject @ if adr < gMPlayJumpTableTemplate, reject it - lsrs r0, r2, 14 - beq chk_adr_r2_done @ if adr < 0x40000 (i.e. in BIOS ROM), accept it -chk_adr_r2_reject: - movs r3, 0 -chk_adr_r2_done: - pop {r0} - bx lr - - .align 2, 0 -lt_MPlayJumpTableTemplate: .word gMPlayJumpTableTemplate - - thumb_func_start ld_r3_tp_adr_i -ld_r3_tp_adr_i: - ldr r2, [r1, 0x40] -_081DD64A: - adds r3, r2, 0x1 - str r3, [r1, 0x40] - ldrb r3, [r2] - b chk_adr_r2 - thumb_func_end ld_r3_tp_adr_i - - thumb_func_start ply_goto -ply_goto: - push {lr} -ply_goto_1: - ldr r2, [r1, o_MusicPlayerTrack_cmdPtr] - ldrb r0, [r2, 0x3] - lsls r0, 8 - ldrb r3, [r2, 0x2] - orrs r0, r3 - lsls r0, 8 - ldrb r3, [r2, 0x1] - orrs r0, r3 - lsls r0, 8 - bl ldrb_r3_r2 - orrs r0, r3 - str r0, [r1, o_MusicPlayerTrack_cmdPtr] - pop {r0} - bx r0 - thumb_func_end ply_goto - - thumb_func_start ply_patt -ply_patt: - ldrb r2, [r1, o_MusicPlayerTrack_patternLevel] - cmp r2, 3 - bhs ply_patt_done - lsls r2, 2 - adds r3, r1, r2 - ldr r2, [r1, o_MusicPlayerTrack_cmdPtr] - adds r2, 0x4 - str r2, [r3, o_MusicPlayerTrack_patternStack] - ldrb r2, [r1, o_MusicPlayerTrack_patternLevel] - adds r2, 1 - strb r2, [r1, o_MusicPlayerTrack_patternLevel] - b ply_goto -ply_patt_done: - b ply_fine - thumb_func_end ply_patt - - thumb_func_start ply_pend -ply_pend: - ldrb r2, [r1, o_MusicPlayerTrack_patternLevel] - cmp r2, 0 - beq ply_pend_done - subs r2, 1 - strb r2, [r1, o_MusicPlayerTrack_patternLevel] - lsls r2, 2 - adds r3, r1, r2 - ldr r2, [r3, o_MusicPlayerTrack_patternStack] - str r2, [r1, o_MusicPlayerTrack_cmdPtr] -ply_pend_done: - bx lr - thumb_func_end ply_pend - - thumb_func_start ply_rept -ply_rept: - push {lr} - ldr r2, [r1, o_MusicPlayerTrack_cmdPtr] - ldrb r3, [r2] - cmp r3, 0 - bne ply_rept_1 - adds r2, 1 - str r2, [r1, o_MusicPlayerTrack_cmdPtr] - b ply_goto_1 -ply_rept_1: - ldrb r3, [r1, o_MusicPlayerTrack_repN] - adds r3, 1 - strb r3, [r1, o_MusicPlayerTrack_repN] - mov r12, r3 - bl ld_r3_tp_adr_i - cmp r12, r3 - bhs ply_rept_2 - b ply_goto_1 -ply_rept_2: - movs r3, 0 - strb r3, [r1, o_MusicPlayerTrack_repN] - adds r2, 5 - str r2, [r1, o_MusicPlayerTrack_cmdPtr] - pop {r0} - bx r0 - thumb_func_end ply_rept - - thumb_func_start ply_prio -ply_prio: - mov r12, lr - bl ld_r3_tp_adr_i - strb r3, [r1, o_MusicPlayerTrack_priority] - bx r12 - thumb_func_end ply_prio - - thumb_func_start ply_tempo -ply_tempo: - mov r12, lr - bl ld_r3_tp_adr_i - lsls r3, 1 - strh r3, [r0, o_MusicPlayerInfo_tempoD] - ldrh r2, [r0, o_MusicPlayerInfo_tempoU] - muls r3, r2 - lsrs r3, 8 - strh r3, [r0, o_MusicPlayerInfo_tempoI] - bx r12 - thumb_func_end ply_tempo - - thumb_func_start ply_keysh -ply_keysh: - mov r12, lr - bl ld_r3_tp_adr_i - strb r3, [r1, o_MusicPlayerTrack_keyShift] - ldrb r3, [r1, o_MusicPlayerTrack_flags] - movs r2, 0xC - orrs r3, r2 - strb r3, [r1, o_MusicPlayerTrack_flags] - bx r12 - thumb_func_end ply_keysh - - thumb_func_start ply_voice -ply_voice: - mov r12, lr - ldr r2, [r1, o_MusicPlayerTrack_cmdPtr] - ldrb r3, [r2] - adds r2, 1 - str r2, [r1, o_MusicPlayerTrack_cmdPtr] - lsls r2, r3, 1 - adds r2, r3 - lsls r2, 2 - ldr r3, [r0, o_MusicPlayerInfo_tone] - adds r2, r3 - ldr r3, [r2] - bl chk_adr_r2 - str r3, [r1, o_MusicPlayerTrack_ToneData_type] - ldr r3, [r2, 0x4] - bl chk_adr_r2 - str r3, [r1, o_MusicPlayerTrack_ToneData_wav] - ldr r3, [r2, 0x8] - bl chk_adr_r2 - str r3, [r1, o_MusicPlayerTrack_ToneData_attack] - bx r12 - thumb_func_end ply_voice - - thumb_func_start ply_vol -ply_vol: - mov r12, lr - bl ld_r3_tp_adr_i - strb r3, [r1, o_MusicPlayerTrack_vol] - ldrb r3, [r1, o_MusicPlayerTrack_flags] - movs r2, 0x3 - orrs r3, r2 - strb r3, [r1, o_MusicPlayerTrack_flags] - bx r12 - thumb_func_end ply_vol - - thumb_func_start ply_pan -ply_pan: - mov r12, lr - bl ld_r3_tp_adr_i - subs r3, 0x40 - strb r3, [r1, o_MusicPlayerTrack_pan] - ldrb r3, [r1, o_MusicPlayerTrack_flags] - movs r2, 0x3 - orrs r3, r2 - strb r3, [r1, o_MusicPlayerTrack_flags] - bx r12 - thumb_func_end ply_pan - - thumb_func_start ply_bend -ply_bend: - mov r12, lr - bl ld_r3_tp_adr_i - subs r3, 0x40 - strb r3, [r1, o_MusicPlayerTrack_bend] - ldrb r3, [r1, o_MusicPlayerTrack_flags] - movs r2, 0xC - orrs r3, r2 - strb r3, [r1, o_MusicPlayerTrack_flags] - bx r12 - thumb_func_end ply_bend - - thumb_func_start ply_bendr -ply_bendr: - mov r12, lr - bl ld_r3_tp_adr_i - strb r3, [r1, o_MusicPlayerTrack_bendRange] - ldrb r3, [r1, o_MusicPlayerTrack_flags] - movs r2, 0xC - orrs r3, r2 - strb r3, [r1, o_MusicPlayerTrack_flags] - bx r12 - thumb_func_end ply_bendr - - thumb_func_start ply_lfodl -ply_lfodl: - mov r12, lr - bl ld_r3_tp_adr_i - strb r3, [r1, o_MusicPlayerTrack_lfoDelay] - bx r12 - thumb_func_end ply_lfodl - - thumb_func_start ply_modt -ply_modt: - mov r12, lr - bl ld_r3_tp_adr_i - ldrb r0, [r1, o_MusicPlayerTrack_modT] - cmp r0, r3 - beq _081DD7AA - strb r3, [r1, o_MusicPlayerTrack_modT] - ldrb r3, [r1, o_MusicPlayerTrack_flags] - movs r2, 0xF - orrs r3, r2 - strb r3, [r1, o_MusicPlayerTrack_flags] -_081DD7AA: - bx r12 - thumb_func_end ply_modt - - thumb_func_start ply_tune -ply_tune: - mov r12, lr - bl ld_r3_tp_adr_i - subs r3, 0x40 - strb r3, [r1, o_MusicPlayerTrack_tune] - ldrb r3, [r1, o_MusicPlayerTrack_flags] - movs r2, 0xC - orrs r3, r2 - strb r3, [r1, o_MusicPlayerTrack_flags] - bx r12 - thumb_func_end ply_tune - - thumb_func_start ply_port -ply_port: - mov r12, lr - ldr r2, [r1, o_MusicPlayerTrack_cmdPtr] - ldrb r3, [r2] - adds r2, 1 - ldr r0, =REG_SOUND1CNT_L @ sound register base address - adds r0, r3 - bl _081DD64A - strb r3, [r0] - bx r12 - .pool - thumb_func_end ply_port - - thumb_func_start m4aSoundVSync -m4aSoundVSync: - ldr r0, lt2_SOUND_INFO_PTR - ldr r0, [r0] - - @ Exit the function if ident is not ID_NUMBER or ID_NUMBER+1. - ldr r2, lt2_ID_NUMBER - ldr r3, [r0, o_SoundInfo_ident] - subs r3, r2 - cmp r3, 1 - bhi m4aSoundVSync_Done - - @ Decrement the PCM DMA counter. If it reaches 0, we need to do a DMA. - ldrb r1, [r0, o_SoundInfo_pcmDmaCounter] - subs r1, 1 - strb r1, [r0, o_SoundInfo_pcmDmaCounter] - bgt m4aSoundVSync_Done - - @ Reload the PCM DMA counter. - ldrb r1, [r0, o_SoundInfo_pcmDmaPeriod] - strb r1, [r0, o_SoundInfo_pcmDmaCounter] - - ldr r2, =REG_DMA1 - - ldr r1, [r2, 0x8] @ DMA1CNT - lsls r1, 7 - bcc m4aSoundVSync_SkipDMA1 @ branch if repeat bit isn't set - - ldr r1, =((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4 - str r1, [r2, 0x8] @ DMA1CNT - -m4aSoundVSync_SkipDMA1: - ldr r1, [r2, 0xC + 0x8] @ DMA2CNT - lsls r1, 7 - bcc m4aSoundVSync_SkipDMA2 @ branch if repeat bit isn't set - - ldr r1, =((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4 - str r1, [r2, 0xC + 0x8] @ DMA2CNT - -m4aSoundVSync_SkipDMA2: - - @ turn off DMA1/DMA2 - movs r1, DMA_32BIT >> 8 - lsls r1, 8 - strh r1, [r2, 0xA] @ DMA1CNT_H - strh r1, [r2, 0xC + 0xA] @ DMA2CNT_H - - @ turn on DMA1/DMA2 direct-sound FIFO mode - movs r1, (DMA_ENABLE | DMA_START_SPECIAL | DMA_32BIT | DMA_REPEAT) >> 8 - lsls r1, 8 @ LSB is 0, so DMA_SRC_INC is used (destination is always fixed in FIFO mode) - strh r1, [r2, 0xA] @ DMA1CNT_H - strh r1, [r2, 0xC + 0xA] @ DMA2CNT_H - -m4aSoundVSync_Done: - bx lr - - .pool - thumb_func_end m4aSoundVSync - - thumb_func_start MPlayMain -MPlayMain: - ldr r2, lt2_ID_NUMBER - ldr r3, [r0, o_MusicPlayerInfo_ident] - cmp r2, r3 - beq _081DD82E - bx lr -_081DD82E: - adds r3, 0x1 - str r3, [r0, o_MusicPlayerInfo_ident] - push {r0,lr} - ldr r3, [r0, o_MusicPlayerInfo_func] - cmp r3, 0 - beq _081DD840 - ldr r0, [r0, o_MusicPlayerInfo_intp] - bl call_r3 -_081DD840: - pop {r0} - push {r4-r7} - mov r4, r8 - mov r5, r9 - mov r6, r10 - mov r7, r11 - push {r4-r7} - adds r7, r0, 0 - ldr r0, [r7, o_MusicPlayerInfo_status] - cmp r0, 0 - bge _081DD858 - b _081DDA6C -_081DD858: - ldr r0, lt2_SOUND_INFO_PTR - ldr r0, [r0] - mov r8, r0 - adds r0, r7, 0 - bl FadeOutBody - ldr r0, [r7, o_MusicPlayerInfo_status] - cmp r0, 0 - bge _081DD86C - b _081DDA6C -_081DD86C: - ldrh r0, [r7, o_MusicPlayerInfo_tempoC] - ldrh r1, [r7, o_MusicPlayerInfo_tempoI] - adds r0, r1 - b _081DD9BC -_081DD874: - ldrb r6, [r7, o_MusicPlayerInfo_trackCount] - ldr r5, [r7, o_MusicPlayerInfo_tracks] - movs r3, 0x1 - movs r4, 0 -_081DD87C: - ldrb r0, [r5] - movs r1, 0x80 - tst r1, r0 - bne _081DD886 - b _081DD998 -_081DD886: - mov r10, r3 - orrs r4, r3 - mov r11, r4 - ldr r4, [r5, o_MusicPlayerTrack_chan] - cmp r4, 0 - beq _081DD8BA -_081DD892: - ldrb r1, [r4] - movs r0, 0xC7 - tst r0, r1 - beq _081DD8AE - ldrb r0, [r4, 0x10] - cmp r0, 0 - beq _081DD8B4 - subs r0, 0x1 - strb r0, [r4, 0x10] - bne _081DD8B4 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r4] - b _081DD8B4 -_081DD8AE: - adds r0, r4, 0 - bl ClearChain -_081DD8B4: - ldr r4, [r4, 0x34] - cmp r4, 0 - bne _081DD892 -_081DD8BA: - ldrb r3, [r5, o_MusicPlayerTrack_flags] - movs r0, 0x40 - tst r0, r3 - beq _081DD938 - adds r0, r5, 0 - bl Clear64byte - movs r0, 0x80 - strb r0, [r5] - movs r0, 0x2 - strb r0, [r5, o_MusicPlayerTrack_bendRange] - movs r0, 0x40 - strb r0, [r5, o_MusicPlayerTrack_volX] - movs r0, 0x16 - strb r0, [r5, o_MusicPlayerTrack_lfoSpeed] - movs r0, 0x1 - adds r1, r5, 0x6 - strb r0, [r1, o_MusicPlayerTrack_ToneData_type - 0x6] - b _081DD938 -_081DD8E0: - ldr r2, [r5, o_MusicPlayerTrack_cmdPtr] - ldrb r1, [r2] - cmp r1, 0x80 - bhs _081DD8EC - ldrb r1, [r5, o_MusicPlayerTrack_runningStatus] - b _081DD8F6 -_081DD8EC: - adds r2, 0x1 - str r2, [r5, o_MusicPlayerTrack_cmdPtr] - cmp r1, 0xBD - bcc _081DD8F6 - strb r1, [r5, o_MusicPlayerTrack_runningStatus] -_081DD8F6: - cmp r1, 0xCF - bcc _081DD90C - mov r0, r8 - ldr r3, [r0, o_SoundInfo_plynote] - adds r0, r1, 0 - subs r0, 0xCF - adds r1, r7, 0 - adds r2, r5, 0 - bl call_r3 - b _081DD938 -_081DD90C: - cmp r1, 0xB0 - bls _081DD92E - adds r0, r1, 0 - subs r0, 0xB1 - strb r0, [r7, o_MusicPlayerInfo_cmd] - mov r3, r8 - ldr r3, [r3, o_SoundInfo_MPlayJumpTable] - lsls r0, 2 - ldr r3, [r3, r0] - adds r0, r7, 0 - adds r1, r5, 0 - bl call_r3 - ldrb r0, [r5, o_MusicPlayerTrack_flags] - cmp r0, 0 - beq _081DD994 - b _081DD938 -_081DD92E: - ldr r0, lt_gClockTable - subs r1, 0x80 - adds r1, r0 - ldrb r0, [r1] - strb r0, [r5, o_MusicPlayerTrack_wait] -_081DD938: - ldrb r0, [r5, o_MusicPlayerTrack_wait] - cmp r0, 0 - beq _081DD8E0 - subs r0, 0x1 - strb r0, [r5, o_MusicPlayerTrack_wait] - ldrb r1, [r5, o_MusicPlayerTrack_lfoSpeed] - cmp r1, 0 - beq _081DD994 - ldrb r0, [r5, o_MusicPlayerTrack_mod] - cmp r0, 0 - beq _081DD994 - ldrb r0, [r5, o_MusicPlayerTrack_lfoDelayC] - cmp r0, 0 - beq _081DD95A - subs r0, 0x1 - strb r0, [r5, o_MusicPlayerTrack_lfoDelayC] - b _081DD994 -_081DD95A: - ldrb r0, [r5, o_MusicPlayerTrack_lfoSpeedC] - adds r0, r1 - strb r0, [r5, o_MusicPlayerTrack_lfoSpeedC] - adds r1, r0, 0 - subs r0, 0x40 - lsls r0, 24 - bpl _081DD96E - lsls r2, r1, 24 - asrs r2, 24 - b _081DD972 -_081DD96E: - movs r0, 0x80 - subs r2, r0, r1 -_081DD972: - ldrb r0, [r5, o_MusicPlayerTrack_mod] - muls r0, r2 - asrs r2, r0, 6 - ldrb r0, [r5, o_MusicPlayerTrack_modM] - eors r0, r2 - lsls r0, 24 - beq _081DD994 - strb r2, [r5, o_MusicPlayerTrack_modM] - ldrb r0, [r5] - ldrb r1, [r5, o_MusicPlayerTrack_modT] - cmp r1, 0 - bne _081DD98E - movs r1, 0xC - b _081DD990 -_081DD98E: - movs r1, 0x3 -_081DD990: - orrs r0, r1 - strb r0, [r5, o_MusicPlayerTrack_flags] -_081DD994: - mov r3, r10 - mov r4, r11 -_081DD998: - subs r6, 0x1 - ble _081DD9A4 - movs r0, 0x50 - adds r5, r0 - lsls r3, 1 - b _081DD87C -_081DD9A4: - ldr r0, [r7, o_MusicPlayerInfo_clock] - adds r0, 0x1 - str r0, [r7, o_MusicPlayerInfo_clock] - cmp r4, 0 - bne _081DD9B6 - movs r0, 0x80 - lsls r0, 24 - str r0, [r7, o_MusicPlayerInfo_status] - b _081DDA6C -_081DD9B6: - str r4, [r7, o_MusicPlayerInfo_status] - ldrh r0, [r7, o_MusicPlayerInfo_tempoC] - subs r0, 0x96 -_081DD9BC: - strh r0, [r7, o_MusicPlayerInfo_tempoC] - cmp r0, 0x96 - bcc _081DD9C4 - b _081DD874 -_081DD9C4: - ldrb r2, [r7, o_MusicPlayerInfo_trackCount] - ldr r5, [r7, o_MusicPlayerInfo_tracks] -_081DD9C8: - ldrb r0, [r5, o_MusicPlayerTrack_flags] - movs r1, 0x80 - tst r1, r0 - beq _081DDA62 - movs r1, 0xF - tst r1, r0 - beq _081DDA62 - mov r9, r2 - adds r0, r7, 0 - adds r1, r5, 0 - bl TrkVolPitSet - ldr r4, [r5, o_MusicPlayerTrack_chan] - cmp r4, 0 - beq _081DDA58 -_081DD9E6: - ldrb r1, [r4, o_SoundChannel_status] - movs r0, 0xC7 - tst r0, r1 - bne _081DD9F6 - adds r0, r4, 0 - bl ClearChain - b _081DDA52 -_081DD9F6: - ldrb r0, [r4, o_SoundChannel_type] - movs r6, 0x7 - ands r6, r0 - ldrb r3, [r5, o_MusicPlayerTrack_flags] - movs r0, 0x3 - tst r0, r3 - beq _081DDA14 - bl ChnVolSetAsm - cmp r6, 0 - beq _081DDA14 - ldrb r0, [r4, o_CgbChannel_mo] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, o_CgbChannel_mo] -_081DDA14: - ldrb r3, [r5, o_MusicPlayerTrack_flags] - movs r0, 0xC - tst r0, r3 - beq _081DDA52 - ldrb r1, [r4, o_SoundChannel_ky] - movs r0, 0x8 - ldrsb r0, [r5, r0] - adds r2, r1, r0 - bpl _081DDA28 - movs r2, 0 -_081DDA28: - cmp r6, 0 - beq _081DDA46 - mov r0, r8 - ldr r3, [r0, o_SoundInfo_MidiKeyToCgbFreq] - adds r1, r2, 0 - ldrb r2, [r5, o_MusicPlayerTrack_pitM] - adds r0, r6, 0 - bl call_r3 - str r0, [r4, o_CgbChannel_fr] - ldrb r0, [r4, o_CgbChannel_mo] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, o_CgbChannel_mo] - b _081DDA52 -_081DDA46: - adds r1, r2, 0 - ldrb r2, [r5, o_MusicPlayerTrack_pitM] - ldr r0, [r4, o_SoundChannel_wav] - bl MidiKeyToFreq - str r0, [r4, o_SoundChannel_freq] -_081DDA52: - ldr r4, [r4, o_SoundChannel_np] - cmp r4, 0 - bne _081DD9E6 -_081DDA58: - ldrb r0, [r5, o_MusicPlayerTrack_flags] - movs r1, 0xF0 - ands r0, r1 - strb r0, [r5, o_MusicPlayerTrack_flags] - mov r2, r9 -_081DDA62: - subs r2, 0x1 - ble _081DDA6C - movs r0, 0x50 - adds r5, r0 - bgt _081DD9C8 -_081DDA6C: - ldr r0, lt2_ID_NUMBER - str r0, [r7, o_MusicPlayerInfo_ident] - pop {r0-r7} - mov r8, r0 - mov r9, r1 - mov r10, r2 - mov r11, r3 - pop {r3} - -call_r3: - bx r3 - - .align 2, 0 -lt_gClockTable: .word gClockTable -lt2_SOUND_INFO_PTR: .word SOUND_INFO_PTR -lt2_ID_NUMBER: .word ID_NUMBER - thumb_func_end MPlayMain - - thumb_func_start TrackStop -TrackStop: - push {r4-r6,lr} - adds r5, r1, 0 - ldrb r1, [r5, o_MusicPlayerTrack_flags] - movs r0, 0x80 - tst r0, r1 - beq TrackStop_Done - ldr r4, [r5, o_MusicPlayerTrack_chan] - cmp r4, 0 - beq TrackStop_3 - movs r6, 0 -TrackStop_Loop: - ldrb r0, [r4, o_SoundChannel_status] - cmp r0, 0 - beq TrackStop_2 - ldrb r0, [r4, o_SoundChannel_type] - movs r3, 0x7 - ands r0, r3 - beq TrackStop_1 - ldr r3, =SOUND_INFO_PTR - ldr r3, [r3] - ldr r3, [r3, o_SoundInfo_CgbOscOff] - bl call_r3 -TrackStop_1: - strb r6, [r4, o_SoundChannel_status] -TrackStop_2: - str r6, [r4, o_SoundChannel_track] - ldr r4, [r4, o_SoundChannel_np] - cmp r4, 0 - bne TrackStop_Loop -TrackStop_3: - str r4, [r5, o_MusicPlayerTrack_chan] -TrackStop_Done: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end TrackStop - - thumb_func_start ChnVolSetAsm -ChnVolSetAsm: - ldrb r1, [r4, 0x12] - movs r0, 0x14 - ldrsb r2, [r4, r0] - movs r3, 0x80 - adds r3, r2 - muls r3, r1 - ldrb r0, [r5, 0x10] - muls r0, r3 - asrs r0, 14 - cmp r0, 0xFF - bls _081DDAE8 - movs r0, 0xFF -_081DDAE8: - strb r0, [r4, 0x2] - movs r3, 0x7F - subs r3, r2 - muls r3, r1 - ldrb r0, [r5, 0x11] - muls r0, r3 - asrs r0, 14 - cmp r0, 0xFF - bls _081DDAFC - movs r0, 0xFF -_081DDAFC: - strb r0, [r4, 0x3] - bx lr - thumb_func_end ChnVolSetAsm - - thumb_func_start ply_note -ply_note: - push {r4-r7,lr} - mov r4, r8 - mov r5, r9 - mov r6, r10 - mov r7, r11 - push {r4-r7} - sub sp, 0x18 - str r1, [sp] - adds r5, r2, 0 - ldr r1, =SOUND_INFO_PTR - ldr r1, [r1] - str r1, [sp, 0x4] - ldr r1, =gClockTable - adds r0, r1 - ldrb r0, [r0] - strb r0, [r5, o_MusicPlayerTrack_gateTime] - ldr r3, [r5, o_MusicPlayerTrack_cmdPtr] - ldrb r0, [r3] - cmp r0, 0x80 - bhs _081DDB46 - strb r0, [r5, o_MusicPlayerTrack_key] - adds r3, 0x1 - ldrb r0, [r3] - cmp r0, 0x80 - bhs _081DDB44 - strb r0, [r5, o_MusicPlayerTrack_velocity] - adds r3, 0x1 - ldrb r0, [r3] - cmp r0, 0x80 - bhs _081DDB44 - ldrb r1, [r5, o_MusicPlayerTrack_gateTime] - adds r1, r0 - strb r1, [r5, o_MusicPlayerTrack_gateTime] - adds r3, 0x1 -_081DDB44: - str r3, [r5, o_MusicPlayerTrack_cmdPtr] -_081DDB46: - movs r0, 0 - str r0, [sp, 0x14] - adds r4, r5, 0 - adds r4, o_MusicPlayerTrack_ToneData_type - ldrb r2, [r4] - movs r0, TONEDATA_TYPE_RHY | TONEDATA_TYPE_SPL - tst r0, r2 - beq _081DDB98 - ldrb r3, [r5, o_MusicPlayerTrack_key] - movs r0, TONEDATA_TYPE_SPL - tst r0, r2 - beq _081DDB66 - ldr r1, [r5, o_MusicPlayerTrack_ToneData_keySplitTable] - adds r1, r3 - ldrb r0, [r1] - b _081DDB68 -_081DDB66: - adds r0, r3, 0 -_081DDB68: - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, [r5, o_MusicPlayerTrack_ToneData_wav] - adds r1, r0 - mov r9, r1 - mov r6, r9 - ldrb r1, [r6] - movs r0, 0xC0 - tst r0, r1 - beq _081DDB80 - b _081DDCEA -_081DDB80: - movs r0, 0x80 - tst r0, r2 - beq _081DDB9C - ldrb r1, [r6, 0x3] - movs r0, 0x80 - tst r0, r1 - beq _081DDB94 - subs r1, 0xC0 - lsls r1, 1 - str r1, [sp, 0x14] -_081DDB94: - ldrb r3, [r6, 0x1] - b _081DDB9C -_081DDB98: - mov r9, r4 - ldrb r3, [r5, 0x5] -_081DDB9C: - str r3, [sp, 0x8] - ldr r6, [sp] - ldrb r1, [r6, 0x9] - ldrb r0, [r5, 0x1D] - adds r0, r1 - cmp r0, 0xFF - bls _081DDBAC - movs r0, 0xFF -_081DDBAC: - str r0, [sp, 0x10] - mov r6, r9 - ldrb r0, [r6] - movs r6, 0x7 - ands r6, r0 - str r6, [sp, 0xC] - beq _081DDBEC - ldr r0, [sp, 0x4] - ldr r4, [r0, 0x1C] - cmp r4, 0 - bne _081DDBC4 - b _081DDCEA -_081DDBC4: - subs r6, 0x1 - lsls r0, r6, 6 - adds r4, r0 - ldrb r1, [r4] - movs r0, 0xC7 - tst r0, r1 - beq _081DDC40 - movs r0, 0x40 - tst r0, r1 - bne _081DDC40 - ldrb r1, [r4, 0x13] - ldr r0, [sp, 0x10] - cmp r1, r0 - bcc _081DDC40 - beq _081DDBE4 - b _081DDCEA -_081DDBE4: - ldr r0, [r4, 0x2C] - cmp r0, r5 - bcs _081DDC40 - b _081DDCEA -_081DDBEC: - ldr r6, [sp, 0x10] - adds r7, r5, 0 - movs r2, 0 - mov r8, r2 - ldr r4, [sp, 0x4] - ldrb r3, [r4, 0x6] - adds r4, 0x50 -_081DDBFA: - ldrb r1, [r4] - movs r0, 0xC7 - tst r0, r1 - beq _081DDC40 - movs r0, 0x40 - tst r0, r1 - beq _081DDC14 - cmp r2, 0 - bne _081DDC18 - adds r2, 0x1 - ldrb r6, [r4, 0x13] - ldr r7, [r4, 0x2C] - b _081DDC32 -_081DDC14: - cmp r2, 0 - bne _081DDC34 -_081DDC18: - ldrb r0, [r4, 0x13] - cmp r0, r6 - bcs _081DDC24 - adds r6, r0, 0 - ldr r7, [r4, 0x2C] - b _081DDC32 -_081DDC24: - bhi _081DDC34 - ldr r0, [r4, 0x2C] - cmp r0, r7 - bls _081DDC30 - adds r7, r0, 0 - b _081DDC32 -_081DDC30: - bcc _081DDC34 -_081DDC32: - mov r8, r4 -_081DDC34: - adds r4, 0x40 - subs r3, 0x1 - bgt _081DDBFA - mov r4, r8 - cmp r4, 0 - beq _081DDCEA -_081DDC40: - adds r0, r4, 0 - bl ClearChain - movs r1, 0 - str r1, [r4, 0x30] - ldr r3, [r5, 0x20] - str r3, [r4, 0x34] - cmp r3, 0 - beq _081DDC54 - str r4, [r3, 0x30] -_081DDC54: - str r4, [r5, 0x20] - str r5, [r4, 0x2C] - ldrb r0, [r5, 0x1B] - strb r0, [r5, 0x1C] - cmp r0, r1 - beq _081DDC66 - adds r1, r5, 0 - bl clear_modM -_081DDC66: - ldr r0, [sp] - adds r1, r5, 0 - bl TrkVolPitSet - ldr r0, [r5, 0x4] - str r0, [r4, 0x10] - ldr r0, [sp, 0x10] - strb r0, [r4, 0x13] - ldr r0, [sp, 0x8] - strb r0, [r4, 0x8] - ldr r0, [sp, 0x14] - strb r0, [r4, 0x14] - mov r6, r9 - ldrb r0, [r6] - strb r0, [r4, 0x1] - ldr r7, [r6, 0x4] - str r7, [r4, 0x24] - ldr r0, [r6, 0x8] - str r0, [r4, 0x4] - ldrh r0, [r5, 0x1E] - strh r0, [r4, 0xC] - bl ChnVolSetAsm - ldrb r1, [r4, 0x8] - movs r0, 0x8 - ldrsb r0, [r5, r0] - adds r3, r1, r0 - bpl _081DDCA0 - movs r3, 0 -_081DDCA0: - ldr r6, [sp, 0xC] - cmp r6, 0 - beq _081DDCCE - mov r6, r9 - ldrb r0, [r6, 0x2] - strb r0, [r4, 0x1E] - ldrb r1, [r6, 0x3] - movs r0, 0x80 - tst r0, r1 - bne _081DDCBA - movs r0, 0x70 - tst r0, r1 - bne _081DDCBC -_081DDCBA: - movs r1, 0x8 -_081DDCBC: - strb r1, [r4, 0x1F] - ldrb r2, [r5, 0x9] - adds r1, r3, 0 - ldr r0, [sp, 0xC] - ldr r3, [sp, 0x4] - ldr r3, [r3, 0x30] - bl call_r3 - b _081DDCDC -_081DDCCE: - ldr r0, [r5, o_MusicPlayerTrack_unk_3C] - str r0, [r4, 0x18] - ldrb r2, [r5, 0x9] - adds r1, r3, 0 - adds r0, r7, 0 - bl MidiKeyToFreq -_081DDCDC: - str r0, [r4, 0x20] - movs r0, 0x80 - strb r0, [r4] - ldrb r1, [r5] - movs r0, 0xF0 - ands r0, r1 - strb r0, [r5] -_081DDCEA: - add sp, 0x18 - pop {r0-r7} - mov r8, r0 - mov r9, r1 - mov r10, r2 - mov r11, r3 - pop {r0} - bx r0 - .pool - thumb_func_end ply_note - - thumb_func_start ply_endtie -ply_endtie: - push {r4,r5} - ldr r2, [r1, o_MusicPlayerTrack_cmdPtr] - ldrb r3, [r2] - cmp r3, 0x80 - bhs _081DDD16 - strb r3, [r1, o_MusicPlayerTrack_key] - adds r2, 0x1 - str r2, [r1, o_MusicPlayerTrack_cmdPtr] - b _081DDD18 -_081DDD16: - ldrb r3, [r1, o_MusicPlayerTrack_key] -_081DDD18: - ldr r1, [r1, o_MusicPlayerTrack_chan] - cmp r1, 0 - beq _081DDD40 - movs r4, 0x83 - movs r5, 0x40 -_081DDD22: - ldrb r2, [r1, o_SoundChannel_status] - tst r2, r4 - beq _081DDD3A - tst r2, r5 - bne _081DDD3A - ldrb r0, [r1, o_SoundChannel_mk] - cmp r0, r3 - bne _081DDD3A - movs r0, 0x40 - orrs r2, r0 - strb r2, [r1, o_SoundChannel_status] - b _081DDD40 -_081DDD3A: - ldr r1, [r1, o_SoundChannel_np] - cmp r1, 0 - bne _081DDD22 -_081DDD40: - pop {r4,r5} - bx lr - thumb_func_end ply_endtie - - thumb_func_start clear_modM -clear_modM: - movs r2, 0 - strb r2, [r1, o_MusicPlayerTrack_modM] - strb r2, [r1, o_MusicPlayerTrack_lfoSpeedC] - ldrb r2, [r1, o_MusicPlayerTrack_modT] - cmp r2, 0 - bne _081DDD54 - movs r2, 0xC - b _081DDD56 -_081DDD54: - movs r2, 0x3 -_081DDD56: - ldrb r3, [r1, o_MusicPlayerTrack_flags] - orrs r3, r2 - strb r3, [r1, o_MusicPlayerTrack_flags] - bx lr - thumb_func_end clear_modM - - thumb_func_start ld_r3_tp_adr_i -ld_r3_tp_adr_i_unchecked: - ldr r2, [r1, o_MusicPlayerTrack_cmdPtr] - adds r3, r2, 1 - str r3, [r1, o_MusicPlayerTrack_cmdPtr] - ldrb r3, [r2] - bx lr - thumb_func_end ld_r3_tp_adr_i - - thumb_func_start ply_lfos -ply_lfos: - mov r12, lr - bl ld_r3_tp_adr_i_unchecked - strb r3, [r1, o_MusicPlayerTrack_lfoSpeed] - cmp r3, 0 - bne _081DDD7C - bl clear_modM -_081DDD7C: - bx r12 - thumb_func_end ply_lfos - - thumb_func_start ply_mod -ply_mod: - mov r12, lr - bl ld_r3_tp_adr_i_unchecked - strb r3, [r1, o_MusicPlayerTrack_mod] - cmp r3, 0 - bne _081DDD90 - bl clear_modM -_081DDD90: - bx r12 - thumb_func_end ply_mod - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/m4a_3.s b/asm/m4a_3.s index a842ae925..82b6a2467 100644 --- a/asm/m4a_3.s +++ b/asm/m4a_3.s @@ -1,4 +1,4 @@ - .include "asm/macros.inc" + .include "include/macros.inc" .include "constants/gba_constants.inc" .include "constants/m4a_constants.inc" diff --git a/asm/macros.inc b/asm/macros.inc deleted file mode 100644 index 6d8657892..000000000 --- a/asm/macros.inc +++ /dev/null @@ -1,149 +0,0 @@ - .include "asm/macros/asm.inc" - .include "asm/macros/function.inc" - .include "asm/macros/movement.inc" - .include "asm/macros/pokemon_data.inc" - .include "asm/macros/ec.inc" - .include "asm/macros/map.inc" - - .macro region_map_location x, y, width, height, name - .byte \x - .byte \y - .byte \width - .byte \height - .4byte gMapName_\name - .endm - - .macro obj_tiles address, uncompressed_size, tag - .4byte \address - .2byte \uncompressed_size - .2byte \tag - .endm - - .macro null_obj_tiles - obj_tiles 0, 0, 0 - .endm - - .macro obj_pal address, tag - .4byte \address - .2byte \tag - .2byte 0 @ padding - .endm - - .macro null_obj_pal - obj_pal 0, 0 - .endm - - .macro paired_pals tag, address - .2byte \tag - .2byte 0 @ padding - .4byte \address - .endm - -@ For object animation frames. - .macro obj_frame_tiles address, uncompressed_size - .4byte \address - .2byte \uncompressed_size - .2byte 0 @ padding - .endm - - .macro spr_template tile_tag, pal_tag, oam, anims, images, affine_anims, callback - .2byte \tile_tag - .2byte \pal_tag - .4byte \oam - .4byte \anims - .4byte \images - .4byte \affine_anims - .4byte \callback - .endm - -@ Berry trees have a table defining the palette slot used for each of their 5 -@ stages. However, the first 2 stages always use the same slots regardless of -@ the type of tree and the slots of the last 3 stages always equal each other. - .macro berry_tree_palette_slot_table slot - .byte 3, 4, \slot, \slot, \slot - .endm - - .macro subsprite x, y, priority, tile_num_offset, size - .2byte \x - .2byte \y - .2byte ((\priority) << 14) | ((\tile_num_offset) << 4) | SPRITE_SIZE_\size - .2byte 0 @ padding - .endm - - .macro obj_image_anim_frame pic_id, duration, flags = 0 - .2byte \pic_id - .byte (\flags) | (\duration) - .byte 0 @ padding - .endm - - .macro obj_image_anim_loop count - .2byte 0xfffd - .byte \count - .byte 0 @ padding - .endm - - .macro obj_image_anim_jump target_index - .2byte 0xfffe - .byte \target_index - .byte 0 @ padding - .endm - - .macro obj_image_anim_end - .2byte 0xffff - .2byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_frame delta_x_scale, delta_y_scale, delta_angle, duration - .2byte \delta_x_scale - .2byte \delta_y_scale - .byte \delta_angle - .byte \duration - .2byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_loop count - .2byte 0x7ffd - .2byte \count - .4byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_jump target_index - .2byte 0x7ffe - .2byte \target_index - .4byte 0 @ padding - .endm - - .macro obj_rot_scal_anim_end unknown=0 - .2byte 0x7fff - .2byte \unknown - .fill 4 @ padding - .endm - - .macro credits_entry number, text - .4byte \number - .4byte \text - .endm - - .macro door_anim_frame unknown, offset - .byte \unknown - .byte 0 @ padding - .2byte \offset - .endm - - .macro door_anim_gfx metatile_num, unknown, tile_addr, palette_addr - .2byte \metatile_num - .2byte \unknown - .4byte \tile_addr - .4byte \palette_addr - .endm - - .macro trainer_eye_trainer opp_1, opp_2, opp_3, opp_4, opp_5, map_name - .2byte OPPONENT_\opp_1 - .2byte OPPONENT_\opp_2 - .2byte OPPONENT_\opp_3 - .2byte OPPONENT_\opp_4 - .2byte OPPONENT_\opp_5 - .2byte GROUP_\map_name - .2byte MAP_\map_name - .space 2 - .endm diff --git a/asm/macros/asm.inc b/asm/macros/asm.inc deleted file mode 100644 index 26b2707ca..000000000 --- a/asm/macros/asm.inc +++ /dev/null @@ -1,17 +0,0 @@ - .ifndef GUARD_ASM_MACROS_ASM_INC - .set GUARD_ASM_MACROS_ASM_INC, 1 - - .macro inc x - .set \x, \x + 1 - .endm - - .macro enum_start x=0 - .set __enum__, \x - .endm - - .macro enum constant - .equiv \constant, __enum__ - inc __enum__ - .endm - - .endif @ GUARD_ASM_MACROS_ASM_INC diff --git a/asm/macros/battle_ai_script.inc b/asm/macros/battle_ai_script.inc deleted file mode 100644 index 679e30340..000000000 --- a/asm/macros/battle_ai_script.inc +++ /dev/null @@ -1,554 +0,0 @@ - .macro if_random_less_than percent, address - .byte 0x00 - .byte \percent - .4byte \address - .endm - - @ unused - .macro if_random_greater_than percent, address - .byte 0x01 - .byte \percent - .4byte \address - .endm - - @ unused - .macro if_random_equal address - .byte 0x02 - .4byte \address - .endm - - @ unused - .macro if_random_not_equal address - .byte 0x03 - .4byte \address - .endm - - .macro score score - .byte 0x04 - .byte \score - .endm - - .macro if_hp_less_than target, percent, address - .byte 0x05 - .byte \target - .byte \percent - .4byte \address - .endm - - .macro if_hp_more_than target, percent, address - .byte 0x06 - .byte \target - .byte \percent - .4byte \address - .endm - - .macro if_hp_equal target, percent, address - .byte 0x07 - .byte \target - .byte \percent - .4byte \address - .endm - - .macro if_hp_not_equal target, percent, address - .byte 0x08 - .byte \target - .byte \percent - .4byte \address - .endm - - .macro if_status target, status, address - .byte 0x09 - .byte \target - .4byte \status - .4byte \address - .endm - - .macro if_not_status target, status, address - .byte 0x0a - .byte \target - .4byte \status - .4byte \address - .endm - - .macro if_status2 target, status, address - .byte 0x0b - .byte \target - .4byte \status - .4byte \address - .endm - - .macro if_not_status2 target, status, address - .byte 0x0c - .byte \target - .4byte \status - .4byte \address - .endm - - .macro if_status3 target, status, address - .byte 0x0d - .byte \target - .4byte \status - .4byte \address - .endm - - .macro if_not_status3 target, status, address - .byte 0x0e - .byte \target - .4byte \status - .4byte \address - .endm - - .macro if_status4 target, status, address - .byte 0x0f - .byte \target - .4byte \status - .4byte \address - .endm - - .macro if_not_status4 target, status, address - .byte 0x10 - .byte \target - .4byte \status - .4byte \address - .endm - - .macro if_less_than value, address - .byte 0x11 - .byte \value - .4byte \address - .endm - - .macro if_more_than value, address - .byte 0x12 - .byte \value - .4byte \address - .endm - - .macro if_equal value, address - .byte 0x13 - .byte \value - .4byte \address - .endm - - .macro if_not_equal value, address - .byte 0x14 - .byte \value - .4byte \address - .endm - - .macro if_less_than_32 value, address - .byte 0x15 - .4byte \value - .4byte \address - .endm - - .macro if_more_than_32 value, address - .byte 0x16 - .4byte \value - .4byte \address - .endm - - .macro if_equal_32 value, address - .byte 0x17 - .4byte \value - .4byte \address - .endm - - .macro if_not_equal_32 value, address - .byte 0x18 - .4byte \value - .4byte \address - .endm - - .macro if_move move, address - .byte 0x19 - .2byte \move - .4byte \address - .endm - - .macro if_not_move move, address - .byte 0x1a - .2byte \move - .4byte \address - .endm - - .macro if_in_bytes list, address - .byte 0x1b - .4byte \list - .4byte \address - .endm - - .macro if_not_in_bytes list, address - .byte 0x1c - .4byte \list - .4byte \address - .endm - - .macro if_in_words list, address - .byte 0x1d - .4byte \list - .4byte \address - .endm - - .macro if_not_in_words list, address - .byte 0x1e - .4byte \list - .4byte \address - .endm - - .macro if_user_can_damage address - .byte 0x1f - .4byte \address - .endm - - .macro if_user_cant_damage address - .byte 0x20 - .4byte \address - .endm - - .macro get_turn_count - .byte 0x21 - .endm - - .macro get_type byte - .byte 0x22 - .byte \byte - .endm - - @ unused - .macro get_move_power - .byte 0x23 - .endm - - .macro is_most_powerful_move - .byte 0x24 - .endm - - .macro get_move target - .byte 0x25 - .byte \target - .endm - - .macro if_arg_equal type, address - .byte 0x26 - .byte \type - .4byte \address - .endm - - @ unused - .macro if_arg_not_equal type, address - .byte 0x27 - .byte \type - .4byte \address - .endm - - .macro if_would_go_first target, address - .byte 0x28 - .byte \target - .4byte \address - .endm - - .macro if_would_not_go_first target, address - .byte 0x29 - .byte \target - .4byte \address - .endm - - @ nullsub - .macro ai_2a - .byte 0x2a - .endm - - @ nullsub - .macro ai_2b - .byte 0x2b - .endm - - .macro count_alive_pokemon target - .byte 0x2c - .byte \target - .endm - - @ unused - .macro get_considered_move - .byte 0x2d - .endm - - .macro get_effect - .byte 0x2e - .endm - - .macro get_ability target - .byte 0x2f - .byte \target - .endm - - @ unused - .macro get_highest_possible_damage - .byte 0x30 - .endm - - .macro if_damage_bonus value, address - .byte 0x31 - .byte \value - .4byte \address - .endm - - @ nullsub - .macro ai_32 - .byte 0x32 - .endm - - @ nullsub - .macro ai_33 - .byte 0x33 - .endm - - .macro if_status_in_party target, status, address - .byte 0x34 - .byte \target - .4byte \status - .4byte \address - .endm - - @ bugged - .macro if_status_not_in_party target, status, address - .byte 0x35 - .byte \target - .4byte \status - .4byte \address - .endm - - .macro get_weather - .byte 0x36 - .endm - - .macro if_effect byte, address - .byte 0x37 - .byte \byte - .4byte \address - .endm - - .macro if_not_effect byte, address - .byte 0x38 - .byte \byte - .4byte \address - .endm - - .macro if_stat_level_less_than target, stat, level, address - .byte 0x39 - .byte \target - .byte \stat - .byte \level - .4byte \address - .endm - - .macro if_stat_level_more_than target, stat, level, address - .byte 0x3a - .byte \target - .byte \stat - .byte \level - .4byte \address - .endm - - .macro if_stat_level_equal target, stat, level, address - .byte 0x3b - .byte \target - .byte \stat - .byte \level - .4byte \address - .endm - - .macro if_stat_level_not_equal target, stat, level, address - .byte 0x3c - .byte \target - .byte \stat - .byte \level - .4byte \address - .endm - - .macro if_can_faint address - .byte 0x3d - .4byte \address - .endm - - .macro if_cant_faint address - .byte 0x3e - .4byte \address - .endm - - @ unused - .macro if_has_move, target, move, address - .byte 0x3f - .byte \target - .2byte \move - .4byte \address - .endm - - @ unused - .macro if_dont_have_move, target, move, address - .byte 0x40 - .byte \target - .2byte \move - .4byte \address - .endm - - .macro if_move_effect target, effect, address - .byte 0x41 - .byte \target - .byte \effect - .4byte \address - .endm - - .macro if_not_move_effect target, effect, address - .byte 0x42 - .byte \target - .byte \effect - .4byte \address - .endm - - .macro if_last_move_did_damage target, byte, address - .byte 0x43 - .byte \target - .byte \byte - .4byte \address - .endm - - .macro if_encored target, address - .byte 0x44 - .byte \target - .4byte \address - .endm - - .macro flee - .byte 0x45 - .endm - - .macro if_random_100 address - .byte 0x46 - .4byte \address - .endm - - .macro watch - .byte 0x47 - .endm - - .macro get_hold_effect target - .byte 0x48 - .byte \target - .endm - - .macro get_gender target - .byte 0x49 - .byte \target - .endm - - .macro is_first_turn target - .byte 0x4a - .byte \target - .endm - - .macro get_stockpile_count target - .byte 0x4b - .byte \target - .endm - - .macro is_double_battle - .byte 0x4c - .endm - - .macro get_item target - .byte 0x4d - .byte \target - .endm - - .macro get_move_type_from_result - .byte 0x4e - .endm - - .macro get_move_power_from_result - .byte 0x4f - .endm - - .macro get_move_effect_from_result - .byte 0x50 - .endm - - .macro get_protect_count target - .byte 0x51 - .byte \target - .endm - - @ nullsub - .macro ai_52 - .byte 0x52 - .endm - - @ nullsub - .macro ai_53 - .byte 0x53 - .endm - - @ nullsub - .macro ai_54 - .byte 0x54 - .endm - - @ nullsub - .macro ai_55 - .byte 0x55 - .endm - - @ nullsub - .macro ai_56 - .byte 0x56 - .endm - - @ nullsub - .macro ai_57 - .byte 0x57 - .endm - - @ unused - .macro call address - .byte 0x58 - .4byte \address - .endm - - .macro jump address - .byte 0x59 - .4byte \address - .endm - - .macro end - .byte 0x5a - .endm - - .macro if_level_cond cond, address - .byte 0x5b - .byte \cond - .4byte \address - .endm - - .macro if_user_higher_level address - if_level_cond 0, \address - .endm - - .macro if_target_higher_level address - if_level_cond 1, \address - .endm - - .macro if_equal_levels address - if_level_cond 2, \address - .endm - - @ unused - .macro if_taunted address - .byte 0x5c - .4byte \address - .endm - - .macro if_not_taunted address - .byte 0x5d - .4byte \address - .endm diff --git a/asm/macros/battle_anim.inc b/asm/macros/battle_anim.inc deleted file mode 100644 index 4ff845032..000000000 --- a/asm/macros/battle_anim.inc +++ /dev/null @@ -1,266 +0,0 @@ - .macro loadsprite id - .byte 0x00 - .2byte \id - .endm - - .macro unloadsprite id - .byte 0x01 - .2byte \id - .endm - - .macro sprite template, priority, argv:vararg - .byte 0x02 - .4byte \template - .byte \priority - .byte (.Lsprite_\@_2 - .Lsprite_\@_1) / 2 -.Lsprite_\@_1: - .2byte \argv -.Lsprite_\@_2: - .endm - - .macro createtask addr, priority, argv:vararg - .byte 0x03 - .4byte \addr - .byte \priority - .byte (.Lcreatetask_\@_2 - .Lcreatetask_\@_1) / 2 -.Lcreatetask_\@_1: - .2byte \argv -.Lcreatetask_\@_2: - .endm - - .macro pause delay - .byte 0x04 - .byte \delay - .endm - - .macro wait - .byte 0x05 - .endm - - .macro hang1 - .byte 0x06 - .endm - - .macro hang2 - .byte 0x07 - .endm - - .macro end - .byte 0x08 - .endm - - .macro playse id - .byte 0x09 - .2byte \id - .endm - - .macro monbg which - .byte 0x0A - .byte \which - .endm - - .macro clearmonbg which - .byte 0x0B - .byte \which - .endm - - .macro setalpha eva, evb - .byte 0x0C - .2byte ((\evb) << 8) | (\eva) - .endm - - .macro blendoff - .byte 0x0D - .endm - - .macro call addr - .byte 0x0E - .4byte \addr - .endm - - .macro ret - .byte 0x0F - .endm - - .macro setvar var_num, value - .byte 0x10 - .byte \var_num - .2byte \value - .endm - - .macro ifelse addr1, addr2 - .byte 0x11 - .4byte \addr1 - .4byte \addr2 - .endm - - .macro jumpif cond, addr - .byte 0x12 - .byte \cond - .4byte \addr - .endm - - .macro jump addr - .byte 0x13 - .4byte \addr - .endm - - .macro fadetobg id - .byte 0x14 - .byte \id - .endm - - .macro restorebg - .byte 0x15 - .endm - - .macro waitbgfadeout - .byte 0x16 - .endm - - .macro waitbgfadein - .byte 0x17 - .endm - - .macro changebg id - .byte 0x18 - .byte \id - .endm - - .macro panse_19 id, pan - .byte 0x19 - .2byte \id - .byte \pan - .endm - - .macro setpan pan - .byte 0x1A - .byte \pan - .endm - - .macro panse_1B id, pan_start, pan_end, step, delay - .byte 0x1B - .2byte \id - .byte \pan_start - .byte \pan_end - .byte \step - .byte \delay - .endm - - .macro panse_1C id, pan, delay, count - .byte 0x1C - .2byte \id - .byte \pan - .byte \delay - .byte \count - .endm - - .macro panse_1D id, pan, count - .byte 0x1D - .2byte \id - .byte \pan - .byte \count - .endm - - .macro setbldcnt bldcnt - .byte 0x1E - .2byte \bldcnt - .endm - - .macro createtask_1F addr, argv:vararg - .byte 0x1F - .4byte \addr - .byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2 -.Lcreatetask_1F_\@_1: - .2byte \argv -.Lcreatetask_1F_\@_2: - .endm - - .macro waitsound - .byte 0x20 - .endm - - .macro jumpvareq var_num, value, addr - .byte 0x21 - .byte \var_num - .2byte \value - .4byte \addr - .endm - - .macro monbg_22 unk - .byte 0x22 - .byte \unk - .endm - - .macro clearmonbg_23 unk - .byte 0x23 - .byte \unk - .endm - - .macro jumpunkcond addr - .byte 0x24 - .4byte \addr - .endm - - .macro fadetobg_25 a, b, c - .byte 0x25 - .byte \a - .byte \b - .byte \c - .endm - - .macro panse_26 id, pan_start, pan_end, step, delay - .byte 0x26 - .2byte \id - .byte \pan_start - .byte \pan_end - .byte \step - .byte \delay - .endm - - .macro panse_27 id, pan_start, pan_end, step, delay - .byte 0x27 - .2byte \id - .byte \pan_start - .byte \pan_end - .byte \step - .byte \delay - .endm - - .macro monbgprio_28 unk - .byte 0x28 - .byte \unk - .endm - - .macro monbgprio_29 - .byte 0x29 - .endm - - .macro monbgprio_2A unk - .byte 0x2A - .byte \unk - .endm - - .macro invisible side - .byte 0x2B - .byte \side - .endm - - .macro visible side - .byte 0x2C - .byte \side - .endm - - .macro doublebattle_2D unk - .byte 0x2D - .byte \unk - .endm - - .macro doublebattle_2E unk - .byte 0x2E - .byte \unk - .endm - - .macro stopsound - .byte 0x2F - .endm diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc deleted file mode 100644 index e4fa0c454..000000000 --- a/asm/macros/battle_script.inc +++ /dev/null @@ -1,1414 +0,0 @@ -@ 0 == -@ 1 != -@ 2 < -@ 3 > -@ 4 &= - - .macro calculatedamage - critical - atk5 - atk6 - atk7 - .endm - - - .macro attackcanceler - .byte 0x00 - .endm - - .macro accuracycheck address, param1 - .byte 0x01 - .4byte \address - .2byte \param1 - .endm - - .macro attackstring - .byte 0x02 - .endm - - .macro ppreduce - .byte 0x03 - .endm - - .macro critcalc - .byte 0x04 - .endm - - .macro damagecalc - .byte 0x05 - .endm - - .macro typecalc - .byte 0x06 - .endm - - .macro adjustnormaldamage - .byte 0x07 - .endm - - .macro adjustnormaldamage2 - .byte 0x08 - .endm - - .macro attackanimation - .byte 0x09 - .endm - - .macro waitanimation - .byte 0x0a - .endm - - .macro healthbarupdate bank - .byte 0x0b - .byte \bank - .endm - - .macro datahpupdate bank - .byte 0x0c - .byte \bank - .endm - - .macro critmessage - .byte 0x0d - .endm - - .macro effectivenesssound - .byte 0x0e - .endm - - .macro resultmessage - .byte 0x0f - .endm - - .macro printstring string - .byte 0x10 - .2byte \string - .endm - - .macro printselectionstring string - .byte 0x11 - .2byte \string - .endm - - .macro waitmessage delay - .byte 0x12 - .2byte \delay - .endm - - .macro printfromtable table - .byte 0x13 - .4byte \table - .endm - - .macro printselectionstringfromtable table - .byte 0x14 - .4byte \table - .endm - - .macro seteffectwithchance - .byte 0x15 - .endm - - .macro seteffectprimary - .byte 0x16 - .endm - - .macro seteffectsecondary - .byte 0x17 - .endm - - .macro clearstatusfromeffect bank - .byte 0x18 - .byte \bank - .endm - - .macro tryfaintmon bank, param2, param3 - .byte 0x19 - .byte \bank - .byte \param2 - .4byte \param3 - .endm - - .macro dofaintanimation param1 - .byte 0x1a - .byte \param1 - .endm - - .macro cleareffectsonfaint bank - .byte 0x1b - .byte \bank - .endm - - .macro jumpifstatus bank, status, address - .byte 0x1c - .byte \bank - .4byte \status - .4byte \address - .endm - - .macro jumpifstatus2 bank, status, address - .byte 0x1d - .byte \bank - .4byte \status - .4byte \address - .endm - - .macro jumpifability bank, ability, address - .byte 0x1e - .byte \bank - .byte \ability - .4byte \address - .endm - - .macro jumpifsideaffecting bank, status, address - .byte 0x1f - .byte \bank - .2byte \status - .4byte \address - .endm - - .macro jumpifstat bank, flag, quantity, statid, address - .byte 0x20 - .byte \bank - .byte \flag - .byte \quantity - .byte \statid - .4byte \address - .endm - - .macro jumpifstatus3condition bank, mask, status, address - .byte 0x21 - .byte \bank - .4byte \mask - .byte \status - .4byte \address - .endm - - .macro jumpiftype bank, type, address - .byte 0x22 - .byte \bank - .byte \type - .4byte \address - .endm - - .macro getexp bank - .byte 0x23 - .byte \bank - .endm - - .macro atk24 address - .byte 0x24 - .4byte \address - .endm - - .macro movevaluescleanup - .byte 0x25 - .endm - - .macro setmultihit param1 - .byte 0x26 - .byte \param1 - .endm - - .macro decrementmultihit address - .byte 0x27 - .4byte \address - .endm - - .macro goto address - .byte 0x28 - .4byte \address - .endm - - .macro jumpifbyte ifflag, checkaddr, compare, address - .byte 0x29 - .byte \ifflag - .4byte \checkaddr - .byte \compare - .4byte \address - .endm - - .macro jumpifhalfword ifflag, checkaddr, compare, address - .byte 0x2a - .byte \ifflag - .4byte \checkaddr - .2byte \compare - .4byte \address - .endm - - .macro jumpifword ifflag, checkaddr, compare, address - .byte 0x2b - .byte \ifflag - .4byte \checkaddr - .4byte \compare - .4byte \address - .endm - - .macro jumpifarrayequal mem1, mem2, size, address - .byte 0x2c - .4byte \mem1 - .4byte \mem2 - .byte \size - .4byte \address - .endm - - .macro jumpifarraynotequal mem1, mem2, size, address - .byte 0x2d - .4byte \mem1 - .4byte \mem2 - .byte \size - .4byte \address - .endm - - .macro setbyte pointer, value - .byte 0x2e - .4byte \pointer - .byte \value - .endm - - .macro addbyte pointer, value - .byte 0x2f - .4byte \pointer - .byte \value - .endm - - .macro subbyte pointer, value - .byte 0x30 - .4byte \pointer - .byte \value - .endm - - .macro copyarray destination, source, size - .byte 0x31 - .4byte \destination - .4byte \source - .byte \size - .endm - - .macro copyarraywithindex param1, param2, param3, byte - .byte 0x32 - .4byte \param1 - .4byte \param2 - .4byte \param3 - .byte \byte - .endm - - .macro orbyte pointer, value - .byte 0x33 - .4byte \pointer - .byte \value - .endm - - .macro orhalfword pointer, value - .byte 0x34 - .4byte \pointer - .2byte \value - .endm - - .macro orword pointer, value - .byte 0x35 - .4byte \pointer - .4byte \value - .endm - - .macro bicbyte pointer, value - .byte 0x36 - .4byte \pointer - .byte \value - .endm - - .macro bichalfword pointer, value - .byte 0x37 - .4byte \pointer - .2byte \value - .endm - - .macro bicword pointer, value - .byte 0x38 - .4byte \pointer - .4byte \value - .endm - - .macro pause pause_duration - .byte 0x39 - .2byte \pause_duration - .endm - - .macro waitstate - .byte 0x3a - .endm - - .macro healthbar_update bank - .byte 0x3b - .byte \bank - .endm - - .macro return - .byte 0x3c - .endm - - .macro end - .byte 0x3d - .endm - - .macro end2 - .byte 0x3e - .endm - - .macro end3 - .byte 0x3f - .endm - - .macro jumpifaffectedbyprotect address - .byte 0x40 - .4byte \address - .endm - - .macro call address - .byte 0x41 - .4byte \address - .endm - - .macro jumpiftype2 bank, type, address - .byte 0x42 - .byte \bank - .byte \type - .4byte \address - .endm - - .macro jumpifabilitypresent ability, address - .byte 0x43 - .byte \ability - .4byte \address - .endm - - .macro endselectionscript - .byte 0x44 - .endm - - .macro playanimation bank, animation, var_address - .byte 0x45 - .byte \bank - .byte \animation - .4byte \var_address - .endm - - .macro playanimation2 bank, address, int - .byte 0x46 - .byte \bank - .4byte \address - .4byte \int - .endm - - .macro setgraphicalstatchangevalues - .byte 0x47 - .endm - - .macro playstatchangeanimation bank, color, byte - .byte 0x48 - .byte \bank - .byte \color - .byte \byte - .endm - - .macro moveend byte1, byte2 - .byte 0x49 - .byte \byte1 - .byte \byte2 - .endm - - .macro typecalc2 - .byte 0x4a - .endm - - .macro returnatktoball - .byte 0x4b - .endm - - .macro getswitchedmondata bank - .byte 0x4c - .byte \bank - .endm - - .macro switchindataupdate bank - .byte 0x4d - .byte \bank - .endm - - .macro switchinanim bank, byte - .byte 0x4e - .byte \bank - .byte \byte - .endm - - .macro jumpifcantswitch bank, address - .byte 0x4f - .byte \bank - .4byte \address - .endm - - .macro openpartyscreen bank, address - .byte 0x50 - .byte \bank - .4byte \address - .endm - - .macro switchhandleorder bank, param2 - .byte 0x51 - .byte \bank - .byte \param2 - .endm - - .macro switchineffects bank - .byte 0x52 - .byte \bank - .endm - - .macro trainerslidein bank - .byte 0x53 - .byte \bank - .endm - - .macro playse word - .byte 0x54 - .2byte \word - .endm - - .macro fanfare int - .byte 0x55 - .2byte \int - .endm - - .macro playfaintcry bank_or_side - .byte 0x56 - .byte \bank_or_side - .endm - - .macro atk57 - .byte 0x57 - .endm - - .macro returntoball bank - .byte 0x58 - .byte \bank - .endm - - .macro handlelearnnewmove param1, param2, bank_maybe - .byte 0x59 - .4byte \param1 - .4byte \param2 - .byte \bank_maybe - .endm - - .macro yesnoboxlearnmove address - .byte 0x5a - .4byte \address - .endm - - .macro yesnoboxstoplearningmove address - .byte 0x5b - .4byte \address - .endm - - .macro hitanimation bank - .byte 0x5c - .byte \bank - .endm - - .macro getmoneyreward - .byte 0x5d - .endm - - .macro atk5e bank - .byte 0x5e - .byte \bank - .endm - - .macro atk5f - .byte 0x5f - .endm - - .macro incrementgamestat byte - .byte 0x60 - .byte \byte - .endm - - .macro drawpartystatussummary bank_or_side - .byte 0x61 - .byte \bank_or_side - .endm - - .macro atk62 bank_or_side - .byte 0x62 - .byte \bank_or_side - .endm - - .macro jumptorandomattack bank - .byte 0x63 - .byte \bank - .endm - - .macro statusanimation bank - .byte 0x64 - .byte \bank - .endm - - .macro status2animation bank_or_side, address - .byte 0x65 - .byte \bank_or_side - .4byte \address - .endm - - .macro chosenstatusanimation bank_or_side, bank_or_side2, address - .byte 0x66 - .byte \bank_or_side - .byte \bank_or_side2 - .4byte \address - .endm - - .macro yesnobox - .byte 0x67 - .endm - - .macro cancelallactions - .byte 0x68 - .endm - - .macro adjustsetdamage - .byte 0x69 - .endm - - .macro removeitem bank - .byte 0x6a - .byte \bank - .endm - - .macro atknameinbuff1 - .byte 0x6b - .endm - - .macro drawlvlupbox - .byte 0x6c - .endm - - .macro resetsentmonsvalue - .byte 0x6d - .endm - - .macro setatktoplayer0 - .byte 0x6e - .endm - - .macro makevisible bank - .byte 0x6f - .byte \bank - .endm - - .macro recordlastability bank - .byte 0x70 - .byte \bank - .endm - - .macro buffermovetolearn - .byte 0x71 - .endm - - .macro jumpifplayerran address - .byte 0x72 - .4byte \address - .endm - - .macro hpthresholds bank - .byte 0x73 - .byte \bank - .endm - - .macro hpthresholds2 bank - .byte 0x74 - .byte \bank - .endm - - .macro useitemonopponent - .byte 0x75 - .endm - - .macro various bank, byte - .byte 0x76 - .byte \bank - .byte \byte - .endm - - .macro setprotectlike - .byte 0x77 - .endm - - .macro faintifabilitynotdamp - .byte 0x78 - .endm - - .macro setatkhptozero - .byte 0x79 - .endm - - .macro jumpifnexttargetvalid address - .byte 0x7a - .4byte \address - .endm - - .macro tryhealhalfhealth address, byte - .byte 0x7b - .4byte \address - .byte \byte - .endm - - .macro trymirrormove - .byte 0x7c - .endm - - .macro setrain - .byte 0x7d - .endm - - .macro setreflect - .byte 0x7e - .endm - - .macro setseeded - .byte 0x7f - .endm - - .macro manipulatedamage id - .byte 0x80 - .byte \id - .endm - - .macro trysetrest address - .byte 0x81 - .4byte \address - .endm - - .macro jumpifnotfirstturn address - .byte 0x82 - .4byte \address - .endm - - .macro nop - .byte 0x83 - .endm - - .macro jumpifcantmakeasleep address - .byte 0x84 - .4byte \address - .endm - - .macro stockpile - .byte 0x85 - .endm - - .macro stockpiletobasedamage address - .byte 0x86 - .4byte \address - .endm - - .macro stockpiletohpheal address - .byte 0x87 - .4byte \address - .endm - - .macro negativedamage - .byte 0x88 - .endm - - .macro statbuffchange target, address - .byte 0x89 - .byte \target - .4byte \address - .endm - - .macro normalisebuffs - .byte 0x8a - .endm - - .macro setbide - .byte 0x8b - .endm - - .macro confuseifrepeatingattackends - .byte 0x8c - .endm - - .macro setmultihitcounter count - .byte 0x8d - .byte \count - .endm - - .macro initmultihitstring - .byte 0x8e - .endm - - .macro forcerandomswitch address - .byte 0x8f - .4byte \address - .endm - - .macro tryconversiontypechange address - .byte 0x90 - .4byte \address - .endm - - .macro givepaydaymoney - .byte 0x91 - .endm - - .macro setlightscreen - .byte 0x92 - .endm - - .macro tryKO address - .byte 0x93 - .4byte \address - .endm - - .macro damagetohalftargethp - .byte 0x94 - .endm - - .macro setsandstorm - .byte 0x95 - .endm - - .macro weatherdamage - .byte 0x96 - .endm - - .macro tryinfatuating address - .byte 0x97 - .4byte \address - .endm - - .macro updatestatusicon byte - .byte 0x98 - .byte \byte - .endm - - .macro setmist - .byte 0x99 - .endm - - .macro setfocusenergy - .byte 0x9a - .endm - - .macro transformdataexecution - .byte 0x9b - .endm - - .macro setsubstitute - .byte 0x9c - .endm - - .macro mimicattackcopy address - .byte 0x9d - .4byte \address - .endm - - .macro metronome - .byte 0x9e - .endm - - .macro dmgtolevel - .byte 0x9f - .endm - - .macro psywavedamageeffect - .byte 0xa0 - .endm - - .macro counterdamagecalculator address - .byte 0xa1 - .4byte \address - .endm - - .macro mirrorcoatdamagecalculator address - .byte 0xa2 - .4byte \address - .endm - - .macro disablelastusedattack address - .byte 0xa3 - .4byte \address - .endm - - .macro trysetencore address - .byte 0xa4 - .4byte \address - .endm - - .macro painsplitdmgcalc address - .byte 0xa5 - .4byte \address - .endm - - .macro settypetorandomresistance address - .byte 0xa6 - .4byte \address - .endm - - .macro setalwayshitflag - .byte 0xa7 - .endm - - .macro copymovepermanently address - .byte 0xa8 - .4byte \address - .endm - - .macro trychoosesleeptalkmove address - .byte 0xa9 - .4byte \address - .endm - - .macro setdestinybond - .byte 0xaa - .endm - - .macro trysetdestinybondtohappen - .byte 0xab - .endm - - .macro remaininghptopower - .byte 0xac - .endm - - .macro tryspiteppreduce address - .byte 0xad - .4byte \address - .endm - - .macro healpartystatus - .byte 0xae - .endm - - .macro cursetarget address - .byte 0xaf - .4byte \address - .endm - - .macro trysetspikes address - .byte 0xb0 - .4byte \address - .endm - - .macro setforesight - .byte 0xb1 - .endm - - .macro trysetperishsong address - .byte 0xb2 - .4byte \address - .endm - - .macro rolloutdamagecalculation - .byte 0xb3 - .endm - - .macro jumpifconfusedandstatmaxed bank, address - .byte 0xb4 - .byte \bank - .4byte \address - .endm - - .macro furycuttercalc - .byte 0xb5 - .endm - - .macro happinesstodamagecalculation - .byte 0xb6 - .endm - - .macro presentdamagecalculation - .byte 0xb7 - .endm - - .macro setsafeguard - .byte 0xb8 - .endm - - .macro magnitudedamagecalculation - .byte 0xb9 - .endm - - .macro jumpifnopursuitswitchdmg address - .byte 0xba - .4byte \address - .endm - - .macro setsunny - .byte 0xbb - .endm - - .macro maxattackhalvehp address - .byte 0xbc - .4byte \address - .endm - - .macro copyfoestats address - .byte 0xbd - .4byte \address - .endm - - .macro rapidspinfree - .byte 0xbe - .endm - - .macro setdefensecurlbit - .byte 0xbf - .endm - - .macro recoverbasedonsunlight address - .byte 0xc0 - .4byte \address - .endm - - .macro hiddenpowercalc - .byte 0xc1 - .endm - - .macro selectfirstvalidtarget - .byte 0xc2 - .endm - - .macro trysetfutureattack address - .byte 0xc3 - .4byte \address - .endm - - .macro trydobeatup address1, address2 - .byte 0xc4 - .4byte \address1 - .4byte \address2 - .endm - - .macro setsemiinvulnerablebit - .byte 0xc5 - .endm - - .macro clearsemiinvulnerablebit - .byte 0xc6 - .endm - - .macro setminimize - .byte 0xc7 - .endm - - .macro sethail - .byte 0xc8 - .endm - - .macro jumpifattackandspecialattackcannotfall address - .byte 0xc9 - .4byte \address - .endm - - .macro setforcedtarget - .byte 0xca - .endm - - .macro setcharge - .byte 0xcb - .endm - - .macro callterrainattack - .byte 0xcc - .endm - - .macro cureifburnedparalysedorpoisoned address - .byte 0xcd - .4byte \address - .endm - - .macro settorment address - .byte 0xce - .4byte \address - .endm - - .macro jumpifnodamage address - .byte 0xcf - .4byte \address - .endm - - .macro settaunt address - .byte 0xd0 - .4byte \address - .endm - - .macro trysethelpinghand address - .byte 0xd1 - .4byte \address - .endm - - .macro tryswapitems address - .byte 0xd2 - .4byte \address - .endm - - .macro trycopyability address - .byte 0xd3 - .4byte \address - .endm - - .macro trywish byte, address - .byte 0xd4 - .byte \byte - .4byte \address - .endm - - .macro trysetroots address - .byte 0xd5 - .4byte \address - .endm - - .macro doubledamagedealtifdamaged - .byte 0xd6 - .endm - - .macro setyawn address - .byte 0xd7 - .4byte \address - .endm - - .macro setdamagetohealthdifference address - .byte 0xd8 - .4byte \address - .endm - - .macro scaledamagebyhealthratio - .byte 0xd9 - .endm - - .macro tryswapabilities address - .byte 0xda - .4byte \address - .endm - - .macro tryimprision address - .byte 0xdb - .4byte \address - .endm - - .macro trysetgrudge address - .byte 0xdc - .4byte \address - .endm - - .macro weightdamagecalculation - .byte 0xdd - .endm - - .macro assistattackselect address - .byte 0xde - .4byte \address - .endm - - .macro trysetmagiccoat address - .byte 0xdf - .4byte \address - .endm - - .macro trysetsnatch address - .byte 0xe0 - .4byte \address - .endm - - .macro trygetintimidatetarget address - .byte 0xe1 - .4byte \address - .endm - - .macro switchoutabilities bank - .byte 0xe2 - .byte \bank - .endm - - .macro jumpifhasnohp bank, address - .byte 0xe3 - .byte \bank - .4byte \address - .endm - - .macro getsecretpowereffect - .byte 0xe4 - .endm - - .macro pickup - .byte 0xe5 - .endm - - .macro docastformchangeanimation - .byte 0xe6 - .endm - - .macro trycastformdatachange - .byte 0xe7 - .endm - - .macro settypebasedhalvers address - .byte 0xe8 - .4byte \address - .endm - - .macro setweatherballtype - .byte 0xe9 - .endm - - .macro tryrecycleitem address - .byte 0xea - .4byte \address - .endm - - .macro settypetoterrain address - .byte 0xeb - .4byte \address - .endm - - .macro pursuitrelated address - .byte 0xec - .4byte \address - .endm - - .macro snatchsetbanks - .byte 0xed - .endm - - .macro removelightscreenreflect - .byte 0xee - .endm - - .macro handleballthrow - .byte 0xef - .endm - - .macro givecaughtmon - .byte 0xf0 - .endm - - .macro trysetcaughtmondexflags address - .byte 0xf1 - .4byte \address - .endm - - .macro displaydexinfo - .byte 0xf2 - .endm - - .macro trygivecaughtmonnick address - .byte 0xf3 - .4byte \address - .endm - - .macro subattackerhpbydmg - .byte 0xf4 - .endm - - .macro removeattackerstatus1 - .byte 0xf5 - .endm - - .macro finishaction - .byte 0xf6 - .endm - - .macro finishturn - .byte 0xf7 - .endm - - .macro trainerslideout bank - .byte 0xf8 - .byte \bank - .endm - -@ various command changed to more readable macros - .macro cancelmultiturnmoves bank - various \bank, VARIOUS_CANCEL_MULTI_TURN_MOVES - .endm - - .macro setmagiccoattarget bank - various \bank, VARIOUS_SET_MAGIC_COAT_TARGET - .endm - - .macro getifcantrunfrombattle bank - various \bank, VARIOUS_IS_RUNNING_IMPOSSIBLE - .endm - - .macro getmovetarget bank - various \bank, VARIOUS_GET_MOVE_TARGET - .endm - - .macro various4 bank - various \bank, 4 - .endm - - .macro resetintrimidatetracebits bank - various \bank, VARIOUS_RESET_INTIMIDATE_TRACE_BITS - .endm - - .macro updatechoicemoveonlvlup bank - various \bank, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP - .endm - - .macro various7 bank - various \bank, 7 - .endm - - .macro various8 bank - various \bank, 8 - .endm - - .macro various9 bank - various \bank, 9 - .endm - - .macro various10 bank - various \bank, 10 - .endm - - .macro various11 bank - various \bank, 11 - .endm - - .macro various12 bank - various \bank, 12 - .endm - - .macro forfeityesnobox bank - various \bank, VARIOUS_EMIT_YESNOBOX - .endm - - .macro various14 bank - various \bank, 14 - .endm - - .macro various15 bank - various \bank, 15 - .endm - - .macro various16 bank - various \bank, 16 - .endm - - .macro various17 bank - various \bank, 17 - .endm - - .macro waitcry bank - various \bank, VARIOUS_WAIT_CRY - .endm - - .macro returnopponentmon1toball bank - various \bank, VARIOUS_RETURN_OPPONENT_MON1 - .endm - - .macro returnopponentmon2toball bank - various \bank, VARIOUS_RETURN_OPPONENT_MON2 - .endm - - .macro various21 bank - various \bank, 21 - .endm - - .macro various22 bank - various \bank, 22 - .endm - - .macro various23 bank - various \bank, 23 - .endm - - .macro various24 bank - various \bank, 24 - .endm - - .macro setoutcomeonteleport bank - various \bank, VARIOUS_SET_TELEPORT_OUTCOME - .endm - - .macro playtrainerdefeatbgm bank - various \bank, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC - .endm - -@ helpful macros - .macro setstatchanger stat, stages, down - setbyte sSTATCHANGER \stat | \stages << 4 | \down << 7 - .endm - - .macro setmoveeffect effect - setbyte cEFFECT_CHOOSER \effect - .endm - - .macro chosenstatus1animation bank, status - chosenstatusanimation \bank 0x0 \status - .endm - - .macro chosenstatus2animation bank, status - chosenstatusanimation \bank 0x1 \status - .endm - - .macro sethword dst, value - setbyte \dst, \value & 0xFF - setbyte \dst + 1, (\value >> 8) & 0xFF - .endm - - .macro setword dst, value - setbyte \dst, \value & 0xFF - setbyte \dst + 1, (\value >> 8) & 0xFF - setbyte \dst + 2, (\value >> 16) & 0xFF - setbyte \dst + 3, (\value >> 24) & 0xFF - .endm - - .macro copybyte dst, src - copyarray \dst, \src, 0x1 - .endm - - .macro copyhword dst, src - copyarray \dst, \src, 0x2 - .endm - - .macro copyword dst, src - copyarray \dst, \src, 0x4 - .endm - - .macro jumpifbytenotequal byte1, byte2, jumpptr - jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr - .endm - - .macro jumpifbyteequal byte1, byte2, jumpptr - jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr - .endm - - .macro jumpifmove move, jumpptr - jumpifhalfword EQUAL, gCurrentMove, \move, \jumpptr - .endm - - .macro jumpifnotmove move, jumpptr - jumpifhalfword NOT_EQUAL, gCurrentMove, \move, \jumpptr - .endm - - .macro jumpifstatus3 bank, status, jumpptr - jumpifstatus3condition \bank, \status, 0x0, \jumpptr - .endm - - .macro jumpifnostatus3 bank, status, jumpptr - jumpifstatus3condition \bank, \status, 0x1, \jumpptr - .endm - - .macro jumpifmovehadnoeffect jumpptr - jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, \jumpptr - .endm - - .macro jumpifbattletype flags, jumpptr - jumpifhalfword COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr - .endm - - .macro jumpifnotbattletype flags, jumpptr - jumpifhalfword NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr - .endm diff --git a/asm/macros/contest_ai_script.inc b/asm/macros/contest_ai_script.inc deleted file mode 100644 index 05d70e351..000000000 --- a/asm/macros/contest_ai_script.inc +++ /dev/null @@ -1,506 +0,0 @@ -@ Add a positive/negative value to the score of the move being evaluated. - - .macro score score - .byte 0x00 - .byte \score - .endm - -@ turn (AKA "Appeal No.") - - .macro get_turn - .byte 0x01 - .endm - - .macro if_turn_less_than param, addr - .byte 0x02 - .byte \param - .4byte \addr - .endm - - .macro if_turn_more_than param, addr - .byte 0x03 - .byte \param - .4byte \addr - .endm - - .macro if_turn_eq param, addr - .byte 0x04 - .byte \param - .4byte \addr - .endm - - .macro if_turn_not_eq param, addr - .byte 0x05 - .byte \param - .4byte \addr - .endm - -@ audience excitement - - .macro get_excitement - .byte 0x06 - .endm - - .macro if_excitement_less_than param, addr - .byte 0x07 - .byte \param - .4byte \addr - .endm - - .macro if_excitement_more_than param, addr - .byte 0x08 - .byte \param - .4byte \addr - .endm - - .macro if_excitement_eq param, addr - .byte 0x09 - .byte \param - .4byte \addr - .endm - - .macro if_excitement_not_eq param, addr - .byte 0x0A - .byte \param - .4byte \addr - .endm - -@ the order that the user goes in the current turn - - .macro get_user_order - .byte 0x0B - .endm - - .macro if_user_order_less_than param addr - .byte 0x0C - .byte \param - .4byte \addr - .endm - - .macro if_user_order_more_than param addr - .byte 0x0D - .byte \param - .4byte \addr - .endm - - .macro if_user_order_eq param addr - .byte 0x0E - .byte \param - .4byte \addr - .endm - - .macro if_user_order_not_eq param addr - .byte 0x0F - .byte \param - .4byte \addr - .endm - -@ user condition - - .macro get_user_condition - .byte 0x10 - .endm - - .macro if_user_condition_less_than param, addr - .byte 0x11 - .byte \param - .4byte \addr - .endm - - .macro if_user_condition_more_than param, addr - .byte 0x12 - .byte \param - .4byte \addr - .endm - - .macro if_user_condition_eq param, addr - .byte 0x13 - .byte \param - .4byte \addr - .endm - - .macro if_user_condition_not_eq param, addr - .byte 0x14 - .byte \param - .4byte \addr - .endm - -@ 15 -@ 16 -@ 17 -@ 18 -@ 19 -@ 1A -@ 1B -@ 1C -@ 1D -@ 1E - -@ contest type - - .macro get_contest_type - .byte 0x1F - .endm - - .macro if_contest_type_eq param, addr - .byte 0x20 - .byte \param - .4byte \addr - .endm - - .macro if_contest_type_not_eq param, addr - .byte 0x21 - .byte \param - .4byte \addr - .endm - -@ move excitement (change in excitement due to move) - - .macro get_move_excitement - .byte 0x22 - .endm - - .macro if_move_excitement_less_than param, addr - .byte 0x23 - .byte \param - .4byte \addr - .endm - - .macro if_move_excitement_more_than param, addr - .byte 0x24 - .byte \param - .4byte \addr - .endm - - .macro if_move_excitement_eq param, addr - .byte 0x25 - .byte \param - .4byte \addr - .endm - - .macro if_move_excitement_not_eq param, addr - .byte 0x26 - .byte \param - .4byte \addr - .endm - -@ move effect - - .macro get_effect - .byte 0x27 - .endm - - .macro if_effect_eq param, addr - .byte 0x28 - .byte \param - .4byte \addr - .endm - - .macro if_effect_not_eq param, addr - .byte 0x29 - .byte \param - .4byte \addr - .endm - -@ move effect type - - .macro get_effect_type - .byte 0x2A - .endm - - .macro if_effect_type_eq param, addr - .byte 0x2B - .byte \param - .4byte \addr - .endm - - .macro if_effect_type_not_eq param, addr - .byte 0x2C - .byte \param - .4byte \addr - .endm - -@ whether the current move is the most appealing in the user's moveset - - .macro check_most_appealing_move - .byte 0x2D - .endm - - .macro if_most_appealing_move addr - .byte 0x2E - .4byte \addr - .endm - -@ 2F -@ 30 -@ 31 -@ 32 -@ 33 -@ 34 -@ 35 -@ 36 -@ 37 -@ 38 -@ 39 -@ 3A - -@ number of times current move has been used - - .macro get_move_used_count - .byte 0x3B - .endm - - .macro if_move_used_count_less_than param, addr - .byte 0x3C - .byte \param - .4byte \addr - .endm - - .macro if_move_used_count_more_than param, addr - .byte 0x3D - .byte \param - .4byte \addr - .endm - - .macro if_move_used_count_eq param, addr - .byte 0x3E - .byte \param - .4byte \addr - .endm - - .macro if_move_used_count_not_eq param, addr - .byte 0x3F - .byte \param - .4byte \addr - .endm - -@ whether the current move is a combo starter (with another move in the moveset) - - .macro check_combo_starter - .byte 0x40 - .endm - - .macro if_combo_starter addr - .byte 0x41 - .4byte \addr - .endm - - .macro if_not_combo_starter addr - .byte 0x42 - .4byte \addr - .endm - -@ whether the current move is a combo finisher (with another move in the moveset) - - .macro check_combo_finisher - .byte 0x43 - .endm - - .macro if_combo_finisher addr - .byte 0x44 - .4byte \addr - .endm - - .macro if_not_combo_finisher addr - .byte 0x45 - .4byte \addr - .endm - -@ whether the current move would finish a combo - - .macro check_would_finish_combo - .byte 0x46 - .endm - - .macro if_would_finish_combo addr - .byte 0x47 - .4byte \addr - .endm - - .macro if_would_not_finish_combo addr - .byte 0x48 - .4byte \addr - .endm - -@ condition of mon (indexed by order) - - .macro get_condition mon - .byte 0x49 - .byte \mon - .endm - - .macro if_condition_less_than mon, value, addr - .byte 0x4A - .byte \mon - .byte \value - .4byte \addr - .endm - - .macro if_condition_more_than mon, value, addr - .byte 0x4B - .byte \mon - .byte \value - .4byte \addr - .endm - - .macro if_condition_eq mon, value, addr - .byte 0x4C - .byte \mon - .byte \value - .4byte \addr - .endm - - .macro if_condition_not_eq mon, value, addr - .byte 0x4D - .byte \mon - .byte \value - .4byte \addr - .endm - -@ whether the mon used a combo starter move -@ Even though this value is always 1 or 0 (i.e. TRUE/FALSE), -@ there are less-than and greater-than comparison operations for some reason. - - .macro get_used_combo_starter mon - .byte 0x4E - .byte \mon - .endm - - .macro if_used_combo_starter_less_than mon, value, addr - .byte 0x4F - .byte \mon - .byte \value - .4byte \addr - .endm - - .macro if_used_combo_starter_more_than mon, value, addr - .byte 0x50 - .byte \mon - .byte \value - .4byte \addr - .endm - - - .macro if_used_combo_starter_eq mon, value, addr - .byte 0x51 - .byte \mon - .byte \value - .4byte \addr - .endm - - .macro if_used_combo_starter_not_eq mon, value, addr - .byte 0x52 - .byte \mon - .byte \value - .4byte \addr - .endm - -@ whether the mon can make an appeal - - .macro check_can_participate mon - .byte 0x53 - .byte \mon - .endm - - .macro if_can_participate mon, addr - .byte 0x54 - .byte \mon - .4byte \addr - .endm - - .macro if_cannot_participate mon, addr - .byte 0x55 - .byte \mon - .4byte \addr - .endm - -@ 56 -@ 57 - - .macro contest_58 param addr - .byte 0x58 - .byte \param - .4byte \addr - .endm - -@ 59 -@ 5A -@ 5B -@ 5C -@ 5D -@ 5E -@ 5F -@ 60 -@ 61 -@ 62 -@ 63 -@ 64 -@ 65 -@ 66 -@ 67 -@ 68 -@ 69 -@ 6A -@ 6B -@ 6C -@ 6D -@ 6E -@ 6F -@ 70 -@ 71 -@ 72 -@ 73 -@ 74 -@ 75 -@ 76 -@ 77 -@ 78 -@ 79 -@ 7A -@ 7B -@ 7C - - .macro if_random param addr - .byte 0x7D - .byte \param - .4byte \addr - .endm - -@ 7E - - .macro jump addr - .byte 0x7F - .4byte \addr - .endm - - .macro call addr - .byte 0x80 - .4byte \addr - .endm - - .macro end - .byte 0x81 - .endm - - .macro check_user_has_exciting_move - .byte 0x82 - .endm - - .macro if_user_has_exciting_move addr - .byte 0x83 - .4byte \addr - .endm - - .macro if_user_doesnt_have_exciting_move addr - .byte 0x84 - .4byte \addr - .endm - -@ 85 -@ 86 - - .macro if_effect_in_user_moveset param addr - .byte 0x87 - .2byte \param - .4byte \addr - .endm diff --git a/asm/macros/ec.inc b/asm/macros/ec.inc deleted file mode 100644 index d3fd45c2f..000000000 --- a/asm/macros/ec.inc +++ /dev/null @@ -1,8 +0,0 @@ - - .macro ec_duplicates count - .2byte 0xff00 + \count - .endm - - .macro ec_words_by_letter label - .2byte (gEasyChatWordsByLetter_\label - gEasyChatWordsAlphabetized) / 2 - .endm diff --git a/asm/macros/event.inc b/asm/macros/event.inc deleted file mode 100644 index 5176beff3..000000000 --- a/asm/macros/event.inc +++ /dev/null @@ -1,1397 +0,0 @@ - @ Does nothing. - .macro nop - .byte 0x00 - .endm - - @ Does nothing. - .macro nop1 - .byte 0x01 - .endm - - @ Terminates script execution. - .macro end - .byte 0x02 - .endm - - @ Jumps back to after the last-executed call statement, and continues script execution from there. - .macro return - .byte 0x03 - .endm - - @ Jumps to destination and continues script execution from there. The location of the calling script is remembered and can be returned to later. - .macro call destination - .byte 0x04 - .4byte \destination - .endm - - @ Jumps to destination and continues script execution from there. - .macro goto destination - .byte 0x05 - .4byte \destination - .endm - - @ If the result of the last comparison matches condition (see Comparison operators), jumps to destination and continues script execution from there. - .macro goto_if condition, destination - .byte 0x06 - .byte \condition - .4byte \destination - .endm - - @ If the result of the last comparison matches condition (see Comparison operators), calls destination. - .macro call_if condition, destination - .byte 0x07 - .byte \condition - .4byte \destination - .endm - - @ Jumps to the standard function at index function. - .macro gotostd function - .byte 0x08 - .byte \function - .endm - - @ Calls the standard function at index function. - .macro callstd function - .byte 0x09 - .byte \function - .endm - - @ If the result of the last comparison matches condition (see Comparison operators), jumps to the standard function at index function. - .macro gotostd_if condition, function - .byte 0x0a - .byte \condition - .byte \function - .endm - - @ If the result of the last comparison matches condition (see Comparison operators), calls the standard function at index function. - .macro callstd_if condition, function - .byte 0x0b - .byte \condition - .byte \function - .endm - - @ Executes a script stored in a default RAM location. - .macro gotoram - .byte 0x0c - .endm - - @ Terminates script execution and "resets the script RAM". - .macro killscript - .byte 0x0d - .endm - - @ Sets some status related to Mystery Event. - .macro setmysteryeventstatus value - .byte 0x0e - .byte \value - .endm - - @ Sets the specified script bank to value. - .macro loadword destination, value - .byte 0x0f - .byte \destination - .4byte \value - .endm - - @ Sets the specified script bank to value. - .macro loadbyte destination, value - .byte 0x10 - .byte \destination - .byte \value - .endm - - @ Sets the byte at offset to value. - .macro writebytetoaddr value, offset - .byte 0x11 - .byte \value - .4byte \offset - .endm - - @ Copies the byte value at source into the specified script bank. - .macro loadbytefromaddr destination, source - .byte 0x12 - .byte \destination - .4byte \source - .endm - - @ Not sure. Judging from XSE's description I think it takes the least-significant byte in bank source and writes it to destination. - .macro setptrbyte source, destination - .byte 0x13 - .byte \source - .4byte \destination - .endm - - @ Copies the contents of bank source into bank destination. - .macro copylocal destination, source - .byte 0x14 - .byte \destination - .byte \source - .endm - - @ Copies the byte at source to destination, replacing whatever byte was previously there. - .macro copybyte destination, source - .byte 0x15 - .4byte \destination - .4byte \source - .endm - - @ Changes the value of destination to value. - .macro setvar destination, value - .byte 0x16 - .2byte \destination - .2byte \value - .endm - - @ Changes the value of destination by adding value to it. Overflow is not prevented (0xFFFF + 1 = 0x0000). - .macro addvar destination, value - .byte 0x17 - .2byte \destination - .2byte \value - .endm - - @ Changes the value of destination by subtracting value to it. Overflow is not prevented (0x0000 - 1 = 0xFFFF). - .macro subvar destination, value - .byte 0x18 - .2byte \destination - .2byte \value - .endm - - @ Copies the value of source into destination. - .macro copyvar destination, source - .byte 0x19 - .2byte \destination - .2byte \source - .endm - - @ If source is not a variable, then this function acts like setvar. Otherwise, it acts like copyvar. - .macro setorcopyvar destination, source - .byte 0x1a - .2byte \destination - .2byte \source - .endm - - @ Compares the values of script banks a and b, after forcing the values to bytes. - .macro compare_local_to_local byte1, byte2 - .byte 0x1b - .byte \byte1 - .byte \byte2 - .endm - - @ Compares the least-significant byte of the value of script bank a to a fixed byte value (b). - .macro compare_local_to_value a, b - .byte 0x1c - .byte \a - .byte \b - .endm - - @ Compares the least-significant byte of the value of script bank a to the byte located at offset b. - .macro compare_local_to_addr a, b - .byte 0x1d - .byte \a - .4byte \b - .endm - - @ Compares the byte located at offset a to the least-significant byte of the value of script bank b. - .macro compare_addr_to_local a, b - .byte 0x1e - .4byte \a - .byte \b - .endm - - @ Compares the byte located at offset a to a fixed byte value (b). - .macro compare_addr_to_value a, b - .byte 0x1f - .4byte \a - .byte \b - .endm - - @ Compares the byte located at offset a to the byte located at offset b. - .macro compare_addr_to_addr a, b - .byte 0x20 - .4byte \a - .4byte \b - .endm - - @ Compares the value of `var` to a fixed word value (b). - .macro compare_var_to_value var, value - .byte 0x21 - .2byte \var - .2byte \value - .endm - - @ Compares the value of `var1` to the value of `var2`. - .macro compare_var_to_var var1, var2 - .byte 0x22 - .2byte \var1 - .2byte \var2 - .endm - - @ Generic compare macro which attempts to deduce argument types based on their values - @ Any values between 0x4000 to 0x4FFF and 0x8000 to 0x8FFF are considered event variable identifiers - .macro compare arg1, arg2 - .if ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && ((\arg2 >> 12) == 4 || (\arg2 >> 12) == 8) - compare_var_to_var \arg1, \arg2 - .elseif ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && (\arg2 >= 0 && \arg2 <= 0xFFFF) - compare_var_to_value \arg1, \arg2 - .else - .error "Invalid arguments for 'compare'" - .endif - .endm - - @ Calls the native C function stored at `func`. - .macro callnative func - .byte 0x23 - .4byte \func - .endm - - @ Replaces the script with the function stored at `func`. Execution returns to the bytecode script when func returns TRUE. - .macro gotonative func - .byte 0x24 - .4byte \func - .endm - - @ Calls a special function; that is, a function designed for use by scripts and listed in a table of pointers. - .macro special function - .byte 0x25 - .2byte SPECIAL_\function - .endm - - @ Calls a special function. That function's output (if any) will be written to the variable you specify. - .macro specialvar output, function - .byte 0x26 - .2byte \output - .2byte SPECIAL_\function - .endm - - @ Blocks script execution until a command or ASM code manually unblocks it. Generally used with specific commands and specials. If this command runs, and a subsequent command or piece of ASM does not unblock state, the script will remain blocked indefinitely (essentially a hang). - .macro waitstate - .byte 0x27 - .endm - - @ Blocks script execution for time (frames? milliseconds?). - .macro delay time - .byte 0x28 - .2byte \time - .endm - - @ Sets a to 1. - .macro setflag a - .byte 0x29 - .2byte \a - .endm - - @ Sets a to 0. - .macro clearflag a - .byte 0x2a - .2byte \a - .endm - - @ Compares a to 1. - .macro checkflag a - .byte 0x2b - .2byte \a - .endm - - @ Initializes the RTC`s local time offset to the given hour and minute. In FireRed, this command is a nop. - .macro initclock hour, minute - .byte 0x2c - .2byte \hour - .2byte \minute - .endm - - @ Runs time based events. In FireRed, this command is a nop. - .macro dodailyevents - .byte 0x2d - .endm - - @ Sets the values of variables 0x8000, 0x8001, and 0x8002 to the current hour, minute, and second. In FRLG, this command sets those variables to zero. - .macro gettime - .byte 0x2e - .endm - - @ Plays the specified (sound_number) sound. Only one sound may play at a time, with newer ones interrupting older ones. - .macro playse sound_number - .byte 0x2f - .2byte \sound_number - .endm - - @ Blocks script execution until the currently-playing sound (triggered by playse) finishes playing. - .macro waitse - .byte 0x30 - .endm - - @ Plays the specified (fanfare_number) fanfare. - .macro playfanfare fanfare_number - .byte 0x31 - .2byte \fanfare_number - .endm - - @ Blocks script execution until all currently-playing fanfares finish. - .macro waitfanfare - .byte 0x32 - .endm - - @ Plays the specified (song_number) song. The byte is apparently supposed to be 0x00. - .macro playbgm song_number, unknown - .byte 0x33 - .2byte \song_number - .byte \unknown - .endm - - @ Saves the specified (song_number) song to be played later. - .macro savebgm song_number - .byte 0x34 - .2byte \song_number - .endm - - @ Crossfades the currently-playing song into the map's default song. - .macro fadedefaultbgm - .byte 0x35 - .endm - - @ Crossfades the currently-playng song into the specified (song_number) song. - .macro fadenewbgm song_number - .byte 0x36 - .2byte \song_number - .endm - - @ Fades out the currently-playing song. - .macro fadeoutbgm speed - .byte 0x37 - .byte \speed - .endm - - @ Fades the previously-playing song back in. - .macro fadeinbgm speed - .byte 0x38 - .byte \speed - .endm - - @ Sends the player to Warp warp on Map bank.map. If the specified warp is 0xFF, then the player will instead be sent to (X, Y) on the map. - .macro warp map, warp, X, Y - .byte 0x39 - map \map - .byte \warp - .2byte \X - .2byte \Y - .endm - - @ Clone of warp that does not play a sound effect. - .macro warpsilent map, warp, X, Y - .byte 0x3a - map \map - .byte \warp - .2byte \X - .2byte \Y - .endm - - @ Clone of warp that plays a door opening animation before stepping upwards into it. - .macro warpdoor map, warp, X, Y - .byte 0x3b - map \map - .byte \warp - .2byte \X - .2byte \Y - .endm - - @ Warps the player to another map using a hole animation. - .macro warphole map - .byte 0x3c - map \map - .endm - - @ Clone of warp that uses a teleport effect. It is apparently only used in R/S/E. - .macro warpteleport map, warp, X, Y - .byte 0x3d - map \map - .byte \warp - .2byte \X - .2byte \Y - .endm - - @ Sets the warp destination to be used later. - .macro setwarp map, warp, X, Y - .byte 0x3e - map \map - .byte \warp - .2byte \X - .2byte \Y - .endm - - @ Sets the warp destination that a warp to Warp 127 on Map 127.127 will connect to. Useful when a map has warps that need to go to script-controlled locations (i.e. elevators). - .macro setdynamicwarp map, warp, X, Y - .byte 0x3f - map \map - .byte \warp - .2byte \X - .2byte \Y - .endm - - @ Sets the destination that diving or emerging from a dive will take the player to. - .macro setdivewarp map, warp, X, Y - .byte 0x40 - map \map - .byte \warp - .2byte \X - .2byte \Y - .endm - - @ Sets the destination that falling into a hole will take the player to. - .macro setholewarp map, warp, X, Y - .byte 0x41 - map \map - .byte \warp - .2byte \X - .2byte \Y - .endm - - @ Retrieves the player's zero-indexed X- and Y-coordinates in the map, and stores them in the specified variables. - .macro getplayerxy X, Y - .byte 0x42 - .2byte \X - .2byte \Y - .endm - - @ Retrieves the number of Pokemon in the player's party, and stores that number in variable 0x800D (LASTRESULT). - .macro getpartysize - .byte 0x43 - .endm - - @ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and variable 0x800D (LASTRESULT) will be set to 0x0001; otherwise, LASTRESULT is set to 0x0000. - .macro giveitem index, quantity - .byte 0x44 - .2byte \index - .2byte \quantity - .endm - - @ Removes quantity of item index from the player's Bag. - .macro takeitem index, quantity - .byte 0x45 - .2byte \index - .2byte \quantity - .endm - - @ Checks if the player has enough space in their Bag to hold quantity more of item index. Sets variable 0x800D (LASTRESULT) to 0x0001 if there is room, or 0x0000 is there is no room. - .macro checkitemspace index, quantity - .byte 0x46 - .2byte \index - .2byte \quantity - .endm - - @ Checks if the player has quantity or more of item index in their Bag. Sets variable 0x800D (LASTRESULT) to 0x0001 if the player has enough of the item, or 0x0000 if they have fewer than quantity of the item. - .macro checkitem index, quantity - .byte 0x47 - .2byte \index - .2byte \quantity - .endm - - @ Checks which Bag pocket the specified (index) item belongs in, and writes the value to variable 0x800D (LASTRESULT). This script is used to show the name of the proper Bag pocket when the player receives an item via callstd (simplified to giveitem in XSE). - .macro checkitemtype index - .byte 0x48 - .2byte \index - .endm - - @ Adds a quantity amount of item index to the player's PC. Both arguments can be variables. - .macro givepcitem index, quantity - .byte 0x49 - .2byte \index - .2byte \quantity - .endm - - @ Checks for quantity amount of item index in the player's PC. Both arguments can be variables. - .macro checkpcitem index, quantity - .byte 0x4a - .2byte \index - .2byte \quantity - .endm - - @ Adds decoration to the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro givedecoration decoration - .byte 0x4b - .2byte \decoration - .endm - - @ Removes a decoration from the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro takedecoration decoration - .byte 0x4c - .2byte \decoration - .endm - - @ Checks for decoration in the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro checkdecor decoration - .byte 0x4d - .2byte \decoration - .endm - - @ Checks if the player has enough space in their PC to hold decoration. Sets variable 0x800D (LASTRESULT) to 0x0001 if there is room, or 0x0000 is there is no room. In FireRed, this command is a nop. (The argument is read, but not used for anything.) - .macro checkdecorspace decoration - .byte 0x4e - .2byte \decoration - .endm - - @ Applies the movement data at movements to the specified (index) Object event. Also closes any standard message boxes that are still open. - @ This command in fact uses variables to access the Object event ID. So, for example, if you setvar 0x8000 to 0x3, and then use applymovementpos 0x8000 @move1, Object event 3 will have the movements at @move1 applied to them. - .macro applymovement index, movements, mapGroup, mapNum - .ifb \mapGroup - .byte 0x4f - .2byte \index - .4byte \movements - .else - .byte 0x50 - .2byte \index - .4byte \movements - .byte \mapGroup - .byte \mapNum - .endif - .endm - - @ Blocks script execution until the movements being applied to the specified (index) Object event finish. If the specified Object event is 0x0000, then the command will block script execution until all Object events affected by applymovement finish their movements. If the specified Object event is not currently being manipulated with applymovement, then this command does nothing. - .macro waitmovement index, mapBank, mapNum - .ifb \mapBank - .byte 0x51 - .2byte \index - .else - .byte 0x52 - .2byte \index - .byte \mapBank - .byte \mapNum - .endif - .endm - - @ Attempts to hide the specified (local_ID, a local ID) Object event on the specified map, by setting its visibility flag if it has a valid one. If the Object does not have a valid visibility flag, this command does nothing. - @ If no map is specified, then the current map is used - .macro removeobject localId, mapGroup, mapNum - .ifb \mapGroup - .byte 0x53 - .2byte \localId - .else - .byte 0x54 - .2byte \localId - .byte \mapGroup - .byte \mapNum - .endif - .endm - - .macro addobject localId, mapGroup, mapNum - .ifb \mapGroup - .byte 0x55 - .2byte \localId - .else - .byte 0x56 - .2byte \localId - .byte \mapGroup - .byte \mapNum - .endif - .endm - - @ Sets the specified (index) Object's position on the current map. - .macro setobjectxy index, x, y - .byte 0x57 - .2byte \index - .2byte \x - .2byte \y - .endm - - .macro showobjectat index, map - .byte 0x58 - .2byte \index - map \map - .endm - - .macro hideobjectat index, map - .byte 0x59 - .2byte \index - map \map - .endm - - @ If the script was called by a Object event, then that Object will turn to face toward the tile that the player is stepping off of. - .macro faceplayer - .byte 0x5a - .endm - - .macro turnobject index, direction - .byte 0x5b - .2byte \index - .byte \direction - .endm - - @ If the Trainer flag for Trainer index is not set, this command does absolutely nothing. - .macro trainerbattle type, trainer, word, pointer1, pointer2, pointer3, pointer4 - .byte 0x5c - .byte \type - .2byte \trainer - .2byte \word - .if \type == 0 - .4byte \pointer1 @ text - .4byte \pointer2 @ text - .elseif \type == 1 - .4byte \pointer1 @ text - .4byte \pointer2 @ text - .4byte \pointer3 @ event script - .elseif \type == 2 - .4byte \pointer1 @ text - .4byte \pointer2 @ text - .4byte \pointer3 @ event script - .elseif \type == 3 - .4byte \pointer1 @ text - .elseif \type == 4 - .4byte \pointer1 @ text - .4byte \pointer2 @ text - .4byte \pointer3 @ text - .elseif \type == 5 - .4byte \pointer1 @ text - .4byte \pointer2 @ text - .elseif \type == 6 - .4byte \pointer1 @ text - .4byte \pointer2 @ text - .4byte \pointer3 @ text - .4byte \pointer4 @ event script - .elseif \type == 7 - .4byte \pointer1 @ text - .4byte \pointer2 @ text - .4byte \pointer3 @ text - .elseif \type == 8 - .4byte \pointer1 @ text - .4byte \pointer2 @ text - .4byte \pointer3 @ text - .4byte \pointer4 @ event script - .endif - .endm - - @ Starts a trainer battle using the battle information stored in RAM (usually by trainerbattle, which actually calls this command behind-the-scenes), and blocks script execution until the battle finishes. - .macro trainerbattlebegin - .byte 0x5d - .endm - - @ Goes to address after the trainerbattle command (called by the battle functions, see battle_setup.c) - .macro gotopostbattlescript - .byte 0x5e - .endm - - @ Goes to address specified in the trainerbattle command (called by the battle functions, see battle_setup.c) - .macro gotobeatenscript - .byte 0x5f - .endm - - @ Compares Flag (trainer + 0x500) to 1. (If the flag is set, then the trainer has been defeated by the player.) - .macro checktrainerflag trainer - .byte 0x60 - .2byte \trainer - .endm - - @ Sets Flag (trainer + 0x500). - .macro settrainerflag trainer - .byte 0x61 - .2byte \trainer - .endm - - @ Clears Flag (trainer + 0x500). - .macro cleartrainerflag trainer - .byte 0x62 - .2byte \trainer - .endm - - .macro setobjectxyperm index, x, y - .byte 0x63 - .2byte \index - .2byte \x - .2byte \y - .endm - - .macro moveobjectoffscreen index - .byte 0x64 - .2byte \index - .endm - - .macro setobjectmovementtype word, byte - .byte 0x65 - .2byte \word - .byte \byte - .endm - - @ If a standard message box (or its text) is being drawn on-screen, this command blocks script execution until the box and its text have been fully drawn. - .macro waitmessage - .byte 0x66 - .endm - - @ Starts displaying a standard message box containing the specified text. If text is a pointer, then the string at that offset will be loaded and used. If text is script bank 0, then the value of script bank 0 will be treated as a pointer to the text. (You can use loadpointer to place a string pointer in a script bank.) - .macro message text - .byte 0x67 - .4byte \text - .endm - - @ Closes the current message box. - .macro closemessage - .byte 0x68 - .endm - - @ Ceases movement for all Objects on-screen. - .macro lockall - .byte 0x69 - .endm - - @ If the script was called by an Object, then that Object's movement will cease. - .macro lock - .byte 0x6a - .endm - - @ Resumes normal movement for all Objects on-screen, and closes any standard message boxes that are still open. - .macro releaseall - .byte 0x6b - .endm - - @ If the script was called by an Object, then that Object's movement will resume. This command also closes any standard message boxes that are still open. - .macro release - .byte 0x6c - .endm - - @ Blocks script execution until the player presses any key. - .macro waitbuttonpress - .byte 0x6d - .endm - - @ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. Their selection is stored in variable 0x800D (LASTRESULT); 0x0000 for "NO" or if the user pressed B, and 0x0001 for "YES". - .macro yesnobox x, y - .byte 0x6e - .byte \x - .byte \y - .endm - - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. - .macro multichoice x, y, list, b - .byte 0x6f - .byte \x - .byte \y - .byte \list - .byte \b - .endm - - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button. - .macro multichoicedefault x, y, list, default, b - .byte 0x70 - .byte \x - .byte \y - .byte \list - .byte \default - .byte \b - .endm - - @ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box. - .macro multichoicegrid x, y, list, per_row, B - .byte 0x71 - .byte \x - .byte \y - .byte \list - .byte \per_row - .byte \B - .endm - - .macro drawbox byte1, byte2, byte3, byte4 - .byte 0x72 - .byte \byte1 - .byte \byte2 - .byte \byte3 - .byte \byte4 - .endm - - .macro erasebox byte1, byte2, byte3, byte4 - .byte 0x73 - .byte \byte1 - .byte \byte2 - .byte \byte3 - .byte \byte4 - .endm - - .macro drawboxtext byte1, byte2, byte3, byte4 - .byte 0x74 - .byte \byte1 - .byte \byte2 - .byte \byte3 - .byte \byte4 - .endm - - @ Displays a box containing the front sprite for the specified (species) Pokemon species. - .macro drawmonpic species, x, y - .byte 0x75 - .2byte \species - .byte \x - .byte \y - .endm - - @ Hides all boxes displayed with drawmonpic. - .macro erasemonpic - .byte 0x76 - .endm - - @ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.) - .macro drawcontestwinner a - .byte 0x77 - .byte \a - .endm - - @ Displays the string at pointer as braille text in a standard message box. The string must be formatted to use braille characters. - .macro braillemessage text - .byte 0x78 - .4byte \text - .endm - - @ Gives the player one of the specified (species) Pokemon at level level holding item. The unknown arguments should all be zeroes. - .macro givemon species, level, item, unknown1, unknown2, unknown3 - .byte 0x79 - .2byte \species - .byte \level - .2byte \item - .4byte \unknown1 - .4byte \unknown2 - .byte \unknown3 - .endm - - .macro giveegg species - .byte 0x7a - .2byte \species - .endm - - .macro setmonmove index, slot, move - .byte 0x7b - .byte \index - .byte \slot - .2byte \move - .endm - - @ Checks if at least one Pokemon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the first Pokemon that knows the move. If not, LASTRESULT is set to 0x0006. Variable 0x8004 is also set to this Pokemon's species. - .macro checkpartymove index - .byte 0x7c - .2byte \index - .endm - - @ Writes the name of the Pokemon at index species to the specified buffer. - .macro bufferspeciesname out, species - .byte 0x7d - .byte \out - .2byte \species - .endm - - @ Writes the name of the species of the first Pokemon in the player's party to the specified buffer. - .macro bufferleadmonspeciesname out - .byte 0x7e - .byte \out - .endm - - @ Writes the nickname of the Pokemon in slot slot (zero-indexed) of the player's party to the specified buffer. If an empty or invalid slot is specified, ten spaces ("") are written to the buffer. - .macro bufferpartymonnick out, slot - .byte 0x7f - .byte \out - .2byte \slot - .endm - - @ Writes the name of the item at index item to the specified buffer. If the specified index is larger than the number of items in the game (0x176), the name of item 0 ("????????") is buffered instead. - .macro bufferitemname out, item - .byte 0x80 - .byte \out - .2byte \item - .endm - - @ Writes the name of the decoration at index decoration to the specified buffer. In FireRed, this command is a nop. - .macro bufferdecorationname out, decoration - .byte 0x81 - .byte \out - .2byte \decoration - .endm - - @ Writes the name of the move at index move to the specified buffer. - .macro buffermovename out, move - .byte 0x82 - .byte \out - .2byte \move - .endm - - @ Converts the value of input to a decimal string, and writes that string to the specified buffer. - .macro buffernumberstring out, input - .byte 0x83 - .byte \out - .2byte \input - .endm - - @ Writes the standard string identified by index to the specified buffer. This command has no protections in place at all, so specifying an invalid standard string (e.x. 0x2B) can and usually will cause data corruption. - .macro bufferstdstring out, index - .byte 0x84 - .byte \out - .2byte \index - .endm - - @ Copies the string at offset to the specified buffer. - .macro bufferstring out, offset - .byte 0x85 - .byte \out - .4byte \offset - .endm - - @ Opens the Pokemart system, offering the specified products for sale. - .macro pokemart products - .byte 0x86 - .4byte \products - .endm - - @ Opens the Pokemart system and treats the list of items as decorations. - .macro pokemartdecoration products - .byte 0x87 - .4byte \products - .endm - - @ Apparent clone of pokemartdecoration. - .macro pokemartdecoration2 products - .byte 0x88 - .4byte \products - .endm - - @ Starts up the slot machine minigame. - .macro playslotmachine word - .byte 0x89 - .2byte \word - .endm - - @ Sets a berry tree's specific berry and growth stage. In FireRed, this command is a nop. - .macro setberrytree tree_id, berry, growth_stage - .byte 0x8a - .byte \tree_id - .byte \berry - .byte \growth_stage - .endm - - @ This allows you to choose a Pokemon to use in a contest. In FireRed, this command sets the byte at 0x03000EA8 to 0x01. - .macro choosecontestmon - .byte 0x8b - .endm - - @ Starts a contest. In FireRed, this command is a nop. - .macro startcontest - .byte 0x8c - .endm - - @ Shows the results of a contest. In FireRed, this command is a nop. - .macro showcontestresults - .byte 0x8d - .endm - - @ Starts a contest over a link connection. In FireRed, this command is a nop. - .macro contestlinktransfer - .byte 0x8e - .endm - - @ Stores a random integer between 0 and limit in variable 0x800D (LASTRESULT). - .macro random limit - .byte 0x8f - .2byte \limit - .endm - - @ If check is 0x00, this command adds value to the player's money. - .macro givemoney value, check - .byte 0x90 - .4byte \value - .byte \check - .endm - - @ If check is 0x00, this command subtracts value from the player's money. - .macro takemoney value, check - .byte 0x91 - .4byte \value - .byte \check - .endm - - @ If check is 0x00, this command will check if the player has value or more money; script variable 0x800D (LASTRESULT) is set to 0x0001 if the player has enough money, or 0x0000 if the do not. - .macro checkmoney value, check - .byte 0x92 - .4byte \value - .byte \check - .endm - - @ Spawns a secondary box showing how much money the player has. - .macro showmoneybox x, y - .byte 0x93 - .byte \x - .byte \y - .endm - - @ Hides the secondary box spawned by showmoney. - .macro hidemoneybox x, y - .byte 0x94 - .byte \x - .byte \y - .endm - - @ Updates the secondary box spawned by showmoney. Consumes but does not use arguments. - .macro updatemoneybox x, y - .byte 0x95 - .byte \x - .byte \y - .endm - - @ Gets the price reduction for the index given. In FireRed, this command is a nop. - .macro getpricereduction index - .byte 0x96 - .2byte \index - .endm - - @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. - .macro fadescreen effect - .byte 0x97 - .byte \effect - .endm - - @ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. Other modes may exist. - .macro fadescreenspeed effect, speed - .byte 0x98 - .byte \effect - .byte \speed - .endm - - .macro setflashradius word - .byte 0x99 - .2byte \word - .endm - - .macro animateflash byte - .byte 0x9a - .byte \byte - .endm - - .macro messageautoscroll pointer - .byte 0x9b - .4byte \pointer - .endm - - @ Executes the specified field move animation. - .macro dofieldeffect animation - .byte 0x9c - .2byte \animation - .endm - - @ Sets up the field effect argument argument with the value value. - .macro setfieldeffectargument argument, param - .byte 0x9d - .byte \argument - .2byte \param - .endm - - @ Blocks script execution until all playing field move animations complete. - .macro waitfieldeffect animation - .byte 0x9e - .2byte \animation - .endm - - @ Sets which healing place the player will return to if all of the Pokemon in their party faint. - .macro setrespawn heallocation - .byte 0x9f - .2byte \heallocation - .endm - - @ Checks the player's gender. If male, then 0x0000 is stored in variable 0x800D (LASTRESULT). If female, then 0x0001 is stored in LASTRESULT. - .macro checkplayergender - .byte 0xa0 - .endm - - @ Plays the specified (species) Pokemon's cry. You can use waitcry to block script execution until the sound finishes. - .macro playmoncry species, effect - .byte 0xa1 - .2byte \species - .2byte \effect - .endm - - @ Changes the metatile at (x, y) on the current map. - .macro setmetatile x, y, metatile_number, tile_attrib - .byte 0xa2 - .2byte \x - .2byte \y - .2byte \metatile_number - .2byte \tile_attrib - .endm - - @ Queues a weather change to the default weather for the map. - .macro resetweather - .byte 0xa3 - .endm - - @ Queues a weather change to type weather. - .macro setweather type - .byte 0xa4 - .2byte \type - .endm - - @ Executes the weather change queued with resetweather or setweather. The current weather will smoothly fade into the queued weather. - .macro doweather - .byte 0xa5 - .endm - - @ This command manages cases in which maps have tiles that change state when stepped on (specifically, cracked/breakable floors). - .macro setstepcallback subroutine - .byte 0xa6 - .byte \subroutine - .endm - - .macro setmaplayoutindex index - .byte 0xa7 - .2byte \index - .endm - - .macro setobjectpriority index, map, priority - .byte 0xa8 - .2byte \index - map \map - .byte \priority - .endm - - .macro resetobjectpriority index, map - .byte 0xa9 - .2byte \index - map \map - .endm - - .macro createvobject sprite, byte2, x, y, elevation, direction - .byte 0xaa - .byte \sprite - .byte \byte2 - .2byte \x - .2byte \y - .byte \elevation - .byte \direction - .endm - - .macro turnvobject index, direction - .byte 0xab - .byte \index - .byte \direction - .endm - - @ Opens the door metatile at (X, Y) with an animation. - .macro opendoor x, y - .byte 0xac - .2byte \x - .2byte \y - .endm - - @ Closes the door metatile at (X, Y) with an animation. - .macro closedoor x, y - .byte 0xad - .2byte \x - .2byte \y - .endm - - @ Waits for the door animation started with opendoor or closedoor to finish. - .macro waitdooranim - .byte 0xae - .endm - - @ Sets the door tile at (x, y) to be open without an animation. - .macro setdooropen x, y - .byte 0xaf - .2byte \x - .2byte \y - .endm - - @ Sets the door tile at (x, y) to be closed without an animation. - .macro setdoorclosed x, y - .byte 0xb0 - .2byte \x - .2byte \y - .endm - - @ In FireRed, this command is a nop. - .macro addelevmenuitem - .byte 0xb1 - .endm - - @ In FireRed and Emerald, this command is a nop. - .macro showelevmenu - .byte 0xb2 - .endm - - .macro checkcoins out - .byte 0xb3 - .2byte \out - .endm - - .macro givecoins count - .byte 0xb4 - .2byte \count - .endm - - .macro takecoins count - .byte 0xb5 - .2byte \count - .endm - - @ Prepares to start a wild battle against a species at Level level holding item. Running this command will not affect normal wild battles. You start the prepared battle with dowildbattle. - .macro setwildbattle species, level, item - .byte 0xb6 - .2byte \species - .byte \level - .2byte \item - .endm - - @ Starts a wild battle against the Pokemon generated by setwildbattle. Blocks script execution until the battle finishes. - .macro dowildbattle - .byte 0xb7 - .endm - - .macro setvaddress long, word - .byte 0xb8 - .4byte \long - .2byte \word - .endm - - .macro vgoto pointer - .byte 0xb9 - .4byte \pointer - .endm - - .macro vcall pointer - .byte 0xba - .4byte \pointer - .endm - - .macro vgoto_if byte, pointer - .byte 0xbb - .byte \byte - .4byte \pointer - .endm - - .macro vcall_if byte, pointer - .byte 0xbc - .byte \byte - .4byte \pointer - .endm - - .macro vmessage pointer - .byte 0xbd - .4byte \pointer - .endm - - .macro vloadptr pointer - .byte 0xbe - .4byte \pointer - .endm - - .macro vbufferstring byte, pointer - .byte 0xbf - .byte \byte - .4byte \pointer - .endm - - @ Spawns a secondary box showing how many Coins the player has. - .macro showcoinsbox x, y - .byte 0xc0 - .byte \x - .byte \y - .endm - - @ Hides the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. - .macro hidecoinsbox x, y - .byte 0xc1 - .byte \x - .byte \y - .endm - - @ Updates the secondary box spawned by showcoins. It consumes its arguments but doesn't use them. - .macro updatecoinsbox x, y - .byte 0xc2 - .byte \x - .byte \y - .endm - - @ Increases the value of the specified game stat by 1. The stat's value will not be allowed to exceed 0x00FFFFFF. - .macro incrementgamestat stat - .byte 0xc3 - .byte \stat - .endm - - @ Sets the destination that using an Escape Rope or Dig will take the player to. - .macro setescapewarp map, warp, x, y - .byte 0xc4 - map \map - .byte \warp - .2byte \x - .2byte \y - .endm - - @ Blocks script execution until cry finishes. - .macro waitmoncry - .byte 0xc5 - .endm - - @ Writes the name of the specified (box) PC box to the specified buffer. - .macro bufferboxname out, box - .byte 0xc6 - .byte \out - .2byte \box - .endm - - @ Sets the color of the text in standard message boxes. 0x00 produces blue (male) text, 0x01 produces red (female) text, 0xFF resets the color to the default for the current OW's gender, and all other values produce black text. - .macro textcolor color - .byte 0xc7 - .byte \color - .endm - - @ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom of the screen when the Main Menu is opened. - .macro loadhelp pointer - .byte 0xc8 - .4byte \pointer - .endm - - @ The exact purpose of this command is unknown, but it is related to the blue help-text box that appears on the bottom of the screen when the Main Menu is opened. - .macro unloadhelp - .byte 0xc9 - .endm - - @ After using this command, all standard message boxes will use the signpost frame. - .macro signmsg - .byte 0xca - .endm - - @ Ends the effects of signmsg, returning message box frames to normal. - .macro normalmsg - .byte 0xcb - .endm - - @ Compares the value of a hidden variable to a dword. - .macro comparehiddenvar a, value - .byte 0xcc - .byte \a - .4byte \value - .endm - -@ Supplementary - - .macro goto_if_eq dest - goto_if 1, \dest - .endm - - .macro switch var - copyvar VAR_SPECIAL_0, \var - .endm - - .macro case condition, dest - compare_var_to_value VAR_SPECIAL_0, \condition - goto_if_eq \dest - .endm - - .macro msgbox text, type=4 - loadword 0, \text - callstd \type - .endm - - @ Message box types - MSGBOX_YESNO = 5 - - YES = 1 - NO = 0 - - .macro giveitem_std item, amount=1, function=0 - setorcopyvar VAR_SPECIAL_0, \item - setorcopyvar VAR_SPECIAL_1, \amount - callstd \function - .endm - - .macro givedecoration_std decoration - setorcopyvar VAR_SPECIAL_0, \decoration - callstd 7 - .endm diff --git a/asm/macros/field_effect_script.inc b/asm/macros/field_effect_script.inc deleted file mode 100644 index d5895b0ef..000000000 --- a/asm/macros/field_effect_script.inc +++ /dev/null @@ -1,42 +0,0 @@ - .macro loadtiles address - .byte 0 - .4byte \address - .endm - - .macro loadfadedpal address - .byte 1 - .4byte \address - .endm - - .macro loadpal address - .byte 2 - .4byte \address - .endm - - .macro callnative address - .byte 3 - .4byte \address - .endm - - .macro end - .byte 4 - .endm - - .macro loadgfx_callnative tiles_address, palette_address, function_address - .byte 5 - .4byte \tiles_address - .4byte \palette_address - .4byte \function_address - .endm - - .macro loadtiles_callnative tiles_address, function_address - .byte 6 - .4byte \tiles_address - .4byte \function_address - .endm - - .macro loadfadedpal_callnative palette_address, function_address - .byte 7 - .4byte \palette_address - .4byte \function_address - .endm diff --git a/asm/macros/function.inc b/asm/macros/function.inc deleted file mode 100644 index 67fb373a8..000000000 --- a/asm/macros/function.inc +++ /dev/null @@ -1,29 +0,0 @@ - .macro arm_func_start name - .align 2, 0 - .global \name - .arm - .type \name, function - .endm - - .macro arm_func_end name - .size \name, .-\name - .endm - - .macro thumb_func_start name - .align 2, 0 - .global \name - .thumb - .thumb_func - .type \name, function - .endm - - .macro non_word_aligned_thumb_func_start name - .global \name - .thumb - .thumb_func - .type \name, function - .endm - - .macro thumb_func_end name - .size \name, .-\name - .endm diff --git a/asm/macros/m4a.inc b/asm/macros/m4a.inc deleted file mode 100644 index 6c5abc09b..000000000 --- a/asm/macros/m4a.inc +++ /dev/null @@ -1,13 +0,0 @@ - .macro song label, music_player, unknown - .4byte \label - .2byte \music_player - .2byte \unknown - .endm - - .macro music_player info_struct, track_struct, unknown_1, unknown_2 - .4byte \info_struct - .4byte \track_struct - .byte \unknown_1 - .space 1 - .2byte \unknown_2 - .endm diff --git a/asm/macros/map.inc b/asm/macros/map.inc deleted file mode 100644 index db37d9346..000000000 --- a/asm/macros/map.inc +++ /dev/null @@ -1,96 +0,0 @@ - .macro map map_id - .byte \map_id >> 8 @ map group - .byte \map_id & 0xFF @ map num - .endm - - .macro map_script type, address - .byte \type - .4byte \address - .endm - - .macro map_script_2 word1, word2, address - .2byte \word1 - .2byte \word2 - .4byte \address - .endm - - .macro object_event byte1, word1, byte2, byte3, byte4, byte5, byte6, byte7, byte8, byte9, byte10, byte11, byte12, byte13, byte14, script, word2, byte15, byte16 - .byte \byte1 - .2byte \word1 - .byte \byte2, \byte3, \byte4, \byte5, \byte6, \byte7, \byte8, \byte9, \byte10, \byte11, \byte12, \byte13, \byte14 - .4byte \script - .2byte \word2 - .byte \byte15, \byte16 - inc _num_npcs - .endm - - .macro warp_def x, y, byte, warp, map_id - .2byte \x, \y - .byte \byte, \warp - .byte \map_id & 0xFF @ map num - .byte \map_id >> 8 @ map group - inc _num_warps - .endm - - .macro coord_event x, y, byte1, byte2, word1, word2, word3, script - .2byte \x, \y - .byte \byte1, \byte2 - .2byte \word1, \word2, \word3 - .4byte \script - inc _num_traps - .endm - - .macro coord_weather_event x, y, height, weather - coord_event \x, \y, \height, 0, \weather, 0, 0, 0x0 - .endm - - .macro bg_event x, y, byte, kind, word, arg6, arg7, arg8 - .2byte \x, \y - .byte \byte, \kind - .2byte \word - .if \kind < 5 - .4byte \arg6 - .else - .2byte \arg6 - .byte \arg7, \arg8 - .endif - inc _num_signs - .endm - - .macro bg_hidden_item_event x, y, height, item, flag - bg_event \x, \y, \height, 7, 0, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START), 0 - .endm - - .macro bg_secret_base_event x, y, height, secret_base_id - bg_event \x, \y, \height, 8, 0, \secret_base_id, 0, 0 - .endm - - .macro map_events npcs, warps, traps, signs - .byte _num_npcs, _num_warps, _num_traps, _num_signs - .4byte \npcs, \warps, \traps, \signs - reset_map_events - .endm - - .macro reset_map_events - .set _num_npcs, 0 - .set _num_warps, 0 - .set _num_traps, 0 - .set _num_signs, 0 - .endm - - reset_map_events - - - .equiv connection_down, 1 - .equiv connection_up, 2 - .equiv connection_left, 3 - .equiv connection_right, 4 - .equiv connection_dive, 5 - .equiv connection_emerge, 6 - - .macro connection direction, offset, map, filler - .4byte connection_\direction - .4byte \offset - map \map - .space 2 - .endm diff --git a/asm/macros/movement.inc b/asm/macros/movement.inc deleted file mode 100644 index 674ce7169..000000000 --- a/asm/macros/movement.inc +++ /dev/null @@ -1,116 +0,0 @@ - .macro create_movement name - enum _\name - .macro \name - .byte _\name - .endm - .endm - - enum_start - create_movement step_00 - create_movement step_01 - create_movement step_02 - create_movement step_03 - create_movement slow_step_down - create_movement slow_step_up - create_movement slow_step_left - create_movement slow_step_right - create_movement step_down - create_movement step_up - create_movement step_left - create_movement step_right - create_movement fast_step_down - create_movement fast_step_up - create_movement fast_step_left - create_movement fast_step_right - create_movement step_10 - create_movement step_11 - create_movement step_12 - create_movement step_13 - create_movement step_14 - create_movement step_15 - create_movement step_16 - create_movement step_17 - create_movement step_18 - create_movement step_19 - create_movement step_1a - create_movement step_1b - create_movement step_1c - create_movement step_1d - create_movement step_1e - create_movement step_1f - create_movement step_20 - create_movement step_21 - create_movement step_22 - create_movement step_23 - create_movement step_24 - create_movement step_25 - create_movement step_26 - create_movement step_27 - create_movement step_28 - create_movement step_29 - create_movement step_2a - create_movement step_2b - create_movement step_2c - create_movement step_2d - create_movement step_2e - create_movement step_2f - create_movement step_30 - create_movement step_31 - create_movement step_32 - create_movement step_33 - create_movement step_34 - create_movement step_35 - create_movement step_36 - create_movement step_37 - create_movement step_38 - create_movement step_39 - create_movement step_3a - create_movement step_3b - create_movement step_3c - create_movement step_3d - create_movement step_3e - create_movement step_3f - create_movement step_40 - create_movement step_41 - create_movement step_42 - create_movement step_43 - create_movement step_44 - create_movement step_45 - create_movement step_46 - create_movement step_47 - create_movement step_48 - create_movement step_49 - create_movement step_4a - create_movement step_4b - create_movement step_4c - create_movement step_4d - create_movement step_4e - create_movement step_4f - create_movement step_50 - create_movement step_51 - create_movement step_52 - create_movement step_53 - create_movement step_54 - create_movement step_55 - create_movement step_56 - create_movement step_57 - create_movement step_58 - create_movement step_59 - create_movement step_5a - create_movement step_5b - create_movement step_5c - create_movement step_5d - create_movement step_5e - create_movement step_5f - create_movement step_60 - create_movement step_61 - - enum_start 0x91 - create_movement step_91 - create_movement step_92 - - enum_start 0x96 - create_movement step_96 - - enum_start 0xfe - create_movement step_end diff --git a/asm/macros/music_voice.inc b/asm/macros/music_voice.inc deleted file mode 100644 index b7a9e7f8d..000000000 --- a/asm/macros/music_voice.inc +++ /dev/null @@ -1,125 +0,0 @@ - .macro voice_directsound base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release - .byte 0 - _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release - .endm - - .macro voice_directsound_no_resample base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release - .byte 8 - _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release - .endm - - .macro voice_directsound_alt base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release - .byte 16 - _voice_directsound \base_midi_key, \pan, \sample_data_pointer, \attack, \decay, \sustain, \release - .endm - - .macro _voice_directsound base_midi_key, pan, sample_data_pointer, attack, decay, sustain, release - .byte \base_midi_key - .byte 0 - .if \pan != 0 - .byte (0x80 | \pan) - .else - .byte 0 - .endif - .4byte \sample_data_pointer - .byte \attack - .byte \decay - .byte \sustain - .byte \release - .endm - - .macro voice_square_1 sweep, duty_cycle, attack, decay, sustain, release - _voice_square_1 1, \sweep, \duty_cycle, \attack, \decay, \sustain, \release - .endm - - .macro voice_square_1_alt sweep, duty_cycle, attack, decay, sustain, release - _voice_square_1 9, \sweep, \duty_cycle, \attack, \decay, \sustain, \release - .endm - - .macro _voice_square_1 type, sweep, duty_cycle, attack, decay, sustain, release - .byte \type, 60, 0 - .byte \sweep - .byte (\duty_cycle & 0x3) - .byte 0, 0, 0 - .byte (\attack & 0x7) - .byte (\decay & 0x7) - .byte (\sustain & 0xF) - .byte (\release & 0x7) - .endm - - .macro voice_square_2 duty_cycle, attack, decay, sustain, release - _voice_square_2 2, \duty_cycle, \attack, \decay, \sustain, \release - .endm - - .macro voice_square_2_alt duty_cycle, attack, decay, sustain, release - _voice_square_2 10, \duty_cycle, \attack, \decay, \sustain, \release - .endm - - .macro _voice_square_2 type, duty_cycle, attack, decay, sustain, release - .byte \type, 60, 0, 0 - .byte (\duty_cycle & 0x3) - .byte 0, 0, 0 - .byte (\attack & 0x7) - .byte (\decay & 0x7) - .byte (\sustain & 0xF) - .byte (\release & 0x7) - .endm - - .macro voice_programmable_wave wave_samples_pointer, attack, decay, sustain, release - _voice_programmable_wave 3, \wave_samples_pointer, \attack, \decay, \sustain, \release - .endm - - .macro voice_programmable_wave_alt wave_samples_pointer, attack, decay, sustain, release - _voice_programmable_wave 11, \wave_samples_pointer, \attack, \decay, \sustain, \release - .endm - - .macro _voice_programmable_wave type, wave_samples_pointer, attack, decay, sustain, release - .byte \type, 60, 0, 0 - .4byte \wave_samples_pointer - .byte (\attack & 0x7) - .byte (\decay & 0x7) - .byte (\sustain & 0xF) - .byte (\release & 0x7) - .endm - - .macro voice_noise period, attack, decay, sustain, release - _voice_noise 4, \period, \attack, \decay, \sustain, \release - .endm - - .macro voice_noise_alt period, attack, decay, sustain, release - _voice_noise 12, \period, \attack, \decay, \sustain, \release - .endm - - .macro _voice_noise type, period, attack, decay, sustain, release - .byte \type, 60, 0, 0 - .byte (\period & 0x1) - .byte 0, 0, 0 - .byte (\attack & 0x7) - .byte (\decay & 0x7) - .byte (\sustain & 0xF) - .byte (\release & 0x7) - .endm - - .macro voice_keysplit voice_group_pointer, keysplit_table_pointer - .byte 0x40, 0, 0, 0 - .4byte \voice_group_pointer - .4byte \keysplit_table_pointer - .endm - - .macro voice_keysplit_all voice_group_pointer - .byte 0x80, 0, 0, 0 - .4byte \voice_group_pointer - .4byte 0 - .endm - - .macro cry sample - .byte 0x20, 60, 0, 0 - .4byte \sample - .byte 0xff, 0, 0xff, 0 - .endm - - .macro cry2 sample - .byte 0x30, 60, 0, 0 - .4byte \sample - .byte 0xff, 0, 0xff, 0 - .endm diff --git a/asm/macros/pokemon_data.inc b/asm/macros/pokemon_data.inc deleted file mode 100644 index b0a5f22e3..000000000 --- a/asm/macros/pokemon_data.inc +++ /dev/null @@ -1,57 +0,0 @@ - .macro pokedex_entry pokemon_name, height, weight, pokemon_scale, pokemon_offset, trainer_scale, trainer_offset - .2byte \height @ in decimeters - .2byte \weight @ in hectograms - .4byte DexDescription_\pokemon_name\()_1 - .4byte DexDescription_\pokemon_name\()_2 - .2byte 0 @ unused - .2byte \pokemon_scale - .2byte \pokemon_offset - .2byte \trainer_scale - .2byte \trainer_offset - .2byte 0 @ padding - .endm - - .macro base_stats hp, attack, defense, speed, sp_attack, sp_defense - .byte \hp - .byte \attack - .byte \defense - .byte \speed - .byte \sp_attack - .byte \sp_defense - .endm - - .macro ev_yield hp, attack, defense, speed, sp_attack, sp_defense - .2byte (\sp_defense << 10) | (\sp_attack << 8) | (\speed << 6) | (\defense << 4) | (\attack << 2) | \hp - .endm - - .macro level_up_move level, move - .2byte (\level << 9) | \move - .endm - - .macro evo_entry method, parameter, target_species - .2byte \method - .2byte \parameter - .2byte \target_species - .2byte 0 @ padding - .endm - - .macro empty_evo_entries count - .fill 8 * \count, 1, 0 - .endm - - .macro egg_moves_begin species - .2byte 20000 + \species - .endm - -@ If the min level equals the max level, only one level argument is needed. - .macro wild_mon species, min_level, max_level - .byte \min_level - - .ifb \max_level - .byte \min_level - .else - .byte \max_level - .endif - - .2byte SPECIES_\species - .endm diff --git a/asm/nakamura_debug_menu.s b/asm/nakamura_debug_menu.s new file mode 100644 index 000000000..21092fe4b --- /dev/null +++ b/asm/nakamura_debug_menu.s @@ -0,0 +1,4686 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start debug_sub_815F1B8 +debug_sub_815F1B8: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0xe + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._1 @ _843E3DC + mov r0, #0x10 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0xf + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + add sp, sp, #0x8 + pop {r0} + bx r0 +._2: + .align 2, 0 +._1: + .word _843E3DC + + thumb_func_end debug_sub_815F1B8 + + thumb_func_start InitNakamuraDebugMenu +InitNakamuraDebugMenu: + push {lr} + bl debug_sub_815F1B8 + ldr r1, ._3 @ gMenuCallback + ldr r0, ._3 + 4 @ debug_sub_815F214 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._4: + .align 2, 0 +._3: + .word gMenuCallback + .word debug_sub_815F214+1 + + thumb_func_end InitNakamuraDebugMenu + + thumb_func_start debug_sub_815F214 +debug_sub_815F214: + push {r4, lr} + ldr r4, ._9 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._5 @cond_branch + mov r0, #0x1 + neg r0, r0 + bl Menu_MoveCursor +._5: + ldrh r1, [r4, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._6 @cond_branch + mov r0, #0x1 + bl Menu_MoveCursor +._6: + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._7 @cond_branch + ldr r4, ._9 + 4 @ _843E3DC + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x15 + add r4, r4, #0x4 + add r0, r0, r4 + ldr r4, [r0] + bl Menu_DestroyCursor + bl _call_via_r4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._12 +._10: + .align 2, 0 +._9: + .word gMain + .word _843E3DC +._7: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._11 @cond_branch + mov r0, #0x0 + b ._12 +._11: + bl CloseMenu + mov r0, #0x1 +._12: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_815F214 + + thumb_func_start debug_sub_815F284 +debug_sub_815F284: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, ._14 @ gPaletteFade + ldrb r1, [r0, #0x7] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + bne ._13 @cond_branch + bl debug_sub_81381B4 + mov r0, #0x5 + mov r1, #0x0 + bl OpenPartyMenu + add r0, r4, #0 + bl DestroyTask +._13: + pop {r4} + pop {r0} + bx r0 +._15: + .align 2, 0 +._14: + .word gPaletteFade + + thumb_func_end debug_sub_815F284 + + thumb_func_start debug_sub_815F2B4 +debug_sub_815F2B4: + push {lr} + add sp, sp, #0xfffffffc + bl CloseMenu + bl Menu_EraseScreen + ldr r1, ._16 @ gMain + ldr r0, ._16 + 4 @ sub_805469C + str r0, [r1, #0x8] + ldr r0, ._16 + 8 @ debug_sub_815F284 + mov r1, #0x0 + bl CreateTask + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + mov r0, #0x1 + add sp, sp, #0x4 + pop {r1} + bx r1 +._17: + .align 2, 0 +._16: + .word gMain + .word sub_805469C+1 + .word debug_sub_815F284+1 + + thumb_func_end debug_sub_815F2B4 + + thumb_func_start debug_sub_815F2F4 +debug_sub_815F2F4: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xfffffffc + bl CloseMenu + mov r7, #0x1 +._34: + lsl r1, r7, #0x2 + add r0, r1, r7 + lsl r2, r0, #0x5 + ldr r3, ._24 @ gSaveBlock1 + add r0, r2, r3 + ldr r5, ._24 + 4 @ 0x1a08 + add r0, r0, r5 + ldrb r0, [r0] + mov r9, r1 + add r1, r7, #1 + str r1, [sp] + cmp r0, #0 + beq ._18 @cond_branch + b ._19 +._18: + mov r5, #0x0 + ldr r6, ._24 + 8 @ gSaveBlock2 + add r4, r7, #0 + sub r4, r4, #0x46 + ldr r3, ._24 + 12 @ gSaveBlock1 +._21: + add r1, r5, r2 + add r1, r1, r3 + add r0, r5, r6 + ldrb r0, [r0] + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0xff + beq ._20 @cond_branch + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x6 + bls ._21 @cond_branch +._20: + cmp r5, #0x7 + bne ._22 @cond_branch + add r0, r2, #6 + b ._23 +._25: + .align 2, 0 +._24: + .word gSaveBlock1 + .word 0x1a08 + .word gSaveBlock2 + .word gSaveBlock1+0x1a0a +._22: + add r0, r5, r2 +._23: + add r0, r0, r3 + strb r4, [r0] + ldr r1, ._35 @ gSaveBlock1 + ldr r2, ._35 + 4 @ 0x1a08 + add r2, r2, r1 + mov sl, r2 + mov r3, r9 + add r0, r3, r7 + lsl r6, r0, #0x5 + add r1, r6, r1 + ldr r5, ._35 + 4 @ 0x1a08 + add r5, r5, r1 + mov r8, r5 +._30: + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x4b + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0xe + ldr r1, ._35 + 8 @ _843E424 + add r0, r0, r1 + ldrb r0, [r0] + mov r2, r8 + strb r0, [r2] + mov r5, #0x0 + cmp r5, r7 + bcs ._28 @cond_branch + mov r3, sl + ldrb r3, [r3] + cmp r0, r3 + beq ._28 @cond_branch + ldr r4, ._35 @ gSaveBlock1 + add r0, r6, r4 + ldr r2, ._35 + 4 @ 0x1a08 + add r3, r0, r2 +._29: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r7 + bcs ._28 @cond_branch + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x5 + add r0, r0, r4 + add r0, r0, r2 + ldrb r1, [r3] + ldrb r0, [r0] + cmp r1, r0 + bne ._29 @cond_branch +._28: + cmp r5, r7 + bne ._30 @cond_branch + bl Random + mov r5, r9 + add r4, r5, r7 + lsl r4, r4, #0x5 + ldr r1, ._35 @ gSaveBlock1 + add r3, r4, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x1 + ldr r2, ._35 + 12 @ 0x1a09 + add r3, r3, r2 + and r0, r0, r1 + lsl r0, r0, #0x4 + ldrb r1, [r3] + mov r5, #0x11 + neg r5, r5 + add r2, r5, #0 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3] + mov r5, #0x0 + ldr r6, ._35 + 16 @ gSaveBlock1 +._31: + bl Random + add r1, r5, r4 + add r1, r1, r6 + strb r0, [r1] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x3 + bls ._31 @cond_branch + mov r5, #0x0 + mov r1, r9 + add r0, r1, r7 + lsl r4, r0, #0x5 + ldr r3, ._35 + 20 @ gSaveBlock1 + mov r2, #0x0 + add r6, r3, #0 + add r6, r6, #0x10 +._32: + add r1, r5, r4 + add r0, r1, r3 + strb r2, [r0] + add r1, r1, r6 + strb r2, [r1] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0xf + bls ._32 @cond_branch + add r0, r7, #0 + bl unref_sub_80BCD7C +._19: + ldr r2, [sp] + lsl r0, r2, #0x18 + lsr r7, r0, #0x18 + cmp r7, #0x13 + bhi ._33 @cond_branch + b ._34 +._33: + mov r0, #0x1 + add sp, sp, #0x4 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._36: + .align 2, 0 +._35: + .word gSaveBlock1 + .word 0x1a08 + .word _843E424 + .word 0x1a09 + .word gSaveBlock1+0x1a11 + .word gSaveBlock1+0x1a1a + + thumb_func_end debug_sub_815F2F4 + + thumb_func_start debug_sub_815F470 +debug_sub_815F470: + push {r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + mov ip, r2 + ldr r2, ._39 @ gSaveBlock1 + ldr r0, ._39 + 4 @ _nakamuraData0 + ldrb r1, [r0] + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r0, r0, #0x5 + add r0, r0, r2 + ldr r1, ._39 + 8 @ 0x1a08 + add r0, r0, r1 + ldrb r4, [r0] + mov r2, #0x0 + ldr r3, ._39 + 12 @ _843E424 + add r5, r3, #0 +._41: + lsl r1, r2, #0x2 + add r0, r1, r5 + ldrb r0, [r0] + cmp r0, r4 + bne ._37 @cond_branch + add r0, r1, #1 + add r0, r0, r3 + ldrb r0, [r0] + strb r0, [r6] + add r0, r1, #2 + add r0, r0, r3 + ldrb r0, [r0] + strb r0, [r7] + add r0, r1, #3 + add r0, r0, r3 + ldrb r0, [r0] + mov r1, ip + strb r0, [r1] + b ._38 +._40: + .align 2, 0 +._39: + .word gSaveBlock1 + .word _nakamuraData0 + .word 0x1a08 + .word _843E424 +._37: + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x4a + bls ._41 @cond_branch +._38: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_sub_815F470 + + thumb_func_start debug_sub_815F4D8 +debug_sub_815F4D8: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffffc + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0xa + mov r3, #0xa + bl Menu_BlankWindowRect + ldr r6, ._43 @ gStringVar1 + ldr r7, ._43 + 4 @ _nakamuraData0 + ldrb r1, [r7] + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r2, ._43 + 8 @ gSaveBlock1 + ldrb r1, [r7] + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r0, r0, #0x5 + add r0, r0, r2 + ldr r1, ._43 + 12 @ 0x1a08 + add r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq ._42 @cond_branch + mov r4, sp + add r4, r4, #0x1 + mov r5, sp + add r5, r5, #0x2 + mov r0, sp + add r1, r4, #0 + add r2, r5, #0 + bl debug_sub_815F470 + ldrb r1, [r7] + add r0, r6, #0 + bl sub_80BC190 + add r0, r6, #0 + mov r1, #0x1 + mov r2, #0x3 + bl Menu_PrintText + ldr r0, ._43 + 16 @ Str_843E550 + mov r1, #0x1 + mov r2, #0x5 + bl Menu_PrintText + mov r0, sp + ldrb r1, [r0] + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + ldr r0, ._43 + 20 @ Str_843E552 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintText + ldrb r1, [r4] + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x3 + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._43 + 24 @ Str_843E554 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintText + ldrb r1, [r5] + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x3 + mov r2, #0x9 + bl Menu_PrintText +._42: + add sp, sp, #0x4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._44: + .align 2, 0 +._43: + .word gStringVar1 + .word _nakamuraData0 + .word gSaveBlock1 + .word 0x1a08 + .word Str_843E550 + .word Str_843E552 + .word Str_843E554 + + thumb_func_end debug_sub_815F4D8 + + thumb_func_start debug_sub_815F5C4 +debug_sub_815F5C4: + push {lr} + ldr r0, ._48 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + cmp r2, #0 + beq ._45 @cond_branch + ldr r1, ._48 + 4 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0 + bne ._46 @cond_branch + mov r0, #0x13 + b ._50 +._49: + .align 2, 0 +._48: + .word gMain + .word _nakamuraData0 +._46: + sub r0, r0, #0x1 + b ._50 +._45: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._51 @cond_branch + ldr r1, ._54 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0x13 + bne ._52 @cond_branch + strb r2, [r1] + b ._53 +._55: + .align 2, 0 +._54: + .word _nakamuraData0 +._52: + add r0, r0, #0x1 +._50: + strb r0, [r1] +._53: + bl debug_sub_815F4D8 + mov r0, #0x0 + b ._58 +._51: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._57 @cond_branch + mov r0, #0x0 + b ._58 +._57: + bl CloseMenu + mov r0, #0x1 +._58: + pop {r1} + bx r1 + + thumb_func_end debug_sub_815F5C4 + + thumb_func_start debug_sub_815F62C +debug_sub_815F62C: + push {lr} + ldr r1, ._59 @ _nakamuraData0 + mov r0, #0x0 + strb r0, [r1] + ldr r1, ._59 + 4 @ gMenuCallback + ldr r0, ._59 + 8 @ debug_sub_815F5C4 + str r0, [r1] + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0xb + bl Menu_DrawStdWindowFrame + bl debug_sub_815F4D8 + mov r0, #0x0 + pop {r1} + bx r1 +._60: + .align 2, 0 +._59: + .word _nakamuraData0 + .word gMenuCallback + .word debug_sub_815F5C4+1 + + thumb_func_end debug_sub_815F62C + + thumb_func_start debug_sub_815F668 +debug_sub_815F668: + push {r4, r5, r6, lr} + ldr r0, ._61 @ _nakamuraData0 + ldrb r0, [r0] + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x5 + ldr r0, ._61 + 4 @ gSaveBlock1 + add r1, r1, r0 + ldrb r4, [r1, #0x3] + lsl r4, r4, #0x18 + ldrb r0, [r1, #0x2] + lsl r0, r0, #0x10 + orr r4, r4, r0 + ldrb r0, [r1, #0x1] + lsl r0, r0, #0x8 + orr r4, r4, r0 + ldrb r0, [r1] + orr r4, r4, r0 + ldr r5, ._61 + 8 @ gStringVar1 + ldr r6, ._61 + 12 @ 0x186a0 + add r0, r4, #0 + add r1, r6, #0 + bl __udivsi3 + add r1, r0, #0 + add r0, r5, #0 + mov r2, #0x2 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r5, #0 + mov r1, #0x2 + mov r2, #0x7 + bl Menu_PrintText + add r0, r4, #0 + add r1, r6, #0 + bl __umodsi3 + add r1, r0, #0 + add r0, r5, #0 + mov r2, #0x2 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r5, #0 + mov r1, #0x7 + mov r2, #0x7 + bl Menu_PrintText + pop {r4, r5, r6} + pop {r0} + bx r0 +._62: + .align 2, 0 +._61: + .word _nakamuraData0 + .word gSaveBlock1+0x1a11 + .word gStringVar1 + .word 0x186a0 + + thumb_func_end debug_sub_815F668 + + thumb_func_start debug_sub_815F6E4 +debug_sub_815F6E4: + push {r4, lr} + mov r0, #0x2 + mov r1, #0x3 + mov r2, #0xb + mov r3, #0x4 + bl Menu_BlankWindowRect + ldr r4, ._63 @ gStringVar1 + ldr r0, ._63 + 4 @ _nakamuraData0 + ldrb r0, [r0] + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x5 + ldr r0, ._63 + 8 @ gSaveBlock1 + add r1, r1, r0 + add r0, r4, #0 + mov r2, #0x7 + bl StringCopyN + mov r1, #0xff + strb r1, [r0] + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + pop {r4} + pop {r0} + bx r0 +._64: + .align 2, 0 +._63: + .word gStringVar1 + .word _nakamuraData0 + .word gSaveBlock1+0x1a0a + + thumb_func_end debug_sub_815F6E4 + + thumb_func_start debug_sub_815F72C +debug_sub_815F72C: + push {r4, r5, lr} + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0xb + mov r3, #0xa + bl Menu_BlankWindowRect + ldr r4, ._66 @ gStringVar1 + ldr r5, ._66 + 4 @ _nakamuraData0 + ldrb r1, [r5] + add r0, r4, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + ldr r2, ._66 + 8 @ gSaveBlock1 + ldrb r1, [r5] + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r0, r0, #0x5 + add r0, r0, r2 + ldr r1, ._66 + 12 @ 0x1a08 + add r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq ._65 @cond_branch + bl debug_sub_815F6E4 + bl debug_sub_815F668 +._65: + pop {r4, r5} + pop {r0} + bx r0 +._67: + .align 2, 0 +._66: + .word gStringVar1 + .word _nakamuraData0 + .word gSaveBlock1 + .word 0x1a08 + + thumb_func_end debug_sub_815F72C + + thumb_func_start debug_sub_815F788 +debug_sub_815F788: + push {lr} + mov r0, #0x2 + mov r1, #0x5 + mov r2, #0xb + mov r3, #0x6 + bl Menu_BlankWindowRect + ldr r0, ._68 @ Str_843E574 + ldr r1, ._68 + 4 @ _nakamuraData2 + ldrb r1, [r1] + add r1, r1, #0x2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + mov r2, #0x5 + bl Menu_PrintText + pop {r0} + bx r0 +._69: + .align 2, 0 +._68: + .word Str_843E574 + .word _nakamuraData2 + + thumb_func_end debug_sub_815F788 + + thumb_func_start debug_sub_815F7B4 +debug_sub_815F7B4: + push {lr} + ldr r0, ._72 @ _nakamuraData1 + ldrb r0, [r0] + cmp r0, #0 + beq ._70 @cond_branch + mov r0, #0xb + mov r1, #0x1 + mov r2, #0xb + mov r3, #0x2 + bl Menu_BlankWindowRect + b ._71 +._73: + .align 2, 0 +._72: + .word _nakamuraData1 +._70: + ldr r0, ._74 @ _nakamuraData3 + ldrb r0, [r0] + lsl r0, r0, #0x1 + ldr r1, ._74 + 4 @ Str_843E576 + add r0, r0, r1 + mov r1, #0xb + mov r2, #0x1 + bl Menu_PrintText +._71: + pop {r0} + bx r0 +._75: + .align 2, 0 +._74: + .word _nakamuraData3 + .word Str_843E576 + + thumb_func_end debug_sub_815F7B4 + + thumb_func_start debug_sub_815F7F0 +debug_sub_815F7F0: + push {r4, r5, lr} + ldr r1, ._78 @ _nakamuraData0 + ldrb r2, [r1] + lsl r1, r2, #0x2 + add r1, r1, r2 + lsl r1, r1, #0x5 + ldr r2, ._78 + 4 @ gSaveBlock1 + add r3, r1, r2 + ldrb r1, [r3, #0x3] + lsl r2, r1, #0x18 + ldrb r1, [r3, #0x2] + lsl r1, r1, #0x10 + orr r2, r2, r1 + ldrb r1, [r3, #0x1] + lsl r1, r1, #0x8 + orr r2, r2, r1 + ldrb r1, [r3] + orr r2, r2, r1 + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r4, #0x9 + ldr r0, ._78 + 8 @ _nakamuraData2 + ldrb r0, [r0] + cmp r4, r0 + ble ._76 @cond_branch + add r5, r0, #0 +._77: + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r1, r0, #0x1 + lsl r0, r4, #0x18 + mov r4, #0xff + lsl r4, r4, #0x18 + add r0, r0, r4 + lsr r4, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, r5 + bgt ._77 @cond_branch +._76: + add r2, r2, r1 + lsr r0, r2, #0x18 + strb r0, [r3, #0x3] + mov r0, #0xff + lsl r0, r0, #0x10 + and r0, r0, r2 + lsr r0, r0, #0x10 + strb r0, [r3, #0x2] + mov r0, #0xff + lsl r0, r0, #0x8 + and r0, r0, r2 + lsr r0, r0, #0x8 + strb r0, [r3, #0x1] + strb r2, [r3] + bl debug_sub_815F668 + pop {r4, r5} + pop {r0} + bx r0 +._79: + .align 2, 0 +._78: + .word _nakamuraData0 + .word gSaveBlock1+0x1a11 + .word _nakamuraData2 + + thumb_func_end debug_sub_815F7F0 + + thumb_func_start debug_sub_815F86C +debug_sub_815F86C: + push {r4, r5, r6, lr} + lsl r0, r0, #0x18 + ldr r1, ._84 @ _nakamuraData0 + ldrb r2, [r1] + lsl r1, r2, #0x2 + add r1, r1, r2 + lsl r1, r1, #0x5 + ldr r2, ._84 + 4 @ gSaveBlock1 + add r5, r1, r2 + mov r2, #0x0 + mov r3, #0x0 + lsr r6, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, #0x64 + bne ._80 @cond_branch + ldr r0, ._84 + 8 @ _nakamuraData2 + ldrb r1, [r0] + cmp r1, #0x6 + bhi ._100 @cond_branch + mov r2, #0xff +._82: + add r0, r5, r1 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x6 + bls ._82 @cond_branch + b ._100 +._85: + .align 2, 0 +._84: + .word _nakamuraData0 + .word gSaveBlock1+0x1a0a + .word _nakamuraData2 +._80: + ldr r0, ._87 @ _nakamuraData3 + ldrb r0, [r0] + cmp r0, #0x4 + bhi ._98 @cond_branch + lsl r0, r0, #0x2 + ldr r1, ._87 + 4 @ + add r0, r0, r1 + ldr r0, [r0] + mov pc, r0 +._88: + .align 2, 0 +._87: + .word _nakamuraData3 + .word ._89 +._89: + .word ._90 + .word ._91 + .word ._92 + .word ._93 + .word ._94 +._90: + mov r3, #0x1 + mov r2, #0x50 + b ._98 +._91: + mov r3, #0x51 + mov r2, #0xa0 + b ._98 +._92: + mov r3, #0xbb + mov r2, #0xd4 + b ._98 +._93: + mov r3, #0xd5 + mov r2, #0xee + b ._98 +._94: + mov r3, #0xa1 + mov r2, #0xaa +._98: + ldr r4, ._101 @ _nakamuraData2 + ldrb r1, [r4] + add r1, r5, r1 + ldrb r0, [r1] + add r0, r0, r6 + strb r0, [r1] + ldrb r0, [r4] + add r1, r5, r0 + ldrb r0, [r1] + cmp r0, r3 + bcs ._99 @cond_branch + strb r2, [r1] +._99: + ldrb r0, [r4] + add r1, r5, r0 + ldrb r0, [r1] + cmp r0, r2 + bls ._100 @cond_branch + strb r3, [r1] +._100: + bl debug_sub_815F6E4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._102: + .align 2, 0 +._101: + .word _nakamuraData2 + + thumb_func_end debug_sub_815F86C + + thumb_func_start debug_sub_815F930 +debug_sub_815F930: + push {r4, r5, lr} + ldr r0, ._107 @ _nakamuraData1 + ldrb r2, [r0] + mov r4, #0xa + cmp r2, #0 + bne ._103 @cond_branch + mov r4, #0x7 +._103: + ldr r5, ._107 + 4 @ gMain + ldrh r1, [r5, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._104 @cond_branch + cmp r2, #0 + beq ._105 @cond_branch + mov r0, #0x1 + bl debug_sub_815F7F0 + b ._136 +._108: + .align 2, 0 +._107: + .word _nakamuraData1 + .word gMain +._105: + mov r0, #0x1 + b ._113 +._104: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._110 @cond_branch + cmp r2, #0 + beq ._111 @cond_branch + mov r0, #0x1 + neg r0, r0 + bl debug_sub_815F7F0 + b ._136 +._111: + mov r0, #0x1 + neg r0, r0 + b ._113 +._110: + mov r0, #0x20 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0 + beq ._114 @cond_branch + ldr r1, ._117 @ _nakamuraData2 + ldrb r0, [r1] + cmp r0, #0 + bne ._115 @cond_branch + sub r0, r4, #1 + b ._116 +._118: + .align 2, 0 +._117: + .word _nakamuraData2 +._115: + sub r0, r0, #0x1 +._116: + strb r0, [r1] +._125: + bl debug_sub_815F788 + b ._136 +._114: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._120 @cond_branch + ldr r2, ._123 @ _nakamuraData2 + ldrb r1, [r2] + sub r0, r4, #1 + cmp r1, r0 + bne ._121 @cond_branch + strb r3, [r2] + b ._125 +._124: + .align 2, 0 +._123: + .word _nakamuraData2 +._121: + add r0, r1, #1 + strb r0, [r2] + b ._125 +._120: + ldrh r1, [r5, #0x2e] + mov r0, #0x4 + and r0, r0, r1 + cmp r0, #0 + beq ._126 @cond_branch + cmp r2, #0 + bne ._127 @cond_branch + ldr r4, ._129 @ _nakamuraData3 + ldrb r0, [r4] + add r0, r0, #0x1 + mov r1, #0x5 + bl __modsi3 + strb r0, [r4] +._127: + bl debug_sub_815F7B4 + b ._136 +._130: + .align 2, 0 +._129: + .word _nakamuraData3 +._126: + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._131 @cond_branch + mov r0, #0x2 + mov r1, #0x5 + mov r2, #0xb + mov r3, #0x6 + bl Menu_BlankWindowRect + mov r0, #0xb + mov r1, #0x1 + mov r2, #0xb + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r1, ._133 @ gMenuCallback + ldr r0, ._133 + 4 @ debug_sub_815FA38 + str r0, [r1] + b ._136 +._134: + .align 2, 0 +._133: + .word gMenuCallback + .word debug_sub_815FA38+1 +._131: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._136 @cond_branch + cmp r2, #0 + bne ._136 @cond_branch + mov r0, #0x64 +._113: + bl debug_sub_815F86C +._136: + mov r0, #0x0 + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_815F930 + + thumb_func_start debug_sub_815FA38 +debug_sub_815FA38: + push {r4, lr} + ldr r0, ._139 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._137 @cond_branch + mov r0, #0x2 + neg r0, r0 + b ._138 +._140: + .align 2, 0 +._139: + .word gMain +._137: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._141 @cond_branch + mov r0, #0x2 +._138: + bl Menu_MoveCursor +._161: + mov r0, #0x0 + b ._142 +._141: + mov r0, #0x20 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + cmp r2, #0 + beq ._143 @cond_branch + ldr r1, ._146 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0 + bne ._144 @cond_branch + mov r0, #0x13 + b ._148 +._147: + .align 2, 0 +._146: + .word _nakamuraData0 +._144: + sub r0, r0, #0x1 + b ._148 +._143: + mov r0, #0x10 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0 + beq ._149 @cond_branch + ldr r1, ._152 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0x13 + bne ._150 @cond_branch + strb r2, [r1] + b ._151 +._153: + .align 2, 0 +._152: + .word _nakamuraData0 +._150: + add r0, r0, #0x1 +._148: + strb r0, [r1] +._151: + bl debug_sub_815F72C + b ._161 +._149: + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._155 @cond_branch + ldr r1, ._159 @ _nakamuraData0 + ldrb r0, [r1] + cmp r0, #0 + beq ._161 @cond_branch + ldr r2, ._159 + 4 @ gSaveBlock1 + add r1, r0, #0 + lsl r0, r1, #0x2 + add r0, r0, r1 + lsl r0, r0, #0x5 + add r0, r0, r2 + ldr r1, ._159 + 8 @ 0x1a08 + add r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0 + beq ._161 @cond_branch + bl Menu_GetCursorPos + ldr r1, ._159 + 12 @ _nakamuraData1 + strb r0, [r1] + ldr r0, ._159 + 16 @ _nakamuraData2 + strb r4, [r0] + bl debug_sub_815F788 + bl debug_sub_815F7B4 + ldr r1, ._159 + 20 @ gMenuCallback + ldr r0, ._159 + 24 @ debug_sub_815F930 + str r0, [r1] + b ._161 +._160: + .align 2, 0 +._159: + .word _nakamuraData0 + .word gSaveBlock1 + .word 0x1a08 + .word _nakamuraData1 + .word _nakamuraData2 + .word gMenuCallback + .word debug_sub_815F930+1 +._155: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._161 @cond_branch + bl CloseMenu + mov r0, #0x1 +._142: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_815FA38 + + thumb_func_start debug_sub_815FB1C +debug_sub_815FB1C: + push {lr} + add sp, sp, #0xfffffff8 + ldr r0, ._162 @ _nakamuraData0 + mov r1, #0x0 + strb r1, [r0] + ldr r0, ._162 + 4 @ _nakamuraData3 + strb r1, [r0] + ldr r1, ._162 + 8 @ gMenuCallback + ldr r0, ._162 + 12 @ debug_sub_815FA38 + str r0, [r1] + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xc + mov r3, #0xb + bl Menu_DrawStdWindowFrame + bl debug_sub_815F72C + mov r0, #0x0 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x3 + bl InitMenu + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._163: + .align 2, 0 +._162: + .word _nakamuraData0 + .word _nakamuraData3 + .word gMenuCallback + .word debug_sub_815FA38+1 + + thumb_func_end debug_sub_815FB1C + + thumb_func_start debug_sub_815FB78 +debug_sub_815FB78: + push {lr} + ldr r0, ._166 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._164 @cond_branch + mov r0, #0x1 + neg r0, r0 + b ._165 +._167: + .align 2, 0 +._166: + .word gMain +._164: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._168 @cond_branch + mov r0, #0x1 +._165: + bl Menu_MoveCursor + mov r0, #0x0 + b ._177 +._168: + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._170 @cond_branch + bl CloseMenu + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0 + beq ._171 @cond_branch + cmp r0, #0x1 + beq ._172 @cond_branch + b ._175 +._171: + bl debug_sub_814A714 + b ._175 +._172: + bl ClearRoamerData + bl ClearRoamerLocationData + b ._175 +._170: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._176 @cond_branch + mov r0, #0x0 + b ._177 +._176: + bl CloseMenu +._175: + mov r0, #0x1 +._177: + pop {r1} + bx r1 + + thumb_func_end debug_sub_815FB78 + + thumb_func_start debug_sub_815FBE8 +debug_sub_815FBE8: + push {r4, lr} + add sp, sp, #0xfffffff8 + ldr r1, ._178 @ gMenuCallback + ldr r0, ._178 + 4 @ debug_sub_815FB78 + str r0, [r1] + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + ldr r4, ._178 + 8 @ gStringVar1 + add r0, r4, #0 + bl debug_sub_814A73C + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._178 + 12 @ Str_843E580 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + mov r0, #0x0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x3 + bl InitMenu + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._179: + .align 2, 0 +._178: + .word gMenuCallback + .word debug_sub_815FB78+1 + .word gStringVar1 + .word Str_843E580 + + thumb_func_end debug_sub_815FBE8 + + thumb_func_start debug_sub_815FC54 +debug_sub_815FC54: + push {r4, r5, r6, r7, lr} + mov r3, #0x0 + ldr r7, ._181 @ gSaveBlock1 + mov r6, #0xe8 + lsl r6, r6, #0x3 + ldr r5, ._181 + 4 @ 0x3e7 + ldr r4, ._181 + 8 @ 0x742 +._180: + lsl r1, r3, #0x2 + add r1, r1, r7 + add r2, r3, #0 + add r2, r2, #0x85 + add r0, r1, r6 + strh r2, [r0] + add r1, r1, r4 + strh r5, [r1] + add r0, r3, #1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0x2a + bls ._180 @cond_branch + bl CloseMenu + mov r0, #0x1 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._182: + .align 2, 0 +._181: + .word gSaveBlock1 + .word 0x3e7 + .word 0x742 + + thumb_func_end debug_sub_815FC54 + + thumb_func_start debug_sub_815FC94 +debug_sub_815FC94: + push {lr} + bl ClearDecorationInventories + bl debug_sub_814A3A8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_815FC94 + + thumb_func_start debug_sub_815FCB4 +debug_sub_815FCB4: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov r7, #0x0 + ldr r5, ._188 @ gMapHeader + ldr r0, [r5] + ldr r0, [r0, #0x4] + mov r1, #0x3 + bl __divsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r0, #0 + mul r1, r1, r4 + lsl r1, r1, #0x10 + lsr r6, r1, #0x10 + add r0, r6, r0 + mov r9, r5 + cmp r6, r0 + bge ._183 @cond_branch + mov r8, r0 +._187: + mov r4, #0x0 + mov r1, r9 + ldr r0, [r1] + ldr r0, [r0] + add r5, r6, #1 + cmp r4, r0 + bge ._184 @cond_branch + ldr r0, ._188 @ gMapHeader + mov r9, r0 +._186: + add r0, r4, #7 + add r1, r6, #7 + bl MapGridGetMetatileBehaviorAt + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_805759C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bne ._185 @cond_branch + add r0, r7, #1 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 +._185: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, ._188 @ gMapHeader + ldr r0, [r0] + ldr r0, [r0] + cmp r4, r0 + blt ._186 @cond_branch +._184: + lsl r0, r5, #0x10 + lsr r6, r0, #0x10 + cmp r6, r8 + blt ._187 @cond_branch +._183: + add r0, r7, #0 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._189: + .align 2, 0 +._188: + .word gMapHeader + + thumb_func_end debug_sub_815FCB4 + + thumb_func_start debug_sub_815FD40 +debug_sub_815FD40: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffffc + mov r6, #0x0 + mov r4, sp + add r4, r4, #0x2 + mov r0, sp + add r1, r4, #0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r1, sp + mov r0, sp + ldrh r0, [r0] + sub r0, r0, #0x7 + strh r0, [r1] + ldrh r0, [r4] + sub r0, r0, #0x7 + strh r0, [r4] + mov r5, #0x0 + ldr r1, ._192 @ gMapHeader + ldr r0, [r1] + ldr r0, [r0, #0x4] + add r7, r4, #0 + cmp r6, r0 + bge ._190 @cond_branch +._199: + mov r4, #0x0 + ldr r0, [r1] + b ._191 +._193: + .align 2, 0 +._192: + .word gMapHeader +._198: + add r0, r4, #7 + add r1, r5, #7 + bl MapGridGetMetatileBehaviorAt + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl sub_805759C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bne ._196 @cond_branch + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + mov r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, r4 + bne ._196 @cond_branch + mov r1, #0x0 + ldsh r0, [r7, r1] + cmp r0, r5 + bne ._196 @cond_branch + add r0, r6, #0 + b ._197 +._196: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, ._200 @ gMapHeader + ldr r0, [r0] +._191: + ldr r0, [r0] + cmp r4, r0 + blt ._198 @cond_branch + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r1, ._200 @ gMapHeader + ldr r0, [r1] + ldr r0, [r0, #0x4] + cmp r5, r0 + blt ._199 @cond_branch +._190: + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 +._197: + add sp, sp, #0x4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._201: + .align 2, 0 +._200: + .word gMapHeader + + thumb_func_end debug_sub_815FD40 + + thumb_func_start debug_sub_815FDE4 +debug_sub_815FDE4: + push {lr} + ldr r0, ._205 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + bne ._202 @cond_branch + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._203 @cond_branch +._202: + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 + b ._204 +._206: + .align 2, 0 +._205: + .word gMain +._203: + mov r0, #0x0 +._204: + pop {r1} + bx r1 + + thumb_func_end debug_sub_815FDE4 + + thumb_func_start debug_sub_815FE1C +debug_sub_815FE1C: + push {r4, r5, r6, r7, lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x10 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._210 @ Str_843E58D + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r6, ._210 + 4 @ gStringVar1 + mov r0, #0x0 + bl debug_sub_815FCB4 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x5 + mov r2, #0x3 + bl Menu_PrintText + mov r0, #0x1 + bl debug_sub_815FCB4 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x5 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0x2 + bl debug_sub_815FCB4 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0x5 + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x0 + bl debug_sub_8092344 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0xb + mov r2, #0x3 + bl Menu_PrintText + mov r0, #0x1 + bl debug_sub_8092344 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0xb + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0x2 + bl debug_sub_8092344 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r6, #0 + mov r1, #0xb + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._210 + 8 @ gSaveBlock1 + ldr r1, ._210 + 12 @ 0x2dd6 + add r0, r0, r1 + ldrh r0, [r0] + bl FeebasSeedRng + mov r0, #0x0 + bl debug_sub_815FCB4 + add r4, r0, #0 + mov r0, #0x1 + bl debug_sub_815FCB4 + add r5, r0, #0 + mov r0, #0x2 + bl debug_sub_815FCB4 + add r4, r4, r5 + add r0, r0, r4 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + mov r5, #0x0 +._209: + bl FeebasRandom + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r7, #0 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0 + bne ._207 @cond_branch + add r1, r7, #0 +._207: + sub r0, r1, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x2 + bls ._208 @cond_branch + add r0, r6, #0 + mov r2, #0x1 + mov r3, #0x4 + bl ConvertIntToDecimalStringN + add r0, r5, #0 + mov r1, #0x3 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r4, r0, #0x2 + add r4, r4, r0 + add r4, r4, #0x2 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r5, #0 + mov r1, #0x3 + bl __udivsi3 + add r2, r0, #0 + lsl r2, r2, #0x19 + mov r0, #0xb0 + lsl r0, r0, #0x14 + add r2, r2, r0 + lsr r2, r2, #0x18 + add r0, r6, #0 + add r1, r4, #0 + bl Menu_PrintText + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 +._208: + cmp r5, #0x6 + bne ._209 @cond_branch + ldr r4, ._210 + 4 @ gStringVar1 + bl debug_sub_815FD40 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r4, #0 + mov r2, #0x1 + mov r3, #0x4 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0x11 + bl Menu_PrintText + ldr r1, ._210 + 16 @ gMenuCallback + ldr r0, ._210 + 20 @ debug_sub_815FDE4 + str r0, [r1] + mov r0, #0x0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._211: + .align 2, 0 +._210: + .word Str_843E58D + .word gStringVar1 + .word gSaveBlock1 + .word 0x2dd6 + .word gMenuCallback + .word debug_sub_815FDE4+1 + + thumb_func_end debug_sub_815FE1C + + thumb_func_start debug_sub_815FFDC +debug_sub_815FFDC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r0, #0xe + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xd + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0xe + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._214 @ Str_843E5D4 + mov r1, #0x1 + mov r2, #0xf + bl Menu_PrintText + mov r5, #0x0 + ldr r0, ._214 + 4 @ _nakamuraStatic0 + mov r8, r0 +._216: + mov r0, #0x64 + add r1, r5, #0 + mul r1, r1, r0 + ldr r0, ._214 + 8 @ gPlayerParty + add r6, r1, r0 + add r0, r6, #0 + mov r1, #0xb + bl GetMonData + lsl r1, r5, #0x2 + mov r2, r8 + add r4, r1, r2 + strh r0, [r4] + lsl r0, r0, #0x10 + add r7, r1, #0 + cmp r0, #0 + beq ._212 @cond_branch + add r0, r6, #0 + mov r1, #0x38 + bl GetMonData + strb r0, [r4, #0x2] + add r0, r5, #0 + bl debug_sub_816009C + add r0, r5, #0 + bl debug_sub_81600D0 + add r0, r5, #0 + bl debug_sub_816013C + b ._213 +._215: + .align 2, 0 +._214: + .word Str_843E5D4 + .word _nakamuraStatic0 + .word gPlayerParty +._212: + mov r0, #0x1 + strb r0, [r4, #0x2] +._213: + mov r0, r8 + add r1, r7, r0 + mov r0, #0x0 + strb r0, [r1, #0x3] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._216 @cond_branch + ldr r1, ._217 @ _nakamuraData4 + mov r0, #0x0 + strb r0, [r1] + mov r0, #0xf + mov r1, #0x1 + mov r2, #0xff + bl PrintTriangleCursorWithPalette + ldr r1, ._217 + 4 @ gMenuCallback + ldr r0, ._217 + 8 @ debug_sub_8160498 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._218: + .align 2, 0 +._217: + .word _nakamuraData4 + .word gMenuCallback + .word debug_sub_8160498+1 + + thumb_func_end debug_sub_815FFDC + + thumb_func_start debug_sub_816009C +debug_sub_816009C: + push {lr} + add r2, r0, #0 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + ldr r1, ._219 @ _nakamuraStatic0 + lsl r0, r2, #0x2 + add r0, r0, r1 + mov r3, #0x0 + ldsh r1, [r0, r3] + mov r0, #0xb + mul r0, r0, r1 + ldr r1, ._219 + 4 @ gSpeciesNames + add r0, r0, r1 + lsl r2, r2, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r1, #0x10 + bl Menu_PrintText + pop {r0} + bx r0 +._220: + .align 2, 0 +._219: + .word _nakamuraStatic0 + .word gSpeciesNames + + thumb_func_end debug_sub_816009C + + thumb_func_start debug_sub_81600D0 +debug_sub_81600D0: + push {r4, r5, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r5, r4, #0 + ldr r1, ._223 @ Str_843E5F0 + mov r0, sp + mov r2, #0x2 + bl memcpy + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._223 + 4 @ gPlayerParty + add r0, r0, r1 + bl GetMonGender + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0 + bne ._221 @cond_branch + ldr r0, ._223 + 8 @ gOtherText_MaleSymbol2 + b ._222 +._224: + .align 2, 0 +._223: + .word Str_843E5F0 + .word gPlayerParty + .word gOtherText_MaleSymbol2 +._221: + cmp r0, #0xfe + bne ._225 @cond_branch + ldr r0, ._227 @ gOtherText_FemaleSymbolAndLv +._222: + lsl r2, r4, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r1, #0x17 + bl Menu_PrintText + b ._226 +._228: + .align 2, 0 +._227: + .word gOtherText_FemaleSymbolAndLv +._225: + lsl r2, r5, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x17 + bl Menu_PrintText +._226: + add sp, sp, #0x4 + pop {r4, r5} + pop {r0} + bx r0 + + thumb_func_end debug_sub_81600D0 + + thumb_func_start debug_sub_816013C +debug_sub_816013C: + push {r4, r5, lr} + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r5, ._229 @ gStringVar1 + ldr r1, ._229 + 4 @ _nakamuraStatic0 + lsl r0, r4, #0x2 + add r0, r0, r1 + mov r1, #0x2 + ldrsb r1, [r0, r1] + add r0, r5, #0 + mov r2, #0x1 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + lsl r4, r4, #0x1 + add r4, r4, #0x1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r5, #0 + mov r1, #0x1a + add r2, r4, #0 + bl Menu_PrintText + pop {r4, r5} + pop {r0} + bx r0 +._230: + .align 2, 0 +._229: + .word gStringVar1 + .word _nakamuraStatic0 + + thumb_func_end debug_sub_816013C + + thumb_func_start debug_sub_816017C +debug_sub_816017C: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + lsl r3, r4, #0x1 + add r1, r3, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r3, r3, #0x2 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + mov r0, #0x10 + mov r2, #0x1c + bl Menu_BlankWindowRect + ldr r1, ._232 @ _nakamuraStatic0 + lsl r0, r4, #0x2 + add r0, r0, r1 + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._231 @cond_branch + add r0, r4, #0 + bl debug_sub_816009C + add r0, r4, #0 + bl debug_sub_81600D0 + add r0, r4, #0 + bl debug_sub_816013C +._231: + mov r0, #0x5 + bl debug_sub_81603B8 + pop {r4} + pop {r0} + bx r0 +._233: + .align 2, 0 +._232: + .word _nakamuraStatic0 + + thumb_func_end debug_sub_816017C + + thumb_func_start debug_sub_81601C8 +debug_sub_81601C8: + push {r4, r5, lr} + add sp, sp, #0xfffffff0 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r1, ._239 @ _nakamuraStatic0 + lsl r0, r5, #0x2 + add r2, r0, r1 + mov r4, #0x0 + ldsh r0, [r2, r4] + cmp r0, #0 + bne ._236 @cond_branch + ldrb r0, [r2, #0x3] + cmp r0, #0 + bne ._236 @cond_branch + cmp r3, #0x1 + bne ._236 @cond_branch + mov r0, #0x8a + lsl r0, r0, #0x1 + strh r0, [r2] +._236: + lsl r0, r5, #0x2 + add r4, r0, r1 + lsl r0, r3, #0x18 + asr r0, r0, #0x18 + ldrh r1, [r4] + add r2, r0, r1 + mov r3, #0x0 + strh r2, [r4] + lsl r1, r2, #0x10 + mov r0, #0xcd + lsl r0, r0, #0x11 + cmp r1, r0 + ble ._237 @cond_branch + ldr r1, ._239 + 4 @ 0xfffffe65 + add r0, r2, r1 + strh r0, [r4] +._237: + ldrh r1, [r4] + mov r2, #0x0 + ldsh r0, [r4, r2] + cmp r0, #0 + bge ._238 @cond_branch + ldr r2, ._239 + 8 @ 0x19b + add r0, r1, r2 + strh r0, [r4] +._238: + mov r0, #0x64 + mul r0, r0, r5 + ldr r1, ._239 + 12 @ gPlayerParty + add r0, r0, r1 + ldrh r1, [r4] + ldrb r2, [r4, #0x2] + str r3, [sp] + str r3, [sp, #0x4] + str r3, [sp, #0x8] + str r3, [sp, #0xc] + mov r3, #0x20 + bl CreateMon + mov r0, #0x1 + strb r0, [r4, #0x3] + add sp, sp, #0x10 + pop {r4, r5} + pop {r0} + bx r0 +._240: + .align 2, 0 +._239: + .word _nakamuraStatic0 + .word 0xfffffe65 + .word 0x19b + .word gPlayerParty + + thumb_func_end debug_sub_81601C8 + + thumb_func_start debug_sub_8160258 +debug_sub_8160258: + push {lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + ldr r1, ._242 @ _nakamuraStatic0 + lsl r0, r2, #0x2 + add r0, r0, r1 + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._241 @cond_branch + add r0, r2, #0 + bl debug_sub_816062C +._241: + pop {r0} + bx r0 +._243: + .align 2, 0 +._242: + .word _nakamuraStatic0 + + thumb_func_end debug_sub_8160258 + + thumb_func_start debug_sub_816027C +debug_sub_816027C: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r4, r0, #0 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + ldr r1, ._247 @ _nakamuraStatic0 + lsl r0, r4, #0x2 + add r3, r0, r1 + mov r1, #0x0 + ldsh r0, [r3, r1] + cmp r0, #0 + beq ._244 @cond_branch + lsl r0, r2, #0x18 + asr r0, r0, #0x18 + ldrb r1, [r3, #0x2] + add r0, r0, r1 + strb r0, [r3, #0x2] + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, #0x64 + ble ._245 @cond_branch + mov r0, #0x1 + strb r0, [r3, #0x2] +._245: + mov r0, #0x2 + ldrsb r0, [r3, r0] + cmp r0, #0 + bgt ._246 @cond_branch + mov r0, #0x64 + strb r0, [r3, #0x2] +._246: + mov r0, #0x64 + mul r4, r4, r0 + ldr r0, ._247 + 4 @ gPlayerParty + add r4, r4, r0 + ldr r2, ._247 + 8 @ gBaseStats + mov r0, #0x0 + ldsh r1, [r3, r0] + lsl r0, r1, #0x3 + sub r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r2 + ldrb r1, [r0, #0x13] + mov r0, #0xca + lsl r0, r0, #0x1 + add r2, r1, #0 + mul r2, r2, r0 + mov r0, #0x2 + ldrsb r0, [r3, r0] + lsl r0, r0, #0x2 + ldr r1, ._247 + 12 @ gExperienceTables + add r0, r0, r1 + add r2, r2, r0 + add r0, r4, #0 + mov r1, #0x19 + bl SetMonData + add r0, r4, #0 + bl debug_sub_803F55C +._244: + pop {r4} + pop {r0} + bx r0 +._248: + .align 2, 0 +._247: + .word _nakamuraStatic0 + .word gPlayerParty + .word gBaseStats + .word gExperienceTables + + thumb_func_end debug_sub_816027C + + thumb_func_start debug_sub_8160308 +debug_sub_8160308: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add sp, sp, #0xffffff8c + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + mov r2, #0x0 +._252: + add r1, r2, #1 + lsl r0, r1, #0x18 + lsr r5, r0, #0x18 + mov r8, r1 + cmp r5, #0x5 + bhi ._249 @cond_branch + mov r0, #0x64 + mov r9, r0 + mov r0, r9 + mul r0, r0, r2 + ldr r7, ._254 @ gPlayerParty + add r6, r0, r7 +._251: + add r0, r6, #0 + mov r1, #0xb + mov r2, #0x0 + bl GetMonData + cmp r0, #0 + bne ._250 @cond_branch + add r0, sp, #0x10 + add r1, r6, #0 + mov r2, #0x64 + bl memcpy + mov r4, r9 + mul r4, r4, r5 + add r4, r4, r7 + add r0, r6, #0 + add r1, r4, #0 + mov r2, #0x64 + bl memcpy + add r0, r4, #0 + add r1, sp, #0x10 + mov r2, #0x64 + bl memcpy +._250: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._251 @cond_branch +._249: + mov r1, r8 + lsl r0, r1, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x4 + bls ._252 @cond_branch + bl CalculatePlayerPartyCount + ldr r4, ._254 + 4 @ gPlayerPartyCount + ldrb r1, [r4] + cmp r1, #0 + bne ._253 @cond_branch + ldr r0, ._254 @ gPlayerParty + str r1, [sp] + str r1, [sp, #0x4] + str r1, [sp, #0x8] + str r1, [sp, #0xc] + mov r1, #0x1 + mov r2, #0xa + mov r3, #0x20 + bl CreateMon + mov r0, #0x1 + strb r0, [r4] +._253: + add sp, sp, #0x74 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._255: + .align 2, 0 +._254: + .word gPlayerParty + .word gPlayerPartyCount + + thumb_func_end debug_sub_8160308 + + thumb_func_start debug_sub_81603B8 +debug_sub_81603B8: + push {r4, r5, r6, r7, lr} + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + mov r0, #0x5 + bl PlaySE + ldr r7, ._259 @ _nakamuraData4 + ldrb r4, [r7] + add r0, r4, #0 + mov r1, #0x6 + bl __udivsi3 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r4, #0 + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, ._259 + 4 @ _843E5D1 + add r0, r5, r0 + ldrb r2, [r0] + lsl r3, r4, #0x1 + add r1, r3, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r3, r3, #0x2 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + add r0, r2, #0 + bl Menu_BlankWindowRect + cmp r6, #0 + bne ._256 @cond_branch + cmp r4, #0 + beq ._257 @cond_branch + ldrb r0, [r7] + sub r0, r0, #0x1 + b ._258 +._260: + .align 2, 0 +._259: + .word _nakamuraData4 + .word _843E5D1 +._257: + lsl r0, r5, #0x1 + add r0, r0, r5 + lsl r0, r0, #0x1 + add r0, r0, #0x5 +._258: + strb r0, [r7] +._256: + ldr r1, ._264 @ _nakamuraData4 + cmp r6, #0x1 + bne ._261 @cond_branch + cmp r4, #0x5 + beq ._262 @cond_branch + ldrb r0, [r1] + add r0, r0, #0x1 + b ._263 +._265: + .align 2, 0 +._264: + .word _nakamuraData4 +._262: + lsl r0, r5, #0x1 + add r0, r0, r5 + lsl r0, r0, #0x1 +._263: + strb r0, [r1] +._261: + cmp r6, #0x2 + bne ._266 @cond_branch + cmp r5, #0 + beq ._267 @cond_branch + ldrb r0, [r1] + sub r0, r0, #0x6 + b ._268 +._267: + add r0, r4, #0 + add r0, r0, #0xc +._268: + strb r0, [r1] +._266: + cmp r6, #0x3 + bne ._271 @cond_branch + cmp r5, #0x2 + beq ._270 @cond_branch + ldrb r0, [r1] + add r0, r0, #0x6 + strb r0, [r1] + b ._271 +._270: + strb r4, [r1] +._271: + ldrb r4, [r1] + add r0, r4, #0 + mov r1, #0x6 + bl __udivsi3 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r4, #0 + mov r1, #0x6 + bl __umodsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + ldr r0, ._272 @ _843E5D1 + add r0, r5, r0 + ldrb r0, [r0] + lsr r1, r1, #0x17 + add r1, r1, #0x1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + mov r2, #0xff + bl PrintTriangleCursorWithPalette + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._273: + .align 2, 0 +._272: + .word _843E5D1 + + thumb_func_end debug_sub_81603B8 + + thumb_func_start debug_sub_8160498 +debug_sub_8160498: + push {r4, lr} + ldr r1, ._276 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x40 + and r0, r0, r2 + cmp r0, #0 + beq ._274 @cond_branch + mov r0, #0x0 + b ._281 +._277: + .align 2, 0 +._276: + .word gMain +._274: + mov r0, #0x80 + and r0, r0, r2 + cmp r0, #0 + beq ._278 @cond_branch + mov r0, #0x1 + b ._281 +._278: + mov r0, #0x20 + and r0, r0, r2 + cmp r0, #0 + beq ._280 @cond_branch + mov r0, #0x2 + b ._281 +._280: + mov r0, #0x10 + and r0, r0, r2 + cmp r0, #0 + beq ._282 @cond_branch + mov r0, #0x3 +._281: + bl debug_sub_81603B8 + mov r0, #0x0 + b ._311 +._282: + ldrh r1, [r1, #0x30] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._284 @cond_branch + ldr r4, ._289 @ _nakamuraData4 + ldrb r0, [r4] + cmp r0, #0x5 + bhi ._285 @cond_branch + mov r1, #0x1 + bl debug_sub_81601C8 +._285: + ldrb r0, [r4] + sub r0, r0, #0x6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._286 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_8160258 +._286: + ldrb r0, [r4] + sub r0, r0, #0xc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._306 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + b ._300 +._290: + .align 2, 0 +._289: + .word _nakamuraData4 +._284: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._291 @cond_branch + ldr r4, ._294 @ _nakamuraData4 + ldrb r0, [r4] + cmp r0, #0x5 + bhi ._304 @cond_branch + mov r1, #0x1 + neg r1, r1 + b ._293 +._295: + .align 2, 0 +._294: + .word _nakamuraData4 +._291: + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._296 @cond_branch + ldr r4, ._301 @ _nakamuraData4 + ldrb r0, [r4] + cmp r0, #0x5 + bhi ._297 @cond_branch + mov r1, #0xa + bl debug_sub_81601C8 +._297: + ldrb r0, [r4] + sub r0, r0, #0x6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._298 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_8160258 +._298: + ldrb r0, [r4] + sub r0, r0, #0xc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._306 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + b ._300 +._302: + .align 2, 0 +._301: + .word _nakamuraData4 +._296: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._303 @cond_branch + ldr r4, ._308 @ _nakamuraData4 + ldrb r0, [r4] + cmp r0, #0x5 + bhi ._304 @cond_branch + mov r1, #0xa + neg r1, r1 +._293: + bl debug_sub_81601C8 +._304: + ldrb r0, [r4] + sub r0, r0, #0x6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._305 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_8160258 +._305: + ldrb r0, [r4] + sub r0, r0, #0xc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x5 + bhi ._306 @cond_branch + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + neg r1, r1 +._300: + bl debug_sub_816027C +._306: + ldrb r0, [r4] + mov r1, #0x6 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_816017C + mov r0, #0x0 + b ._311 +._309: + .align 2, 0 +._308: + .word _nakamuraData4 +._303: + mov r0, #0x8 + and r0, r0, r2 + cmp r0, #0 + bne ._310 @cond_branch + mov r0, #0x0 + b ._311 +._310: + bl debug_sub_8160308 + bl CloseMenu + mov r0, #0x1 +._311: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_8160498 + + thumb_func_start debug_sub_816062C +debug_sub_816062C: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add sp, sp, #0xfffffff0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r8, r0 + mov r0, #0x64 + mov r4, r8 + mul r4, r4, r0 + ldr r0, ._316 @ gPlayerParty + add r4, r4, r0 + add r0, r4, #0 + mov r1, #0xb + bl GetMonData + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + add r0, r4, #0 + bl GetMonGender + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + ldr r1, ._316 + 4 @ gBaseStats + lsl r0, r7, #0x3 + sub r0, r0, r7 + lsl r0, r0, #0x2 + add r0, r0, r1 + ldrb r6, [r0, #0x10] + cmp r6, #0 + beq ._313 @cond_branch + cmp r6, #0xfe + beq ._313 @cond_branch + cmp r6, #0xff + bne ._314 @cond_branch +._313: + mov r0, #0x64 + mov r1, r8 + mul r1, r1, r0 + add r0, r1, #0 + ldr r1, ._316 @ gPlayerParty + add r0, r0, r1 + bl GetMonGender + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._320 +._317: + .align 2, 0 +._316: + .word gPlayerParty + .word gBaseStats +._314: + cmp r2, #0 + beq ._318 @cond_branch + cmp r2, #0xfe + beq ._319 @cond_branch + mov r0, #0x0 + b ._320 +._318: + mov r6, #0xfe + b ._321 +._319: + mov r6, #0x0 +._321: + mov r0, r8 + lsl r0, r0, #0x2 + mov r9, r0 +._322: + bl Random + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + bl Random + lsl r0, r0, #0x10 + orr r5, r5, r0 + add r0, r7, #0 + add r1, r5, #0 + bl GetGenderFromSpeciesAndPersonality + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, r6 + bne ._322 @cond_branch + mov r0, #0x64 + mov r4, r8 + mul r4, r4, r0 + ldr r0, ._323 @ gPlayerParty + add r4, r4, r0 + add r0, r4, #0 + mov r1, #0x42 + bl GetMonData + ldr r0, ._323 + 4 @ _nakamuraStatic0 + add r0, r0, r9 + ldrh r1, [r0] + ldrb r2, [r0, #0x2] + mov r0, #0x1 + str r0, [sp] + str r5, [sp, #0x4] + mov r0, #0x0 + str r0, [sp, #0x8] + str r0, [sp, #0xc] + add r0, r4, #0 + mov r3, #0x20 + bl CreateMon + add r0, r6, #0 +._320: + add sp, sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._324: + .align 2, 0 +._323: + .word gPlayerParty + .word _nakamuraStatic0 + + thumb_func_end debug_sub_816062C + + thumb_func_start debug_sub_8160714 +debug_sub_8160714: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add sp, sp, #0xfffffff0 + add r6, r0, #0 + mov r9, r1 + mov r7, #0x0 + mov r0, #0x0 + mov r8, r0 + mov r2, #0x0 + mov r5, #0x0 +._329: + add r4, r5, #1 + lsl r1, r4, #0x18 + lsr r1, r1, #0x18 + mov r0, r9 + str r2, [sp, #0xc] + bl GetPokeblockData + add r1, r0, #0 + lsl r0, r5, #0x1 + add r0, r0, sp + strh r1, [r0] + ldr r2, [sp, #0xc] + cmp r5, #0x5 + beq ._328 @cond_branch + lsl r0, r1, #0x10 + asr r1, r0, #0x10 + cmp r1, #0 + ble ._326 @cond_branch + add r0, r7, #1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._326: + cmp r1, #0 + bge ._327 @cond_branch + mov r0, r8 + add r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r8, r0 +._327: + cmp r1, #0 + bne ._328 @cond_branch + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 +._328: + lsl r0, r4, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._329 @cond_branch + mov r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0x31 + bgt ._333 @cond_branch + mov r0, sp + ldrh r0, [r0, #0x2] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + cmp r0, #0x31 + bgt ._333 @cond_branch + mov r0, sp + mov r4, #0x4 + ldsh r0, [r0, r4] + cmp r0, #0x31 + bgt ._333 @cond_branch + mov r0, sp + mov r1, #0x6 + ldsh r0, [r0, r1] + cmp r0, #0x31 + bgt ._333 @cond_branch + mov r0, sp + mov r4, #0x8 + ldsh r0, [r0, r4] + cmp r0, #0x31 + ble ._334 @cond_branch +._333: + ldr r1, ._336 @ ContestStatsText_GoldPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xe + b ._400 +._337: + .align 2, 0 +._336: + .word ContestStatsText_GoldPokeBlock +._334: + cmp r7, #0x4 + bne ._338 @cond_branch + ldr r1, ._340 @ ContestStatsText_WhitePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xd + b ._400 +._341: + .align 2, 0 +._340: + .word ContestStatsText_WhitePokeBlock +._338: + mov r3, #0x0 + mov r5, #0x0 +._343: + lsl r0, r5, #0x1 + add r0, r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0x2 + bne ._342 @cond_branch + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 +._342: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x4 + bls ._343 @cond_branch + cmp r3, #0x3 + beq ._345 @cond_branch + cmp r2, #0x5 + beq ._345 @cond_branch + mov r4, r8 + cmp r4, #0x4 + bne ._346 @cond_branch +._345: + ldr r1, ._348 @ ContestStatsText_BlackPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xc + b ._400 +._349: + .align 2, 0 +._348: + .word ContestStatsText_BlackPokeBlock +._346: + cmp r7, #0x3 + bne ._350 @cond_branch + ldr r1, ._352 @ ContestStatsText_GrayPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xb + b ._400 +._353: + .align 2, 0 +._352: + .word ContestStatsText_GrayPokeBlock +._350: + cmp r7, #0x2 + beq ._354 @cond_branch + mov r0, r8 + cmp r0, #0x2 + bne ._377 @cond_branch +._354: + mov r3, #0x6 + mov r2, #0x0 + mov r5, #0x0 +._359: + lsl r0, r5, #0x1 + add r0, r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._358 @cond_branch + cmp r3, #0x6 + bne ._357 @cond_branch + add r3, r5, #0 + b ._358 +._357: + add r2, r5, #0 +._358: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x4 + bls ._359 @cond_branch + lsl r0, r3, #0x1 + mov r4, sp + add r1, r4, r0 + lsl r0, r2, #0x1 + add r0, r0, sp + mov r4, #0x0 + ldsh r1, [r1, r4] + mov r4, #0x0 + ldsh r0, [r0, r4] + cmp r1, r0 + blt ._360 @cond_branch + add r2, r3, #0 +._360: + cmp r2, #0 + bne ._361 @cond_branch + ldr r1, ._363 @ ContestStatsText_PurplePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x6 + b ._400 +._364: + .align 2, 0 +._363: + .word ContestStatsText_PurplePokeBlock +._361: + cmp r2, #0x1 + bne ._365 @cond_branch + ldr r1, ._367 @ ContestStatsText_IndigoPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x7 + b ._400 +._368: + .align 2, 0 +._367: + .word ContestStatsText_IndigoPokeBlock +._365: + cmp r2, #0x2 + bne ._369 @cond_branch + ldr r1, ._371 @ ContestStatsText_BrownPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x8 + b ._400 +._372: + .align 2, 0 +._371: + .word ContestStatsText_BrownPokeBlock +._369: + cmp r2, #0x3 + bne ._373 @cond_branch + ldr r1, ._375 @ ContestStatsText_LiteBluePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x9 + b ._400 +._376: + .align 2, 0 +._375: + .word ContestStatsText_LiteBluePokeBlock +._373: + cmp r2, #0x4 + bne ._377 @cond_branch + ldr r1, ._379 @ ContestStatsText_OlivePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0xa + b ._400 +._380: + .align 2, 0 +._379: + .word ContestStatsText_OlivePokeBlock +._377: + cmp r7, #0x1 + beq ._381 @cond_branch + mov r0, r8 + cmp r0, #0x1 + bne ._399 @cond_branch +._381: + mov r0, sp + mov r1, #0x0 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._383 @cond_branch + ldr r1, ._385 @ ContestStatsText_RedPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x1 + b ._400 +._386: + .align 2, 0 +._385: + .word ContestStatsText_RedPokeBlock +._383: + mov r0, sp + ldrh r0, [r0, #0x2] + cmp r0, #0 + beq ._387 @cond_branch + ldr r1, ._389 @ ContestStatsText_BluePokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x2 + b ._400 +._390: + .align 2, 0 +._389: + .word ContestStatsText_BluePokeBlock +._387: + mov r0, sp + mov r4, #0x4 + ldsh r0, [r0, r4] + cmp r0, #0 + beq ._391 @cond_branch + ldr r1, ._393 @ ContestStatsText_PinkPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x3 + b ._400 +._394: + .align 2, 0 +._393: + .word ContestStatsText_PinkPokeBlock +._391: + mov r0, sp + mov r1, #0x6 + ldsh r0, [r0, r1] + cmp r0, #0 + beq ._395 @cond_branch + ldr r1, ._397 @ ContestStatsText_GreenPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x4 + b ._400 +._398: + .align 2, 0 +._397: + .word ContestStatsText_GreenPokeBlock +._395: + mov r0, sp + mov r4, #0x8 + ldsh r0, [r0, r4] + cmp r0, #0 + beq ._399 @cond_branch + ldr r1, ._401 @ ContestStatsText_YellowPokeBlock + add r0, r6, #0 + bl StringCopy + mov r0, #0x5 + b ._400 +._402: + .align 2, 0 +._401: + .word ContestStatsText_YellowPokeBlock +._399: + ldr r1, ._403 @ gOtherText_FiveQuestions + add r0, r6, #0 + bl StringCopy + mov r0, #0x0 +._400: + add sp, sp, #0x10 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._404: + .align 2, 0 +._403: + .word gOtherText_FiveQuestions + + thumb_func_end debug_sub_8160714 + + thumb_func_start debug_sub_816097C +debug_sub_816097C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add r7, r0, #0 + lsl r1, r1, #0x10 + lsr r5, r1, #0x10 + mov r6, #0x0 + mov r1, #0x0 +._405: + add r0, r7, r6 + strb r1, [r0] + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x3 + bls ._405 @cond_branch + mov r0, #0xff + strb r0, [r7, #0x4] + lsl r0, r5, #0x10 + asr r0, r0, #0x10 + cmp r0, #0 + bne ._406 @cond_branch + mov r0, #0xa1 + strb r0, [r7, #0x3] + b ._414 +._406: + cmp r0, #0 + ble ._408 @cond_branch + mov r4, #0x64 + mov r0, #0x0 + mov r8, r0 + mov r6, #0x0 +._412: + lsl r5, r5, #0x10 + asr r0, r5, #0x10 + lsl r4, r4, #0x10 + asr r1, r4, #0x10 + bl __divsi3 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r1, r8 + cmp r1, #0 + bne ._410 @cond_branch + cmp r6, #0x2 + beq ._410 @cond_branch + cmp r2, #0 + beq ._411 @cond_branch +._410: + add r1, r6, r7 + add r0, r2, #0 + sub r0, r0, #0x5f + strb r0, [r1, #0x1] + mov r0, #0x1 + mov r8, r0 +._411: + asr r0, r5, #0x10 + asr r4, r4, #0x10 + add r1, r4, #0 + bl __modsi3 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0 + mov r1, #0xa + bl __divsi3 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + bls ._412 @cond_branch + b ._414 +._408: + cmp r0, #0 + bge ._414 @cond_branch + neg r0, r0 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + mov r4, #0x64 + mov r1, #0x0 + mov r8, r1 + mov r6, #0x0 +._419: + lsl r5, r5, #0x10 + asr r0, r5, #0x10 + lsl r4, r4, #0x10 + asr r1, r4, #0x10 + bl __divsi3 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + mov r1, r8 + lsl r0, r1, #0x10 + add r3, r0, #0 + cmp r3, #0 + bne ._416 @cond_branch + cmp r6, #0x2 + beq ._416 @cond_branch + cmp r2, #0 + beq ._417 @cond_branch +._416: + add r1, r6, r7 + add r0, r2, #0 + sub r0, r0, #0x5f + strb r0, [r1, #0x1] + cmp r3, #0 + bne ._418 @cond_branch + mov r0, #0xae + strb r0, [r1] +._418: + mov r0, #0x1 + mov r8, r0 +._417: + asr r0, r5, #0x10 + asr r4, r4, #0x10 + add r1, r4, #0 + bl __modsi3 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0 + mov r1, #0xa + bl __divsi3 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + bls ._419 @cond_branch +._414: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_sub_816097C + + thumb_func_start debug_sub_8160A80 +debug_sub_8160A80: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r2, r0, #0 + ldr r1, ._422 @ _nakamuraStatic18 + cmp r0, #0 + bne ._420 @cond_branch + ldr r4, ._422 + 4 @ gStringVar1 + ldrb r1, [r1, #0x1] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x3 + bl Menu_PrintText + b ._440 +._423: + .align 2, 0 +._422: + .word _nakamuraStatic18 + .word gStringVar1 +._420: + cmp r0, #0x1 + bne ._424 @cond_branch + ldr r4, ._426 @ gStringVar1 + ldrb r1, [r1, #0x2] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x5 + bl Menu_PrintText + b ._440 +._427: + .align 2, 0 +._426: + .word gStringVar1 +._424: + cmp r0, #0x2 + bne ._428 @cond_branch + ldr r4, ._430 @ gStringVar1 + ldrb r1, [r1, #0x3] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x7 + bl Menu_PrintText + b ._440 +._431: + .align 2, 0 +._430: + .word gStringVar1 +._428: + cmp r0, #0x3 + bne ._432 @cond_branch + ldr r4, ._434 @ gStringVar1 + ldrb r1, [r1, #0x4] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x9 + bl Menu_PrintText + b ._440 +._435: + .align 2, 0 +._434: + .word gStringVar1 +._432: + cmp r0, #0x4 + bne ._436 @cond_branch + ldr r4, ._438 @ gStringVar1 + ldrb r1, [r1, #0x5] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0xb + bl Menu_PrintText + b ._440 +._439: + .align 2, 0 +._438: + .word gStringVar1 +._436: + cmp r2, #0x5 + bne ._440 @cond_branch + ldr r4, ._441 @ gStringVar1 + ldrb r1, [r1, #0x6] + add r0, r4, #0 + bl debug_sub_816097C + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0xd + bl Menu_PrintText +._440: + pop {r4} + pop {r0} + bx r0 +._442: + .align 2, 0 +._441: + .word gStringVar1 + + thumb_func_end debug_sub_8160A80 + + thumb_func_start debug_sub_8160B50 +debug_sub_8160B50: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r3, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r4, r1, #0 + ldr r2, ._445 @ _nakamuraStatic18 + cmp r0, #0 + bne ._443 @cond_branch + ldrb r0, [r2, #0x1] + add r0, r0, r1 + strb r0, [r2, #0x1] + b ._455 +._446: + .align 2, 0 +._445: + .word _nakamuraStatic18 +._443: + cmp r0, #0x1 + bne ._447 @cond_branch + ldrb r0, [r2, #0x2] + add r0, r0, r1 + strb r0, [r2, #0x2] + b ._455 +._447: + cmp r0, #0x2 + bne ._449 @cond_branch + ldrb r0, [r2, #0x3] + add r0, r0, r1 + strb r0, [r2, #0x3] + b ._455 +._449: + cmp r0, #0x3 + bne ._451 @cond_branch + ldrb r0, [r2, #0x4] + add r0, r0, r1 + strb r0, [r2, #0x4] + b ._455 +._451: + cmp r0, #0x4 + bne ._453 @cond_branch + ldrb r0, [r2, #0x5] + add r0, r0, r1 + strb r0, [r2, #0x5] + b ._455 +._453: + cmp r3, #0x5 + bne ._455 @cond_branch + ldrb r0, [r2, #0x6] + add r0, r0, r4 + strb r0, [r2, #0x6] +._455: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_sub_8160B50 + + thumb_func_start debug_sub_8160BB0 +debug_sub_8160BB0: + push {r4, r5, lr} + ldr r5, ._456 @ gStringVar1 + ldr r4, ._456 + 4 @ _nakamuraStatic18 + add r0, r5, #0 + add r1, r4, #0 + bl debug_sub_8160714 + strb r0, [r4] + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x8 + mov r3, #0x2 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + pop {r4, r5} + pop {r0} + bx r0 +._457: + .align 2, 0 +._456: + .word gStringVar1 + .word _nakamuraStatic18 + + thumb_func_end debug_sub_8160BB0 + + thumb_func_start debug_sub_8160BE4 +debug_sub_8160BE4: + push {r4, lr} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xc + mov r3, #0xf + bl Menu_DrawStdWindowFrame + bl debug_sub_8160BB0 + ldr r0, ._459 @ gContestStatsText_Spicy + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + ldr r0, ._459 + 4 @ gContestStatsText_Dry + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + ldr r0, ._459 + 8 @ gContestStatsText_Sweet + mov r1, #0x2 + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._459 + 12 @ gContestStatsText_Bitter + mov r1, #0x2 + mov r2, #0x9 + bl Menu_PrintText + ldr r0, ._459 + 16 @ gContestStatsText_Sour + mov r1, #0x2 + mov r2, #0xb + bl Menu_PrintText + ldr r0, ._459 + 20 @ gContestStatsText_Tasty + mov r1, #0x2 + mov r2, #0xd + bl Menu_PrintText + mov r4, #0x0 +._458: + add r0, r4, #0 + bl debug_sub_8160A80 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._458 @cond_branch + mov r0, #0x0 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x6 + bl InitMenu + add sp, sp, #0x8 + pop {r4} + pop {r0} + bx r0 +._460: + .align 2, 0 +._459: + .word gContestStatsText_Spicy + .word gContestStatsText_Dry + .word gContestStatsText_Sweet + .word gContestStatsText_Bitter + .word gContestStatsText_Sour + .word gContestStatsText_Tasty + + thumb_func_end debug_sub_8160BE4 + + thumb_func_start debug_sub_8160C7C +debug_sub_8160C7C: + push {r4, lr} + ldr r2, ._469 @ _nakamuraStatic18 + mov r1, #0x0 + ldrb r0, [r2] + cmp r0, #0xc + bne ._467 @cond_branch + ldrb r0, [r2, #0x1] + cmp r0, #0x2 + bne ._462 @cond_branch + mov r1, #0x1 +._462: + ldrb r0, [r2, #0x3] + cmp r0, #0x2 + bne ._463 @cond_branch + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +._463: + ldrb r0, [r2, #0x4] + cmp r0, #0x2 + bne ._464 @cond_branch + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +._464: + ldrb r0, [r2, #0x2] + cmp r0, #0x2 + bne ._465 @cond_branch + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +._465: + ldrb r0, [r2, #0x5] + cmp r0, #0x2 + bne ._466 @cond_branch + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 +._466: + cmp r1, #0x3 + beq ._467 @cond_branch + mov r0, #0x2 + strb r0, [r2, #0x1] + strb r0, [r2, #0x3] + strb r0, [r2, #0x4] +._467: + add r0, r2, #0 + bl sub_810CA34 + bl debug_sub_8160BB0 + mov r4, #0x0 +._468: + add r0, r4, #0 + bl debug_sub_8160A80 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._468 @cond_branch + pop {r4} + pop {r0} + bx r0 +._470: + .align 2, 0 +._469: + .word _nakamuraStatic18 + + thumb_func_end debug_sub_8160C7C + + thumb_func_start debug_sub_8160CF4 +debug_sub_8160CF4: + push {lr} + ldr r2, ._473 @ gMain + ldrh r1, [r2, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._471 @cond_branch + mov r0, #0x1 + neg r0, r0 + b ._472 +._474: + .align 2, 0 +._473: + .word gMain +._471: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._475 @cond_branch + mov r0, #0x1 +._472: + bl Menu_MoveCursor + mov r0, #0x0 + b ._484 +._475: + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._477 @cond_branch + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 + neg r1, r1 + b ._478 +._477: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._479 @cond_branch + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x1 +._478: + bl debug_sub_8160B50 + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl debug_sub_8160A80 + bl debug_sub_8160BB0 + mov r0, #0x0 + b ._484 +._479: + ldrh r1, [r2, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._481 @cond_branch + bl debug_sub_8160C7C + mov r0, #0x5 + bl PlaySE + mov r0, #0x0 + b ._484 +._481: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._483 @cond_branch + mov r0, #0x0 + b ._484 +._483: + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 +._484: + pop {r1} + bx r1 + + thumb_func_end debug_sub_8160CF4 + + thumb_func_start debug_sub_8160D98 +debug_sub_8160D98: + push {lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl debug_sub_8160BE4 + ldr r1, ._485 @ gMenuCallback + ldr r0, ._485 + 4 @ debug_sub_8160CF4 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._486: + .align 2, 0 +._485: + .word gMenuCallback + .word debug_sub_8160CF4+1 + + thumb_func_end debug_sub_8160D98 + + thumb_func_start debug_sub_8160DC0 +debug_sub_8160DC0: + push {lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x16 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._487 @ gOtherText_Slash + mov r1, #0xb + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._487 + 4 @ Str_843E5F2 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + ldr r0, ._487 + 8 @ Str_843E5FB + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + ldr r0, ._487 + 12 @ Str_843E606 + mov r1, #0x2 + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._487 + 16 @ Str_843E611 + mov r1, #0x2 + mov r2, #0x9 + bl Menu_PrintText + ldr r0, ._487 + 20 @ Str_843E61C + mov r1, #0x2 + mov r2, #0xb + bl Menu_PrintText + ldr r0, ._487 + 24 @ Str_843E627 + mov r1, #0x2 + mov r2, #0xd + bl Menu_PrintText + ldr r0, ._487 + 28 @ Str_843E637 + mov r1, #0x2 + mov r2, #0xf + bl Menu_PrintText + ldr r0, ._487 + 32 @ Str_843E632 + mov r1, #0x2 + mov r2, #0x11 + bl Menu_PrintText + pop {r0} + bx r0 +._488: + .align 2, 0 +._487: + .word gOtherText_Slash + .word Str_843E5F2 + .word Str_843E5FB + .word Str_843E606 + .word Str_843E611 + .word Str_843E61C + .word Str_843E627 + .word Str_843E637 + .word Str_843E632 + + thumb_func_end debug_sub_8160DC0 + + thumb_func_start debug_sub_8160E50 +debug_sub_8160E50: + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0xa + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r5, ._489 @ gStringVar1 + add r0, r6, #0 + mov r1, #0x2 + add r2, r5, #0 + bl GetMonData + add r0, r5, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + mov r0, #0xc + mov r1, #0x1 + mov r2, #0x15 + mov r3, #0x2 + bl Menu_BlankWindowRect + add r0, r6, #0 + mov r1, #0xb + bl GetMonData + mov r1, #0xb + mul r0, r0, r1 + ldr r1, ._489 + 4 @ gSpeciesNames + add r0, r0, r1 + mov r1, #0xc + mov r2, #0x1 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1a + bl GetMonData + add r4, r0, #0 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x3 + mov r2, #0x11 + mov r3, #0x4 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x3 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1b + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x5 + mov r2, #0x11 + mov r3, #0x6 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x5 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1c + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x7 + mov r2, #0x11 + mov r3, #0x8 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x7 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1d + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x9 + mov r2, #0x11 + mov r3, #0xa + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x9 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1e + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0xb + mov r2, #0x11 + mov r3, #0xc + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0xb + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x1f + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r4, r4, r1 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0xd + mov r2, #0x11 + mov r3, #0xe + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0xd + bl Menu_PrintText + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0xf + mov r2, #0x11 + mov r3, #0x10 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0xf + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x20 + bl GetMonData + add r1, r0, #0 + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + mov r0, #0xd + mov r1, #0x11 + mov r2, #0x11 + mov r3, #0x12 + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0xd + mov r2, #0x11 + bl Menu_PrintText + pop {r4, r5, r6} + pop {r0} + bx r0 +._490: + .align 2, 0 +._489: + .word gStringVar1 + .word gSpeciesNames + + thumb_func_end debug_sub_8160E50 + + thumb_func_start debug_sub_8161028 +debug_sub_8161028: + push {r4, r5, r6, lr} + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + bne ._491 @cond_branch + ldr r0, ._496 @ _nakamuraData5 + ldrb r0, [r0] + cmp r0, #0 + bne ._492 @cond_branch + mov r5, #0x5 +._494: + lsl r0, r5, #0x10 + asr r4, r0, #0x10 + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._496 + 4 @ gPlayerParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + bne ._493 @cond_branch + sub r0, r4, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r0, #0 + bge ._494 @cond_branch +._492: + ldr r1, ._496 @ _nakamuraData5 + ldrb r0, [r1] + add r0, r0, r6 + strb r0, [r1] + b ._506 +._497: + .align 2, 0 +._496: + .word _nakamuraData5 + .word gPlayerParty +._491: + cmp r1, #0x1 + bne ._506 @cond_branch + ldr r4, ._501 @ _nakamuraData5 + ldrb r0, [r4] + add r0, r0, r6 + strb r0, [r4] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x6 + bne ._499 @cond_branch + mov r0, #0x0 + b ._500 +._502: + .align 2, 0 +._501: + .word _nakamuraData5 +._493: + ldr r0, ._504 @ _nakamuraData5 + strb r5, [r0] + b ._506 +._505: + .align 2, 0 +._504: + .word _nakamuraData5 +._499: + ldrb r1, [r4] + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._507 @ gPlayerParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + bne ._506 @cond_branch +._500: + strb r0, [r4] +._506: + pop {r4, r5, r6} + pop {r0} + bx r0 +._508: + .align 2, 0 +._507: + .word gPlayerParty + + thumb_func_end debug_sub_8161028 + + thumb_func_start debug_sub_81610BC +debug_sub_81610BC: + push {lr} + ldr r0, ._511 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._509 @cond_branch + mov r0, #0x1 + neg r0, r0 + b ._510 +._512: + .align 2, 0 +._511: + .word gMain +._509: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._513 @cond_branch + mov r0, #0x1 +._510: + bl debug_sub_8161028 + ldr r0, ._515 @ _nakamuraData5 + ldrb r1, [r0] + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._515 + 4 @ gPlayerParty + add r0, r0, r1 + bl debug_sub_8160E50 + mov r0, #0x0 + b ._518 +._516: + .align 2, 0 +._515: + .word _nakamuraData5 + .word gPlayerParty +._513: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + bne ._517 @cond_branch + mov r0, #0x0 + b ._518 +._517: + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 +._518: + pop {r1} + bx r1 + + thumb_func_end debug_sub_81610BC + + thumb_func_start DebugMenu_EffortValues +DebugMenu_EffortValues: + push {lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + ldr r1, ._519 @ _nakamuraData5 + mov r0, #0x0 + strb r0, [r1] + bl debug_sub_8160DC0 + ldr r0, ._519 + 4 @ gPlayerParty + bl debug_sub_8160E50 + ldr r1, ._519 + 8 @ gMenuCallback + ldr r0, ._519 + 12 @ debug_sub_81610BC + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._520: + .align 2, 0 +._519: + .word _nakamuraData5 + .word gPlayerParty + .word gMenuCallback + .word debug_sub_81610BC+1 + + thumb_func_end DebugMenu_EffortValues + + thumb_func_start debug_sub_8161160 +debug_sub_8161160: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r7, #0x0 + ldr r2, ._523 @ _nakamuraData6 + ldr r1, ._523 + 4 @ _nakamuraData8 + ldrh r0, [r2] + ldrh r3, [r1] + cmp r0, r3 + bhi ._521 @cond_branch + add r6, r0, #0 + ldrh r5, [r1] + b ._522 +._524: + .align 2, 0 +._523: + .word _nakamuraData6 + .word _nakamuraData8 +._521: + ldrh r6, [r1] + ldrh r5, [r2] +._522: + mov r4, #0x0 + ldr r0, ._529 @ _nakamuraDataA + ldrh r0, [r0] + cmp r4, r0 + bcs ._525 @cond_branch + ldr r0, ._529 + 4 @ _nakamuraDataC + mov r8, r0 +._528: + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r2, r8 + ldrh r1, [r2] + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, r6 + bcc ._527 @cond_branch + cmp r0, r5 + bhi ._527 @cond_branch + add r0, r7, #1 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 +._527: + add r4, r4, #0x1 + ldr r0, ._529 @ _nakamuraDataA + ldrh r0, [r0] + cmp r4, r0 + bcc ._528 @cond_branch +._525: + add r0, r7, #0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._530: + .align 2, 0 +._529: + .word _nakamuraDataA + .word _nakamuraDataC + + thumb_func_end debug_sub_8161160 + + thumb_func_start debug_sub_81611D8 +debug_sub_81611D8: + push {r4, lr} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xf + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r0, ._531 @ Str_843E642 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._531 + 4 @ Str_843E647 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + ldr r0, ._531 + 8 @ Str_843E65A + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + ldr r0, ._531 + 12 @ Str_843E64C + mov r1, #0x2 + mov r2, #0x7 + bl Menu_PrintText + ldr r0, ._531 + 16 @ Str_843E651 + mov r1, #0x2 + mov r2, #0x9 + bl Menu_PrintText + ldr r0, ._531 + 20 @ Str_843E655 + mov r1, #0xd + mov r2, #0x9 + bl Menu_PrintText + ldr r4, ._531 + 24 @ Str_843E658 + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x1 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x3 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x5 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x7 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xc + mov r2, #0x9 + bl Menu_PrintText + mov r0, #0x0 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x4 + bl InitMenu + add sp, sp, #0x8 + pop {r4} + pop {r0} + bx r0 +._532: + .align 2, 0 +._531: + .word Str_843E642 + .word Str_843E647 + .word Str_843E65A + .word Str_843E64C + .word Str_843E651 + .word Str_843E655 + .word Str_843E658 + + thumb_func_end debug_sub_81611D8 + + thumb_func_start debug_sub_8161290 +debug_sub_8161290: + push {r4, lr} + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + ldr r4, ._533 @ gStringVar1 + add r0, r4, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x8 + mov r2, #0x9 + bl Menu_PrintText + pop {r4} + pop {r0} + bx r0 +._534: + .align 2, 0 +._533: + .word gStringVar1 + + thumb_func_end debug_sub_8161290 + + thumb_func_start debug_sub_81612B8 +debug_sub_81612B8: + push {r4, r5, lr} + add r4, r2, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + lsl r1, r1, #0x18 + asr r1, r1, #0x18 + ldrh r2, [r0] + add r1, r1, r2 + strh r1, [r0] + ldr r5, ._535 @ gStringVar1 + ldrh r1, [r0] + add r0, r5, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r5, #0 + mov r1, #0x8 + add r2, r4, #0 + bl Menu_PrintText + pop {r4, r5} + pop {r0} + bx r0 +._536: + .align 2, 0 +._535: + .word gStringVar1 + + thumb_func_end debug_sub_81612B8 + + thumb_func_start debug_sub_81612EC +debug_sub_81612EC: + push {r4, r5, lr} + ldr r2, ._540 @ gMain + ldrh r1, [r2, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + mov r5, #0x1 + cmp r0, #0 + beq ._537 @cond_branch + mov r5, #0x64 +._537: + ldrh r1, [r2, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._538 @cond_branch + mov r0, #0x1 + neg r0, r0 + b ._539 +._541: + .align 2, 0 +._540: + .word gMain +._538: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._542 @cond_branch + mov r0, #0x1 +._539: + bl Menu_MoveCursor +._565: + mov r0, #0x0 + b ._543 +._542: + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._544 @cond_branch + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + asr r4, r0, #0x18 + cmp r4, #0 + bne ._545 @cond_branch + ldr r0, ._550 @ _nakamuraData6 + neg r1, r5 + mov r2, #0x1 + bl debug_sub_81612B8 +._545: + cmp r4, #0x1 + bne ._546 @cond_branch + ldr r0, ._550 + 4 @ _nakamuraData8 + neg r1, r5 + mov r2, #0x3 + bl debug_sub_81612B8 +._546: + cmp r4, #0x2 + bne ._547 @cond_branch + ldr r0, ._550 + 8 @ _nakamuraDataC + neg r1, r5 + mov r2, #0x5 + bl debug_sub_81612B8 +._547: + cmp r4, #0x3 + bne ._565 @cond_branch + ldr r0, ._550 + 12 @ _nakamuraDataA + neg r1, r5 + mov r2, #0x7 + bl debug_sub_81612B8 + b ._565 +._551: + .align 2, 0 +._550: + .word _nakamuraData6 + .word _nakamuraData8 + .word _nakamuraDataC + .word _nakamuraDataA +._544: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._552 @cond_branch + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + asr r4, r0, #0x18 + cmp r4, #0 + bne ._553 @cond_branch + ldr r0, ._558 @ _nakamuraData6 + add r1, r5, #0 + mov r2, #0x1 + bl debug_sub_81612B8 +._553: + cmp r4, #0x1 + bne ._554 @cond_branch + ldr r0, ._558 + 4 @ _nakamuraData8 + add r1, r5, #0 + mov r2, #0x3 + bl debug_sub_81612B8 +._554: + cmp r4, #0x2 + bne ._555 @cond_branch + ldr r0, ._558 + 8 @ _nakamuraDataC + add r1, r5, #0 + mov r2, #0x5 + bl debug_sub_81612B8 +._555: + cmp r4, #0x3 + bne ._565 @cond_branch + ldr r0, ._558 + 12 @ _nakamuraDataA + add r1, r5, #0 + mov r2, #0x7 + bl debug_sub_81612B8 + b ._565 +._559: + .align 2, 0 +._558: + .word _nakamuraData6 + .word _nakamuraData8 + .word _nakamuraDataC + .word _nakamuraDataA +._552: + ldrh r1, [r2, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._560 @cond_branch + ldr r0, ._563 @ _nakamuraDataC + ldrh r0, [r0] + cmp r0, #0 + beq ._565 @cond_branch + mov r0, #0x5 + bl PlaySE + bl debug_sub_8161160 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl debug_sub_8161290 + b ._565 +._564: + .align 2, 0 +._563: + .word _nakamuraDataC +._560: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._565 @cond_branch + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl CloseMenu + mov r0, #0x1 +._543: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_81612EC + + thumb_func_start DebugMenu_RandomNumberTest +DebugMenu_RandomNumberTest: + push {lr} + ldr r0, ._566 @ _nakamuraData6 + mov r1, #0x0 + strh r1, [r0] + ldr r0, ._566 + 4 @ _nakamuraData8 + strh r1, [r0] + ldr r0, ._566 + 8 @ _nakamuraDataC + strh r1, [r0] + ldr r0, ._566 + 12 @ _nakamuraDataA + strh r1, [r0] + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_EraseWindowRect + bl debug_sub_81611D8 + ldr r1, ._566 + 16 @ gMenuCallback + ldr r0, ._566 + 20 @ debug_sub_81612EC + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._567: + .align 2, 0 +._566: + .word _nakamuraData6 + .word _nakamuraData8 + .word _nakamuraDataC + .word _nakamuraDataA + .word gMenuCallback + .word debug_sub_81612EC+1 + + thumb_func_end DebugMenu_RandomNumberTest + + .align 2, 0 + +.endif diff --git a/asm/nohara_debug_menu.s b/asm/nohara_debug_menu.s new file mode 100644 index 000000000..003f34798 --- /dev/null +++ b/asm/nohara_debug_menu.s @@ -0,0 +1,2198 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start InitNoharaDebugMenu +InitNoharaDebugMenu: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x13 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._1 @ gUnknown_Debug_083C4938 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x12 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._1 + 4 @ gMenuCallback + ldr r0, ._1 + 8 @ debug_sub_808F414 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._2: + .align 2, 0 +._1: + .word gUnknown_Debug_083C4938 + .word gMenuCallback + .word debug_sub_808F414+1 + + thumb_func_end InitNoharaDebugMenu + + thumb_func_start debug_sub_808F414 +debug_sub_808F414: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._3 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + beq ._4 @cond_branch + ldr r2, ._6 @ gMenuCallback + ldr r0, ._6 + 4 @ gUnknown_Debug_083C4938 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] +._3: + mov r0, #0x0 + b ._5 +._7: + .align 2, 0 +._6: + .word gMenuCallback + .word gUnknown_Debug_083C4938 +._4: + bl CloseMenu + mov r0, #0x1 +._5: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808F414 + + thumb_func_start NoharaDebugMenu_TV +NoharaDebugMenu_TV: + push {lr} + add sp, sp, #0xfffffff8 + ldr r1, ._8 @ gDebug_03000726 + mov r0, #0x0 + strb r0, [r1] + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xa + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._8 + 4 @ gUnknown_Debug_083C4B8C + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x9 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._8 + 8 @ gMenuCallback + ldr r0, ._8 + 12 @ debug_sub_808F4AC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._9: + .align 2, 0 +._8: + .word gDebug_03000726 + .word gUnknown_Debug_083C4B8C + .word gMenuCallback + .word debug_sub_808F4AC+1 + + thumb_func_end NoharaDebugMenu_TV + + thumb_func_start debug_sub_808F4AC +debug_sub_808F4AC: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._10 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + beq ._11 @cond_branch + ldr r2, ._13 @ gMenuCallback + ldr r0, ._13 + 4 @ gUnknown_Debug_083C4B8C + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] +._10: + mov r0, #0x0 + b ._12 +._14: + .align 2, 0 +._13: + .word gMenuCallback + .word gUnknown_Debug_083C4B8C +._11: + bl CloseMenu + mov r0, #0x1 +._12: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808F4AC + + thumb_func_start debug_sub_808F4EC +debug_sub_808F4EC: + push {lr} + bl debug_sub_808F6BC + ldr r0, ._15 @ gUnknown_Debug_083C4980 + bl sub_8071F40 + mov r0, #0x3 + mov r1, #0x3 + mov r2, #0x1 + bl DisplayYesNoMenu + ldr r1, ._15 + 4 @ gMenuCallback + ldr r0, ._15 + 8 @ debug_sub_808F648 + str r0, [r1] + pop {r0} + bx r0 +._16: + .align 2, 0 +._15: + .word gUnknown_Debug_083C4980 + .word gMenuCallback + .word debug_sub_808F648+1 + + thumb_func_end debug_sub_808F4EC + + thumb_func_start debug_sub_808F518 +debug_sub_808F518: + push {r4, lr} + mov r2, #0x0 + ldr r4, ._20 @ gSaveBlock1 + ldr r3, ._20 + 4 @ 0x2738 +._19: + lsl r0, r2, #0x3 + add r0, r0, r2 + lsl r0, r0, #0x2 + add r1, r0, r4 + add r0, r1, r3 + ldrb r0, [r0] + sub r0, r0, #0x15 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x13 + bhi ._18 @cond_branch + ldr r0, ._20 + 8 @ 0x2739 + add r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne ._18 @cond_branch + mov r0, #0x1 + strb r0, [r1] +._18: + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x17 + bls ._19 @cond_branch + pop {r4} + pop {r0} + bx r0 +._21: + .align 2, 0 +._20: + .word gSaveBlock1 + .word 0x2738 + .word 0x2739 + + thumb_func_end debug_sub_808F518 + + thumb_func_start debug_sub_808F560 +debug_sub_808F560: + push {r4, lr} + mov r1, #0x0 + ldr r4, ._23 @ gSaveBlock1 + ldr r3, ._23 + 4 @ 0x2739 + mov r2, #0x0 +._22: + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r4 + add r0, r0, r3 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x17 + bls ._22 @cond_branch + bl CloseMenu + mov r0, #0x1 + pop {r4} + pop {r1} + bx r1 +._24: + .align 2, 0 +._23: + .word gSaveBlock1 + .word 0x2739 + + thumb_func_end debug_sub_808F560 + + thumb_func_start debug_sub_808F594 +debug_sub_808F594: + push {r4, r5, r6, lr} + mov r2, #0x0 + ldr r6, ._27 @ gSaveBlock1 + ldr r5, ._27 + 4 @ 0x2738 + ldr r4, ._27 + 8 @ 0x2739 + mov r3, #0x1 +._26: + lsl r0, r2, #0x3 + add r0, r0, r2 + lsl r0, r0, #0x2 + add r1, r0, r6 + add r0, r1, r5 + ldrb r0, [r0] + cmp r0, #0 + beq ._25 @cond_branch + add r0, r1, r4 + strb r3, [r0] +._25: + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x17 + bls ._26 @cond_branch + bl CloseMenu + mov r0, #0x1 + pop {r4, r5, r6} + pop {r1} + bx r1 +._28: + .align 2, 0 +._27: + .word gSaveBlock1 + .word 0x2738 + .word 0x2739 + + thumb_func_end debug_sub_808F594 + + thumb_func_start debug_sub_808F5D8 +debug_sub_808F5D8: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r4, #0x0 + ldr r6, ._30 @ gStringVar1 + ldr r7, ._30 + 4 @ gUnknown_Debug_083C4BD4 + add r0, r7, #1 + mov r8, r0 +._29: + ldr r5, ._30 + 8 @ gSpecialVar_0x8004 + strh r4, [r5] + bl GetSlotMachineId + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r6, #0 + mov r2, #0x0 + mov r3, #0x1 + bl ConvertIntToDecimalStringN + lsl r0, r4, #0x1 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r1, r0, r7 + ldrb r1, [r1] + add r0, r0, r8 + ldrb r2, [r0] + add r0, r6, #0 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xb + bls ._29 @cond_branch + mov r0, #0x0 + strh r0, [r5] + ldr r1, ._30 + 12 @ gMenuCallback + ldr r0, ._30 + 16 @ debug_sub_8090278 + str r0, [r1] + mov r0, #0x0 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._31: + .align 2, 0 +._30: + .word gStringVar1 + .word gUnknown_Debug_083C4BD4 + .word gSpecialVar_0x8004 + .word gMenuCallback + .word debug_sub_8090278+1 + + thumb_func_end debug_sub_808F5D8 + + thumb_func_start debug_sub_808F648 +debug_sub_808F648: + push {lr} + ldr r0, ._35 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._32 @cond_branch + mov r0, #0xa + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xd + bl Menu_EraseWindowRect + ldr r0, ._35 + 4 @ gDebug_03000726 + ldrb r1, [r0] + mov r2, #0x1 + eor r1, r1, r2 + strb r1, [r0] + cmp r1, #0 + beq ._33 @cond_branch + bl debug_sub_808F7B4 + b ._40 +._36: + .align 2, 0 +._35: + .word gMain + .word gDebug_03000726 +._33: + bl debug_sub_808F6BC + b ._40 +._32: + bl Menu_ProcessInputNoWrap_ + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._43 @cond_branch + cmp r1, r0 + bgt ._39 @cond_branch + sub r0, r0, #0x1 + cmp r1, r0 + beq ._40 @cond_branch + b ._43 +._39: + cmp r1, #0 + beq ._42 @cond_branch + b ._43 +._40: + mov r0, #0x0 + b ._44 +._42: + bl debug_sub_808F518 +._43: + bl CloseMenu + mov r0, #0x1 +._44: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808F648 + + thumb_func_start debug_sub_808F6BC +debug_sub_808F6BC: + push {r4, r5, r6, lr} + mov r4, #0x0 + ldr r5, ._48 @ gStringVar1 + ldr r6, ._48 + 4 @ gSaveBlock1 +._45: + lsl r0, r4, #0x3 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldr r1, ._48 + 8 @ 0x2738 + add r0, r0, r1 + ldrb r1, [r0] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + lsl r1, r4, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x14 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x0 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + bls ._45 @cond_branch + mov r4, #0x5 + ldr r5, ._48 @ gStringVar1 + ldr r6, ._48 + 4 @ gSaveBlock1 +._50: + lsl r0, r4, #0x3 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldr r1, ._48 + 8 @ 0x2738 + add r0, r0, r1 + ldrb r1, [r0] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + cmp r4, #0xe + bhi ._46 @cond_branch + lsl r1, r4, #0x19 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x3 + bl Menu_PrintText + b ._47 +._49: + .align 2, 0 +._48: + .word gStringVar1 + .word gSaveBlock1 + .word 0x2738 +._46: + lsl r1, r4, #0x19 + mov r0, #0xec + lsl r0, r0, #0x18 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x6 + bl Menu_PrintText +._47: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x17 + bls ._50 @cond_branch + mov r4, #0x0 + ldr r5, ._53 @ gStringVar1 +._55: + ldr r0, ._53 + 4 @ gSaveBlock1 + lsl r1, r4, #0x2 + add r1, r1, r0 + ldr r0, ._53 + 8 @ 0x2abc + add r1, r1, r0 + ldrb r1, [r1] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + cmp r4, #0x7 + bhi ._51 @cond_branch + lsl r1, r4, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x14 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x9 + bl Menu_PrintText + b ._52 +._54: + .align 2, 0 +._53: + .word gStringVar1 + .word gSaveBlock1 + .word 0x2abc +._51: + lsl r1, r4, #0x19 + mov r0, #0xfa + lsl r0, r0, #0x18 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0xc + bl Menu_PrintText +._52: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xf + bls ._55 @cond_branch + pop {r4, r5, r6} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808F6BC + + thumb_func_start debug_sub_808F7B4 +debug_sub_808F7B4: + push {r4, r5, r6, lr} + mov r4, #0x0 + ldr r5, ._59 @ gStringVar1 + ldr r6, ._59 + 4 @ gSaveBlock1 +._56: + lsl r0, r4, #0x3 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldr r1, ._59 + 8 @ 0x2739 + add r0, r0, r1 + ldrb r1, [r0] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + lsl r1, r4, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x14 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x0 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + bls ._56 @cond_branch + mov r4, #0x5 + ldr r5, ._59 @ gStringVar1 + ldr r6, ._59 + 4 @ gSaveBlock1 +._61: + lsl r0, r4, #0x3 + add r0, r0, r4 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldr r1, ._59 + 8 @ 0x2739 + add r0, r0, r1 + ldrb r1, [r0] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + cmp r4, #0xe + bhi ._57 @cond_branch + lsl r1, r4, #0x19 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x3 + bl Menu_PrintText + b ._58 +._60: + .align 2, 0 +._59: + .word gStringVar1 + .word gSaveBlock1 + .word 0x2739 +._57: + lsl r1, r4, #0x19 + mov r0, #0xec + lsl r0, r0, #0x18 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x6 + bl Menu_PrintText +._58: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x17 + bls ._61 @cond_branch + mov r4, #0x0 + ldr r5, ._64 @ gStringVar1 +._66: + ldr r0, ._64 + 4 @ gSaveBlock1 + lsl r1, r4, #0x2 + add r1, r1, r0 + ldr r0, ._64 + 8 @ 0x2abd + add r1, r1, r0 + ldrb r1, [r1] + add r0, r5, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + cmp r4, #0x7 + bhi ._62 @cond_branch + lsl r1, r4, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x14 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0x9 + bl Menu_PrintText + b ._63 +._65: + .align 2, 0 +._64: + .word gStringVar1 + .word gSaveBlock1 + .word 0x2abd +._62: + lsl r1, r4, #0x19 + mov r0, #0xfa + lsl r0, r0, #0x18 + add r1, r1, r0 + lsr r1, r1, #0x18 + add r0, r5, #0 + mov r2, #0xc + bl Menu_PrintText +._63: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xf + bls ._66 @cond_branch + pop {r4, r5, r6} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808F7B4 + + thumb_func_start debug_sub_808F8AC +debug_sub_808F8AC: + push {lr} + ldr r0, ._67 @ 0x832 + bl FlagSet + ldr r0, ._67 + 4 @ 0x818 + bl FlagSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._68: + .align 2, 0 +._67: + .word 0x832 + .word 0x818 + + thumb_func_end debug_sub_808F8AC + + thumb_func_start debug_sub_808F8CC +debug_sub_808F8CC: + push {r4, lr} + ldr r1, ._69 @ gDebug_03000724 + mov r0, #0x0 + strb r0, [r1] + ldr r0, ._69 + 4 @ gUnknown_Debug_083C49CA + bl sub_8071F40 + mov r0, #0xd + mov r1, #0x6 + mov r2, #0x1a + mov r3, #0x8 + bl Menu_BlankWindowRect + ldr r0, ._69 + 8 @ gUnknown_Debug_083C4ABD + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x16 + mov r1, #0x1 + mov r2, #0x18 + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r4, ._69 + 12 @ gStringVar1 + add r0, r4, #0 + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x17 + mov r2, #0x1 + bl Menu_PrintText + ldr r1, ._69 + 16 @ gMenuCallback + ldr r0, ._69 + 20 @ debug_sub_808F93C + str r0, [r1] + pop {r4} + pop {r0} + bx r0 +._70: + .align 2, 0 +._69: + .word gDebug_03000724 + .word gUnknown_Debug_083C49CA + .word gUnknown_Debug_083C4ABD+0xf + .word gStringVar1 + .word gMenuCallback + .word debug_sub_808F93C+1 + + thumb_func_end debug_sub_808F8CC + + thumb_func_start debug_sub_808F93C +debug_sub_808F93C: + push {r4, lr} + mov r2, #0x0 + ldr r0, ._83 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._71 @cond_branch + ldr r1, ._83 + 4 @ gDebug_03000725 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x18 + bne ._72 @cond_branch + strb r2, [r1] +._72: + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._71: + ldr r0, ._83 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._73 @cond_branch + ldr r1, ._83 + 4 @ gDebug_03000725 + ldrb r0, [r1] + cmp r0, #0 + bne ._74 @cond_branch + mov r0, #0x18 + strb r0, [r1] +._74: + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._73: + ldr r0, ._83 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._75 @cond_branch + ldr r1, ._83 + 8 @ gDebug_03000724 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0xc + bne ._76 @cond_branch + mov r0, #0x0 + strb r0, [r1] +._76: + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._75: + ldr r0, ._83 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._77 @cond_branch + ldr r1, ._83 + 8 @ gDebug_03000724 + ldrb r0, [r1] + cmp r0, #0 + bne ._78 @cond_branch + mov r0, #0xc + strb r0, [r1] +._78: + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._77: + cmp r2, #0 + beq ._79 @cond_branch + mov r0, #0xd + mov r1, #0x6 + mov r2, #0x1a + mov r3, #0x8 + bl Menu_BlankWindowRect + ldr r1, ._83 + 12 @ gUnknown_Debug_083C4ABD + ldr r0, ._83 + 8 @ gDebug_03000724 + ldrb r0, [r0] + lsl r0, r0, #0x2 + add r0, r0, r1 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x16 + mov r1, #0x1 + mov r2, #0x18 + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r4, ._83 + 16 @ gStringVar1 + ldr r0, ._83 + 4 @ gDebug_03000725 + ldrb r1, [r0] + add r0, r4, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x17 + mov r2, #0x1 + bl Menu_PrintText +._79: + ldr r4, ._83 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._80 @cond_branch + mov r0, #0x15 + bl PlaySE + ldr r0, ._83 + 4 @ gDebug_03000725 + ldrb r0, [r0] + ldr r2, ._83 + 20 @ gUnknown_Debug_083C4ABD + ldr r1, ._83 + 8 @ gDebug_03000724 + ldrb r1, [r1] + add r1, r1, r2 + ldrb r1, [r1] + bl debug_sub_808FA88 +._80: + ldrh r1, [r4, #0x2e] + mov r0, #0xa + and r0, r0, r1 + cmp r0, #0 + bne ._81 @cond_branch + mov r0, #0x0 + b ._82 +._84: + .align 2, 0 +._83: + .word gMain + .word gDebug_03000725 + .word gDebug_03000724 + .word gUnknown_Debug_083C4ABD+0xf + .word gStringVar1 + .word gUnknown_Debug_083C4ABD +._81: + ldr r0, ._85 @ gSaveBlock1 + bl sub_80BF588 + bl CloseMenu + mov r0, #0x1 +._82: + pop {r4} + pop {r1} + bx r1 +._86: + .align 2, 0 +._85: + .word gSaveBlock1+0x2738 + + thumb_func_end debug_sub_808F93C + + thumb_func_start debug_sub_808FA88 +debug_sub_808FA88: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add sp, sp, #0xffffffcc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + lsl r1, r1, #0x18 + lsr r7, r1, #0x18 + bl GetLeadMonIndex + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r9, r0 + ldr r3, ._92 @ gSaveBlock1 + lsl r4, r6, #0x3 + add r2, r4, r6 + lsl r2, r2, #0x2 + add r0, r2, r3 + ldr r5, ._92 + 4 @ 0x2738 + add r1, r0, r5 + strb r7, [r1] + ldr r1, ._92 + 8 @ 0x2739 + add r0, r0, r1 + mov r1, #0x1 + strb r1, [r0] + mov r1, #0x0 + ldr r0, ._92 + 12 @ 0x273a + add r5, r3, r0 + mov r3, #0x1 +._87: + add r0, r1, r2 + add r0, r0, r5 + strb r3, [r0] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x21 + bls ._87 @cond_branch + add r0, r7, #0 + bl GetTVChannelByShowType + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r1, r0, #0 + cmp r0, #0x3 + beq ._88 @cond_branch + cmp r0, #0x3 + bgt ._89 @cond_branch + cmp r0, #0x2 + beq ._90 @cond_branch + b ._95 +._93: + .align 2, 0 +._92: + .word gSaveBlock1 + .word 0x2738 + .word 0x2739 + .word 0x273a +._89: + cmp r1, #0x4 + bne ._95 @cond_branch +._90: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._96 @ gSaveBlock1 + add r0, r0, r1 + bl sub_80BE160 + b ._95 +._97: + .align 2, 0 +._96: + .word gSaveBlock1+0x2738 +._88: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._100 @ gSaveBlock1 + add r0, r0, r1 + bl sub_80BE138 +._95: + sub r0, r7, #1 + cmp r0, #0x28 + bls ._98 @cond_branch + b ._173 +._98: + lsl r0, r0, #0x2 + ldr r1, ._100 + 4 @ + add r0, r0, r1 + ldr r0, [r0] + mov pc, r0 +._101: + .align 2, 0 +._100: + .word gSaveBlock1+0x2738 + .word ._102 +._102: + .word ._104 + .word ._104 + .word ._105 + .word ._173 + .word ._107 + .word ._108 + .word ._109 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._123 + .word ._124 + .word ._125 + .word ._126 + .word ._127 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._173 + .word ._143 +._104: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._145 @ gSaveBlock1 + add r4, r0, r1 + mov r2, #0x1 + strh r2, [r4, #0x2] + add r1, r1, #0x10 + add r0, r0, r1 + ldr r1, ._145 + 4 @ gSaveBlock2 + bl StringCopy + mov r0, #0x5 + strb r0, [r4, #0x18] + b ._173 +._146: + .align 2, 0 +._145: + .word gSaveBlock1+0x2738 + .word gSaveBlock2 +._105: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r6, ._148 @ gSaveBlock1 + add r1, r4, r6 + mov r8, r1 + mov r0, #0x1 + strh r0, [r1, #0x2] + add r0, r6, #5 + add r0, r4, r0 + ldr r1, ._148 + 4 @ gSaveBlock2 + bl StringCopy + mov r0, #0x64 + mov r5, r9 + mul r5, r5, r0 + ldr r0, ._148 + 8 @ gPlayerParty + add r5, r5, r0 + add r6, r6, #0x10 + add r4, r4, r6 + add r0, r5, #0 + mov r1, #0x2 + add r2, r4, #0 + bl GetMonData + mov r0, #0x5 + mov r1, r8 + strb r0, [r1, #0xd] + add r0, r5, #0 + mov r1, #0x3 + bl GetMonData + mov r5, r8 + strb r0, [r5, #0xe] + b ._173 +._149: + .align 2, 0 +._148: + .word gSaveBlock1+0x2738 + .word gSaveBlock2 + .word gPlayerParty +._107: + mov r0, #0x64 + mov r1, r9 + mul r1, r1, r0 + mov r8, r1 + ldr r0, ._151 @ gPlayerParty + add r8, r8, r0 + mov r0, r8 + mov r1, #0xb + bl GetMonData + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r5, ._151 + 4 @ gSaveBlock1 + add r6, r4, r5 + strh r0, [r6, #0x2] + mov r0, #0x1 + strh r0, [r6, #0x1c] + add r0, r5, #0 + add r0, r0, #0xf + add r0, r4, r0 + ldr r1, ._151 + 8 @ gSaveBlock2 + bl StringCopy + add r5, r5, #0x4 + add r4, r4, r5 + mov r0, r8 + mov r1, #0x2 + add r2, r4, #0 + bl GetMonData + mov r0, #0x5 + strb r0, [r6, #0x1e] + mov r0, r8 + mov r1, #0x3 + bl GetMonData + strb r0, [r6, #0x1f] + b ._173 +._152: + .align 2, 0 +._151: + .word gPlayerParty + .word gSaveBlock1+0x2738 + .word gSaveBlock2 +._108: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r6, ._154 @ gSaveBlock1 + add r5, r4, r6 + mov r8, r5 + mov r0, #0x1 + strh r0, [r5, #0x2] + add r0, r6, #0 + add r0, r0, #0x16 + add r0, r4, r0 + ldr r1, ._154 + 4 @ gSaveBlock2 + bl StringCopy + mov r0, #0x64 + mov r5, r9 + mul r5, r5, r0 + ldr r0, ._154 + 8 @ gPlayerParty + add r5, r5, r0 + add r6, r6, #0x8 + add r4, r4, r6 + add r0, r5, #0 + mov r1, #0x2 + add r2, r4, #0 + bl GetMonData + mov r0, #0x5 + mov r1, r8 + strb r0, [r1, #0x1e] + add r0, r5, #0 + mov r1, #0x3 + bl GetMonData + mov r5, r8 + strb r0, [r5, #0x1f] + b ._173 +._155: + .align 2, 0 +._154: + .word gSaveBlock1+0x2738 + .word gSaveBlock2 + .word gPlayerParty +._109: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r5, ._157 @ gSaveBlock1 + add r6, r4, r5 + mov r0, #0x1 + strh r0, [r6, #0xa] + strh r0, [r6, #0x14] + add r0, r5, #2 + add r0, r4, r0 + ldr r1, ._157 + 4 @ gSaveBlock2 + mov r8, r1 + bl StringCopy + add r5, r5, #0xc + add r4, r4, r5 + add r0, r4, #0 + mov r1, r8 + bl StringCopy + mov r0, #0x5 + strb r0, [r6, #0x1d] + b ._173 +._158: + .align 2, 0 +._157: + .word gSaveBlock1+0x2738 + .word gSaveBlock2 +._143: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._160 @ gSaveBlock1 + add r0, r0, r1 + mov r1, #0x1 + strh r1, [r0, #0xc] + strh r1, [r0, #0x16] + b ._173 +._161: + .align 2, 0 +._160: + .word gSaveBlock1+0x2738 +._123: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r0, ._163 @ gSaveBlock1 + add r4, r4, r0 + ldr r1, ._163 + 4 @ gUnknown_Debug_083C4C64 + mov r0, sp + mov r2, #0x8 + bl memcpy + add r5, sp, #0x8 + ldr r1, ._163 + 8 @ gUnknown_Debug_083C4C6C + add r0, r5, #0 + mov r2, #0xb + bl memcpy + mov r0, #0xff + strb r0, [r4, #0x12] + add r0, r4, #0 + add r0, r0, #0x13 + mov r1, sp + bl StringCopy + add r0, r4, #4 + add r1, r5, #0 + bl StringCopy + mov r0, #0xc + strb r0, [r4, #0xf] + mov r0, #0x28 + strh r0, [r4, #0x10] + mov r0, #0x5 + strb r0, [r4, #0x2] + strb r0, [r4, #0x3] + b ._173 +._164: + .align 2, 0 +._163: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 + .word gUnknown_Debug_083C4C6C +._124: + add r0, r4, r6 + lsl r0, r0, #0x2 + ldr r1, ._168 @ gSaveBlock1 + add r5, r0, r1 + add r4, sp, #0x14 + ldr r1, ._168 + 4 @ gUnknown_Debug_083C4C64 + add r0, r4, #0 + mov r2, #0x8 + bl memcpy + add r1, r4, #0 + mov r3, #0xfe + mov r2, #0x2 + add r0, r5, #0 + add r0, r0, #0x10 +._165: + strh r3, [r0] + sub r0, r0, #0x2 + sub r2, r2, #0x1 + cmp r2, #0 + bge ._165 @cond_branch + mov r0, #0x1 + strb r0, [r5, #0x2] + mov r0, #0x28 + strb r0, [r5, #0x12] + add r0, r5, #0 + add r0, r0, #0x13 + add r3, r5, #6 + mov r6, #0x1e + add r2, r5, #0 + add r2, r2, #0xa +._166: + strh r6, [r2] + sub r2, r2, #0x2 + cmp r2, r3 + bge ._166 @cond_branch + bl StringCopy + mov r0, #0x5 + strb r0, [r5, #0x3] + b ._173 +._169: + .align 2, 0 +._168: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 +._125: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r0, ._171 @ gSaveBlock1 + add r4, r4, r0 + add r5, sp, #0x1c + ldr r1, ._171 + 4 @ gUnknown_Debug_083C4C64 + add r0, r5, #0 + mov r2, #0x8 + bl memcpy + mov r0, #0x28 + strh r0, [r4, #0xc] + strh r0, [r4, #0xe] + mov r0, #0x3 + strb r0, [r4, #0x12] + mov r0, #0xff + strb r0, [r4, #0x10] + mov r0, #0x1 + strb r0, [r4, #0x11] + add r0, r4, #0 + add r0, r0, #0x13 + add r1, r5, #0 + bl StringCopy + mov r0, #0x5 + strb r0, [r4, #0x2] + b ._173 +._172: + .align 2, 0 +._171: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 +._126: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r0, ._174 @ gSaveBlock1 + add r4, r4, r0 + add r5, sp, #0x24 + ldr r1, ._174 + 4 @ gUnknown_Debug_083C4C64 + add r0, r5, #0 + mov r2, #0x8 + bl memcpy + mov r0, #0xff + strb r0, [r4, #0x2] + mov r0, #0x0 + strb r0, [r4, #0x3] + mov r0, #0x28 + strh r0, [r4, #0x4] + add r0, r4, #0 + add r0, r0, #0x13 + add r1, r5, #0 + bl StringCopy + mov r0, #0x5 + strb r0, [r4, #0x6] + b ._173 +._175: + .align 2, 0 +._174: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 +._127: + add r4, r4, r6 + lsl r4, r4, #0x2 + ldr r0, ._176 @ gSaveBlock1 + add r4, r4, r0 + add r5, sp, #0x2c + ldr r1, ._176 + 4 @ gUnknown_Debug_083C4C64 + add r0, r5, #0 + mov r2, #0x8 + bl memcpy + ldr r0, ._176 + 8 @ 0xffff + strh r0, [r4, #0x2] + mov r0, #0x1 + neg r0, r0 + strh r0, [r4, #0x6] + mov r0, #0x28 + strh r0, [r4, #0x4] + strh r0, [r4, #0x8] + mov r0, #0x3 + strb r0, [r4, #0xa] + add r0, r4, #0 + add r0, r0, #0x13 + add r1, r5, #0 + bl StringCopy + mov r0, #0x5 + strb r0, [r4, #0xb] +._173: + add sp, sp, #0x34 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._177: + .align 2, 0 +._176: + .word gSaveBlock1+0x2738 + .word gUnknown_Debug_083C4C64 + .word 0xffff + + thumb_func_end debug_sub_808FA88 + + thumb_func_start debug_sub_808FEBC +debug_sub_808FEBC: + push {lr} + bl ClearTVShowData + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_808FEBC + + thumb_func_start debug_sub_808FECC +debug_sub_808FECC: + push {r4, lr} + ldr r1, ._178 @ gDebug_03000724 + mov r0, #0x0 + strb r0, [r1] + ldr r0, ._178 + 4 @ gUnknown_Debug_083C49CA + bl sub_8071F40 + mov r0, #0xd + mov r1, #0x6 + mov r2, #0x17 + mov r3, #0x8 + bl Menu_BlankWindowRect + ldr r0, ._178 + 8 @ gUnknown_Debug_083C4B20 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x16 + mov r1, #0x1 + mov r2, #0x18 + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r4, ._178 + 12 @ gStringVar1 + add r0, r4, #0 + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x17 + mov r2, #0x1 + bl Menu_PrintText + ldr r1, ._178 + 16 @ gMenuCallback + ldr r0, ._178 + 20 @ debug_sub_808FF3C + str r0, [r1] + pop {r4} + pop {r0} + bx r0 +._179: + .align 2, 0 +._178: + .word gDebug_03000724 + .word gUnknown_Debug_083C49CA + .word gUnknown_Debug_083C4B20+0x4 + .word gStringVar1 + .word gMenuCallback + .word debug_sub_808FF3C+1 + + thumb_func_end debug_sub_808FECC + + thumb_func_start debug_sub_808FF3C +debug_sub_808FF3C: + push {r4, lr} + mov r2, #0x0 + ldr r0, ._192 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._180 @cond_branch + ldr r1, ._192 + 4 @ gDebug_03000725 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x10 + bne ._181 @cond_branch + strb r2, [r1] +._181: + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._180: + ldr r0, ._192 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._182 @cond_branch + ldr r1, ._192 + 4 @ gDebug_03000725 + ldrb r0, [r1] + cmp r0, #0 + bne ._183 @cond_branch + mov r0, #0x10 + strb r0, [r1] +._183: + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._182: + ldr r0, ._192 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._184 @cond_branch + ldr r1, ._192 + 8 @ gDebug_03000724 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x3 + bne ._185 @cond_branch + mov r0, #0x0 + strb r0, [r1] +._185: + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._184: + ldr r0, ._192 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._186 @cond_branch + ldr r1, ._192 + 8 @ gDebug_03000724 + ldrb r0, [r1] + cmp r0, #0 + bne ._187 @cond_branch + mov r0, #0x3 + strb r0, [r1] +._187: + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x5 + bl PlaySE + mov r2, #0x1 +._186: + cmp r2, #0 + beq ._188 @cond_branch + mov r0, #0xd + mov r1, #0x6 + mov r2, #0x17 + mov r3, #0x8 + bl Menu_BlankWindowRect + ldr r1, ._192 + 12 @ gUnknown_Debug_083C4B20 + ldr r0, ._192 + 8 @ gDebug_03000724 + ldrb r0, [r0] + lsl r0, r0, #0x2 + add r0, r0, r1 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + mov r0, #0x16 + mov r1, #0x1 + mov r2, #0x18 + mov r3, #0x2 + bl Menu_BlankWindowRect + ldr r4, ._192 + 16 @ gStringVar1 + ldr r0, ._192 + 4 @ gDebug_03000725 + ldrb r1, [r0] + add r0, r4, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x17 + mov r2, #0x1 + bl Menu_PrintText +._188: + ldr r4, ._192 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._189 @cond_branch + mov r0, #0x15 + bl PlaySE + ldr r0, ._192 + 4 @ gDebug_03000725 + ldrb r0, [r0] + ldr r2, ._192 + 20 @ gUnknown_Debug_083C4B20 + ldr r1, ._192 + 8 @ gDebug_03000724 + ldrb r1, [r1] + add r1, r1, r2 + ldrb r1, [r1] + bl debug_sub_8090080 +._189: + ldrh r1, [r4, #0x2e] + mov r0, #0xa + and r0, r0, r1 + cmp r0, #0 + bne ._190 @cond_branch + mov r0, #0x0 + b ._191 +._193: + .align 2, 0 +._192: + .word gMain + .word gDebug_03000725 + .word gDebug_03000724 + .word gUnknown_Debug_083C4B20+0x4 + .word gStringVar1 + .word gUnknown_Debug_083C4B20 +._190: + bl sub_80BEC40 + bl CloseMenu + mov r0, #0x1 +._191: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808FF3C + + thumb_func_start debug_sub_8090080 +debug_sub_8090080: + lsl r0, r0, #0x18 + ldr r2, ._194 @ gSaveBlock1 + lsr r0, r0, #0x16 + add r0, r0, r2 + ldr r3, ._194 + 4 @ 0x2abc + add r2, r0, r3 + strb r1, [r2] + ldr r1, ._194 + 8 @ 0x2abd + add r2, r0, r1 + mov r1, #0x1 + strb r1, [r2] + add r3, r3, #0x2 + add r0, r0, r3 + mov r1, #0x4 + strh r1, [r0] + bx lr +._195: + .align 2, 0 +._194: + .word gSaveBlock1 + .word 0x2abc + .word 0x2abd + + thumb_func_end debug_sub_8090080 + + thumb_func_start debug_sub_80900AC +debug_sub_80900AC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r7, #0x0 + mov r5, #0x0 + ldr r0, ._202 @ gSaveBlock1 + mov r8, r0 +._198: + lsl r0, r5, #0x3 + add r0, r0, r5 + lsl r0, r0, #0x2 + mov r1, r8 + add r6, r0, r1 + ldr r1, ._202 + 4 @ 0x2738 + add r0, r6, r1 + ldrb r4, [r0] + cmp r4, #0 + bne ._196 @cond_branch + cmp r7, #0xc + bne ._197 @cond_branch + mov r7, #0x0 +._197: + ldr r0, ._202 + 8 @ gUnknown_Debug_083C4ABD + add r0, r7, r0 + ldrb r1, [r0] + add r0, r5, #0 + bl debug_sub_808FA88 + ldr r1, ._202 + 12 @ 0x2739 + add r0, r6, r1 + strb r4, [r0] + add r0, r7, #1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._196: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x17 + bls ._198 @cond_branch + mov r7, #0x0 + mov r5, #0x0 +._201: + ldr r0, ._202 @ gSaveBlock1 + lsl r1, r5, #0x2 + add r1, r1, r0 + ldr r0, ._202 + 16 @ 0x2abc + add r1, r1, r0 + ldrb r0, [r1] + cmp r0, #0 + bne ._199 @cond_branch + cmp r7, #0x3 + bne ._200 @cond_branch + mov r7, #0x0 +._200: + ldr r0, ._202 + 20 @ gUnknown_Debug_083C4B20 + add r0, r7, r0 + ldrb r1, [r0] + add r0, r5, #0 + bl debug_sub_8090080 + add r0, r7, #1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._199: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0xf + bls ._201 @cond_branch + bl CloseMenu + mov r0, #0x1 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._203: + .align 2, 0 +._202: + .word gSaveBlock1 + .word 0x2738 + .word gUnknown_Debug_083C4ABD + .word 0x2739 + .word 0x2abc + .word gUnknown_Debug_083C4B20 + + thumb_func_end debug_sub_80900AC + + thumb_func_start NoharaDebugMenu_Fan +NoharaDebugMenu_Fan: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._204 @ gUnknown_Debug_083C4D28 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._204 + 4 @ gMenuCallback + ldr r0, ._204 + 8 @ debug_sub_80901A4 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._205: + .align 2, 0 +._204: + .word gUnknown_Debug_083C4D28 + .word gMenuCallback + .word debug_sub_80901A4+1 + + thumb_func_end NoharaDebugMenu_Fan + + thumb_func_start debug_sub_80901A4 +debug_sub_80901A4: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._206 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + beq ._207 @cond_branch + ldr r2, ._209 @ gMenuCallback + ldr r0, ._209 + 4 @ gUnknown_Debug_083C4D28 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] +._206: + mov r0, #0x0 + b ._208 +._210: + .align 2, 0 +._209: + .word gMenuCallback + .word gUnknown_Debug_083C4D28 +._207: + bl CloseMenu + mov r0, #0x1 +._208: + pop {r1} + bx r1 + + thumb_func_end debug_sub_80901A4 + + thumb_func_start debug_sub_80901E4 +debug_sub_80901E4: + push {lr} + bl ResetFanClub + bl sub_810FAA0 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_80901E4 + + thumb_func_start debug_sub_80901F8 +debug_sub_80901F8: + push {lr} + bl sub_810FB9C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._211 @ gUnknown_Debug_083C4CA8 + ldr r1, ._211 + 4 @ gUnknown_083F8408 + add r0, r0, r1 + ldrb r0, [r0] + sub r0, r0, #0x8 + lsl r0, r0, #0x2 + add r0, r0, r2 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + ldr r1, ._211 + 8 @ gMenuCallback + ldr r0, ._211 + 12 @ debug_sub_8090278 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._212: + .align 2, 0 +._211: + .word gUnknown_Debug_083C4CA8 + .word gUnknown_083F8408 + .word gMenuCallback + .word debug_sub_8090278+1 + + thumb_func_end debug_sub_80901F8 + + thumb_func_start debug_sub_8090238 +debug_sub_8090238: + push {lr} + bl sub_810FC18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._213 @ gUnknown_Debug_083C4CA8 + ldr r1, ._213 + 4 @ gUnknown_083F8410 + add r0, r0, r1 + ldrb r0, [r0] + sub r0, r0, #0x8 + lsl r0, r0, #0x2 + add r0, r0, r2 + ldr r0, [r0] + mov r1, #0xe + mov r2, #0x7 + bl Menu_PrintText + ldr r1, ._213 + 8 @ gMenuCallback + ldr r0, ._213 + 12 @ debug_sub_8090278 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._214: + .align 2, 0 +._213: + .word gUnknown_Debug_083C4CA8 + .word gUnknown_083F8410 + .word gMenuCallback + .word debug_sub_8090278+1 + + thumb_func_end debug_sub_8090238 + + thumb_func_start debug_sub_8090278 +debug_sub_8090278: + push {lr} + ldr r0, ._217 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + bne ._215 @cond_branch + mov r0, #0x0 + b ._216 +._218: + .align 2, 0 +._217: + .word gMain +._215: + bl CloseMenu + mov r0, #0x1 +._216: + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090278 + + thumb_func_start debug_sub_809029C +debug_sub_809029C: + push {r4, lr} + ldr r4, ._219 @ gStringVar1 + ldr r0, ._219 + 4 @ gSaveBlock1 + ldr r1, ._219 + 8 @ 0x13c2 + add r0, r0, r1 + ldrh r0, [r0] + mov r1, #0x7f + and r1, r1, r0 + add r0, r4, #0 + mov r2, #0x0 + mov r3, #0x2 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x10 + mov r2, #0x7 + bl Menu_PrintText + ldr r1, ._219 + 12 @ gMenuCallback + ldr r0, ._219 + 16 @ debug_sub_8090278 + str r0, [r1] + mov r0, #0x0 + pop {r4} + pop {r1} + bx r1 +._220: + .align 2, 0 +._219: + .word gStringVar1 + .word gSaveBlock1 + .word 0x13c2 + .word gMenuCallback + .word debug_sub_8090278+1 + + thumb_func_end debug_sub_809029C + + thumb_func_start debug_sub_80902E4 +debug_sub_80902E4: + push {lr} + ldr r1, ._221 @ gSaveBlock2 + ldrh r0, [r1, #0xe] + add r0, r0, #0x6 + strh r0, [r1, #0xe] + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._222: + .align 2, 0 +._221: + .word gSaveBlock2 + + thumb_func_end debug_sub_80902E4 + + thumb_func_start debug_sub_80902FC +debug_sub_80902FC: + push {lr} + mov r0, #0x0 + bl sub_810FB10 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_80902FC + + thumb_func_start debug_sub_8090310 +debug_sub_8090310: + push {lr} + mov r0, #0x1 + bl sub_810FB10 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090310 + + thumb_func_start debug_sub_8090324 +debug_sub_8090324: + push {lr} + mov r0, #0x2 + bl sub_810FB10 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090324 + + thumb_func_start debug_sub_8090338 +debug_sub_8090338: + push {lr} + mov r0, #0x3 + bl sub_810FB10 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090338 + + thumb_func_start NoharaDebugMenu_BattleVSDad +NoharaDebugMenu_BattleVSDad: + push {lr} + ldr r0, ._223 @ 0x4085 + mov r1, #0x6 + bl VarSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._224: + .align 2, 0 +._223: + .word 0x4085 + + thumb_func_end NoharaDebugMenu_BattleVSDad + + thumb_func_start NoharaDebugMenu_DadAfterBattle +NoharaDebugMenu_DadAfterBattle: + push {lr} + ldr r0, ._225 @ 0x4085 + mov r1, #0x7 + bl VarSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._226: + .align 2, 0 +._225: + .word 0x4085 + + thumb_func_end NoharaDebugMenu_DadAfterBattle + + thumb_func_start NoharaDebugMenu_SootopolisCity +NoharaDebugMenu_SootopolisCity: + push {lr} + mov r0, #0x81 + bl FlagSet + mov r0, #0x71 + bl FlagSet + ldr r0, ._227 @ 0x32f + bl FlagClear + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._228: + .align 2, 0 +._227: + .word 0x32f + + thumb_func_end NoharaDebugMenu_SootopolisCity + + thumb_func_start NoharaDebugMenu_Embark +NoharaDebugMenu_Embark: + push {lr} + ldr r0, ._229 @ 0x2e3 + bl FlagClear + ldr r0, ._229 + 4 @ 0x4090 + mov r1, #0x1 + bl VarSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._230: + .align 2, 0 +._229: + .word 0x2e3 + .word 0x4090 + + thumb_func_end NoharaDebugMenu_Embark + + thumb_func_start NoharaDebugMenu_Yes9999 +NoharaDebugMenu_Yes9999: + push {lr} + ldr r0, ._231 @ 0x4048 + ldr r1, ._231 + 4 @ 0x270f + bl VarSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._232: + .align 2, 0 +._231: + .word 0x4048 + .word 0x270f + + thumb_func_end NoharaDebugMenu_Yes9999 + + thumb_func_start NoharaDebugMenu_LegendsFlagOn +NoharaDebugMenu_LegendsFlagOn: + push {lr} + mov r0, #0xe4 + bl FlagSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end NoharaDebugMenu_LegendsFlagOn + + thumb_func_start NoharaDebugMenu_AddNumWinningStreaks +NoharaDebugMenu_AddNumWinningStreaks: + push {lr} + ldr r0, ._235 @ gSaveBlock2 + ldr r1, ._235 + 4 @ 0x572 + add r2, r0, r1 + ldrh r1, [r2] + cmp r1, #0x31 + bhi ._233 @cond_branch + mov r0, #0x32 + b ._244 +._236: + .align 2, 0 +._235: + .word gSaveBlock2 + .word 0x572 +._233: + cmp r1, #0x63 + bhi ._237 @cond_branch + mov r0, #0x64 + b ._244 +._237: + ldr r0, ._241 @ 0x3e7 + cmp r1, r0 + bhi ._239 @cond_branch + add r0, r0, #0x1 + b ._244 +._242: + .align 2, 0 +._241: + .word 0x3e7 +._239: + ldr r0, ._245 @ 0x1387 + cmp r1, r0 + bhi ._243 @cond_branch + ldr r0, ._245 + 4 @ 0x2706 + b ._244 +._246: + .align 2, 0 +._245: + .word 0x1387 + .word 0x2706 +._243: + ldr r0, ._248 @ 0x2705 + cmp r1, r0 + bhi ._247 @cond_branch + add r0, r0, #0xa +._244: + strh r0, [r2] +._247: + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._249: + .align 2, 0 +._248: + .word 0x2705 + + thumb_func_end NoharaDebugMenu_AddNumWinningStreaks + + .align 2, 0 + +.endif diff --git a/asm/normal.s b/asm/normal.s index a800b348a..fffbc3870 100755..100644 --- a/asm/normal.s +++ b/asm/normal.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -1103,15 +1103,15 @@ _080E24F0: beq _080E2508 b _080E2518 _080E24F6: - ldr r1, _080E24FC @ =gUnknown_030041B0 + ldr r1, _080E24FC @ =gBattle_BG3_X b _080E250A .align 2, 0 -_080E24FC: .4byte gUnknown_030041B0 +_080E24FC: .4byte gBattle_BG3_X _080E2500: - ldr r1, _080E2504 @ =gUnknown_030041B8 + ldr r1, _080E2504 @ =gBattle_BG3_Y b _080E250A .align 2, 0 -_080E2504: .4byte gUnknown_030041B8 +_080E2504: .4byte gBattle_BG3_Y _080E2508: ldr r1, _080E2514 @ =gSpriteCoordOffsetX _080E250A: @@ -1359,10 +1359,10 @@ sub_80E26BC: @ 80E26BC strh r1, [r2, 0xE] ldrh r1, [r3, 0x6] strh r1, [r2, 0x18] - ldr r4, _080E2704 @ =gUnknown_030041B0 + ldr r4, _080E2704 @ =gBattle_BG3_X ldrh r1, [r3] strh r1, [r4] - ldr r4, _080E2708 @ =gUnknown_030041B8 + ldr r4, _080E2708 @ =gBattle_BG3_Y ldrh r1, [r3, 0x2] strh r1, [r4] ldr r1, _080E270C @ =sub_80E2710 @@ -1374,8 +1374,8 @@ sub_80E26BC: @ 80E26BC .align 2, 0 _080E26FC: .4byte gTasks _080E2700: .4byte gBattleAnimArgs -_080E2704: .4byte gUnknown_030041B0 -_080E2708: .4byte gUnknown_030041B8 +_080E2704: .4byte gBattle_BG3_X +_080E2708: .4byte gBattle_BG3_Y _080E270C: .4byte sub_80E2710 thumb_func_end sub_80E26BC @@ -1395,7 +1395,7 @@ sub_80E2710: @ 80E2710 mov r12, r1 cmp r0, 0 bne _080E2796 - ldr r0, _080E2744 @ =gUnknown_030041B0 + ldr r0, _080E2744 @ =gBattle_BG3_X ldrh r2, [r0] movs r7, 0x8 ldrsh r1, [r3, r7] @@ -1407,12 +1407,12 @@ sub_80E2710: @ 80E2710 b _080E274A .align 2, 0 _080E2740: .4byte gTasks -_080E2744: .4byte gUnknown_030041B0 +_080E2744: .4byte gBattle_BG3_X _080E2748: ldrh r0, [r3, 0x8] _080E274A: strh r0, [r6] - ldr r2, _080E2768 @ =gUnknown_030041B8 + ldr r2, _080E2768 @ =gBattle_BG3_Y ldrh r3, [r2] lsls r1, r5, 2 adds r0, r1, r5 @@ -1426,7 +1426,7 @@ _080E274A: movs r0, 0 b _080E2770 .align 2, 0 -_080E2768: .4byte gUnknown_030041B8 +_080E2768: .4byte gBattle_BG3_Y _080E276C: ldrh r0, [r4, 0xA] negs r0, r0 @@ -3905,13 +3905,13 @@ sub_80E3AD0: @ 80E3AD0 ldrh r7, [r1, 0x1E] adds r2, r7 strh r2, [r1, 0x1E] - ldr r6, _080E3B40 @ =gUnknown_030041B0 + ldr r6, _080E3B40 @ =gBattle_BG3_X lsls r0, r3, 16 asrs r0, 24 ldrh r4, [r6] adds r0, r4 strh r0, [r6] - ldr r4, _080E3B44 @ =gUnknown_030041B8 + ldr r4, _080E3B44 @ =gBattle_BG3_Y lsls r0, r2, 16 asrs r0, 24 ldrh r7, [r4] @@ -3942,8 +3942,8 @@ _080E3B36: bx r0 .align 2, 0 _080E3B3C: .4byte gTasks -_080E3B40: .4byte gUnknown_030041B0 -_080E3B44: .4byte gUnknown_030041B8 +_080E3B40: .4byte gBattle_BG3_X +_080E3B44: .4byte gBattle_BG3_Y _080E3B48: .4byte gBattleAnimArgs thumb_func_end sub_80E3AD0 diff --git a/asm/pc_screen_effect.s b/asm/pc_screen_effect.s index 665978d19..9d36df66c 100755..100644 --- a/asm/pc_screen_effect.s +++ b/asm/pc_screen_effect.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified diff --git a/asm/poison.s b/asm/poison.s deleted file mode 100755 index 234348df2..000000000 --- a/asm/poison.s +++ /dev/null @@ -1,364 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - @ poison - - thumb_func_start sub_80D9D70 -sub_80D9D70: @ 80D9D70 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080D9DC4 @ =gBattleAnimArgs - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D9D86 - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080D9D86: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80787B0 - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x2E] - ldr r4, _080D9DC8 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x32] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x36] - ldr r0, _080D9DCC @ =0x0000ffe2 - strh r0, [r5, 0x38] - adds r0, r5, 0 - bl sub_80786EC - ldr r0, _080D9DD0 @ =sub_80D9DD4 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9DC4: .4byte gBattleAnimArgs -_080D9DC8: .4byte gAnimBankTarget -_080D9DCC: .4byte 0x0000ffe2 -_080D9DD0: .4byte sub_80D9DD4 - thumb_func_end sub_80D9D70 - - thumb_func_start sub_80D9DD4 -sub_80D9DD4: @ 80D9DD4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D9DE8 - adds r0, r4, 0 - bl DestroyAnimSprite -_080D9DE8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9DD4 - - thumb_func_start sub_80D9DF0 -sub_80D9DF0: @ 80D9DF0 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r5, _080D9E64 @ =gBattleAnimArgs - movs r1, 0x6 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D9E08 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim -_080D9E08: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80787B0 - ldr r0, _080D9E68 @ =gAnimBankTarget - ldrb r0, [r0] - mov r6, sp - adds r6, 0x2 - movs r1, 0x1 - mov r2, sp - adds r3, r6, 0 - bl sub_807A3FC - ldr r0, _080D9E6C @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080D9E36 - ldrh r0, [r5, 0x8] - negs r0, r0 - strh r0, [r5, 0x8] -_080D9E36: - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - mov r1, sp - ldrh r0, [r5, 0x8] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r5, 0xA] - ldrh r6, [r6] - adds r0, r6 - strh r0, [r4, 0x36] - ldr r0, _080D9E70 @ =0x0000ffe2 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _080D9E74 @ =sub_80D9E78 - str r0, [r4, 0x1C] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080D9E64: .4byte gBattleAnimArgs -_080D9E68: .4byte gAnimBankTarget -_080D9E6C: .4byte gAnimBankAttacker -_080D9E70: .4byte 0x0000ffe2 -_080D9E74: .4byte sub_80D9E78 - thumb_func_end sub_80D9DF0 - - thumb_func_start sub_80D9E78 -sub_80D9E78: @ 80D9E78 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080D9E8C - adds r0, r4, 0 - bl DestroyAnimSprite -_080D9E8C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9E78 - - thumb_func_start sub_80D9E94 -sub_80D9E94: @ 80D9E94 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D9EE0 @ =gBattleAnimArgs - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - ldrh r1, [r5] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - ldrh r1, [r5, 0x2] - adds r0, r1 - strh r0, [r4, 0x36] - adds r0, r4, 0 - bl sub_8078A5C - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x38] - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r4, 0x3A] - ldr r0, _080D9EE4 @ =sub_80D9EE8 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9EE0: .4byte gBattleAnimArgs -_080D9EE4: .4byte sub_80D9EE8 - thumb_func_end sub_80D9E94 - - thumb_func_start sub_80D9EE8 -sub_80D9EE8: @ 80D9EE8 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078394 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x38] - subs r0, r1 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x3A] - subs r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080D9F0E - adds r0, r4, 0 - bl DestroyAnimSprite -_080D9F0E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9EE8 - - thumb_func_start sub_80D9F14 -sub_80D9F14: @ 80D9F14 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080D9F74 @ =gAnimBankTarget - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC - ldr r0, _080D9F78 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080D9F40 - ldr r1, _080D9F7C @ =gBattleAnimArgs - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080D9F40: - ldr r0, _080D9F7C @ =gBattleAnimArgs - ldrh r2, [r0] - ldrh r1, [r4, 0x20] - adds r2, r1 - strh r2, [r4, 0x20] - ldrh r1, [r0, 0x2] - ldrh r3, [r4, 0x22] - adds r1, r3 - strh r1, [r4, 0x22] - ldrh r3, [r0, 0x8] - strh r3, [r4, 0x2E] - ldrh r0, [r0, 0x4] - adds r2, r0 - strh r2, [r4, 0x32] - adds r1, r3 - strh r1, [r4, 0x36] - ldr r0, _080D9F80 @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080D9F84 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D9F74: .4byte gAnimBankTarget -_080D9F78: .4byte gAnimBankAttacker -_080D9F7C: .4byte gBattleAnimArgs -_080D9F80: .4byte sub_8078B34 -_080D9F84: .4byte DestroyAnimSprite - thumb_func_end sub_80D9F14 - - thumb_func_start sub_80D9F88 -sub_80D9F88: @ 80D9F88 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080D9FA0 @ =gBattleAnimArgs - movs r1, 0x4 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080D9FA4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8078764 - b _080D9FDA - .align 2, 0 -_080D9FA0: .4byte gBattleAnimArgs -_080D9FA4: - ldr r0, _080D9FE4 @ =gAnimBankTarget - ldrb r0, [r0] - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r1, 0x1 - bl sub_807A3FC - ldr r0, _080D9FE8 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080D9FCA - ldrh r0, [r5] - negs r0, r0 - strh r0, [r5] -_080D9FCA: - ldrh r0, [r5] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080D9FDA: - ldr r0, _080D9FEC @ =sub_80D9FF0 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080D9FE4: .4byte gAnimBankTarget -_080D9FE8: .4byte gAnimBankAttacker -_080D9FEC: .4byte sub_80D9FF0 - thumb_func_end sub_80D9F88 - - thumb_func_start sub_80D9FF0 -sub_80D9FF0: @ 80D9FF0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0xB - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x4 - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - adds r0, 0x30 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DA02C - adds r0, r4, 0 - bl DestroyAnimSprite -_080DA02C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D9FF0 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s index fd5555524..779a5a0ed 100644 --- a/asm/pokedex_area_screen.s +++ b/asm/pokedex_area_screen.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s index 5eea28b99..00f8cfe14 100644 --- a/asm/pokedex_cry_screen.s +++ b/asm/pokedex_cry_screen.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s deleted file mode 100644 index 822c4c566..000000000 --- a/asm/pokemon_item_effect.s +++ /dev/null @@ -1,1969 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start ExecuteTableBasedItemEffect_ -ExecuteTableBasedItemEffect_: @ 803E18C - push {r4,lr} - sub sp, 0x4 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0 - str r4, [sp] - bl sub_803E1B0 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end ExecuteTableBasedItemEffect_ - - thumb_func_start sub_803E1B0 -sub_803E1B0: @ 803E1B0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x3C - mov r8, r0 - ldr r0, [sp, 0x5C] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x8] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0xC] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x10] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - movs r0, 0x1 - str r0, [sp, 0x1C] - movs r1, 0x6 - str r1, [sp, 0x24] - movs r2, 0 - str r2, [sp, 0x2C] - movs r3, 0x4 - str r3, [sp, 0x34] - mov r0, r8 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0803E240 - ldr r0, _0803E21C @ =gMain - ldr r4, _0803E220 @ =0x0000043d - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803E22C - ldr r2, _0803E224 @ =gEnigmaBerries - ldr r0, _0803E228 @ =gBankInMenu - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x7] - b _0803E248 - .align 2, 0 -_0803E21C: .4byte gMain -_0803E220: .4byte 0x0000043d -_0803E224: .4byte gEnigmaBerries -_0803E228: .4byte gBankInMenu -_0803E22C: - ldr r0, _0803E238 @ =gSaveBlock1 - ldr r5, _0803E23C @ =0x00003688 - adds r0, r5 - ldrb r0, [r0] - b _0803E248 - .align 2, 0 -_0803E238: .4byte gSaveBlock1 -_0803E23C: .4byte 0x00003688 -_0803E240: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 -_0803E248: - str r0, [sp, 0x30] - ldr r1, _0803E2A4 @ =gStringBank - ldr r0, _0803E2A8 @ =gBankInMenu - ldrb r2, [r0] - strb r2, [r1] - ldr r0, _0803E2AC @ =gMain - ldr r1, _0803E2B0 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _0803E2E8 - ldr r0, _0803E2B4 @ =gActiveBank - strb r2, [r0] - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r1, 31 - str r1, [sp, 0x18] - ldr r0, _0803E2B8 @ =gNoOfAllBanks - ldr r4, [sp, 0x8] - subs r4, 0xD - ldrb r0, [r0] - cmp r1, r0 - bge _0803E2F4 - ldr r2, _0803E2BC @ =gBattlePartyID - lsls r0, r1, 1 - adds r0, r2 - ldrh r3, [r0] - ldr r5, [sp, 0xC] - lsls r0, r5, 16 - lsrs r1, r0, 16 - adds r5, r0, 0 - cmp r3, r1 - bne _0803E2C0 - ldr r0, [sp, 0x18] - str r0, [sp, 0x34] - b _0803E2F4 - .align 2, 0 -_0803E2A4: .4byte gStringBank -_0803E2A8: .4byte gBankInMenu -_0803E2AC: .4byte gMain -_0803E2B0: .4byte 0x0000043d -_0803E2B4: .4byte gActiveBank -_0803E2B8: .4byte gNoOfAllBanks -_0803E2BC: .4byte gBattlePartyID -_0803E2C0: - ldr r1, [sp, 0x18] - adds r1, 0x2 - str r1, [sp, 0x18] - ldr r0, _0803E2E4 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r1, r0 - bge _0803E2F4 - lsls r0, r1, 1 - adds r0, r2 - ldrh r1, [r0] - lsrs r0, r5, 16 - cmp r1, r0 - bne _0803E2C0 - ldr r2, [sp, 0x18] - lsls r0, r2, 24 - lsrs r0, 24 - str r0, [sp, 0x34] - b _0803E2F4 - .align 2, 0 -_0803E2E4: .4byte gNoOfAllBanks -_0803E2E8: - ldr r0, _0803E310 @ =gActiveBank - strb r1, [r0] - movs r3, 0x4 - str r3, [sp, 0x34] - ldr r4, [sp, 0x8] - subs r4, 0xD -_0803E2F4: - lsls r0, r4, 16 - lsrs r0, 16 - cmp r0, 0xA5 - bhi _0803E36C - ldr r1, _0803E314 @ =gItemEffectTable - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _0803E318 - ldr r4, [sp, 0x8] - cmp r4, 0xAF - beq _0803E31E - b _0803E36C - .align 2, 0 -_0803E310: .4byte gActiveBank -_0803E314: .4byte gItemEffectTable -_0803E318: - ldr r5, [sp, 0x8] - cmp r5, 0xAF - bne _0803E372 -_0803E31E: - ldr r0, _0803E340 @ =gMain - ldr r1, _0803E344 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803E350 - ldr r0, _0803E348 @ =gActiveBank - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _0803E34C @ =gUnknown_02024DF8 - adds r0, r1 - b _0803E372 - .align 2, 0 -_0803E340: .4byte gMain -_0803E344: .4byte 0x0000043d -_0803E348: .4byte gActiveBank -_0803E34C: .4byte gUnknown_02024DF8 -_0803E350: - ldr r2, _0803E358 @ =gSaveBlock1 + 0x3676 - str r2, [sp, 0x20] - b _0803E374 - .align 2, 0 -_0803E358: .4byte gSaveBlock1 + 0x3676 -_0803E35C: - mov r0, r8 - movs r2, 0 - ldr r3, [sp, 0xC] - bl BeginEvolutionScene - movs r0, 0 - bl _0803F15C -_0803E36C: - movs r0, 0x1 - bl _0803F15C -_0803E372: - str r0, [sp, 0x20] -_0803E374: - movs r3, 0 - str r3, [sp, 0x18] -_0803E378: - ldr r4, [sp, 0x18] - cmp r4, 0x5 - bls _0803E382 - bl _0803F14C -_0803E382: - lsls r0, r4, 2 - ldr r1, _0803E38C @ =_0803E390 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803E38C: .4byte _0803E390 - .align 2, 0 -_0803E390: - .4byte _0803E3A8 - .4byte _0803E474 - .4byte _0803E508 - .4byte _0803E59C - .4byte _0803E77C - .4byte _0803EE1E -_0803E3A8: - ldr r5, [sp, 0x20] - ldr r0, [sp, 0x18] - adds r2, r5, r0 - ldrb r1, [r2] - movs r0, 0x80 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _0803E3F0 - ldr r0, _0803E460 @ =gMain - ldr r1, _0803E464 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803E3F0 - ldr r2, [sp, 0x34] - cmp r2, 0x4 - beq _0803E3F0 - ldr r1, _0803E468 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0xF0 - lsls r0, 12 - ands r0, r1 - cmp r0, 0 - beq _0803E3F0 - ldr r0, _0803E46C @ =0xfff0ffff - ands r1, r0 - str r1, [r2] - movs r3, 0 - str r3, [sp, 0x1C] -_0803E3F0: - ldrb r1, [r6] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _0803E41E - ldr r1, _0803E468 @ =gBattleMons - ldr r0, _0803E470 @ =gActiveBank - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 13 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _0803E41E - orrs r1, r3 - str r1, [r2] - movs r4, 0 - str r4, [sp, 0x1C] -_0803E41E: - ldrb r0, [r6] - movs r3, 0xF - ands r3, r0 - cmp r3, 0 - bne _0803E42C - bl _0803F14C -_0803E42C: - ldr r6, _0803E468 @ =gBattleMons - ldr r5, _0803E470 @ =gActiveBank - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r6 - ldrb r2, [r1, 0x19] - movs r0, 0x19 - ldrsb r0, [r1, r0] - cmp r0, 0xB - ble _0803E446 - bl _0803F14C -_0803E446: - adds r0, r2, r3 - strb r0, [r1, 0x19] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r6 - movs r0, 0x19 - ldrsb r0, [r1, r0] - cmp r0, 0xC - bgt _0803E45A - b _0803E74E -_0803E45A: - movs r0, 0xC - strb r0, [r1, 0x19] - b _0803E74E - .align 2, 0 -_0803E460: .4byte gMain -_0803E464: .4byte 0x0000043d -_0803E468: .4byte gBattleMons -_0803E46C: .4byte 0xfff0ffff -_0803E470: .4byte gActiveBank -_0803E474: - ldr r0, [sp, 0x20] - ldr r1, [sp, 0x18] - adds r2, r0, r1 - ldrb r1, [r2] - movs r0, 0xF0 - ands r0, r1 - lsls r3, r0, 24 - adds r6, r2, 0 - cmp r3, 0 - beq _0803E4BA - ldr r7, _0803E500 @ =gBattleMons - ldr r5, _0803E504 @ =gActiveBank - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r7 - ldrb r2, [r1, 0x1A] - movs r0, 0x1A - ldrsb r0, [r1, r0] - cmp r0, 0xB - bgt _0803E4BA - lsrs r0, r3, 28 - adds r0, r2, r0 - strb r0, [r1, 0x1A] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r7 - movs r0, 0x1A - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _0803E4B6 - movs r0, 0xC - strb r0, [r1, 0x1A] -_0803E4B6: - movs r2, 0 - str r2, [sp, 0x1C] -_0803E4BA: - ldrb r0, [r6] - movs r3, 0xF - ands r3, r0 - cmp r3, 0 - bne _0803E4C8 - bl _0803F14C -_0803E4C8: - ldr r6, _0803E500 @ =gBattleMons - ldr r5, _0803E504 @ =gActiveBank - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r6 - ldrb r2, [r1, 0x1B] - movs r0, 0x1B - ldrsb r0, [r1, r0] - cmp r0, 0xB - ble _0803E4E2 - bl _0803F14C -_0803E4E2: - adds r0, r2, r3 - strb r0, [r1, 0x1B] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r6 - movs r0, 0x1B - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _0803E4F8 - movs r0, 0xC - strb r0, [r1, 0x1B] -_0803E4F8: - movs r3, 0 - str r3, [sp, 0x1C] - bl _0803F14C - .align 2, 0 -_0803E500: .4byte gBattleMons -_0803E504: .4byte gActiveBank -_0803E508: - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x18] - adds r2, r4, r5 - ldrb r1, [r2] - movs r0, 0xF0 - ands r0, r1 - lsls r3, r0, 24 - adds r6, r2, 0 - cmp r3, 0 - beq _0803E54E - ldr r7, _0803E594 @ =gBattleMons - ldr r5, _0803E598 @ =gActiveBank - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r7 - ldrb r2, [r1, 0x1E] - movs r0, 0x1E - ldrsb r0, [r1, r0] - cmp r0, 0xB - bgt _0803E54E - lsrs r0, r3, 28 - adds r0, r2, r0 - strb r0, [r1, 0x1E] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r7 - movs r0, 0x1E - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _0803E54A - movs r0, 0xC - strb r0, [r1, 0x1E] -_0803E54A: - movs r0, 0 - str r0, [sp, 0x1C] -_0803E54E: - ldrb r0, [r6] - movs r3, 0xF - ands r3, r0 - cmp r3, 0 - bne _0803E55C - bl _0803F14C -_0803E55C: - ldr r6, _0803E594 @ =gBattleMons - ldr r5, _0803E598 @ =gActiveBank - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0, r6 - ldrb r2, [r1, 0x1C] - movs r0, 0x1C - ldrsb r0, [r1, r0] - cmp r0, 0xB - ble _0803E576 - bl _0803F14C -_0803E576: - adds r0, r2, r3 - strb r0, [r1, 0x1C] - ldrb r0, [r5] - muls r0, r4 - adds r1, r0, r6 - movs r0, 0x1C - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _0803E58C - movs r0, 0xC - strb r0, [r1, 0x1C] -_0803E58C: - movs r1, 0 - str r1, [sp, 0x1C] - bl _0803F14C - .align 2, 0 -_0803E594: .4byte gBattleMons -_0803E598: .4byte gActiveBank -_0803E59C: - ldr r3, [sp, 0x20] - ldr r4, [sp, 0x18] - adds r2, r3, r4 - ldrb r1, [r2] - movs r0, 0x80 - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - beq _0803E5E4 - ldr r5, _0803E758 @ =gSideTimer - ldr r4, _0803E75C @ =gActiveBank - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _0803E5E4 - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - movs r0, 0x5 - strb r0, [r1, 0x2] - movs r5, 0 - str r5, [sp, 0x1C] -_0803E5E4: - ldrb r1, [r6] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0803E646 - mov r0, r8 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - cmp r0, 0x64 - beq _0803E646 - ldr r5, _0803E760 @ =gExperienceTables - mov r0, r8 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r4, 0x1 - lsls r4, 2 - ldr r2, _0803E764 @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r1 - adds r4, r0 - adds r4, r5 - ldr r0, [r4] - str r0, [sp] - mov r0, r8 - movs r1, 0x19 - mov r2, sp - bl SetMonData - mov r0, r8 - bl CalculateMonStats - movs r0, 0 - str r0, [sp, 0x1C] -_0803E646: - ldrb r1, [r6] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0803E682 - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0x7 - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E682 - ldr r1, [sp, 0x34] - cmp r1, 0x4 - beq _0803E67E - ldr r1, _0803E768 @ =gBattleMons - movs r0, 0x58 - ldr r3, [sp, 0x34] - adds r2, r3, 0 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _0803E76C @ =0xf7ffffff - ands r0, r1 - str r0, [r2] -_0803E67E: - movs r4, 0 - str r4, [sp, 0x1C] -_0803E682: - ldrb r1, [r6] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0803E6A2 - ldr r2, _0803E770 @ =0x00000f88 - mov r0, r8 - ldr r1, [sp, 0xC] - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E6A2 - movs r5, 0 - str r5, [sp, 0x1C] -_0803E6A2: - ldrb r1, [r6] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0803E6C2 - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0x10 - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E6C2 - movs r0, 0 - str r0, [sp, 0x1C] -_0803E6C2: - ldrb r1, [r6] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0803E6E2 - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0x20 - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E6E2 - movs r1, 0 - str r1, [sp, 0x1C] -_0803E6E2: - ldrb r1, [r6] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803E702 - mov r0, r8 - ldr r1, [sp, 0xC] - movs r2, 0x40 - ldr r3, [sp, 0x34] - bl HealStatusConditions - lsls r0, 24 - cmp r0, 0 - bne _0803E702 - movs r2, 0 - str r2, [sp, 0x1C] -_0803E702: - ldrb r1, [r6] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0803E710 - bl _0803F14C -_0803E710: - ldr r0, _0803E774 @ =gMain - ldr r3, _0803E778 @ =0x0000043d - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0803E724 - bl _0803F14C -_0803E724: - ldr r4, [sp, 0x34] - cmp r4, 0x4 - bne _0803E72E - bl _0803F14C -_0803E72E: - ldr r1, _0803E768 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0803E746 - bl _0803F14C -_0803E746: - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r2] -_0803E74E: - movs r5, 0 - str r5, [sp, 0x1C] - bl _0803F14C - .align 2, 0 -_0803E758: .4byte gSideTimer -_0803E75C: .4byte gActiveBank -_0803E760: .4byte gExperienceTables -_0803E764: .4byte gBaseStats -_0803E768: .4byte gBattleMons -_0803E76C: .4byte 0xf7ffffff -_0803E770: .4byte 0x00000f88 -_0803E774: .4byte gMain -_0803E778: .4byte 0x0000043d -_0803E77C: - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x18] - adds r0, r1, r2 - ldrb r0, [r0] - mov r10, r0 - movs r0, 0x20 - mov r3, r10 - ands r0, r3 - cmp r0, 0 - beq _0803E854 - movs r0, 0xDF - ands r3, r0 - mov r10, r3 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - ldr r1, _0803E880 @ =gUnknown_08208238 - ldr r4, [sp, 0x10] - adds r1, r4, r1 - ldrb r1, [r1] - ands r0, r1 - lsls r1, r4, 1 - lsrs r0, r1 - str r0, [sp] - adds r5, r4, 0 - adds r5, 0xD - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x28] - ldr r0, [sp] - cmp r0, 0x2 - bhi _0803E854 - ldr r0, [sp, 0x28] - cmp r0, 0x4 - bls _0803E854 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - ldr r1, _0803E884 @ =gUnknown_08208240 - ldr r2, [sp, 0x10] - adds r1, r2, r1 - ldrb r1, [r1] - adds r0, r1 - str r0, [sp] - mov r0, r8 - movs r1, 0x15 - mov r2, sp - bl SetMonData - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp] - lsls r1, 24 - lsrs r1, 24 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r3, [sp, 0x28] - subs r0, r3 - str r0, [sp] - ldr r4, [sp, 0x10] - adds r4, 0x11 - mov r0, r8 - adds r1, r4, 0 - movs r2, 0 - bl GetMonData - ldr r1, [sp] - adds r0, r1 - str r0, [sp] - mov r0, r8 - adds r1, r4, 0 - mov r2, sp - bl SetMonData - movs r4, 0 - str r4, [sp, 0x1C] -_0803E854: - movs r5, 0 - str r5, [sp, 0x28] - mov r0, r10 - cmp r0, 0 - bne _0803E862 - bl _0803F14C -_0803E862: - movs r0, 0x1 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - bne _0803E86E - b _0803EE0A -_0803E86E: - ldr r2, [sp, 0x28] - cmp r2, 0x7 - bls _0803E876 - b _0803EE0A -_0803E876: - lsls r0, r2, 2 - ldr r1, _0803E888 @ =_0803E88C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803E880: .4byte gUnknown_08208238 -_0803E884: .4byte gUnknown_08208240 -_0803E888: .4byte _0803E88C - .align 2, 0 -_0803E88C: - .4byte _0803E8AC - .4byte _0803E8AC - .4byte _0803E934 - .4byte _0803EB5C - .4byte _0803EE0A - .4byte _0803EE0A - .4byte _0803EE0A - .4byte _0803EDF4 -_0803E8AC: - mov r0, r8 - bl GetMonEVCount - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _0803E8EC @ =0x000001fd - cmp r5, r0 - bls _0803E8BE - b _0803E36C -_0803E8BE: - ldr r0, _0803E8F0 @ =gUnknown_082082F2 - ldr r3, [sp, 0x28] - adds r0, r3, r0 - ldrb r1, [r0] - mov r0, r8 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - str r1, [sp] - cmp r1, 0x63 - bls _0803E8D8 - b _0803EE0A -_0803E8D8: - ldr r4, [sp, 0x20] - ldr r2, [sp, 0x24] - adds r0, r4, r2 - ldrb r0, [r0] - adds r1, r0 - cmp r1, 0x64 - bls _0803E8F4 - adds r0, 0x64 - subs r4, r0, r1 - b _0803E8F6 - .align 2, 0 -_0803E8EC: .4byte 0x000001fd -_0803E8F0: .4byte gUnknown_082082F2 -_0803E8F4: - adds r4, r0, 0 -_0803E8F6: - adds r1, r5, r4 - movs r0, 0xFF - lsls r0, 1 - cmp r1, r0 - bls _0803E904 - adds r0, r4, r0 - subs r4, r0, r1 -_0803E904: - ldr r0, [sp] - adds r0, r4 - str r0, [sp] - ldr r0, _0803E930 @ =gUnknown_082082F2 - ldr r3, [sp, 0x28] - adds r0, r3, r0 - ldrb r1, [r0] - mov r0, r8 - mov r2, sp - bl SetMonData - mov r0, r8 - bl CalculateMonStats - ldr r0, [sp, 0x24] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - movs r4, 0 - str r4, [sp, 0x1C] - b _0803EE0A - .align 2, 0 -_0803E930: .4byte gUnknown_082082F2 -_0803E934: - movs r0, 0x10 - mov r5, r10 - ands r0, r5 - cmp r0, 0 - beq _0803E9F4 - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _0803E954 - ldr r0, [sp, 0x24] - adds r0, 0x1 - lsls r0, 24 - b _0803EC9E -_0803E954: - ldr r0, _0803E99C @ =gMain - ldr r1, _0803E9A0 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r4, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803EA0A - ldr r2, [sp, 0x34] - cmp r2, 0x4 - beq _0803E9B4 - ldr r2, _0803E9A4 @ =gAbsentBankFlags - ldr r1, _0803E9A8 @ =gBitTable - ldr r3, [sp, 0x34] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldr r1, _0803E9AC @ =gBattlePartyID - lsls r0, r3, 1 - adds r0, r1 - ldrb r0, [r0] - bl pokemon_order_func - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, [sp, 0x34] - bl CopyPlayerPartyMonToBattleData - ldr r0, _0803E9B0 @ =gActiveBank - ldrb r0, [r0] - b _0803E9CC - .align 2, 0 -_0803E99C: .4byte gMain -_0803E9A0: .4byte 0x0000043d -_0803E9A4: .4byte gAbsentBankFlags -_0803E9A8: .4byte gBitTable -_0803E9AC: .4byte gBattlePartyID -_0803E9B0: .4byte gActiveBank -_0803E9B4: - ldr r3, _0803E9E4 @ =gAbsentBankFlags - ldr r1, _0803E9E8 @ =gBitTable - ldr r2, _0803E9EC @ =gActiveBank - ldrb r0, [r2] - eors r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r3] - bics r0, r1 - strb r0, [r3] - ldrb r0, [r2] -_0803E9CC: - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0803EA0A - ldr r1, _0803E9F0 @ =gBattleResults - ldrb r0, [r1, 0x4] - cmp r0, 0xFE - bhi _0803EA0A - adds r0, 0x1 - strb r0, [r1, 0x4] - b _0803EA0A - .align 2, 0 -_0803E9E4: .4byte gAbsentBankFlags -_0803E9E8: .4byte gBitTable -_0803E9EC: .4byte gActiveBank -_0803E9F0: .4byte gBattleResults -_0803E9F4: - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - cmp r0, 0 - bne _0803EA0A - ldr r0, [sp, 0x24] - adds r0, 0x1 - lsls r0, 24 - b _0803EC9E -_0803EA0A: - ldr r1, [sp, 0x24] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - ldr r4, [sp, 0x20] - adds r1, r4, r1 - ldrb r1, [r1] - str r1, [sp] - adds r0, r1, 0 - cmp r0, 0xFE - beq _0803EA4C - cmp r0, 0xFE - bhi _0803EA2C - cmp r0, 0xFD - beq _0803EA62 - b _0803EA6C -_0803EA2C: - cmp r1, 0xFF - bne _0803EA6C - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - subs r4, r0 - str r4, [sp] - b _0803EA6C -_0803EA4C: - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - lsrs r0, 1 - str r0, [sp] - cmp r0, 0 - bne _0803EA6C - movs r0, 0x1 - b _0803EA6A -_0803EA62: - ldr r0, _0803EB24 @ =gSharedMem - ldr r5, _0803EB28 @ =0x000160fa - adds r0, r5 - ldrb r0, [r0] -_0803EA6A: - str r0, [sp] -_0803EA6C: - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - cmp r4, r0 - beq _0803EB4C - ldr r0, [sp, 0x14] - cmp r0, 0 - bne _0803EB40 - mov r0, r8 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - ldr r1, [sp] - adds r0, r1 - str r0, [sp] - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - ldr r1, [sp] - cmp r1, r0 - bls _0803EAB8 - mov r0, r8 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - str r0, [sp] -_0803EAB8: - mov r0, r8 - movs r1, 0x39 - mov r2, sp - bl SetMonData - ldr r0, _0803EB2C @ =gMain - ldr r1, _0803EB30 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803EB48 - ldr r2, [sp, 0x34] - cmp r2, 0x4 - beq _0803EB48 - ldr r1, _0803EB34 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldr r1, [sp] - strh r1, [r0, 0x28] - movs r0, 0x10 - mov r3, r10 - ands r0, r3 - cmp r0, 0 - bne _0803EB48 - ldr r4, _0803EB38 @ =gActiveBank - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0803EB48 - ldr r1, _0803EB3C @ =gBattleResults - ldrb r0, [r1, 0x3] - cmp r0, 0xFE - bhi _0803EB08 - adds r0, 0x1 - strb r0, [r1, 0x3] -_0803EB08: - ldrb r5, [r4] - add r0, sp, 0x34 - ldrb r0, [r0] - strb r0, [r4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl EmitGetAttributes - ldrb r0, [r4] - bl MarkBufferBankForExecution - strb r5, [r4] - b _0803EB48 - .align 2, 0 -_0803EB24: .4byte gSharedMem -_0803EB28: .4byte 0x000160fa -_0803EB2C: .4byte gMain -_0803EB30: .4byte 0x0000043d -_0803EB34: .4byte gBattleMons -_0803EB38: .4byte gActiveBank -_0803EB3C: .4byte gBattleResults -_0803EB40: - ldr r1, _0803EB58 @ =gBattleMoveDamage - ldr r0, [sp] - negs r0, r0 - str r0, [r1] -_0803EB48: - movs r1, 0 - str r1, [sp, 0x1C] -_0803EB4C: - movs r0, 0xEF - mov r2, r10 - ands r2, r0 - mov r10, r2 - b _0803EE0A - .align 2, 0 -_0803EB58: .4byte gBattleMoveDamage -_0803EB5C: - movs r7, 0x2 - mov r0, r10 - ands r0, r7 - cmp r0, 0 - beq _0803EB68 - b _0803ECB8 -_0803EB68: - movs r5, 0 - ldr r3, [sp, 0x24] - adds r3, 0x1 - str r3, [sp, 0x38] -_0803EB70: - movs r4, 0x11 - adds r4, r5 - mov r9, r4 - mov r0, r8 - mov r1, r9 - movs r2, 0 - bl GetMonData - str r0, [sp] - adds r7, r5, 0 - adds r7, 0xD - mov r0, r8 - adds r1, r7, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r5, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - adds r2, r6, 0 - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r1, r0 - beq _0803EC92 - ldr r2, [sp, 0x20] - ldr r3, [sp, 0x24] - adds r0, r2, r3 - ldrb r0, [r0] - adds r0, r1, r0 - str r0, [sp] - mov r0, r8 - adds r1, r7, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - adds r2, r6, 0 - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r1, r0 - bls _0803EC28 - mov r0, r8 - adds r1, r7, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - adds r2, r6, 0 - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_0803EC28: - mov r0, r8 - mov r1, r9 - mov r2, sp - bl SetMonData - ldr r0, _0803ECA4 @ =gMain - ldr r4, _0803ECA8 @ =0x0000043d - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803EC8E - ldr r0, [sp, 0x34] - cmp r0, 0x4 - beq _0803EC8E - ldr r4, _0803ECAC @ =gBattleMons - movs r0, 0x58 - ldr r1, [sp, 0x34] - adds r3, r1, 0 - muls r3, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 14 - ands r1, r0 - cmp r1, 0 - bne _0803EC8E - ldr r1, _0803ECB0 @ =gDisableStructs - ldr r2, [sp, 0x34] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _0803ECB4 @ =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803EC8E - adds r0, r5, r3 - adds r1, r4, 0 - adds r1, 0x24 - adds r0, r1 - ldr r1, [sp] - strb r1, [r0] -_0803EC8E: - movs r3, 0 - str r3, [sp, 0x1C] -_0803EC92: - adds r5, 0x1 - cmp r5, 0x3 - bgt _0803EC9A - b _0803EB70 -_0803EC9A: - ldr r4, [sp, 0x38] - lsls r0, r4, 24 -_0803EC9E: - lsrs r0, 24 - str r0, [sp, 0x24] - b _0803EE0A - .align 2, 0 -_0803ECA4: .4byte gMain -_0803ECA8: .4byte 0x0000043d -_0803ECAC: .4byte gBattleMons -_0803ECB0: .4byte gDisableStructs -_0803ECB4: .4byte gBitTable -_0803ECB8: - ldr r6, [sp, 0x10] - adds r6, 0x11 - mov r0, r8 - adds r1, r6, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r5, [sp, 0x10] - adds r5, 0xD - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r2, [sp] - cmp r2, r0 - bne _0803ED00 - b _0803EE0A -_0803ED00: - ldr r1, [sp, 0x24] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] - ldr r0, [sp, 0x20] - adds r1, r0, r1 - ldrb r0, [r1] - adds r0, r2, r0 - str r0, [sp] - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r1, r0 - bls _0803ED74 - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_0803ED74: - mov r0, r8 - adds r1, r6, 0 - mov r2, sp - bl SetMonData - ldr r0, _0803EDE0 @ =gMain - ldr r1, _0803EDE4 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0803EDD8 - ldr r2, [sp, 0x34] - cmp r2, 0x4 - beq _0803EDD8 - ldr r4, _0803EDE8 @ =gBattleMons - movs r0, 0x58 - adds r3, r2, 0 - muls r3, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0803EDD8 - ldr r1, _0803EDEC @ =gDisableStructs - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _0803EDF0 @ =gBitTable - ldr r5, [sp, 0x10] - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803EDD8 - adds r0, r5, r3 - adds r1, r4, 0 - adds r1, 0x24 - adds r0, r1 - ldr r1, [sp] - strb r1, [r0] -_0803EDD8: - movs r0, 0 - str r0, [sp, 0x1C] - b _0803EE0A - .align 2, 0 -_0803EDE0: .4byte gMain -_0803EDE4: .4byte 0x0000043d -_0803EDE8: .4byte gBattleMons -_0803EDEC: .4byte gDisableStructs -_0803EDF0: .4byte gBitTable -_0803EDF4: - mov r0, r8 - movs r1, 0x2 - ldr r2, [sp, 0x8] - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0803EE0A - bl _0803E35C -_0803EE0A: - ldr r1, [sp, 0x28] - adds r1, 0x1 - str r1, [sp, 0x28] - mov r2, r10 - lsrs r2, 1 - mov r10, r2 - cmp r2, 0 - beq _0803EE1C - b _0803E862 -_0803EE1C: - b _0803F14C -_0803EE1E: - ldr r3, [sp, 0x20] - ldr r4, [sp, 0x18] - adds r0, r3, r4 - ldrb r0, [r0] - mov r10, r0 - movs r5, 0 - str r5, [sp, 0x28] - cmp r0, 0 - bne _0803EE32 - b _0803F14C -_0803EE32: - movs r0, 0x1 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - bne _0803EE3E - b _0803F13A -_0803EE3E: - ldr r2, [sp, 0x28] - cmp r2, 0x7 - bls _0803EE46 - b _0803F13A -_0803EE46: - lsls r0, r2, 2 - ldr r1, _0803EE50 @ =_0803EE54 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803EE50: .4byte _0803EE54 - .align 2, 0 -_0803EE54: - .4byte _0803EE74 - .4byte _0803EE74 - .4byte _0803EE74 - .4byte _0803EE74 - .4byte _0803EEF8 - .4byte _0803EFCC - .4byte _0803F026 - .4byte _0803F07C -_0803EE74: - mov r0, r8 - bl GetMonEVCount - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _0803EEBC @ =0x000001fd - cmp r5, r0 - bls _0803EE88 - bl _0803E36C -_0803EE88: - ldr r0, _0803EEC0 @ =gUnknown_082082F2 - ldr r4, [sp, 0x28] - adds r4, 0x2 - adds r0, r4, r0 - ldrb r1, [r0] - mov r0, r8 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - str r1, [sp] - adds r2, r4, 0 - cmp r1, 0x63 - bls _0803EEA6 - b _0803F13A -_0803EEA6: - ldr r3, [sp, 0x20] - ldr r4, [sp, 0x24] - adds r0, r3, r4 - ldrb r0, [r0] - adds r1, r0 - cmp r1, 0x64 - bls _0803EEC4 - adds r0, 0x64 - subs r4, r0, r1 - b _0803EEC6 - .align 2, 0 -_0803EEBC: .4byte 0x000001fd -_0803EEC0: .4byte gUnknown_082082F2 -_0803EEC4: - adds r4, r0, 0 -_0803EEC6: - adds r1, r5, r4 - movs r0, 0xFF - lsls r0, 1 - cmp r1, r0 - bls _0803EED4 - adds r0, r4, r0 - subs r4, r0, r1 -_0803EED4: - ldr r0, [sp] - adds r0, r4 - str r0, [sp] - ldr r0, _0803EEF4 @ =gUnknown_082082F2 - adds r0, r2, r0 - ldrb r1, [r0] - mov r0, r8 - mov r2, sp - bl SetMonData - mov r0, r8 - bl CalculateMonStats - movs r5, 0 - str r5, [sp, 0x1C] - b _0803F130 - .align 2, 0 -_0803EEF4: .4byte gUnknown_082082F2 -_0803EEF8: - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - ldr r1, _0803EFC0 @ =gUnknown_08208238 - ldr r2, [sp, 0x10] - adds r1, r2, r1 - ldrb r1, [r1] - ands r0, r1 - lsls r1, r2, 1 - lsrs r0, r1 - str r0, [sp] - cmp r0, 0x2 - bls _0803EF18 - b _0803F13A -_0803EF18: - adds r5, r2, 0 - adds r5, 0xD - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, r8 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r1, _0803EFC4 @ =gUnknown_0820823C - ldr r3, [sp, 0x10] - adds r1, r3, r1 - ldrb r2, [r1] - ands r2, r0 - str r2, [sp] - ldr r0, _0803EFC8 @ =gUnknown_08208240 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - adds r2, r0 - str r2, [sp] - mov r0, r8 - movs r1, 0x15 - mov r2, sp - bl SetMonData - mov r0, r8 - adds r1, r5, 0 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp] - lsls r1, 24 - lsrs r1, 24 - ldr r2, [sp, 0x10] - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r0, 24 - subs r0, r4 - str r0, [sp] - ldr r4, [sp, 0x10] - adds r4, 0x11 - mov r0, r8 - adds r1, r4, 0 - movs r2, 0 - bl GetMonData - ldr r1, [sp] - adds r0, r1 - str r0, [sp] - mov r0, r8 - adds r1, r4, 0 - mov r2, sp - bl SetMonData - movs r4, 0 - str r4, [sp, 0x1C] - b _0803F13A - .align 2, 0 -_0803EFC0: .4byte gUnknown_08208238 -_0803EFC4: .4byte gUnknown_0820823C -_0803EFC8: .4byte gUnknown_08208240 -_0803EFCC: - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - cmp r0, 0x63 - bls _0803EFDC - b _0803F130 -_0803EFDC: - ldr r5, [sp, 0x1C] - cmp r5, 0 - beq _0803EFE4 - b _0803F130 -_0803EFE4: - ldr r0, [sp, 0x2C] - cmp r0, 0 - beq _0803EFEC - b _0803F130 -_0803EFEC: - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x24] - adds r0, r1, r2 - ldrb r0, [r0] - str r0, [sp, 0x2C] - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - str r5, [sp, 0x4] - ldr r3, [sp, 0x2C] - lsls r4, r3, 24 - asrs r1, r4, 24 - cmp r1, 0 - ble _0803F0D0 - ldr r0, [sp, 0x30] - cmp r0, 0x1B - bne _0803F0D0 - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r0, r5, r0 - str r0, [sp, 0x4] - adds r2, r4, 0 - b _0803F0DC -_0803F026: - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - cmp r0, 0x63 - bls _0803F130 - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - cmp r0, 0xC7 - bhi _0803F130 - ldr r2, [sp, 0x1C] - cmp r2, 0 - bne _0803F130 - ldr r3, [sp, 0x2C] - cmp r3, 0 - bne _0803F130 - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x24] - adds r0, r4, r5 - ldrb r0, [r0] - str r0, [sp, 0x2C] - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - str r4, [sp, 0x4] - ldr r0, [sp, 0x2C] - lsls r5, r0, 24 - asrs r1, r5, 24 - cmp r1, 0 - ble _0803F076 - ldr r2, [sp, 0x30] - cmp r2, 0x1B - beq _0803F0BE -_0803F076: - ldr r3, [sp, 0x2C] - lsls r2, r3, 24 - b _0803F0D4 -_0803F07C: - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - cmp r0, 0xC7 - bls _0803F130 - ldr r4, [sp, 0x1C] - cmp r4, 0 - bne _0803F130 - ldr r5, [sp, 0x2C] - cmp r5, 0 - bne _0803F130 - ldr r1, [sp, 0x20] - ldr r2, [sp, 0x24] - adds r0, r1, r2 - ldrb r0, [r0] - str r0, [sp, 0x2C] - mov r0, r8 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - str r4, [sp, 0x4] - ldr r3, [sp, 0x2C] - lsls r5, r3, 24 - asrs r1, r5, 24 - cmp r1, 0 - ble _0803F0D0 - ldr r0, [sp, 0x30] - cmp r0, 0x1B - bne _0803F0D0 -_0803F0BE: - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - adds r0, r4, r0 - str r0, [sp, 0x4] - adds r2, r5, 0 - b _0803F0DC -_0803F0D0: - ldr r1, [sp, 0x2C] - lsls r2, r1, 24 -_0803F0D4: - asrs r1, r2, 24 - ldr r0, [sp, 0x4] - adds r0, r1 - str r0, [sp, 0x4] -_0803F0DC: - cmp r2, 0 - ble _0803F112 - mov r0, r8 - movs r1, 0x26 - movs r2, 0 - bl GetMonData - cmp r0, 0xB - bne _0803F0F4 - ldr r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x4] -_0803F0F4: - mov r0, r8 - movs r1, 0x23 - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - bl sav1_map_get_name - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0803F112 - ldr r0, [sp, 0x4] - adds r0, 0x1 - str r0, [sp, 0x4] -_0803F112: - ldr r0, [sp, 0x4] - cmp r0, 0 - bge _0803F11C - movs r0, 0 - str r0, [sp, 0x4] -_0803F11C: - ldr r0, [sp, 0x4] - cmp r0, 0xFF - ble _0803F126 - movs r0, 0xFF - str r0, [sp, 0x4] -_0803F126: - add r2, sp, 0x4 - mov r0, r8 - movs r1, 0x20 - bl SetMonData -_0803F130: - ldr r0, [sp, 0x24] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x24] -_0803F13A: - ldr r2, [sp, 0x28] - adds r2, 0x1 - str r2, [sp, 0x28] - mov r3, r10 - lsrs r3, 1 - mov r10, r3 - cmp r3, 0 - beq _0803F14C - b _0803EE32 -_0803F14C: - ldr r4, [sp, 0x18] - adds r4, 0x1 - str r4, [sp, 0x18] - cmp r4, 0x5 - bgt _0803F15A - bl _0803E378 -_0803F15A: - ldr r0, [sp, 0x1C] -_0803F15C: - add sp, 0x3C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_803E1B0 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 69c6d9e4f..cee93a9e4 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -1,13656 +1,15 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified .text - thumb_func_start sub_8095ADC -sub_8095ADC: @ 8095ADC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - movs r5, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_08095AF0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _08095B20 @ =gPokemonStorage + 0x4 - adds r0, r1 - adds r0, r6, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08095B0C - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08095B0C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _08095AF0 - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08095B20: .4byte gPokemonStorage + 0x4 - thumb_func_end sub_8095ADC - - thumb_func_start sub_8095B24 -sub_8095B24: @ 8095B24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r5, r0, 5 -_08095B36: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _08095B54 @ =gPokemonStorage + 0x4 - adds r0, r1 - adds r0, r5, r0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08095B58 - lsls r0, r4, 16 - asrs r0, 16 - b _08095B66 - .align 2, 0 -_08095B54: .4byte gPokemonStorage + 0x4 -_08095B58: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _08095B36 - movs r0, 0x1 - negs r0, r0 -_08095B66: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8095B24 - - thumb_func_start GetNumValidDaycarePartyMons -GetNumValidDaycarePartyMons: @ 8095B6C - push {r4-r6,lr} - movs r5, 0 - movs r6, 0 -_08095B72: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095BB0 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095B9A - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08095B9A - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08095B9A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08095B72 - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08095BB0: .4byte gPlayerParty - thumb_func_end GetNumValidDaycarePartyMons - - thumb_func_start CountAlivePartyMonsExceptOne -CountAlivePartyMonsExceptOne: @ 8095BB4 - push {r4-r7,lr} - lsls r0, 24 - movs r5, 0 - movs r6, 0 - lsrs r7, r0, 24 -_08095BBE: - cmp r5, r7 - beq _08095BF6 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08095C0C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095BF6 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08095BF6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08095BF6 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08095BF6: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08095BBE - lsls r0, r6, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08095C0C: .4byte gPlayerParty - thumb_func_end CountAlivePartyMonsExceptOne - - thumb_func_start CountAlivePartyMonsExceptSelectedOne -CountAlivePartyMonsExceptSelectedOne: @ 8095C10 - push {lr} - ldr r0, _08095C24 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl CountAlivePartyMonsExceptOne - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08095C24: .4byte gSpecialVar_0x8004 - thumb_func_end CountAlivePartyMonsExceptSelectedOne - - thumb_func_start StorageSystemGetPartySize -StorageSystemGetPartySize: @ 8095C28 - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_08095C2E: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08095C5C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08095C46 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08095C46: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x5 - bls _08095C2E - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08095C5C: .4byte gPlayerParty - thumb_func_end StorageSystemGetPartySize - - thumb_func_start unref_sub_8095C60 -unref_sub_8095C60: @ 8095C60 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r2, 16 - lsrs r4, 16 - bl StringCopy - adds r1, r0, 0 - adds r5, r4 - cmp r1, r5 - bcs _08095C7E - movs r0, 0 -_08095C76: - strb r0, [r1] - adds r1, 0x1 - cmp r1, r5 - bcc _08095C76 -_08095C7E: - movs r0, 0xFF - strb r0, [r1] - adds r0, r1, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_8095C60 - - thumb_func_start sub_8095C8C -sub_8095C8C: @ 8095C8C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - adds r7, r3, 0 - ldr r5, [sp, 0x1C] - ldr r4, [sp, 0x20] - ldr r0, [sp, 0x24] - mov r9, r0 - ldr r0, [sp, 0x28] - ldr r3, [sp, 0x2C] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - mov r0, r9 - lsls r0, 17 - mov r9, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r6, r2 - adds r0, r4, 0 - muls r0, r3 - adds r0, r5 - lsls r0, 1 - adds r7, r0 - movs r4, 0 - cmp r4, r8 - bcs _08095CFC - mov r0, r9 - lsrs r0, 1 - mov r9, r0 - lsls r5, r3, 1 -_08095CE2: - adds r0, r7, 0 - adds r1, r6, 0 - mov r3, r9 - lsrs r2, r3, 16 - bl CpuSet - adds r6, 0x40 - adds r7, r5 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bcc _08095CE2 -_08095CFC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8095C8C - - thumb_func_start unref_sub_8095D08 -unref_sub_8095D08: @ 8095D08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [sp, 0x28] - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsrs r2, 11 - adds r2, r1 - lsls r2, 1 - adds r4, r2 - lsls r3, 17 - lsrs r0, r3, 16 - str r0, [sp, 0x4] - movs r0, 0 - cmp r0, r10 - bcs _08095DB2 - movs r6, 0x80 - lsls r6, 5 - mov r5, sp - ldr r7, _08095D74 @ =0x040000d4 - lsrs r3, 17 - mov r9, r3 - mov r1, r9 - movs r2, 0x81 - lsls r2, 24 - orrs r1, r2 - mov r9, r1 -_08095D4E: - adds r3, r4, 0 - ldr r2, [sp, 0x4] - movs r1, 0x40 - adds r1, r4 - mov r8, r1 - adds r0, 0x1 - mov r12, r0 - cmp r2, r6 - bhi _08095D78 - movs r0, 0 - strh r0, [r5] - mov r2, sp - str r2, [r7] - str r4, [r7, 0x4] - mov r0, r9 - str r0, [r7, 0x8] - ldr r0, [r7, 0x8] - b _08095DA6 - .align 2, 0 -_08095D74: .4byte 0x040000d4 -_08095D78: - movs r4, 0 - strh r4, [r5] - ldr r1, _08095DC4 @ =0x040000d4 - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - ldr r0, _08095DC8 @ =0x81000800 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r6 - subs r2, r6 - cmp r2, r6 - bhi _08095D78 - strh r4, [r5] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - lsrs r0, r2, 1 - movs r2, 0x81 - lsls r2, 24 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] -_08095DA6: - mov r4, r8 - mov r1, r12 - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, r10 - bcc _08095D4E -_08095DB2: - 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 -_08095DC4: .4byte 0x040000d4 -_08095DC8: .4byte 0x81000800 - thumb_func_end unref_sub_8095D08 - - thumb_func_start StorageSystemGetNextMonIndex -StorageSystemGetNextMonIndex: @ 8095DCC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r0, r3, 24 - cmp r0, 0 - beq _08095DE8 - cmp r0, 0x2 - bne _08095DEC -_08095DE8: - movs r2, 0x1 - b _08095DEE -_08095DEC: - ldr r2, _08095E38 @ =0x0000ffff -_08095DEE: - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08095E44 - lsls r0, r1, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _08095E90 - cmp r1, r7 - bgt _08095E90 -_08095E10: - asrs r4, r0, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - add r0, r8 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - bne _08095E3C - asrs r0, r6, 16 - adds r0, r4, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _08095E90 - cmp r2, r7 - ble _08095E10 - b _08095E90 - .align 2, 0 -_08095E38: .4byte 0x0000ffff -_08095E3C: - adds r0, r4, 0 - b _08095E94 -_08095E40: - adds r0, r5, 0 - b _08095E94 -_08095E44: - lsls r0, r1, 24 - asrs r0, 24 - lsls r2, 16 - asrs r1, r2, 16 - adds r1, r0 - lsls r0, r1, 16 - asrs r1, r0, 16 - adds r6, r2, 0 - cmp r1, 0 - blt _08095E90 - cmp r1, r7 - bgt _08095E90 -_08095E5C: - asrs r5, r0, 16 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08095E80 - adds r0, r4, 0 - movs r1, 0x2D - bl GetBoxMonData - cmp r0, 0 - beq _08095E40 -_08095E80: - asrs r0, r6, 16 - adds r0, r5, r0 - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - blt _08095E90 - cmp r2, r7 - ble _08095E5C -_08095E90: - movs r0, 0x1 - negs r0, r0 -_08095E94: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end StorageSystemGetNextMonIndex - - thumb_func_start StorageSystemClearMessageWindow -StorageSystemClearMessageWindow: @ 8095EA0 - push {lr} - movs r0, 0x2 - movs r1, 0xF - movs r2, 0x1B - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - pop {r0} - bx r0 - thumb_func_end StorageSystemClearMessageWindow - - thumb_func_start Task_PokemonStorageSystem -Task_PokemonStorageSystem: @ 8095EB4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08095ED8 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _08095ECE - b _080960F4 -_08095ECE: - lsls r0, 2 - ldr r1, _08095EDC @ =_08095EE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08095ED8: .4byte gTasks -_08095EDC: .4byte _08095EE0 - .align 2, 0 -_08095EE0: - .4byte _08095EF4 - .4byte _08095F1C - .4byte _08095F30 - .4byte _08096042 - .4byte _080960DC -_08095EF4: - ldrb r0, [r4, 0xA] - bl StorageSystemCreatePrimaryMenu - bl MenuDisplayMessageBox - ldr r1, _08095F18 @ =gUnknown_083B600C - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - b _08095F28 - .align 2, 0 -_08095F18: .4byte gUnknown_083B600C -_08095F1C: - bl sub_807D770 - lsls r0, 24 - cmp r0, 0 - bne _08095F28 - b _080960F4 -_08095F28: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080960F4 -_08095F30: - bl ProcessMenuInput - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0xC] - movs r3, 0xC - ldrsh r1, [r4, r3] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08095FC8 - cmp r1, r0 - bgt _08095F52 - subs r0, 0x1 - cmp r1, r0 - beq _08095F58 - b _08095FE8 -_08095F52: - cmp r1, 0x3 - beq _08095FC8 - b _08095FE8 -_08095F58: - ldrh r3, [r4, 0xA] - strh r3, [r4, 0xE] - ldr r2, _08095FC0 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08095F76 - subs r0, r3, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - cmp r0, 0 - bge _08095F76 - movs r0, 0x3 - strh r0, [r4, 0xE] -_08095F76: - ldrh r1, [r2, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08095F92 - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08095F92 - movs r0, 0 - strh r0, [r4, 0xE] -_08095F92: - lsls r0, r3, 16 - asrs r0, 16 - ldrh r2, [r4, 0xE] - movs r3, 0xE - ldrsh r1, [r4, r3] - cmp r0, r1 - bne _08095FA2 - b _080960F4 -_08095FA2: - strh r2, [r4, 0xA] - bl StorageSystemClearMessageWindow - ldr r0, _08095FC4 @ =gUnknown_083B600C - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - b _080960F4 - .align 2, 0 -_08095FC0: .4byte gMain -_08095FC4: .4byte gUnknown_083B600C -_08095FC8: - bl HandleDestroyMenuCursors - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x9 - bl MenuZeroFillWindowRect - bl ScriptContext2_Disable - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask - b _080960F4 -_08095FE8: - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _08096008 - bl StorageSystemGetPartySize - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08096008 - bl StorageSystemClearMessageWindow - ldr r0, _08096004 @ =gPCText_PartyFull2 - b _08096022 - .align 2, 0 -_08096004: .4byte gPCText_PartyFull2 -_08096008: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08096034 - bl StorageSystemGetPartySize - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08096034 - bl StorageSystemClearMessageWindow - ldr r0, _08096030 @ =gPCText_OnlyOne -_08096022: - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0x3 - strh r0, [r4, 0x8] - b _080960F4 - .align 2, 0 -_08096030: .4byte gPCText_OnlyOne -_08096034: - movs r0, 0x1 - movs r1, 0 - bl fade_screen - movs r0, 0x4 - strh r0, [r4, 0x8] - b _080960F4 -_08096042: - ldr r0, _08096088 @ =gMain - ldrh r1, [r0, 0x2E] - movs r3, 0x3 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _080960B8 - movs r0, 0x40 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08096090 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bge _0809606A - strh r3, [r4, 0xA] -_0809606A: - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - bl StorageSystemClearMessageWindow - ldr r1, _0809608C @ =gUnknown_083B600C - movs r3, 0xA - ldrsh r0, [r4, r3] - b _080960C2 - .align 2, 0 -_08096088: .4byte gMain -_0809608C: .4byte gUnknown_083B600C -_08096090: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080960F4 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080960A8 - strh r2, [r4, 0xA] -_080960A8: - movs r0, 0x1 - bl MoveMenuCursor - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] -_080960B8: - bl StorageSystemClearMessageWindow - ldr r1, _080960D8 @ =gUnknown_083B600C - movs r2, 0xA - ldrsh r0, [r4, r2] -_080960C2: - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - movs r0, 0x2 - strh r0, [r4, 0x8] - b _080960F4 - .align 2, 0 -_080960D8: .4byte gUnknown_083B600C -_080960DC: - ldr r0, _080960FC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080960F4 - ldrb r0, [r4, 0xC] - bl task_intro_29 - adds r0, r5, 0 - bl DestroyTask -_080960F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080960FC: .4byte gPaletteFade - thumb_func_end Task_PokemonStorageSystem - - thumb_func_start ShowPokemonStorageSystem -ShowPokemonStorageSystem: @ 8096100 - push {lr} - ldr r0, _08096128 @ =Task_PokemonStorageSystem - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0809612C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_08096128: .4byte Task_PokemonStorageSystem -_0809612C: .4byte gTasks - thumb_func_end ShowPokemonStorageSystem - - thumb_func_start sub_8096130 -sub_8096130: @ 8096130 - push {lr} - ldr r0, _0809615C @ =Task_PokemonStorageSystem - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08096160 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - ldr r0, _08096164 @ =gUnknown_02038474 - ldrb r0, [r0] - strh r0, [r1, 0xA] - bl pal_fill_black - pop {r0} - bx r0 - .align 2, 0 -_0809615C: .4byte Task_PokemonStorageSystem -_08096160: .4byte gTasks -_08096164: .4byte gUnknown_02038474 - thumb_func_end sub_8096130 - - thumb_func_start StorageSystemCreatePrimaryMenu -StorageSystemCreatePrimaryMenu: @ 8096168 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0xD - movs r3, 0x9 - bl MenuDrawTextWindow - ldr r3, _080961A4 @ =gUnknown_083B600C - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x4 - bl PrintMenuItems - str r4, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x4 - bl InitMenu - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080961A4: .4byte gUnknown_083B600C - thumb_func_end StorageSystemCreatePrimaryMenu - - thumb_func_start sub_80961A8 -sub_80961A8: @ 80961A8 - push {lr} - ldr r1, _080961C4 @ =gUnknown_02038474 - ldr r0, _080961C8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - strb r0, [r1] - ldr r1, _080961CC @ =gFieldCallback - ldr r0, _080961D0 @ =sub_8096130 - str r0, [r1] - ldr r0, _080961D4 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080961C4: .4byte gUnknown_02038474 -_080961C8: .4byte gUnknown_083B6DB4 -_080961CC: .4byte gFieldCallback -_080961D0: .4byte sub_8096130 -_080961D4: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80961A8 - - thumb_func_start ResetPokemonStorageSystem -ResetPokemonStorageSystem: @ 80961D8 - push {r4-r7,lr} - ldr r1, _08096258 @ =gPokemonStorage - movs r0, 0 - strb r0, [r1] - movs r5, 0 - adds r7, r1, 0x4 -_080961E4: - movs r4, 0 - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_080961F0: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - adds r0, r7 - adds r0, r6, r0 - bl ZeroBoxMonData - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _080961F0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _080961E4 - movs r5, 0 -_08096214: - lsls r0, r5, 3 - adds r0, r5 - ldr r6, _0809625C @ =gPokemonStorage + 0x8344 - adds r0, r6 - ldr r1, _08096260 @ =gPCText_BOX - bl StringCopy - adds r4, r5, 0x1 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - lsls r4, 16 - lsrs r5, r4, 16 - cmp r5, 0xD - bls _08096214 - movs r5, 0 - adds r3, r6, 0 - adds r3, 0x7E - movs r2, 0x3 -_0809623E: - adds r0, r5, r3 - adds r1, r5, 0 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _0809623E - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08096258: .4byte gPokemonStorage -_0809625C: .4byte gPokemonStorage + 0x8344 -_08096260: .4byte gPCText_BOX - thumb_func_end ResetPokemonStorageSystem - - thumb_func_start sub_8096264 -sub_8096264: @ 8096264 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x20 - mov r8, r0 - adds r4, r1, 0 - adds r6, r2, 0 - mov r9, r3 - lsls r4, 16 - lsrs r4, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _080962F4 @ =gBoxSelectionPopupPalette - str r0, [sp, 0x18] - ldr r1, _080962F8 @ =0xffff0000 - add r5, sp, 0x18 - ldr r0, [r5, 0x4] - ands r0, r1 - orrs r0, r6 - str r0, [r5, 0x4] - mov r1, sp - ldr r0, _080962FC @ =gBoxSelectionPopupCenterTiles - str r0, [sp] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r1, 0x4] - strh r4, [r1, 0x6] - ldr r0, _08096300 @ =gBoxSelectionPopupSidesTiles - str r0, [sp, 0x8] - movs r0, 0xC0 - lsls r0, 1 - strh r0, [r1, 0xC] - adds r0, r4, 0x1 - strh r0, [r1, 0xE] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - adds r0, r5, 0 - bl LoadSpritePalette - mov r0, sp - bl LoadSpriteSheets - ldr r0, _08096304 @ =gUnknown_02038478 - mov r1, r8 - str r1, [r0] - movs r0, 0x90 - lsls r0, 2 - add r0, r8 - strh r4, [r0] - ldr r0, _08096308 @ =0x00000242 - add r0, r8 - strh r6, [r0] - ldr r0, _0809630C @ =0x0000023e - add r8, r0 - mov r0, r9 - mov r1, r8 - strb r0, [r1] - add sp, 0x20 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080962F4: .4byte gBoxSelectionPopupPalette -_080962F8: .4byte 0xffff0000 -_080962FC: .4byte gBoxSelectionPopupCenterTiles -_08096300: .4byte gBoxSelectionPopupSidesTiles -_08096304: .4byte gUnknown_02038478 -_08096308: .4byte 0x00000242 -_0809630C: .4byte 0x0000023e - thumb_func_end sub_8096264 - - thumb_func_start sub_8096310 -sub_8096310: @ 8096310 - push {r4,r5,lr} - ldr r4, _08096344 @ =gUnknown_02038478 - ldr r0, [r4] - ldr r1, _08096348 @ =0x00000242 - adds r0, r1 - ldrh r0, [r0] - bl FreeSpritePaletteByTag - ldr r0, [r4] - movs r5, 0x90 - lsls r5, 2 - adds r0, r5 - ldrh r0, [r0] - bl FreeSpriteTilesByTag - ldr r0, [r4] - adds r0, r5 - ldrh r0, [r0] - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - bl FreeSpriteTilesByTag - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096344: .4byte gUnknown_02038478 -_08096348: .4byte 0x00000242 - thumb_func_end sub_8096310 - - thumb_func_start sub_809634C -sub_809634C: @ 809634C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80963D0 - pop {r0} - bx r0 - thumb_func_end sub_809634C - - thumb_func_start sub_809635C -sub_809635C: @ 809635C - push {lr} - bl sub_809658C - pop {r0} - bx r0 - thumb_func_end sub_809635C - - thumb_func_start sub_8096368 -sub_8096368: @ 8096368 - push {lr} - ldr r0, _08096380 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08096384 - movs r0, 0x5 - bl PlaySE - movs r0, 0xC9 - b _080963CC - .align 2, 0 -_08096380: .4byte gMain -_08096384: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080963A4 - movs r0, 0x5 - bl PlaySE - ldr r0, _080963A0 @ =gUnknown_02038478 - ldr r0, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - b _080963CC - .align 2, 0 -_080963A0: .4byte gUnknown_02038478 -_080963A4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080963B8 - movs r0, 0x5 - bl PlaySE - bl sub_809662C - b _080963CA -_080963B8: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080963CA - movs r0, 0x5 - bl PlaySE - bl sub_80965F8 -_080963CA: - movs r0, 0xC8 -_080963CC: - pop {r1} - bx r1 - thumb_func_end sub_8096368 - - thumb_func_start sub_80963D0 -sub_80963D0: @ 80963D0 - push {r4-r6,lr} - sub sp, 0x3C - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - movs r1, 0 - str r0, [sp, 0x34] - str r1, [sp, 0x38] - movs r1, 0xC0 - lsls r1, 24 - ldr r0, [sp, 0x34] - orrs r0, r1 - str r0, [sp, 0x34] - ldr r1, _08096564 @ =0xffff0fff - add r4, sp, 0x34 - ldr r0, [r4, 0x4] - ands r0, r1 - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r4, 0x4] - add r1, sp, 0x1C - movs r2, 0 - strh r2, [r1] - mov r0, sp - adds r0, 0x1E - strh r2, [r0] - str r4, [sp, 0x20] - ldr r0, _08096568 @ =gDummySpriteAnimTable - str r0, [sp, 0x24] - str r2, [sp, 0x28] - ldr r0, _0809656C @ =gDummySpriteAffineAnimTable - str r0, [sp, 0x2C] - ldr r0, _08096570 @ =SpriteCallbackDummy - str r0, [sp, 0x30] - add r0, sp, 0x4 - movs r2, 0x18 - bl memcpy - ldr r6, _08096574 @ =gUnknown_02038478 - ldr r0, [r6] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - strb r5, [r0] - add r2, sp, 0x4 - ldr r1, [r6] - movs r5, 0x90 - lsls r5, 2 - adds r0, r1, r5 - ldrh r0, [r0] - strh r0, [r2] - ldr r3, _08096578 @ =0x00000242 - adds r1, r3 - ldrh r0, [r1] - strh r0, [r2, 0x2] - adds r0, r2, 0 - movs r1, 0xA0 - movs r2, 0x60 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809657C @ =gSprites - adds r0, r1 - str r0, [r3] - ldrb r2, [r4, 0x1] - movs r1, 0x3F - adds r0, r1, 0 - ands r0, r2 - movs r2, 0x80 - orrs r0, r2 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - ands r1, r0 - movs r0, 0x40 - orrs r1, r0 - strb r1, [r4, 0x3] - add r1, sp, 0x4 - adds r3, r5 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r1] - ldr r0, _08096580 @ =gSpriteAnimTable_83B604C - str r0, [sp, 0xC] - movs r4, 0 -_08096488: - ldr r0, [r6] - ldr r1, _08096584 @ =0x0000023e - adds r0, r1 - ldrb r3, [r0] - add r0, sp, 0x4 - movs r1, 0x7C - movs r2, 0x50 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - ldr r2, [r6] - lsls r3, r4, 2 - adds r2, 0x4 - adds r2, r3 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809657C @ =gSprites - adds r1, r0, r1 - str r1, [r2] - movs r5, 0 - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _080964C2 - movs r0, 0xC4 - strh r0, [r1, 0x20] - movs r5, 0x2 -_080964C2: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080964E6 - ldr r1, [r6] - adds r1, 0x4 - adds r1, r3 - ldr r2, [r1] - movs r0, 0x70 - strh r0, [r2, 0x22] - ldr r2, [r1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x3] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080964E6: - ldr r0, [r6] - adds r0, 0x4 - adds r0, r3 - ldr r0, [r0] - lsls r1, r5, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x3 - bls _08096488 - movs r4, 0 - ldr r5, _08096574 @ =gUnknown_02038478 -_08096504: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 19 - movs r3, 0xF8 - lsls r3, 15 - adds r0, r3 - lsrs r0, 16 - lsls r2, r4, 24 - lsrs r2, 24 - ldr r1, [r5] - ldr r3, _08096584 @ =0x0000023e - adds r1, r3 - ldrb r1, [r1] - str r1, [sp] - movs r1, 0x58 - movs r3, 0 - bl sub_809A9A0 - adds r2, r0, 0 - ldr r0, [r5] - lsls r1, r4, 2 - adds r0, 0x20 - adds r0, r1 - str r2, [r0] - cmp r2, 0 - beq _0809654C - movs r1, 0x1 - cmp r4, 0 - bne _08096544 - movs r3, 0x1 - negs r3, r3 - adds r1, r3, 0 -_08096544: - strh r1, [r2, 0x2E] - ldr r1, [r0] - ldr r0, _08096588 @ =sub_8096784 - str r0, [r1, 0x1C] -_0809654C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08096504 - bl sub_809665C - add sp, 0x3C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08096564: .4byte 0xffff0fff -_08096568: .4byte gDummySpriteAnimTable -_0809656C: .4byte gDummySpriteAffineAnimTable -_08096570: .4byte SpriteCallbackDummy -_08096574: .4byte gUnknown_02038478 -_08096578: .4byte 0x00000242 -_0809657C: .4byte gSprites -_08096580: .4byte gSpriteAnimTable_83B604C -_08096584: .4byte 0x0000023e -_08096588: .4byte sub_8096784 - thumb_func_end sub_80963D0 - - thumb_func_start sub_809658C -sub_809658C: @ 809658C - push {r4-r6,lr} - ldr r4, _080965F4 @ =gUnknown_02038478 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _080965A2 - bl DestroySprite - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_080965A2: - movs r5, 0 - adds r6, r4, 0 -_080965A6: - ldr r0, [r6] - lsls r4, r5, 2 - adds r0, 0x4 - adds r0, r4 - ldr r0, [r0] - cmp r0, 0 - beq _080965C2 - bl DestroySprite - ldr r0, [r6] - adds r0, 0x4 - adds r0, r4 - movs r1, 0 - str r1, [r0] -_080965C2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x3 - bls _080965A6 - movs r5, 0 -_080965CE: - ldr r0, _080965F4 @ =gUnknown_02038478 - ldr r0, [r0] - lsls r1, r5, 2 - adds r0, 0x20 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _080965E2 - bl DestroySprite -_080965E2: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _080965CE - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080965F4: .4byte gUnknown_02038478 - thumb_func_end sub_809658C - - thumb_func_start sub_80965F8 -sub_80965F8: @ 80965F8 - push {lr} - ldr r2, _08096628 @ =gUnknown_02038478 - ldr r1, [r2] - movs r0, 0x8F - lsls r0, 2 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bls _0809661E - ldr r0, [r2] - movs r1, 0x8F - lsls r1, 2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_0809661E: - bl sub_809665C - pop {r0} - bx r0 - .align 2, 0 -_08096628: .4byte gUnknown_02038478 - thumb_func_end sub_80965F8 - - thumb_func_start sub_809662C -sub_809662C: @ 809662C - push {lr} - ldr r0, _08096644 @ =gUnknown_02038478 - ldr r2, [r0] - movs r1, 0x8F - lsls r1, 2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08096648 - subs r1, r0, 0x1 - b _0809664A - .align 2, 0 -_08096644: .4byte gUnknown_02038478 -_08096648: - movs r1, 0xD -_0809664A: - movs r3, 0x8F - lsls r3, 2 - adds r0, r2, r3 - strb r1, [r0] - bl sub_809665C - pop {r0} - bx r0 - thumb_func_end sub_809662C - - thumb_func_start sub_809665C -sub_809665C: @ 809665C - push {r4-r7,lr} - ldr r5, _080966B4 @ =gUnknown_02038478 - ldr r0, [r5] - movs r4, 0x8F - lsls r4, 2 - adds r0, r4 - ldrb r0, [r0] - bl sub_8095ADC - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _080966B8 @ =gStringVar1 - movs r6, 0xFC - strb r6, [r2] - movs r0, 0x4 - strb r0, [r2, 0x1] - movs r0, 0xF - strb r0, [r2, 0x2] - movs r0, 0x1 - strb r0, [r2, 0x3] - movs r0, 0xE - strb r0, [r2, 0x4] - adds r2, 0x5 - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - ldr r0, _080966BC @ =gPokemonStorage + 0x8344 - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - movs r0, 0xFE - strb r0, [r2] - strb r6, [r2, 0x1] - movs r0, 0x11 - strb r0, [r2, 0x2] - cmp r7, 0x9 - bhi _080966C0 - movs r0, 0x28 - b _080966C2 - .align 2, 0 -_080966B4: .4byte gUnknown_02038478 -_080966B8: .4byte gStringVar1 -_080966BC: .4byte gPokemonStorage + 0x8344 -_080966C0: - movs r0, 0x22 -_080966C2: - strb r0, [r2, 0x3] - adds r2, 0x4 - adds r0, r2, 0 - adds r1, r7, 0 - bl ConvertIntToDecimalString - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - movs r0, 0xA4 - strb r0, [r2, 0x1] - movs r0, 0xA1 - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r0, _080966F0 @ =gStringVar1 - movs r1, 0 - movs r2, 0x1 - bl sub_80966F4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080966F0: .4byte gStringVar1 - thumb_func_end sub_809665C - - thumb_func_start sub_80966F4 -sub_80966F4: @ 80966F4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08096764 @ =gUnknown_02038478 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - bl GetSpriteTileStartByTag - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 11 - lsls r4, 8 - ldr r2, _08096768 @ =0x06010000 - adds r4, r2 - adds r6, r4 - lsls r5, 5 - adds r6, r5 - ldr r0, _0809676C @ =gUnknown_083B6DB8 - ldr r5, [r0] - mov r1, sp - ldr r2, _08096770 @ =0x00001111 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _08096774 @ =0x040000d4 - str r1, [r4] - str r5, [r4, 0x4] - ldr r0, _08096778 @ =0x81000200 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0809677C @ =gWindowConfig_81E6D38 - adds r1, r5, 0 - mov r2, r8 - bl sub_8004E3C - str r5, [r4] - str r6, [r4, 0x4] - ldr r0, _08096780 @ =0x80000200 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08096764: .4byte gUnknown_02038478 -_08096768: .4byte 0x06010000 -_0809676C: .4byte gUnknown_083B6DB8 -_08096770: .4byte 0x00001111 -_08096774: .4byte 0x040000d4 -_08096778: .4byte 0x81000200 -_0809677C: .4byte gWindowConfig_81E6D38 -_08096780: .4byte 0x80000200 - thumb_func_end sub_80966F4 - - thumb_func_start sub_8096784 -sub_8096784: @ 8096784 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - movs r2, 0 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _080967B4 - strh r2, [r1, 0x30] - ldrh r0, [r1, 0x2E] - ldrh r3, [r1, 0x24] - adds r0, r3 - strh r0, [r1, 0x24] - ldrh r0, [r1, 0x32] - adds r0, 0x1 - strh r0, [r1, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080967B4 - strh r2, [r1, 0x32] - strh r2, [r1, 0x24] -_080967B4: - pop {r0} - bx r0 - thumb_func_end sub_8096784 - - thumb_func_start task_intro_29 -task_intro_29: @ 80967B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080967D0 @ =gUnknown_0203847D - strb r0, [r1] - ldr r1, _080967D4 @ =gSharedMem - strb r0, [r1, 0x5] - ldr r0, _080967D8 @ =sub_8096884 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080967D0: .4byte gUnknown_0203847D -_080967D4: .4byte gSharedMem -_080967D8: .4byte sub_8096884 - thumb_func_end task_intro_29 - - thumb_func_start sub_80967DC -sub_80967DC: @ 80967DC - ldr r0, _08096800 @ =REG_BG0HOFS - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_08096800: .4byte REG_BG0HOFS - thumb_func_end sub_80967DC - - thumb_func_start sub_8096804 -sub_8096804: @ 8096804 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - bl FreeSpriteTileRanges - bl FreeAllSpritePalettes - bl ResetTasks - ldr r1, _0809683C @ =gReservedSpriteTileCount - movs r2, 0xA0 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08096840 @ =gSharedMem + 0x20 - adds r1, r0, 0 - adds r1, 0x8 - movs r2, 0x8 - bl sub_809CFDC - ldr r1, _08096844 @ =gKeyRepeatStartDelay - movs r0, 0x14 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809683C: .4byte gReservedSpriteTileCount -_08096840: .4byte gSharedMem + 0x20 -_08096844: .4byte gKeyRepeatStartDelay - thumb_func_end sub_8096804 - - thumb_func_start sub_8096848 -sub_8096848: @ 8096848 - push {lr} - bl sub_809B0D4 - ldr r2, _08096868 @ =gUnknown_0203847C - movs r1, 0 - ldr r0, _0809686C @ =gSharedMem - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809685C - movs r1, 0x1 -_0809685C: - strb r1, [r2] - ldr r1, _08096870 @ =gUnknown_0203847E - movs r0, 0 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08096868: .4byte gUnknown_0203847C -_0809686C: .4byte gSharedMem -_08096870: .4byte gUnknown_0203847E - thumb_func_end sub_8096848 - - thumb_func_start sub_8096874 -sub_8096874: @ 8096874 - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - thumb_func_end sub_8096874 - - thumb_func_start sub_8096884 -sub_8096884: @ 8096884 - push {lr} - ldr r0, _080968A0 @ =gMain - ldr r1, _080968A4 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08096894 - b _08096986 -_08096894: - lsls r0, 2 - ldr r1, _080968A8 @ =_080968AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080968A0: .4byte gMain -_080968A4: .4byte 0x0000043c -_080968A8: .4byte _080968AC - .align 2, 0 -_080968AC: - .4byte _080968D4 - .4byte _080968E8 - .4byte _080968F4 - .4byte _08096904 - .4byte _0809690E - .4byte _08096918 - .4byte _0809691E - .4byte _08096924 - .4byte _0809692A - .4byte _08096964 -_080968D4: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - bl sub_8096804 - b _0809697A -_080968E8: - ldr r0, _080968F0 @ =gWindowConfig_81E6D00 - bl SetUpWindowConfig - b _0809697A - .align 2, 0 -_080968F0: .4byte gWindowConfig_81E6D00 -_080968F4: - ldr r0, _08096900 @ =gWindowConfig_81E6D00 - bl InitMenuWindow - bl MenuZeroFillScreen - b _0809697A - .align 2, 0 -_08096900: .4byte gWindowConfig_81E6D00 -_08096904: - bl sub_80967DC - bl sub_8096848 - b _0809697A -_0809690E: - bl sub_8098B48 - bl sub_809AA24 - b _0809697A -_08096918: - bl sub_8097DE0 - b _0809697A -_0809691E: - bl sub_8097E70 - b _0809697A -_08096924: - bl sub_8098400 - b _0809697A -_0809692A: - ldr r0, _08096950 @ =gPokemonStorage - ldrb r0, [r0] - bl sub_8099BF8 - ldr r2, _08096954 @ =gSharedMem - ldr r1, _08096958 @ =0x000012bc - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - ldr r1, _0809695C @ =0x000012be - adds r2, r1 - ldr r1, _08096960 @ =0x0000dacb - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - b _0809697A - .align 2, 0 -_08096950: .4byte gPokemonStorage -_08096954: .4byte gSharedMem -_08096958: .4byte 0x000012bc -_0809695C: .4byte 0x000012be -_08096960: .4byte 0x0000dacb -_08096964: - bl sub_8096874 - ldr r0, _0809698C @ =sub_8096BF0 - bl sub_8096BE0 - ldr r0, _08096990 @ =sub_8096B38 - bl SetMainCallback2 - ldr r0, _08096994 @ =sub_8096AFC - bl SetVBlankCallback -_0809697A: - ldr r1, _08096998 @ =gMain - ldr r0, _0809699C @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08096986: - pop {r0} - bx r0 - .align 2, 0 -_0809698C: .4byte sub_8096BF0 -_08096990: .4byte sub_8096B38 -_08096994: .4byte sub_8096AFC -_08096998: .4byte gMain -_0809699C: .4byte 0x0000043c - thumb_func_end sub_8096884 - - thumb_func_start sub_80969A0 -sub_80969A0: @ 80969A0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080969BC @ =gMain - ldr r1, _080969C0 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xA - bls _080969B2 - b _08096AE4 -_080969B2: - lsls r0, 2 - ldr r1, _080969C4 @ =_080969C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080969BC: .4byte gMain -_080969C0: .4byte 0x0000043c -_080969C4: .4byte _080969C8 - .align 2, 0 -_080969C8: - .4byte _080969F4 - .4byte _08096A34 - .4byte _08096A40 - .4byte _08096A50 - .4byte _08096A56 - .4byte _08096A60 - .4byte _08096A66 - .4byte _08096A6C - .4byte _08096A72 - .4byte _08096AAC - .4byte _08096AC8 -_080969F4: - movs r0, 0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - ldr r1, _08096A28 @ =gSharedMem - ldr r0, _08096A2C @ =gUnknown_0203847D - ldrb r0, [r0] - strb r0, [r1, 0x5] - bl sub_8096804 - ldr r4, _08096A30 @ =gUnknown_0203847F - ldrb r0, [r4] - cmp r0, 0x1 - bne _08096A1A - bl sub_809BBC0 -_08096A1A: - ldrb r0, [r4] - cmp r0, 0 - bne _08096AD8 - bl sub_809BD14 - b _08096AD8 - .align 2, 0 -_08096A28: .4byte gSharedMem -_08096A2C: .4byte gUnknown_0203847D -_08096A30: .4byte gUnknown_0203847F -_08096A34: - ldr r0, _08096A3C @ =gWindowConfig_81E6D00 - bl SetUpWindowConfig - b _08096AD8 - .align 2, 0 -_08096A3C: .4byte gWindowConfig_81E6D00 -_08096A40: - ldr r0, _08096A4C @ =gWindowConfig_81E6D00 - bl InitMenuWindow - bl MenuZeroFillScreen - b _08096AD8 - .align 2, 0 -_08096A4C: .4byte gWindowConfig_81E6D00 -_08096A50: - bl sub_80967DC - b _08096AD8 -_08096A56: - bl sub_8098B48 - bl sub_809AA98 - b _08096AD8 -_08096A60: - bl sub_8097DE0 - b _08096AD8 -_08096A66: - bl sub_8097E70 - b _08096AD8 -_08096A6C: - bl sub_8098400 - b _08096AD8 -_08096A72: - ldr r0, _08096A98 @ =gPokemonStorage - ldrb r0, [r0] - bl sub_8099BF8 - ldr r2, _08096A9C @ =gSharedMem - ldr r1, _08096AA0 @ =0x000012bc - adds r0, r2, r1 - movs r1, 0xA - strh r1, [r0] - ldr r1, _08096AA4 @ =0x000012be - adds r2, r1 - ldr r1, _08096AA8 @ =0x0000dacb - strh r1, [r2] - bl sub_80F727C - bl sub_80F7404 - b _08096AD8 - .align 2, 0 -_08096A98: .4byte gPokemonStorage -_08096A9C: .4byte gSharedMem -_08096AA0: .4byte 0x000012bc -_08096AA4: .4byte 0x000012be -_08096AA8: .4byte 0x0000dacb -_08096AAC: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08096AC4 @ =sub_8096AFC - bl SetVBlankCallback - b _08096AD8 - .align 2, 0 -_08096AC4: .4byte sub_8096AFC -_08096AC8: - bl sub_8096874 - ldr r0, _08096AEC @ =sub_8096C68 - bl sub_8096BE0 - ldr r0, _08096AF0 @ =sub_8096B38 - bl SetMainCallback2 -_08096AD8: - ldr r1, _08096AF4 @ =gMain - ldr r0, _08096AF8 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08096AE4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096AEC: .4byte sub_8096C68 -_08096AF0: .4byte sub_8096B38 -_08096AF4: .4byte gMain -_08096AF8: .4byte 0x0000043c - thumb_func_end sub_80969A0 - - thumb_func_start sub_8096AFC -sub_8096AFC: @ 8096AFC - push {lr} - ldr r2, _08096B2C @ =REG_BG2HOFS - ldr r1, _08096B30 @ =gSharedMem - ldr r3, _08096B34 @ =0x000008b4 - adds r0, r1, r3 - ldrh r0, [r0] - strh r0, [r2] - adds r2, 0x4 - ldrh r0, [r1, 0xA] - strh r0, [r2] - adds r2, 0x2 - ldrh r0, [r1, 0x8] - strh r0, [r2] - bl LoadOam - bl ProcessSpriteCopyRequests - bl sub_809CFF0 - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_08096B2C: .4byte REG_BG2HOFS -_08096B30: .4byte gSharedMem -_08096B34: .4byte 0x000008b4 - thumb_func_end sub_8096AFC - - thumb_func_start sub_8096B38 -sub_8096B38: @ 8096B38 - push {lr} - ldr r0, _08096B58 @ =gSharedMem - ldr r0, [r0] - bl _call_via_r0 - bl sub_8097E44 - bl sub_8098734 - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - .align 2, 0 -_08096B58: .4byte gSharedMem - thumb_func_end sub_8096B38 - - thumb_func_start sub_8096B5C -sub_8096B5C: @ 8096B5C - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _08096B70 @ =gSharedMem - ldrb r0, [r4, 0x6] - cmp r0, 0 - beq _08096B74 - cmp r0, 0x1 - beq _08096BAC - b _08096BCC - .align 2, 0 -_08096B70: .4byte gSharedMem -_08096B74: - ldr r1, _08096B98 @ =0x00002690 - adds r0, r4, r1 - ldr r0, [r0] - ldr r2, _08096B9C @ =0x0000268d - adds r1, r4, r2 - ldrb r1, [r1] - ldr r3, _08096BA0 @ =0x0000268c - adds r2, r4, r3 - ldrb r2, [r2] - ldr r3, _08096BA4 @ =sub_80969A0 - ldr r5, _08096BA8 @ =0x0000268e - adds r4, r5 - ldrb r4, [r4] - str r4, [sp] - bl ShowPokemonSummaryScreen - b _08096BCC - .align 2, 0 -_08096B98: .4byte 0x00002690 -_08096B9C: .4byte 0x0000268d -_08096BA0: .4byte 0x0000268c -_08096BA4: .4byte sub_80969A0 -_08096BA8: .4byte 0x0000268e -_08096BAC: - ldr r0, _08096BD4 @ =gPokemonStorage - ldrb r2, [r0] - lsls r1, r2, 3 - adds r1, r2 - ldr r2, _08096BD8 @ =0x00008344 - adds r0, r2 - adds r1, r0 - movs r0, 0 - str r0, [sp] - ldr r0, _08096BDC @ =sub_80969A0 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DoNamingScreen -_08096BCC: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08096BD4: .4byte gPokemonStorage -_08096BD8: .4byte 0x00008344 -_08096BDC: .4byte sub_80969A0 - thumb_func_end sub_8096B5C - - thumb_func_start sub_8096BE0 -sub_8096BE0: @ 8096BE0 - ldr r1, _08096BEC @ =gSharedMem - str r0, [r1] - movs r0, 0 - strb r0, [r1, 0x4] - bx lr - .align 2, 0 -_08096BEC: .4byte gSharedMem - thumb_func_end sub_8096BE0 - - thumb_func_start sub_8096BF0 -sub_8096BF0: @ 8096BF0 - push {r4,lr} - ldr r4, _08096C04 @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0x1 - beq _08096C16 - cmp r0, 0x1 - bgt _08096C08 - cmp r0, 0 - beq _08096C0E - b _08096C5C - .align 2, 0 -_08096C04: .4byte gSharedMem -_08096C08: - cmp r0, 0x2 - beq _08096C4C - b _08096C5C -_08096C0E: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - b _08096C38 -_08096C16: - movs r0, 0x2 - bl PlaySE - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08096C48 @ =0x0000dad0 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5CD4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 -_08096C38: - movs r2, 0 - bl BlendPalettes - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08096C5C - .align 2, 0 -_08096C48: .4byte 0x0000dad0 -_08096C4C: - bl sub_80C5DCC - lsls r0, 24 - cmp r0, 0 - beq _08096C5C - ldr r0, _08096C64 @ =sub_8096C84 - bl sub_8096BE0 -_08096C5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096C64: .4byte sub_8096C84 - thumb_func_end sub_8096BF0 - - thumb_func_start sub_8096C68 -sub_8096C68: @ 8096C68 - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08096C7A - ldr r0, _08096C80 @ =sub_8096C84 - bl sub_8096BE0 -_08096C7A: - pop {r0} - bx r0 - .align 2, 0 -_08096C80: .4byte sub_8096C84 - thumb_func_end sub_8096C68 - - thumb_func_start sub_8096C84 -sub_8096C84: @ 8096C84 - push {r4,lr} - ldr r0, _08096C9C @ =gSharedMem - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - bls _08096C90 - b _08096FBA -_08096C90: - lsls r0, 2 - ldr r1, _08096CA0 @ =_08096CA4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08096C9C: .4byte gSharedMem -_08096CA0: .4byte _08096CA4 - .align 2, 0 -_08096CA4: - .4byte _08096CC0 - .4byte _08096EE0 - .4byte _08096F1C - .4byte _08096F60 - .4byte _08096F80 - .4byte _08096F8A - .4byte _08096FA4 -_08096CC0: - bl sub_809CA40 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0xF - bls _08096CD0 - b _08096FBA -_08096CD0: - lsls r0, 2 - ldr r1, _08096CDC @ =_08096CE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08096CDC: .4byte _08096CE0 - .align 2, 0 -_08096CE0: - .4byte _08096D20 - .4byte _08096FBA - .4byte _08096FBA - .4byte _08096D94 - .4byte _08096D34 - .4byte _08096D5C - .4byte _08096DAC - .4byte _08096DC0 - .4byte _08096DD4 - .4byte _08096DFC - .4byte _08096E30 - .4byte _08096EB8 - .4byte _08096E70 - .4byte _08096E8C - .4byte _08096ECC - .4byte _08096DA0 -_08096D20: - movs r0, 0x5 - bl PlaySE - ldr r1, _08096D30 @ =gSharedMem - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096D30: .4byte gSharedMem -_08096D34: - ldr r4, _08096D48 @ =gSharedMem - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - beq _08096D4C - movs r0, 0x10 - bl sub_8098898 - movs r0, 0x3 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096D48: .4byte gSharedMem -_08096D4C: - bl sub_809B0D4 - ldr r0, _08096D58 @ =sub_8096FC8 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D58: .4byte sub_8096FC8 -_08096D5C: - ldr r4, _08096D88 @ =gSharedMem - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - beq _08096D66 - b _08096FBA -_08096D66: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08096D80 - ldr r1, _08096D8C @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - bne _08096E4C -_08096D80: - ldr r0, _08096D90 @ =sub_8097004 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D88: .4byte gSharedMem -_08096D8C: .4byte 0x000011f2 -_08096D90: .4byte sub_8097004 -_08096D94: - ldr r0, _08096D9C @ =sub_8097BA0 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096D9C: .4byte sub_8097BA0 -_08096DA0: - ldr r0, _08096DA8 @ =sub_8097CC0 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DA8: .4byte sub_8097CC0 -_08096DAC: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096DBC @ =sub_809789C - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DBC: .4byte sub_809789C -_08096DC0: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096DD0 @ =sub_8097078 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096DD0: .4byte sub_8097078 -_08096DD4: - movs r0, 0x5 - bl PlaySE - ldr r4, _08096DF0 @ =gSharedMem - ldr r0, _08096DF4 @ =gPokemonStorage - ldrb r0, [r0] - adds r0, 0x1 - ldr r2, _08096DF8 @ =0x000008b2 - adds r1, r4, r2 - strh r0, [r1] - cmp r0, 0xD - ble _08096E18 - movs r0, 0 - b _08096E16 - .align 2, 0 -_08096DF0: .4byte gSharedMem -_08096DF4: .4byte gPokemonStorage -_08096DF8: .4byte 0x000008b2 -_08096DFC: - movs r0, 0x5 - bl PlaySE - ldr r4, _08096E24 @ =gSharedMem - ldr r0, _08096E28 @ =gPokemonStorage - ldrb r0, [r0] - subs r0, 0x1 - ldr r2, _08096E2C @ =0x000008b2 - adds r1, r4, r2 - strh r0, [r1] - cmp r0, 0 - bge _08096E18 - movs r0, 0xD -_08096E16: - strh r0, [r1] -_08096E18: - ldrb r0, [r1] - bl sub_8099C70 - movs r0, 0x2 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096E24: .4byte gSharedMem -_08096E28: .4byte gPokemonStorage -_08096E2C: .4byte 0x000008b2 -_08096E30: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _08096E96 - ldr r4, _08096E54 @ =gSharedMem - ldr r1, _08096E58 @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _08096E5C -_08096E4C: - movs r0, 0x5 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096E54: .4byte gSharedMem -_08096E58: .4byte 0x000011f2 -_08096E5C: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096E6C @ =sub_809746C - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096E6C: .4byte sub_809746C -_08096E70: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _08096E96 - movs r0, 0x5 - bl PlaySE - ldr r0, _08096E88 @ =sub_80972A8 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096E88: .4byte sub_80972A8 -_08096E8C: - bl sub_809BEBC - lsls r0, 24 - cmp r0, 0 - bne _08096EA4 -_08096E96: - ldr r1, _08096EA0 @ =gSharedMem - movs r0, 0x4 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096EA0: .4byte gSharedMem -_08096EA4: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EB4 @ =c3_0808DC50 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EB4: .4byte c3_0808DC50 -_08096EB8: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EC8 @ =sub_8097390 - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EC8: .4byte sub_8097390 -_08096ECC: - movs r0, 0x5 - bl PlaySE - ldr r0, _08096EDC @ =sub_80972FC - bl sub_8096BE0 - b _08096FBA - .align 2, 0 -_08096EDC: .4byte sub_80972FC -_08096EE0: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _08096FBA - bl sub_809BF48 - lsls r0, 24 - cmp r0, 0 - beq _08096EFA - bl sub_80986E8 - b _08096EFE -_08096EFA: - bl sub_8098710 -_08096EFE: - ldr r4, _08096F14 @ =gSharedMem - ldr r2, _08096F18 @ =0x000011f6 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08096F0E - bl BoxSetMosaic -_08096F0E: - movs r0, 0 - strb r0, [r4, 0x4] - b _08096FBA - .align 2, 0 -_08096F14: .4byte gSharedMem -_08096F18: .4byte 0x000011f6 -_08096F1C: - bl sub_8099D34 - lsls r0, 24 - cmp r0, 0 - bne _08096FBA - ldr r1, _08096F50 @ =gPokemonStorage - ldr r0, _08096F54 @ =gSharedMem - ldr r2, _08096F58 @ =0x000008b2 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, _08096F5C @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - bne _08096F70 - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - bne _08096F70 - bl sub_809B440 - bl BoxSetMosaic - b _08096F70 - .align 2, 0 -_08096F50: .4byte gPokemonStorage -_08096F54: .4byte gSharedMem -_08096F58: .4byte 0x000008b2 -_08096F5C: .4byte gUnknown_0203847C -_08096F60: - ldr r0, _08096F78 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08096FBA - bl sub_8098A5C -_08096F70: - ldr r1, _08096F7C @ =gSharedMem - movs r0, 0 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096F78: .4byte gMain -_08096F7C: .4byte gSharedMem -_08096F80: - movs r0, 0x20 - bl PlaySE - movs r0, 0xD - b _08096F92 -_08096F8A: - movs r0, 0x20 - bl PlaySE - movs r0, 0x16 -_08096F92: - bl sub_8098898 - ldr r1, _08096FA0 @ =gSharedMem - movs r0, 0x6 - strb r0, [r1, 0x4] - b _08096FBA - .align 2, 0 -_08096FA0: .4byte gSharedMem -_08096FA4: - ldr r0, _08096FC0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08096FBA - bl sub_8098A5C - ldr r0, _08096FC4 @ =sub_8096C84 - bl sub_8096BE0 -_08096FBA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08096FC0: .4byte gMain -_08096FC4: .4byte sub_8096C84 - thumb_func_end sub_8096C84 - - thumb_func_start sub_8096FC8 -sub_8096FC8: @ 8096FC8 - push {r4,lr} - ldr r4, _08096FD8 @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08096FDC - cmp r0, 0x1 - beq _08096FE8 - b _08096FF8 - .align 2, 0 -_08096FD8: .4byte gSharedMem -_08096FDC: - bl sub_809880C - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08096FF8 -_08096FE8: - bl sub_8098830 - lsls r0, 24 - cmp r0, 0 - bne _08096FF8 - ldr r0, _08097000 @ =sub_8096C84 - bl sub_8096BE0 -_08096FF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097000: .4byte sub_8096C84 - thumb_func_end sub_8096FC8 - - thumb_func_start sub_8097004 -sub_8097004: @ 8097004 - push {r4,lr} - ldr r4, _08097018 @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0x1 - beq _0809702E - cmp r0, 0x1 - bgt _0809701C - cmp r0, 0 - beq _08097022 - b _0809706A - .align 2, 0 -_08097018: .4byte gSharedMem -_0809701C: - cmp r0, 0x2 - beq _0809704C - b _0809706A -_08097022: - movs r0, 0x5 - bl PlaySE - bl add_to_c3_somehow - b _08097044 -_0809702E: - bl sub_80985CC - lsls r0, 24 - cmp r0, 0 - bne _0809706A - bl sub_809B0F4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809B0C0 -_08097044: - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809706A -_0809704C: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _0809706A - ldr r1, _08097070 @ =0x000011f6 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08097064 - bl BoxSetMosaic -_08097064: - ldr r0, _08097074 @ =sub_8096C84 - bl sub_8096BE0 -_0809706A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097070: .4byte 0x000011f6 -_08097074: .4byte sub_8096C84 - thumb_func_end sub_8097004 - - thumb_func_start sub_8097078 -sub_8097078: @ 8097078 - push {r4,lr} - ldr r0, _08097090 @ =gSharedMem - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - bls _08097084 - b _0809729A -_08097084: - lsls r0, 2 - ldr r1, _08097094 @ =_08097098 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097090: .4byte gSharedMem -_08097094: .4byte _08097098 - .align 2, 0 -_08097098: - .4byte _080970B0 - .4byte _080970C8 - .4byte _08097258 - .4byte _0809726C - .4byte _08097262 - .4byte _08097284 -_080970B0: - movs r0, 0x4 - bl sub_8098898 - bl sub_809CE84 - ldr r1, _080970C4 @ =gSharedMem - movs r0, 0x1 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_080970C4: .4byte gSharedMem -_080970C8: - bl sub_809CF30 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bls _080970D8 - b _0809729A -_080970D8: - lsls r0, 2 - ldr r1, _080970E4 @ =_080970E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080970E4: .4byte _080970E8 - .align 2, 0 -_080970E8: - .4byte _08097110 - .4byte _08097110 - .4byte _08097190 - .4byte _08097178 - .4byte _08097120 - .4byte _08097158 - .4byte _08097140 - .4byte _08097230 - .4byte _080971CC - .4byte _08097244 -_08097110: - bl sub_8098A5C - ldr r0, _0809711C @ =sub_8096C84 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809711C: .4byte sub_8096C84 -_08097120: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _080971D6 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _0809713C @ =sub_80972A8 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809713C: .4byte sub_80972A8 -_08097140: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097154 @ =sub_80972FC - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097154: .4byte sub_80972FC -_08097158: - bl sub_809BEBC - lsls r0, 24 - cmp r0, 0 - beq _080971D6 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097174 @ =c3_0808DC50 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097174: .4byte c3_0808DC50 -_08097178: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _0809718C @ =sub_8097390 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809718C: .4byte sub_8097390 -_08097190: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - bne _080971D6 - ldr r4, _080971C0 @ =gSharedMem - ldr r1, _080971C4 @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - bne _08097210 - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _080971C8 @ =sub_809746C - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_080971C0: .4byte gSharedMem -_080971C4: .4byte 0x000011f2 -_080971C8: .4byte sub_809746C -_080971CC: - bl sub_809BE80 - lsls r0, 24 - cmp r0, 0 - beq _080971E4 -_080971D6: - ldr r1, _080971E0 @ =gSharedMem - movs r0, 0x2 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_080971E0: .4byte gSharedMem -_080971E4: - ldr r4, _080971F8 @ =gSharedMem - ldr r1, _080971FC @ =0x000011f9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08097200 - movs r0, 0x4 - strb r0, [r4, 0x4] - b _0809729A - .align 2, 0 -_080971F8: .4byte gSharedMem -_080971FC: .4byte 0x000011f9 -_08097200: - ldr r1, _08097218 @ =0x000011f2 - adds r0, r4, r1 - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - cmp r0, 0 - beq _0809721C -_08097210: - movs r0, 0x3 - strb r0, [r4, 0x4] - b _0809729A - .align 2, 0 -_08097218: .4byte 0x000011f2 -_0809721C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0809722C @ =sub_8097594 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_0809722C: .4byte sub_8097594 -_08097230: - movs r0, 0x5 - bl PlaySE - ldr r0, _08097240 @ =sub_8097788 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097240: .4byte sub_8097788 -_08097244: - movs r0, 0x5 - bl PlaySE - ldr r0, _08097254 @ =sub_80977E4 - bl sub_8096BE0 - b _0809729A - .align 2, 0 -_08097254: .4byte sub_80977E4 -_08097258: - movs r0, 0x20 - bl PlaySE - movs r0, 0xD - b _08097274 -_08097262: - movs r0, 0x20 - bl PlaySE - movs r0, 0x11 - b _08097274 -_0809726C: - movs r0, 0x20 - bl PlaySE - movs r0, 0x16 -_08097274: - bl sub_8098898 - ldr r1, _08097280 @ =gSharedMem - movs r0, 0x5 - strb r0, [r1, 0x4] - b _0809729A - .align 2, 0 -_08097280: .4byte gSharedMem -_08097284: - ldr r0, _080972A0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _0809729A - bl sub_8098A5C - ldr r0, _080972A4 @ =sub_8096C84 - bl sub_8096BE0 -_0809729A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080972A0: .4byte gMain -_080972A4: .4byte sub_8096C84 - thumb_func_end sub_8097078 - - thumb_func_start sub_80972A8 -sub_80972A8: @ 80972A8 - push {r4,lr} - ldr r4, _080972B8 @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080972BC - cmp r0, 0x1 - beq _080972CA - b _080972F2 - .align 2, 0 -_080972B8: .4byte gSharedMem -_080972BC: - movs r0, 0 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _080972F2 -_080972CA: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _080972F2 - ldr r0, _080972E4 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080972EC - ldr r0, _080972E8 @ =sub_8097858 - bl sub_8096BE0 - b _080972F2 - .align 2, 0 -_080972E4: .4byte gUnknown_0203847C -_080972E8: .4byte sub_8097858 -_080972EC: - ldr r0, _080972F8 @ =sub_8096C84 - bl sub_8096BE0 -_080972F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080972F8: .4byte sub_8096C84 - thumb_func_end sub_80972A8 - - thumb_func_start sub_80972FC -sub_80972FC: @ 80972FC - push {r4,lr} - ldr r4, _0809730C @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097310 - cmp r0, 0x1 - beq _0809731E - b _08097346 - .align 2, 0 -_0809730C: .4byte gSharedMem -_08097310: - movs r0, 0x1 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097346 -_0809731E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097346 - ldr r0, _08097338 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _08097340 - ldr r0, _0809733C @ =sub_8097858 - bl sub_8096BE0 - b _08097346 - .align 2, 0 -_08097338: .4byte gUnknown_0203847C -_0809733C: .4byte sub_8097858 -_08097340: - ldr r0, _0809734C @ =sub_8096C84 - bl sub_8096BE0 -_08097346: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809734C: .4byte sub_8096C84 - thumb_func_end sub_80972FC - - thumb_func_start c3_0808DC50 -c3_0808DC50: @ 8097350 - push {r4,lr} - ldr r4, _08097360 @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _08097364 - cmp r0, 0x1 - beq _08097372 - b _08097386 - .align 2, 0 -_08097360: .4byte gSharedMem -_08097364: - movs r0, 0x2 - bl sub_809B100 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097386 -_08097372: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097386 - bl BoxSetMosaic - ldr r0, _0809738C @ =sub_8096C84 - bl sub_8096BE0 -_08097386: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809738C: .4byte sub_8096C84 - thumb_func_end c3_0808DC50 - - thumb_func_start sub_8097390 -sub_8097390: @ 8097390 - push {lr} - ldr r0, _080973A4 @ =gSharedMem - ldrb r0, [r0, 0x4] - cmp r0, 0x5 - bhi _08097462 - lsls r0, 2 - ldr r1, _080973A8 @ =_080973AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080973A4: .4byte gSharedMem -_080973A8: .4byte _080973AC - .align 2, 0 -_080973AC: - .4byte _080973C4 - .4byte _080973FC - .4byte _0809741C - .4byte _0809742C - .4byte _0809743E - .4byte _0809745C -_080973C4: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _080973E4 - movs r0, 0xE - bl sub_8098898 - ldr r1, _080973E0 @ =gSharedMem - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973E0: .4byte gSharedMem -_080973E4: - bl sub_809B0E0 - movs r0, 0 - bl sub_809B100 - ldr r1, _080973F8 @ =gSharedMem - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_080973F8: .4byte gSharedMem -_080973FC: - ldr r0, _08097414 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097462 - bl sub_8098A5C - ldr r0, _08097418 @ =sub_8096C84 - bl sub_8096BE0 - b _08097462 - .align 2, 0 -_08097414: .4byte gMain -_08097418: .4byte sub_8096C84 -_0809741C: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_809880C - b _0809744C -_0809742C: - bl sub_8098830 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - movs r0, 0x1 - bl sub_809B100 - b _0809744C -_0809743E: - bl sub_809B130 - lsls r0, 24 - cmp r0, 0 - bne _08097462 - bl sub_80987DC -_0809744C: - ldr r1, _08097458 @ =gSharedMem - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097462 - .align 2, 0 -_08097458: .4byte gSharedMem -_0809745C: - ldr r0, _08097468 @ =sub_8097004 - bl sub_8096BE0 -_08097462: - pop {r0} - bx r0 - .align 2, 0 -_08097468: .4byte sub_8097004 - thumb_func_end sub_8097390 - - thumb_func_start sub_809746C -sub_809746C: @ 809746C - push {r4,lr} - ldr r0, _08097484 @ =gSharedMem - ldrb r0, [r0, 0x4] - cmp r0, 0x4 - bls _08097478 - b _08097584 -_08097478: - lsls r0, 2 - ldr r1, _08097488 @ =_0809748C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097484: .4byte gSharedMem -_08097488: .4byte _0809748C - .align 2, 0 -_0809748C: - .4byte _080974A0 - .4byte _080974D8 - .4byte _08097534 - .4byte _08097548 - .4byte _0809756C -_080974A0: - movs r0, 0x6 - bl sub_8098898 - ldr r4, _080974C8 @ =gSharedMem + 0x2370 - ldr r2, _080974CC @ =0x0000daca - adds r0, r4, 0 - movs r1, 0x7 - movs r3, 0x3 - bl sub_8096264 - ldr r0, _080974D0 @ =gUnknown_0203847E - ldrb r0, [r0] - bl sub_809634C - ldr r0, _080974D4 @ =0xffffdc90 - adds r4, r0 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097584 - .align 2, 0 -_080974C8: .4byte gSharedMem + 0x2370 -_080974CC: .4byte 0x0000daca -_080974D0: .4byte gUnknown_0203847E -_080974D4: .4byte 0xffffdc90 -_080974D8: - bl sub_8096368 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xC8 - beq _08097584 - cmp r4, 0xC9 - bne _080974F6 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - b _0809755E -_080974F6: - adds r0, r4, 0 - bl sub_809B62C - lsls r0, 24 - cmp r0, 0 - beq _08097518 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - ldr r1, _08097514 @ =gSharedMem - movs r0, 0x2 - b _08097522 - .align 2, 0 -_08097514: .4byte gSharedMem -_08097518: - movs r0, 0x8 - bl sub_8098898 - ldr r1, _0809752C @ =gSharedMem - movs r0, 0x4 -_08097522: - strb r0, [r1, 0x4] - ldr r0, _08097530 @ =gUnknown_0203847E - strb r4, [r0] - b _08097584 - .align 2, 0 -_0809752C: .4byte gSharedMem -_08097530: .4byte gUnknown_0203847E -_08097534: - bl party_compaction - bl sub_8099310 - ldr r1, _08097544 @ =gSharedMem - ldrb r0, [r1, 0x4] - adds r0, 0x1 - b _08097582 - .align 2, 0 -_08097544: .4byte gSharedMem -_08097548: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _08097584 - bl sub_809B6BC - bl BoxSetMosaic - bl sub_80987DC -_0809755E: - ldr r0, _08097568 @ =sub_8096C84 - bl sub_8096BE0 - b _08097584 - .align 2, 0 -_08097568: .4byte sub_8096C84 -_0809756C: - ldr r0, _0809758C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08097584 - movs r0, 0x6 - bl sub_8098898 - ldr r1, _08097590 @ =gSharedMem - movs r0, 0x1 -_08097582: - strb r0, [r1, 0x4] -_08097584: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809758C: .4byte gMain -_08097590: .4byte gSharedMem - thumb_func_end sub_809746C - - thumb_func_start sub_8097594 -sub_8097594: @ 8097594 - push {r4,lr} - ldr r0, _080975AC @ =gSharedMem - ldrb r0, [r0, 0x4] - cmp r0, 0xD - bls _080975A0 - b _0809777A -_080975A0: - lsls r0, 2 - ldr r1, _080975B0 @ =_080975B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080975AC: .4byte gSharedMem -_080975B0: .4byte _080975B4 - .align 2, 0 -_080975B4: - .4byte _080975EC - .4byte _08097600 - .4byte _0809763A - .4byte _0809766E - .4byte _0809767A - .4byte _08097690 - .4byte _080976C8 - .4byte _080976E0 - .4byte _080976EC - .4byte _080976F0 - .4byte _08097704 - .4byte _08097720 - .4byte _08097732 - .4byte _08097764 -_080975EC: - movs r0, 0x9 - bl sub_8098898 - movs r0, 0x1 - bl sub_8098A38 - ldr r1, _0809761C @ =gSharedMem - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] -_08097600: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _0809762C - cmp r1, 0 - bgt _08097620 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097626 - b _0809777A - .align 2, 0 -_0809761C: .4byte gSharedMem -_08097620: - cmp r1, 0x1 - beq _08097626 - b _0809777A -_08097626: - bl sub_8098A5C - b _080976E0 -_0809762C: - bl sub_8098A5C - bl sub_809B7D4 - bl sub_809B6DC - b _08097744 -_0809763A: - bl sub_809B960 - bl sub_809B734 - lsls r0, 24 - cmp r0, 0 - beq _0809764A - b _0809777A -_0809764A: - ldr r4, _08097650 @ =gSharedMem - b _0809765A - .align 2, 0 -_08097650: .4byte gSharedMem -_08097654: - cmp r0, 0 - bne _0809765A - b _08097758 -_0809765A: - bl sub_809B960 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _08097654 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809777A -_0809766E: - bl sub_809B760 - bl sub_809801C - movs r0, 0xA - b _08097740 -_0809767A: - ldr r0, _0809768C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08097688 - b _0809777A -_08097688: - movs r0, 0xB - b _08097740 - .align 2, 0 -_0809768C: .4byte gMain -_08097690: - ldr r0, _080976B4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - ldr r0, _080976B8 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080976BC - bl party_compaction - bl sub_8099310 - b _08097744 - .align 2, 0 -_080976B4: .4byte gMain -_080976B8: .4byte gUnknown_0203847C -_080976BC: - ldr r1, _080976C4 @ =gSharedMem - movs r0, 0x7 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_080976C4: .4byte gSharedMem -_080976C8: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _0809777A - bl sub_809B440 - bl BoxSetMosaic - bl sub_80987DC - b _08097744 -_080976E0: - ldr r0, _080976E8 @ =sub_8096C84 - bl sub_8096BE0 - b _0809777A - .align 2, 0 -_080976E8: .4byte sub_8096C84 -_080976EC: - movs r0, 0xA - b _08097740 -_080976F0: - ldr r0, _08097700 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - movs r0, 0x15 - b _08097740 - .align 2, 0 -_08097700: .4byte gMain -_08097704: - ldr r0, _0809771C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - bl sub_8099958 - b _08097744 - .align 2, 0 -_0809771C: .4byte gMain -_08097720: - bl sub_8099990 - lsls r0, 24 - cmp r0, 0 - bne _0809777A - bl sub_809B7AC - movs r0, 0x13 - b _08097740 -_08097732: - ldr r0, _08097750 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - movs r0, 0x14 -_08097740: - bl sub_8098898 -_08097744: - ldr r1, _08097754 @ =gSharedMem - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_08097750: .4byte gMain -_08097754: .4byte gSharedMem -_08097758: - ldr r1, _08097760 @ =gSharedMem - movs r0, 0x8 - strb r0, [r1, 0x4] - b _0809777A - .align 2, 0 -_08097760: .4byte gSharedMem -_08097764: - ldr r0, _08097780 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _0809777A - bl sub_8098A5C - ldr r0, _08097784 @ =sub_8096C84 - bl sub_8096BE0 -_0809777A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097780: .4byte gMain -_08097784: .4byte sub_8096C84 - thumb_func_end sub_8097594 - - thumb_func_start sub_8097788 -sub_8097788: @ 8097788 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _0809779C @ =gSharedMem - ldrb r4, [r5, 0x4] - cmp r4, 0 - beq _080977A0 - cmp r4, 0x1 - beq _080977BC - b _080977D4 - .align 2, 0 -_0809779C: .4byte gSharedMem -_080977A0: - bl sub_809BC18 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _080977D4 -_080977BC: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080977D4 - ldr r0, _080977DC @ =gUnknown_0203847F - strb r1, [r0] - strb r1, [r5, 0x6] - ldr r0, _080977E0 @ =sub_8096B5C - bl SetMainCallback2 -_080977D4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080977DC: .4byte gUnknown_0203847F -_080977E0: .4byte sub_8096B5C - thumb_func_end sub_8097788 - - thumb_func_start sub_80977E4 -sub_80977E4: @ 80977E4 - push {r4,lr} - ldr r4, _080977F4 @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080977F8 - cmp r0, 0x1 - beq _08097824 - b _0809784C - .align 2, 0 -_080977F4: .4byte gSharedMem -_080977F8: - movs r0, 0xC - bl sub_8098898 - ldr r0, _08097820 @ =0x000011f7 - adds r2, r4, r0 - ldrb r1, [r2] - movs r3, 0x96 - lsls r3, 5 - adds r0, r4, r3 - strb r1, [r0] - ldrb r0, [r2] - movs r1, 0xB0 - movs r2, 0x10 - bl sub_80F7418 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _0809784C - .align 2, 0 -_08097820: .4byte 0x000011f7 -_08097824: - bl sub_80F7500 - lsls r0, 24 - cmp r0, 0 - bne _0809784C - bl sub_80F7470 - bl sub_8098A5C - movs r1, 0x96 - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - bl sub_809BDD8 - bl sub_809801C - ldr r0, _08097854 @ =sub_8096C84 - bl sub_8096BE0 -_0809784C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097854: .4byte sub_8096C84 - thumb_func_end sub_80977E4 - - thumb_func_start sub_8097858 -sub_8097858: @ 8097858 - push {r4,lr} - ldr r4, _08097868 @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _0809786C - cmp r0, 0x1 - beq _0809787C - b _08097890 - .align 2, 0 -_08097868: .4byte gSharedMem -_0809786C: - bl party_compaction - bl sub_8099310 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097890 -_0809787C: - bl sub_8099374 - lsls r0, 24 - cmp r0, 0 - bne _08097890 - bl sub_80987DC - ldr r0, _08097898 @ =sub_8096C84 - bl sub_8096BE0 -_08097890: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097898: .4byte sub_8096C84 - thumb_func_end sub_8097858 - - thumb_func_start sub_809789C -sub_809789C: @ 809789C - push {r4,lr} - ldr r4, _080978AC @ =gSharedMem - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080978B0 - cmp r0, 0x1 - beq _080978C2 - b _08097968 - .align 2, 0 -_080978AC: .4byte gSharedMem -_080978B0: - movs r0, 0x1 - bl sub_8098898 - bl sub_809CE84 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097968 -_080978C2: - bl sub_809CF30 - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bhi _08097968 - lsls r0, 2 - ldr r1, _080978DC @ =_080978E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080978DC: .4byte _080978E0 - .align 2, 0 -_080978E0: - .4byte _08097914 - .4byte _08097914 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097968 - .4byte _08097958 - .4byte _08097940 - .4byte _0809792C -_08097914: - movs r0, 0x1 - bl sub_809A860 - bl sub_8098A5C - ldr r0, _08097928 @ =sub_8096C84 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_08097928: .4byte sub_8096C84 -_0809792C: - movs r0, 0x5 - bl PlaySE - ldr r0, _0809793C @ =sub_8097B44 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_0809793C: .4byte sub_8097B44 -_08097940: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097954 @ =sub_8097974 - bl sub_8096BE0 - b _08097968 - .align 2, 0 -_08097954: .4byte sub_8097974 -_08097958: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldr r0, _08097970 @ =sub_8097A64 - bl sub_8096BE0 -_08097968: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097970: .4byte sub_8097A64 - thumb_func_end sub_809789C - - thumb_func_start sub_8097974 -sub_8097974: @ 8097974 - push {r4,r5,lr} - ldr r5, _08097988 @ =gSharedMem - ldrb r0, [r5, 0x4] - cmp r0, 0x1 - beq _080979A2 - cmp r0, 0x1 - bgt _0809798C - cmp r0, 0 - beq _08097996 - b _08097A5A - .align 2, 0 -_08097988: .4byte gSharedMem -_0809798C: - cmp r0, 0x2 - beq _080979FC - cmp r0, 0x3 - beq _08097A44 - b _08097A5A -_08097996: - bl sub_8098A80 - movs r0, 0x2 - bl sub_8098898 - b _08097A3C -_080979A2: - bl sub_809CF30 - ldr r1, _080979CC @ =0x00000d5e - adds r4, r5, r1 - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080979D4 - movs r0, 0x1 - bl sub_809A860 - bl sub_8098A5C - ldr r0, _080979D0 @ =sub_8096C84 - bl sub_8096BE0 - b _08097A5A - .align 2, 0 -_080979CC: .4byte 0x00000d5e -_080979D0: .4byte sub_8096C84 -_080979D4: - cmp r0, r1 - blt _08097A5A - cmp r0, 0xF - bgt _08097A5A - cmp r0, 0xC - blt _08097A5A - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - subs r0, 0xC - strh r0, [r4] - lsls r0, 24 - lsrs r0, 24 - bl sub_8098AA8 - movs r0, 0x3 - bl sub_8098898 - b _08097A3C -_080979FC: - bl sub_809CF30 - movs r1, 0xD6 - lsls r1, 4 - adds r4, r5, r1 - strh r0, [r4] - movs r0, 0 - ldrsh r1, [r4, r0] - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _08097A5A - adds r0, 0x1 - cmp r1, r0 - bne _08097A24 - bl sub_8098A5C - movs r0, 0 - strb r0, [r5, 0x4] - b _08097A5A -_08097A24: - movs r0, 0x5 - bl PlaySE - bl sub_8098A5C - ldrh r0, [r4] - subs r0, 0x10 - strh r0, [r4] - lsls r0, 24 - lsrs r0, 24 - bl sub_8099DCC -_08097A3C: - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097A5A -_08097A44: - bl sub_8099E08 - lsls r0, 24 - cmp r0, 0 - bne _08097A5A - movs r0, 0x1 - bl sub_809A860 - ldr r0, _08097A60 @ =sub_8096C84 - bl sub_8096BE0 -_08097A5A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097A60: .4byte sub_8096C84 - thumb_func_end sub_8097974 - - thumb_func_start sub_8097A64 -sub_8097A64: @ 8097A64 - push {r4,r5,lr} - ldr r5, _08097A78 @ =gSharedMem - ldrb r0, [r5, 0x4] - cmp r0, 0x1 - beq _08097AB0 - cmp r0, 0x1 - bgt _08097A7C - cmp r0, 0 - beq _08097A86 - b _08097B32 - .align 2, 0 -_08097A78: .4byte gSharedMem -_08097A7C: - cmp r0, 0x2 - beq _08097B00 - cmp r0, 0x3 - beq _08097B18 - b _08097B32 -_08097A86: - movs r0, 0x5 - bl sub_8098898 - ldr r1, _08097AA4 @ =0x00002370 - adds r0, r5, r1 - ldr r2, _08097AA8 @ =0x0000daca - movs r1, 0x7 - movs r3, 0x3 - bl sub_8096264 - ldr r0, _08097AAC @ =gPokemonStorage - ldrb r0, [r0] - bl sub_809634C - b _08097B0A - .align 2, 0 -_08097AA4: .4byte 0x00002370 -_08097AA8: .4byte 0x0000daca -_08097AAC: .4byte gPokemonStorage -_08097AB0: - bl sub_8096368 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08097AF4 @ =0x000008b2 - adds r4, r5, r2 - strh r0, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0xC8 - beq _08097B32 - bl sub_8098A5C - bl sub_809635C - bl sub_8096310 - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0xC9 - beq _08097AE4 - adds r1, r0, 0 - ldr r0, _08097AF8 @ =gPokemonStorage - ldrb r0, [r0] - cmp r1, r0 - bne _08097B0A -_08097AE4: - movs r0, 0x1 - bl sub_809A860 - ldr r0, _08097AFC @ =sub_8096C84 - bl sub_8096BE0 - b _08097B32 - .align 2, 0 -_08097AF4: .4byte 0x000008b2 -_08097AF8: .4byte gPokemonStorage -_08097AFC: .4byte sub_8096C84 -_08097B00: - ldr r1, _08097B14 @ =0x000008b2 - adds r0, r5, r1 - ldrb r0, [r0] - bl sub_8099C70 -_08097B0A: - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097B32 - .align 2, 0 -_08097B14: .4byte 0x000008b2 -_08097B18: - bl sub_8099D34 - lsls r0, 24 - cmp r0, 0 - bne _08097B32 - ldr r1, _08097B38 @ =gPokemonStorage - ldr r2, _08097B3C @ =0x000008b2 - adds r0, r5, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, _08097B40 @ =sub_8096C84 - bl sub_8096BE0 -_08097B32: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097B38: .4byte gPokemonStorage -_08097B3C: .4byte 0x000008b2 -_08097B40: .4byte sub_8096C84 - thumb_func_end sub_8097A64 - - thumb_func_start sub_8097B44 -sub_8097B44: @ 8097B44 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _08097B58 @ =gSharedMem - ldrb r4, [r5, 0x4] - cmp r4, 0 - beq _08097B5C - cmp r4, 0x1 - beq _08097B78 - b _08097B8E - .align 2, 0 -_08097B58: .4byte gSharedMem -_08097B5C: - bl sub_809BB90 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5, 0x4] - adds r0, 0x1 - strb r0, [r5, 0x4] - b _08097B8E -_08097B78: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08097B8E - ldr r0, _08097B98 @ =gUnknown_0203847F - strb r4, [r0] - strb r4, [r5, 0x6] - ldr r0, _08097B9C @ =sub_8096B5C - bl SetMainCallback2 -_08097B8E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08097B98: .4byte gUnknown_0203847F -_08097B9C: .4byte sub_8096B5C - thumb_func_end sub_8097B44 - - thumb_func_start sub_8097BA0 -sub_8097BA0: @ 8097BA0 - push {r4,lr} - ldr r0, _08097BB8 @ =gSharedMem - ldrb r1, [r0, 0x4] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08097BAE - b _08097CB0 -_08097BAE: - lsls r0, r1, 2 - ldr r1, _08097BBC @ =_08097BC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097BB8: .4byte gSharedMem -_08097BBC: .4byte _08097BC0 - .align 2, 0 -_08097BC0: - .4byte _08097BD4 - .4byte _08097C18 - .4byte _08097C2C - .4byte _08097C74 - .4byte _08097C98 -_08097BD4: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08097BF8 - movs r0, 0x20 - bl PlaySE - movs r0, 0xF - bl sub_8098898 - ldr r1, _08097BF4 @ =gSharedMem - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097BF4: .4byte gSharedMem -_08097BF8: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_8098898 - movs r0, 0 - bl sub_8098A38 - ldr r1, _08097C14 @ =gSharedMem - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097C14: .4byte gSharedMem -_08097C18: - ldr r0, _08097C28 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097CB0 - b _08097C4A - .align 2, 0 -_08097C28: .4byte gMain -_08097C2C: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08097C5C - cmp r1, 0 - bgt _08097C46 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097C4A - b _08097CB0 -_08097C46: - cmp r1, 0x1 - bne _08097CB0 -_08097C4A: - bl sub_8098A5C - ldr r0, _08097C58 @ =sub_8096C84 - bl sub_8096BE0 - b _08097CB0 - .align 2, 0 -_08097C58: .4byte sub_8096C84 -_08097C5C: - movs r0, 0x3 - bl PlaySE - bl sub_8098A5C - ldr r1, _08097C70 @ =gSharedMem - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097CB0 - .align 2, 0 -_08097C70: .4byte gSharedMem -_08097C74: - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08097C94 @ =0x0000dad0 - strh r0, [r4, 0xE] - movs r0, 0x14 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5E38 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097CB0 - .align 2, 0 -_08097C94: .4byte 0x0000dad0 -_08097C98: - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08097CB0 - bl CalculatePlayerPartyCount - ldr r1, _08097CB8 @ =gPlayerPartyCount - strb r0, [r1] - ldr r0, _08097CBC @ =sub_80961A8 - bl SetMainCallback2 -_08097CB0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097CB8: .4byte gPlayerPartyCount -_08097CBC: .4byte sub_80961A8 - thumb_func_end sub_8097BA0 - - thumb_func_start sub_8097CC0 -sub_8097CC0: @ 8097CC0 - push {r4,lr} - ldr r0, _08097CD8 @ =gSharedMem - ldrb r1, [r0, 0x4] - adds r4, r0, 0 - cmp r1, 0x4 - bls _08097CCE - b _08097DD0 -_08097CCE: - lsls r0, r1, 2 - ldr r1, _08097CDC @ =_08097CE0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097CD8: .4byte gSharedMem -_08097CDC: .4byte _08097CE0 - .align 2, 0 -_08097CE0: - .4byte _08097CF4 - .4byte _08097D38 - .4byte _08097D4C - .4byte _08097D94 - .4byte _08097DB8 -_08097CF4: - bl sub_809BF20 - lsls r0, 24 - cmp r0, 0 - beq _08097D18 - movs r0, 0x20 - bl PlaySE - movs r0, 0xF - bl sub_8098898 - ldr r1, _08097D14 @ =gSharedMem - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D14: .4byte gSharedMem -_08097D18: - movs r0, 0x5 - bl PlaySE - movs r0, 0x12 - bl sub_8098898 - movs r0, 0 - bl sub_8098A38 - ldr r1, _08097D34 @ =gSharedMem - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D34: .4byte gSharedMem -_08097D38: - ldr r0, _08097D48 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0xF3 - ands r0, r1 - cmp r0, 0 - beq _08097DD0 - b _08097D6C - .align 2, 0 -_08097D48: .4byte gMain -_08097D4C: - bl ProcessMenuInputNoWrap - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08097D6C - cmp r1, 0 - bgt _08097D66 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08097D7C - b _08097DD0 -_08097D66: - cmp r1, 0x1 - beq _08097D7C - b _08097DD0 -_08097D6C: - bl sub_8098A5C - ldr r0, _08097D78 @ =sub_8096C84 - bl sub_8096BE0 - b _08097DD0 - .align 2, 0 -_08097D78: .4byte sub_8096C84 -_08097D7C: - movs r0, 0x3 - bl PlaySE - bl sub_8098A5C - ldr r1, _08097D90 @ =gSharedMem - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08097DD0 - .align 2, 0 -_08097D90: .4byte gSharedMem -_08097D94: - movs r1, 0 - movs r0, 0xE - strh r0, [r4, 0xC] - ldr r0, _08097DB4 @ =0x0000dad0 - strh r0, [r4, 0xE] - movs r0, 0x14 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80C5E38 - ldrb r0, [r4, 0x4] - adds r0, 0x1 - strb r0, [r4, 0x4] - b _08097DD0 - .align 2, 0 -_08097DB4: .4byte 0x0000dad0 -_08097DB8: - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08097DD0 - bl CalculatePlayerPartyCount - ldr r1, _08097DD8 @ =gPlayerPartyCount - strb r0, [r1] - ldr r0, _08097DDC @ =sub_80961A8 - bl SetMainCallback2 -_08097DD0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097DD8: .4byte gPlayerPartyCount -_08097DDC: .4byte sub_80961A8 - thumb_func_end sub_8097CC0 - - thumb_func_start sub_8097DE0 -sub_8097DE0: @ 8097DE0 - push {lr} - ldr r1, _08097E1C @ =gSharedMem - movs r0, 0 - strb r0, [r1, 0x7] - strh r0, [r1, 0x8] - strh r0, [r1, 0xA] - ldr r1, _08097E20 @ =REG_BG3CNT - ldr r2, _08097E24 @ =0x00001e0f - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08097E28 @ =gPokemonStorageScrollingBGTile - ldr r2, _08097E2C @ =0x0600e000 - ldr r0, _08097E30 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08097E34 @ =0x80000010 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r0, _08097E38 @ =gPokemonStorageScrollingBGTilemap - ldr r1, _08097E3C @ =0x0600f000 - bl LZ77UnCompVram - ldr r0, _08097E40 @ =gPokemonStorageScrollingBGPalette - movs r1, 0xD0 - movs r2, 0x10 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08097E1C: .4byte gSharedMem -_08097E20: .4byte REG_BG3CNT -_08097E24: .4byte 0x00001e0f -_08097E28: .4byte gPokemonStorageScrollingBGTile -_08097E2C: .4byte 0x0600e000 -_08097E30: .4byte 0x040000d4 -_08097E34: .4byte 0x80000010 -_08097E38: .4byte gPokemonStorageScrollingBGTilemap -_08097E3C: .4byte 0x0600f000 -_08097E40: .4byte gPokemonStorageScrollingBGPalette - thumb_func_end sub_8097DE0 - - thumb_func_start sub_8097E44 -sub_8097E44: @ 8097E44 - push {lr} - ldr r1, _08097E6C @ =gSharedMem - ldrb r0, [r1, 0x7] - adds r0, 0x1 - strb r0, [r1, 0x7] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08097E66 - movs r0, 0 - strb r0, [r1, 0x7] - ldrh r0, [r1, 0x8] - subs r0, 0x1 - strh r0, [r1, 0x8] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] -_08097E66: - pop {r0} - bx r0 - .align 2, 0 -_08097E6C: .4byte gSharedMem - thumb_func_end sub_8097E44 - - thumb_func_start sub_8097E70 -sub_8097E70: @ 8097E70 - push {r4,lr} - sub sp, 0x10 - ldr r0, _08097F2C @ =gPSSMenuHeader_Gfx - ldr r1, _08097F30 @ =0x06005000 - bl LZ77UnCompVram - ldr r0, _08097F34 @ =gPSSMenuHeader_Tilemap - ldr r4, _08097F38 @ =gUnknown_02039760 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r0, _08097F3C @ =0x06007800 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xA - str r1, [sp, 0x8] - movs r1, 0x14 - str r1, [sp, 0xC] - movs r1, 0 - movs r2, 0 - adds r3, r4, 0 - bl sub_809D034 - ldr r0, _08097F40 @ =gPSSMenu1_Pal - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F44 @ =gPSSMenu2_Pal - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F48 @ =gUnknown_083B6D74 - movs r1, 0xB0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08097F4C @ =gUnknown_083B6D94 - movs r1, 0xC0 - movs r2, 0x20 - bl LoadPalette - ldr r4, _08097F50 @ =gUnknownPalette_81E6692+0x2 - adds r0, r4, 0 - movs r1, 0xF1 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xF2 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x8 - movs r1, 0xF3 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x16 - movs r1, 0xF4 - movs r2, 0x4 - bl LoadPalette - adds r0, r4, 0 - adds r0, 0x12 - movs r1, 0xF6 - movs r2, 0x4 - bl LoadPalette - adds r4, 0x2 - adds r0, r4, 0 - movs r1, 0xFF - movs r2, 0x2 - bl LoadPalette - ldr r0, _08097F54 @ =gWaveformSpritePalette - bl LoadSpritePalette - bl sub_80980D4 - bl sub_8097F58 - bl sub_8097FB8 - bl sub_809801C - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097F2C: .4byte gPSSMenuHeader_Gfx -_08097F30: .4byte 0x06005000 -_08097F34: .4byte gPSSMenuHeader_Tilemap -_08097F38: .4byte gUnknown_02039760 -_08097F3C: .4byte 0x06007800 -_08097F40: .4byte gPSSMenu1_Pal -_08097F44: .4byte gPSSMenu2_Pal -_08097F48: .4byte gUnknown_083B6D74 -_08097F4C: .4byte gUnknown_083B6D94 -_08097F50: .4byte gUnknownPalette_81E6692+0x2 -_08097F54: .4byte gWaveformSpritePalette - thumb_func_end sub_8097E70 - - thumb_func_start sub_8097F58 -sub_8097F58: @ 8097F58 - push {r4,lr} - ldr r1, _08097FA4 @ =0x0000dace - movs r0, 0xD - movs r2, 0 - bl sub_80F7940 - ldr r4, _08097FA8 @ =gSharedMem - ldr r1, _08097FAC @ =0x000012ac - adds r3, r4, r1 - str r0, [r3] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - ldr r0, [r3] - adds r0, 0x43 - movs r1, 0x1 - strb r1, [r0] - ldr r1, [r3] - movs r0, 0x28 - strh r0, [r1, 0x20] - ldr r1, [r3] - movs r0, 0x95 - strh r0, [r1, 0x22] - movs r0, 0xD - bl GetSpriteTileStartByTag - ldr r1, _08097FB0 @ =0x000012b8 - adds r4, r1 - lsls r0, 16 - lsrs r0, 11 - ldr r1, _08097FB4 @ =0x06010000 - adds r0, r1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08097FA4: .4byte 0x0000dace -_08097FA8: .4byte gSharedMem -_08097FAC: .4byte 0x000012ac -_08097FB0: .4byte 0x000012b8 -_08097FB4: .4byte 0x06010000 - thumb_func_end sub_8097F58 - - thumb_func_start sub_8097FB8 -sub_8097FB8: @ 8097FB8 - push {r4,r5,lr} - sub sp, 0x8 - ldr r0, _0809800C @ =gWaveformSpriteSheet - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - movs r4, 0 - ldr r5, _08098010 @ =gSharedMem + 0x12B0 -_08097FD0: - lsls r1, r4, 6 - subs r1, r4 - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - ldr r0, _08098014 @ =gSpriteTemplate_83B6EFC - movs r2, 0x9 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r4, 2 - adds r2, r5 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08098018 @ =gSprites - adds r1, r0 - str r1, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08097FD0 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809800C: .4byte gWaveformSpriteSheet -_08098010: .4byte gSharedMem + 0x12B0 -_08098014: .4byte gSpriteTemplate_83B6EFC -_08098018: .4byte gSprites - thumb_func_end sub_8097FB8 - - thumb_func_start sub_809801C -sub_809801C: @ 809801C - push {lr} - ldr r1, _0809803C @ =gSharedMem - ldr r2, _08098040 @ =0x000011f0 - adds r0, r1, r2 - ldrh r0, [r0] - subs r2, 0x4 - adds r1, r2 - ldr r1, [r1] - bl sub_80981F0 - bl sub_80982B4 - bl sub_8098350 - pop {r0} - bx r0 - .align 2, 0 -_0809803C: .4byte gSharedMem -_08098040: .4byte 0x000011f0 - thumb_func_end sub_809801C - - thumb_func_start BoxSetMosaic -BoxSetMosaic: @ 8098044 - push {lr} - bl sub_809801C - ldr r0, _08098084 @ =gSharedMem - movs r1, 0x9C - lsls r1, 6 - adds r3, r0, r1 - ldr r2, [r3] - cmp r2, 0 - beq _08098080 - ldrb r0, [r2, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r1, [r3] - movs r0, 0xA - strh r0, [r1, 0x2E] - ldr r1, [r3] - movs r0, 0x1 - strh r0, [r1, 0x30] - ldr r1, [r3] - ldr r0, _08098088 @ =sub_8098090 - str r0, [r1, 0x1C] - ldr r2, _0809808C @ =REG_MOSAIC - ldr r0, [r3] - ldrh r0, [r0, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] -_08098080: - pop {r0} - bx r0 - .align 2, 0 -_08098084: .4byte gSharedMem -_08098088: .4byte sub_8098090 -_0809808C: .4byte REG_MOSAIC - thumb_func_end BoxSetMosaic - - thumb_func_start sub_8098090 -sub_8098090: @ 8098090 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x2E] - ldrh r1, [r3, 0x30] - subs r0, r1 - strh r0, [r3, 0x2E] - lsls r0, 16 - cmp r0, 0 - bge _080980A6 - movs r0, 0 - strh r0, [r3, 0x2E] -_080980A6: - ldr r2, _080980CC @ =REG_MOSAIC - ldrh r0, [r3, 0x2E] - lsls r1, r0, 12 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _080980C8 - ldrb r0, [r3, 0x1] - movs r1, 0x11 - negs r1, r1 - ands r1, r0 - strb r1, [r3, 0x1] - ldr r0, _080980D0 @ =SpriteCallbackDummy - str r0, [r3, 0x1C] -_080980C8: - pop {r0} - bx r0 - .align 2, 0 -_080980CC: .4byte REG_MOSAIC -_080980D0: .4byte SpriteCallbackDummy - thumb_func_end sub_8098090 - - thumb_func_start sub_80980D4 -sub_80980D4: @ 80980D4 - push {r4,r5,lr} - sub sp, 0x28 - ldr r0, _08098150 @ =gUnknown_083B6DCC - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _08098154 @ =gUnknown_083B6DD4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _08098158 @ =gSpriteTemplate_83B6DDC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r1, 0 - add r5, sp, 0x18 - ldr r4, _0809815C @ =gSharedMem + 0x2784 - movs r3, 0 - ldr r2, _08098160 @ =0x000007ff -_08098102: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _08098102 - movs r1, 0 - ldr r3, _08098164 @ =gSharedMem + 0x2704 - movs r2, 0 -_08098116: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _08098116 - ldr r0, _08098168 @ =gSharedMem - movs r1, 0x9C - lsls r1, 6 - adds r0, r1 - movs r1, 0 - str r1, [r0] - adds r0, r5, 0 - bl LoadSpriteSheet - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080981C4 - add r0, sp, 0x20 - bl LoadSpritePalette - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _080981C4 - b _080981B0 - .align 2, 0 -_08098150: .4byte gUnknown_083B6DCC -_08098154: .4byte gUnknown_083B6DD4 -_08098158: .4byte gSpriteTemplate_83B6DDC -_0809815C: .4byte gSharedMem + 0x2784 -_08098160: .4byte 0x000007ff -_08098164: .4byte gSharedMem + 0x2704 -_08098168: .4byte gSharedMem -_0809816C: - ldr r2, _0809819C @ =gSharedMem - movs r0, 0x9C - lsls r0, 6 - adds r3, r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080981A0 @ =gSprites - adds r0, r1 - str r0, [r3] - lsls r0, r4, 4 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - ldr r3, _080981A4 @ =0x000026fa - adds r1, r2, r3 - strh r0, [r1] - ldr r4, _080981A8 @ =0x000026fc - adds r2, r4 - lsls r0, r5, 5 - ldr r1, _080981AC @ =0x06010000 - adds r0, r1 - str r0, [r2] - b _080981C4 - .align 2, 0 -_0809819C: .4byte gSharedMem -_080981A0: .4byte gSprites -_080981A4: .4byte 0x000026fa -_080981A8: .4byte 0x000026fc -_080981AC: .4byte 0x06010000 -_080981B0: - mov r0, sp - movs r1, 0x28 - movs r2, 0x30 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _0809816C -_080981C4: - ldr r0, _080981E8 @ =gSharedMem - movs r2, 0x9C - lsls r2, 6 - adds r0, r2 - ldr r0, [r0] - cmp r0, 0 - bne _080981DE - movs r0, 0x2 - bl FreeSpriteTilesByTag - ldr r0, _080981EC @ =0x0000dac7 - bl FreeSpritePaletteByTag -_080981DE: - add sp, 0x28 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080981E8: .4byte gSharedMem -_080981EC: .4byte 0x0000dac7 - thumb_func_end sub_80980D4 - - thumb_func_start sub_80981F0 -sub_80981F0: @ 80981F0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r7, r1, 0 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r6, _08098274 @ =gSharedMem - movs r0, 0x9C - lsls r0, 6 - adds r0, r6 - mov r8, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080982A6 - cmp r4, 0 - beq _0809829C - lsls r0, r4, 3 - ldr r1, _08098278 @ =gMonFrontPicTable - adds r0, r1 - ldr r2, _0809827C @ =gMonFrontPicCoords - lsls r1, r4, 2 - adds r1, r2 - ldrb r1, [r1] - ldr r2, _08098280 @ =0x00004784 - adds r3, r6, r2 - ldr r2, _08098284 @ =0x00002784 - adds r5, r6, r2 - str r5, [sp] - str r4, [sp, 0x4] - str r7, [sp, 0x8] - movs r2, 0x1 - bl HandleLoadSpecialPokePic - ldr r1, _08098288 @ =0x000011e8 - adds r0, r6, r1 - ldr r0, [r0] - ldr r2, _0809828C @ =0x00002704 - adds r4, r6, r2 - adds r1, r4, 0 - bl LZ77UnCompWram - ldr r1, _08098290 @ =0x000026fc - adds r0, r6, r1 - ldr r1, [r0] - ldr r2, _08098294 @ =0x04000200 - adds r0, r5, 0 - bl CpuSet - ldr r2, _08098298 @ =0x000026fa - adds r0, r6, r2 - ldrh r1, [r0] - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - mov r0, r8 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _080982A6 - .align 2, 0 -_08098274: .4byte gSharedMem -_08098278: .4byte gMonFrontPicTable -_0809827C: .4byte gMonFrontPicCoords -_08098280: .4byte 0x00004784 -_08098284: .4byte 0x00002784 -_08098288: .4byte 0x000011e8 -_0809828C: .4byte 0x00002704 -_08098290: .4byte 0x000026fc -_08098294: .4byte 0x04000200 -_08098298: .4byte 0x000026fa -_0809829C: - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_080982A6: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80981F0 - - thumb_func_start sub_80982B4 -sub_80982B4: @ 80982B4 - push {r4,lr} - ldr r4, _080982E4 @ =gSharedMem - ldr r1, _080982E8 @ =0x000011f0 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080982F4 - ldr r2, _080982EC @ =0x000011f7 - adds r0, r4, r2 - ldrb r0, [r0] - adds r2, 0xC1 - adds r1, r4, r2 - ldr r1, [r1] - bl sub_80F7A10 - ldr r1, _080982F0 @ =0x000012ac - adds r0, r4, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _08098302 - .align 2, 0 -_080982E4: .4byte gSharedMem -_080982E8: .4byte 0x000011f0 -_080982EC: .4byte 0x000011f7 -_080982F0: .4byte 0x000012ac -_080982F4: - ldr r2, _08098348 @ =0x000012ac - adds r0, r4, r2 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 -_08098302: - strb r0, [r1] - movs r0, 0 - movs r1, 0xB - movs r2, 0x9 - movs r3, 0x11 - bl MenuZeroFillWindowRect - ldr r4, _0809834C @ =gSharedMem + 0x127A - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x10 - bl MenuPrint - adds r0, r4, 0 - subs r0, 0x6B - movs r1, 0x1 - movs r2, 0xB - bl MenuPrint - adds r0, r4, 0 - subs r0, 0x46 - movs r1, 0 - movs r2, 0xD - bl MenuPrint - subs r4, 0x21 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08098348: .4byte 0x000012ac -_0809834C: .4byte gSharedMem + 0x127A - thumb_func_end sub_80982B4 - - thumb_func_start sub_8098350 -sub_8098350: @ 8098350 - push {r4,r5,lr} - sub sp, 0x10 - ldr r5, _080983A0 @ =gSharedMem - ldr r1, _080983A4 @ =0x000011f0 - adds r0, r5, r1 - ldrh r2, [r0] - cmp r2, 0 - beq _080983B4 - ldr r0, _080983A8 @ =0x06007800 - ldr r3, _080983AC @ =gUnknown_02039760 - movs r1, 0x1 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x1 - movs r2, 0 - bl sub_809D034 - movs r4, 0 - ldr r0, _080983B0 @ =0x000012b0 - adds r5, r0 -_08098382: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - lsls r1, r4, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnimIfDifferent - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _08098382 - b _080983EC - .align 2, 0 -_080983A0: .4byte gSharedMem -_080983A4: .4byte 0x000011f0 -_080983A8: .4byte 0x06007800 -_080983AC: .4byte gUnknown_02039760 -_080983B0: .4byte 0x000012b0 -_080983B4: - ldr r0, _080983F4 @ =0x06007800 - ldr r3, _080983F8 @ =gUnknown_02039760 - movs r1, 0xA - str r1, [sp] - str r2, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x1 - movs r2, 0 - bl sub_809D034 - movs r4, 0 - ldr r1, _080983FC @ =0x000012b0 - adds r5, r1 -_080983D4: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - lsls r1, r4, 25 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _080983D4 -_080983EC: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080983F4: .4byte 0x06007800 -_080983F8: .4byte gUnknown_02039760 -_080983FC: .4byte 0x000012b0 - thumb_func_end sub_8098350 - - thumb_func_start sub_8098400 -sub_8098400: @ 8098400 - push {r4,r5,lr} - sub sp, 0x14 - ldr r1, _0809847C @ =REG_BG1CNT - ldr r2, _08098480 @ =0x00000f01 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08098484 @ =gPSSMenuMisc_Gfx - ldr r1, _08098488 @ =0x06006800 - bl LZ77UnCompVram - ldr r0, _0809848C @ =gPSSMenuMisc_Tilemap - ldr r5, _08098490 @ =gSharedMem + 0xA8 - adds r1, r5, 0 - bl LZ77UnCompWram - ldr r0, _08098494 @ =gPSSMenu3_Pal - movs r1, 0x20 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08098498 @ =gPSSMenu4_Pal - movs r1, 0x30 - movs r2, 0x20 - bl LoadPalette - ldr r4, _0809849C @ =0x06007800 - add r1, sp, 0x10 - movs r0, 0 - strh r0, [r1] - ldr r0, _080984A0 @ =0x040000d4 - str r1, [r0] - str r4, [r0, 0x4] - ldr r1, _080984A4 @ =0x81000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl sub_8098780 - ldr r0, _080984A8 @ =gUnknown_0203847C - ldrb r0, [r0] - cmp r0, 0 - beq _080984AC - movs r0, 0x1 - bl sub_8098690 - movs r0, 0x1 - bl sub_8099200 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x16 - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0 - adds r3, r5, 0 - bl sub_809D034 - b _080984CC - .align 2, 0 -_0809847C: .4byte REG_BG1CNT -_08098480: .4byte 0x00000f01 -_08098484: .4byte gPSSMenuMisc_Gfx -_08098488: .4byte 0x06006800 -_0809848C: .4byte gPSSMenuMisc_Tilemap -_08098490: .4byte gSharedMem + 0xA8 -_08098494: .4byte gPSSMenu3_Pal -_08098498: .4byte gPSSMenu4_Pal -_0809849C: .4byte 0x06007800 -_080984A0: .4byte 0x040000d4 -_080984A4: .4byte 0x81000400 -_080984A8: .4byte gUnknown_0203847C -_080984AC: - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0xC - str r0, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0 - adds r3, r5, 0 - bl sub_809D034 - movs r0, 0x1 - bl sub_8098690 -_080984CC: - ldr r0, _080984E0 @ =gSharedMem - ldr r1, _080984E4 @ =0x000008af - adds r0, r1 - movs r1, 0 - strb r1, [r0] - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080984E0: .4byte gSharedMem -_080984E4: .4byte 0x000008af - thumb_func_end sub_8098400 - - thumb_func_start sub_80984E8 -sub_80984E8: @ 80984E8 - push {lr} - ldr r1, _08098510 @ =gSharedMem - ldr r0, _08098514 @ =0x000008a8 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0x14 - strh r0, [r2] - ldr r0, _08098518 @ =0x000008aa - adds r2, r1, r0 - movs r0, 0x2 - strh r0, [r2] - ldr r0, _0809851C @ =0x000008ad - adds r1, r0 - strb r3, [r1] - movs r0, 0 - bl sub_8099200 - pop {r0} - bx r0 - .align 2, 0 -_08098510: .4byte gSharedMem -_08098514: .4byte 0x000008a8 -_08098518: .4byte 0x000008aa -_0809851C: .4byte 0x000008ad - thumb_func_end sub_80984E8 - - thumb_func_start sub_8098520 -sub_8098520: @ 8098520 - push {r4,r5,lr} - sub sp, 0x10 - ldr r3, _08098578 @ =gSharedMem - ldr r0, _0809857C @ =0x000008ad - adds r5, r3, r0 - ldrb r0, [r5] - cmp r0, 0x14 - beq _08098592 - ldr r0, _08098580 @ =0x000008a8 - adds r1, r3, r0 - ldrh r0, [r1] - subs r0, 0x1 - movs r4, 0 - strh r0, [r1] - ldr r0, _08098584 @ =0x000008aa - adds r2, r3, r0 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - ldr r0, _08098588 @ =0x06007800 - adds r3, 0xA8 - str r4, [sp] - ldrh r1, [r1] - str r1, [sp, 0x4] - movs r1, 0xC - str r1, [sp, 0x8] - ldrh r1, [r2] - str r1, [sp, 0xC] - movs r1, 0xA - movs r2, 0 - bl sub_809D034 - movs r0, 0x8 - bl sub_80994A8 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _0809858C - movs r0, 0x1 - b _08098594 - .align 2, 0 -_08098578: .4byte gSharedMem -_0809857C: .4byte 0x000008ad -_08098580: .4byte 0x000008a8 -_08098584: .4byte 0x000008aa -_08098588: .4byte 0x06007800 -_0809858C: - ldr r1, _0809859C @ =gUnknown_0203847C - movs r0, 0x1 - strb r0, [r1] -_08098592: - movs r0, 0 -_08098594: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0809859C: .4byte gUnknown_0203847C - thumb_func_end sub_8098520 - - thumb_func_start add_to_c3_somehow -add_to_c3_somehow: @ 80985A0 - ldr r1, _080985BC @ =gSharedMem - ldr r0, _080985C0 @ =0x000008a8 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0 - strh r0, [r2] - ldr r0, _080985C4 @ =0x000008aa - adds r2, r1, r0 - movs r0, 0x16 - strh r0, [r2] - ldr r0, _080985C8 @ =0x000008ad - adds r1, r0 - strb r3, [r1] - bx lr - .align 2, 0 -_080985BC: .4byte gSharedMem -_080985C0: .4byte 0x000008a8 -_080985C4: .4byte 0x000008aa -_080985C8: .4byte 0x000008ad - thumb_func_end add_to_c3_somehow - - thumb_func_start sub_80985CC -sub_80985CC: @ 80985CC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - ldr r3, _08098640 @ =gSharedMem - ldr r0, _08098644 @ =0x000008ad - adds r6, r3, r0 - ldrb r0, [r6] - cmp r0, 0x14 - beq _0809867A - ldr r2, _08098648 @ =0x000008a8 - adds r1, r3, r2 - ldrh r0, [r1] - adds r0, 0x1 - movs r2, 0 - mov r9, r2 - strh r0, [r1] - ldr r0, _0809864C @ =0x000008aa - adds r4, r3, r0 - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - ldr r5, _08098650 @ =0x06007800 - adds r3, 0xA8 - mov r8, r3 - str r2, [sp] - ldrh r0, [r1] - str r0, [sp, 0x4] - movs r7, 0xC - str r7, [sp, 0x8] - ldrh r0, [r4] - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0xA - bl sub_809D034 - ldrh r2, [r4] - movs r4, 0x1 - str r4, [sp] - adds r0, r5, 0 - movs r1, 0xA - movs r3, 0xC - bl sub_809D16C - movs r0, 0x8 - negs r0, r0 - bl sub_80994A8 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - beq _08098654 - movs r0, 0x1 - b _0809867C - .align 2, 0 -_08098640: .4byte gSharedMem -_08098644: .4byte 0x000008ad -_08098648: .4byte 0x000008a8 -_0809864C: .4byte 0x000008aa -_08098650: .4byte 0x06007800 -_08098654: - ldr r0, _0809868C @ =gUnknown_0203847C - movs r1, 0 - strb r1, [r0] - bl sub_809954C - bl party_compaction - str r7, [sp] - mov r2, r9 - str r2, [sp, 0x4] - str r4, [sp, 0x8] - movs r0, 0x2 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0x15 - movs r2, 0 - mov r3, r8 - bl sub_809D034 -_0809867A: - movs r0, 0 -_0809867C: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809868C: .4byte gUnknown_0203847C - thumb_func_end sub_80985CC - - thumb_func_start sub_8098690 -sub_8098690: @ 8098690 - push {lr} - sub sp, 0x10 - lsls r0, 24 - cmp r0, 0 - beq _080986C0 - ldr r0, _080986B8 @ =0x06007800 - ldr r3, _080986BC @ =gSharedMem + 0xA8 - movs r1, 0xC - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x15 - movs r2, 0 - bl sub_809D034 - b _080986DA - .align 2, 0 -_080986B8: .4byte 0x06007800 -_080986BC: .4byte gSharedMem + 0xA8 -_080986C0: - ldr r0, _080986E0 @ =0x06007800 - ldr r3, _080986E4 @ =gSharedMem + 0xA8 - movs r1, 0xC - str r1, [sp] - movs r2, 0x2 - str r2, [sp, 0x4] - movs r1, 0x9 - str r1, [sp, 0x8] - str r2, [sp, 0xC] - movs r1, 0x15 - movs r2, 0 - bl sub_809D034 -_080986DA: - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080986E0: .4byte 0x06007800 -_080986E4: .4byte gSharedMem + 0xA8 - thumb_func_end sub_8098690 - - thumb_func_start sub_80986E8 -sub_80986E8: @ 80986E8 - ldr r1, _08098704 @ =gSharedMem - ldr r2, _08098708 @ =0x000008af - adds r0, r1, r2 - movs r3, 0x1 - strb r3, [r0] - movs r0, 0x8B - lsls r0, 4 - adds r2, r1, r0 - movs r0, 0x1E - strb r0, [r2] - ldr r2, _0809870C @ =0x000008b1 - adds r1, r2 - strb r3, [r1] - bx lr - .align 2, 0 -_08098704: .4byte gSharedMem -_08098708: .4byte 0x000008af -_0809870C: .4byte 0x000008b1 - thumb_func_end sub_80986E8 - - thumb_func_start sub_8098710 -sub_8098710: @ 8098710 - push {lr} - ldr r0, _0809872C @ =gSharedMem - ldr r2, _08098730 @ =0x000008af - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08098728 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - bl sub_8098690 -_08098728: - pop {r0} - bx r0 - .align 2, 0 -_0809872C: .4byte gSharedMem -_08098730: .4byte 0x000008af - thumb_func_end sub_8098710 - - thumb_func_start sub_8098734 -sub_8098734: @ 8098734 - push {lr} - ldr r2, _08098774 @ =gSharedMem - ldr r1, _08098778 @ =0x000008af - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08098770 - movs r0, 0x8B - lsls r0, 4 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1E - bls _08098770 - movs r0, 0 - strb r0, [r1] - movs r3, 0 - ldr r0, _0809877C @ =0x000008b1 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _08098768 - movs r3, 0x1 -_08098768: - strb r3, [r1] - ldrb r0, [r1] - bl sub_8098690 -_08098770: - pop {r0} - bx r0 - .align 2, 0 -_08098774: .4byte gSharedMem -_08098778: .4byte 0x000008af -_0809877C: .4byte 0x000008b1 - thumb_func_end sub_8098734 - - thumb_func_start sub_8098780 -sub_8098780: @ 8098780 - push {r4-r6,lr} - sub sp, 0x10 - movs r4, 0x1 - ldr r6, _080987D4 @ =gSharedMem + 0xA8 - movs r5, 0x80 - lsls r5, 9 -_0809878C: - movs r0, 0x64 - muls r0, r4 - ldr r1, _080987D8 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080987A0 - movs r0, 0x1 -_080987A0: - movs r1, 0x10 - cmp r0, 0 - beq _080987A8 - movs r1, 0xC -_080987A8: - lsrs r2, r5, 16 - str r1, [sp] - movs r0, 0x4 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - adds r0, r6, 0 - movs r1, 0x7 - adds r3, r6, 0 - bl sub_809D104 - movs r0, 0xC0 - lsls r0, 10 - adds r5, r0 - adds r4, 0x1 - cmp r4, 0x5 - ble _0809878C - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080987D4: .4byte gSharedMem + 0xA8 -_080987D8: .4byte gPlayerParty - thumb_func_end sub_8098780 - - thumb_func_start sub_80987DC -sub_80987DC: @ 80987DC - push {lr} - sub sp, 0x10 - bl sub_8098780 - ldr r0, _08098804 @ =0x06007800 - ldr r3, _08098808 @ =gSharedMem + 0xA8 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0xC - str r1, [sp, 0x8] - movs r1, 0x16 - str r1, [sp, 0xC] - movs r1, 0xA - movs r2, 0 - bl sub_809D034 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_08098804: .4byte 0x06007800 -_08098808: .4byte gSharedMem + 0xA8 - thumb_func_end sub_80987DC - - thumb_func_start sub_809880C -sub_809880C: @ 809880C - push {lr} - ldr r0, _08098828 @ =gSharedMem - ldr r1, _0809882C @ =0x000008ae - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x6 - bl PlaySE - bl sub_80984E8 - pop {r0} - bx r0 - .align 2, 0 -_08098828: .4byte gSharedMem -_0809882C: .4byte 0x000008ae - thumb_func_end sub_809880C - - thumb_func_start sub_8098830 -sub_8098830: @ 8098830 - push {r4,r5,lr} - ldr r5, _08098848 @ =gSharedMem - ldr r0, _0809884C @ =0x000008ae - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _08098866 - cmp r0, 0x1 - bgt _08098850 - cmp r0, 0 - beq _08098856 - b _08098890 - .align 2, 0 -_08098848: .4byte gSharedMem -_0809884C: .4byte 0x000008ae -_08098850: - cmp r0, 0x2 - beq _0809888C - b _08098890 -_08098856: - bl sub_8098520 - lsls r0, 24 - cmp r0, 0 - bne _08098890 - bl sub_809B068 - b _0809887E -_08098866: - bl sub_809AC00 - lsls r0, 24 - cmp r0, 0 - bne _08098890 - ldr r1, _08098888 @ =0x000011f6 - adds r0, r5, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0809887E - bl BoxSetMosaic -_0809887E: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08098890 - .align 2, 0 -_08098888: .4byte 0x000011f6 -_0809888C: - movs r0, 0 - b _08098892 -_08098890: - movs r0, 0x1 -_08098892: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8098830 - -.section .text_8098A38 - - thumb_func_start sub_8098A38 -sub_8098A38: @ 8098A38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x17 - movs r1, 0xA - movs r2, 0 - bl DisplayYesNoMenu - lsls r4, 24 - asrs r4, 24 - adds r0, r4, 0 - bl MoveMenuCursor - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8098A38 - - thumb_func_start sub_8098A5C -sub_8098A5C: @ 8098A5C - push {lr} - bl HandleDestroyMenuCursors - movs r0, 0xA - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0x17 - movs r1, 0xA - movs r2, 0x1D - movs r3, 0xF - bl MenuZeroFillWindowRect - pop {r0} - bx r0 - thumb_func_end sub_8098A5C - - thumb_func_start sub_8098A80 -sub_8098A80: @ 8098A80 - push {lr} - bl sub_809CDCC - movs r0, 0xC - bl sub_809CDEC - movs r0, 0xD - bl sub_809CDEC - movs r0, 0xE - bl sub_809CDEC - movs r0, 0xF - bl sub_809CDEC - bl sub_809CE84 - pop {r0} - bx r0 - thumb_func_end sub_8098A80 - - thumb_func_start sub_8098AA8 -sub_8098AA8: @ 8098AA8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_809CDCC - cmp r4, 0x1 - beq _08098AE6 - cmp r4, 0x1 - bgt _08098AC2 - cmp r4, 0 - beq _08098ACC - b _08098B32 -_08098AC2: - cmp r5, 0x2 - beq _08098B00 - cmp r5, 0x3 - beq _08098B1A - b _08098B32 -_08098ACC: - movs r0, 0x10 - bl sub_809CDEC - movs r0, 0x11 - bl sub_809CDEC - movs r0, 0x12 - bl sub_809CDEC - movs r0, 0x13 - bl sub_809CDEC - b _08098B32 -_08098AE6: - movs r0, 0x14 - bl sub_809CDEC - movs r0, 0x15 - bl sub_809CDEC - movs r0, 0x16 - bl sub_809CDEC - movs r0, 0x17 - bl sub_809CDEC - b _08098B32 -_08098B00: - movs r0, 0x18 - bl sub_809CDEC - movs r0, 0x19 - bl sub_809CDEC - movs r0, 0x1A - bl sub_809CDEC - movs r0, 0x1B - bl sub_809CDEC - b _08098B32 -_08098B1A: - movs r0, 0x1C - bl sub_809CDEC - movs r0, 0x1D - bl sub_809CDEC - movs r0, 0x1E - bl sub_809CDEC - movs r0, 0x1F - bl sub_809CDEC -_08098B32: - bl sub_809CE84 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8098AA8 - - thumb_func_start get_preferred_box -get_preferred_box: @ 8098B3C - ldr r0, _08098B44 @ =gPokemonStorage - ldrb r0, [r0] - bx lr - .align 2, 0 -_08098B44: .4byte gPokemonStorage - thumb_func_end get_preferred_box - - thumb_func_start sub_8098B48 -sub_8098B48: @ 8098B48 - push {r4,r5,lr} - bl sub_809D51C - movs r2, 0 - ldr r1, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r1] - ldr r4, _08098BDC @ =0x000010d0 - adds r3, r0, r4 - movs r4, 0 - adds r5, r1, 0 -_08098B5C: - lsls r0, r2, 1 - adds r0, r3, r0 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _08098B5C - movs r2, 0 - ldr r0, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x89 - lsls r1, 5 - adds r3, r0, r1 - movs r1, 0 -_08098B7A: - lsls r0, r2, 1 - adds r0, r3, r0 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x27 - bls _08098B7A - movs r2, 0 - ldr r0, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r4, _08098BE0 @ =0x00001038 - adds r3, r0, r4 - movs r1, 0 -_08098B96: - lsls r0, r2, 2 - adds r0, r3, r0 - str r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x5 - bls _08098B96 - movs r2, 0 - ldr r0, _08098BD8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08098BE4 @ =0x00001050 - adds r3, r0, r1 - movs r1, 0 -_08098BB2: - lsls r0, r2, 2 - adds r0, r3, r0 - str r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _08098BB2 - ldr r0, [r5] - ldr r2, _08098BE8 @ =0x00001034 - adds r1, r0, r2 - movs r2, 0 - str r2, [r1] - ldr r4, _08098BEC @ =0x00000d5c - adds r0, r4 - strh r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08098BD8: .4byte gUnknown_083B6DB4 -_08098BDC: .4byte 0x000010d0 -_08098BE0: .4byte 0x00001038 -_08098BE4: .4byte 0x00001050 -_08098BE8: .4byte 0x00001034 -_08098BEC: .4byte 0x00000d5c - thumb_func_end sub_8098B48 - - thumb_func_start sub_8098BF0 -sub_8098BF0: @ 8098BF0 - push {r4-r6,lr} - sub sp, 0x8 - ldr r0, _08098C38 @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _08098C3C @ =0x000025b4 - adds r4, r5, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - str r1, [sp] - movs r1, 0x7 - str r1, [sp, 0x4] - adds r1, r6, 0 - movs r2, 0 - movs r3, 0 - bl sub_8099AFC - ldr r1, _08098C40 @ =0x00001034 - adds r5, r1 - str r0, [r5] - ldr r1, _08098C44 @ =sub_80999C4 - str r1, [r0, 0x1C] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098C38: .4byte gUnknown_083B6DB4 -_08098C3C: .4byte 0x000025b4 -_08098C40: .4byte 0x00001034 -_08098C44: .4byte sub_80999C4 - thumb_func_end sub_8098BF0 - - thumb_func_start sub_8098C48 -sub_8098C48: @ 8098C48 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _08098CCC @ =gPokemonStorage + 0x4 - adds r6, r0, r1 - movs r0, 0 - mov r8, r0 - movs r7, 0 -_08098C6A: - movs r5, 0 - adds r1, r7, 0x1 - mov r9, r1 -_08098C70: - adds r0, r6, 0 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08098CD8 - adds r0, r6, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - lsls r2, r5, 1 - adds r2, r5 - lsls r2, 19 - movs r3, 0xC8 - lsls r3, 15 - adds r2, r3 - asrs r2, 16 - lsls r3, r7, 1 - adds r3, r7 - lsls r3, 19 - movs r0, 0xB0 - lsls r0, 14 - adds r3, r0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x12 - subs r0, r5 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - adds r0, r4, 0 - asrs r3, 16 - bl sub_8099AFC - ldr r1, _08098CD0 @ =gUnknown_083B6DB4 - ldr r1, [r1] - mov r3, r8 - lsls r2, r3, 2 - ldr r3, _08098CD4 @ =0x00001050 - adds r1, r3 - adds r1, r2 - str r0, [r1] - b _08098CE8 - .align 2, 0 -_08098CCC: .4byte gPokemonStorage + 0x4 -_08098CD0: .4byte gUnknown_083B6DB4 -_08098CD4: .4byte 0x00001050 -_08098CD8: - ldr r0, _08098D18 @ =gUnknown_083B6DB4 - ldr r0, [r0] - mov r2, r8 - lsls r1, r2, 2 - ldr r3, _08098D1C @ =0x00001050 - adds r0, r3 - adds r0, r1 - str r4, [r0] -_08098CE8: - adds r6, 0x50 - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08098C70 - mov r1, r9 - lsls r0, r1, 16 - lsrs r7, r0, 16 - cmp r7, 0x4 - bls _08098C6A - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098D18: .4byte gUnknown_083B6DB4 -_08098D1C: .4byte 0x00001050 - thumb_func_end sub_8098C48 - - thumb_func_start sub_8098D20 -sub_8098D20: @ 8098D20 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r2, r1, 4 - subs r2, r1 - lsls r2, 5 - lsls r0, r4, 2 - mov r9, r0 - adds r0, r4 - lsls r0, 4 - ldr r1, _08098DD4 @ =gPokemonStorage + 0x4 - adds r0, r1 - adds r7, r2, r0 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - cmp r0, 0 - beq _08098DC4 - adds r0, r4, 0 - movs r1, 0x6 - bl __umodsi3 - adds r6, r0, 0 - lsls r0, r6, 24 - lsrs r0, 24 - lsls r5, r0, 1 - adds r5, r0 - lsls r5, 19 - movs r1, 0xC8 - lsls r1, 15 - adds r5, r1 - lsrs r5, 16 - adds r0, r4, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 19 - movs r2, 0xB0 - lsls r2, 14 - adds r4, r2 - lsrs r4, 16 - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - movs r0, 0x2 - str r0, [sp] - movs r0, 0x12 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - mov r0, r8 - adds r2, r5, 0 - adds r3, r4, 0 - bl sub_8099AFC - ldr r1, _08098DD8 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _08098DDC @ =0x00001050 - adds r1, r2 - add r1, r9 - str r0, [r1] -_08098DC4: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098DD4: .4byte gPokemonStorage + 0x4 -_08098DD8: .4byte gUnknown_083B6DB4 -_08098DDC: .4byte 0x00001050 - thumb_func_end sub_8098D20 - - thumb_func_start sub_8098DE0 -sub_8098DE0: @ 8098DE0 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - ldr r0, _08098E18 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08098E1C @ =0x00001050 - adds r3, r0, r1 - movs r6, 0x1 - ldr r5, _08098E20 @ =sub_8098E68 -_08098DF4: - lsls r0, r2, 2 - adds r1, r3, r0 - ldr r0, [r1] - cmp r0, 0 - beq _08098E08 - strh r4, [r0, 0x32] - ldr r0, [r1] - strh r6, [r0, 0x36] - ldr r0, [r1] - str r5, [r0, 0x1C] -_08098E08: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1D - bls _08098DF4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08098E18: .4byte gUnknown_083B6DB4 -_08098E1C: .4byte 0x00001050 -_08098E20: .4byte sub_8098E68 - thumb_func_end sub_8098DE0 - - thumb_func_start sub_8098E24 -sub_8098E24: @ 8098E24 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08098E40 - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - b _08098E56 -_08098E40: - ldr r0, _08098E5C @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r3, _08098E60 @ =0x00001178 - adds r1, r3 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ldrh r0, [r2, 0x34] - strh r0, [r2, 0x20] - ldr r0, _08098E64 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08098E56: - pop {r0} - bx r0 - .align 2, 0 -_08098E5C: .4byte gUnknown_083B6DB4 -_08098E60: .4byte 0x00001178 -_08098E64: .4byte SpriteCallbackDummy - thumb_func_end sub_8098E24 - - thumb_func_start sub_8098E68 -sub_8098E68: @ 8098E68 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x36] - movs r3, 0x36 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08098E7C - subs r0, r1, 0x1 - strh r0, [r2, 0x36] - b _08098E98 -_08098E7C: - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x38] - subs r0, 0x45 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB6 - bls _08098E98 - ldr r0, _08098E9C @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08098E98: - pop {r0} - bx r0 - .align 2, 0 -_08098E9C: .4byte SpriteCallbackDummy - thumb_func_end sub_8098E68 - - thumb_func_start sub_8098EA0 -sub_8098EA0: @ 8098EA0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r0, _08098ED8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08098EDC @ =0x00001050 - adds r7, r0, r1 -_08098EB0: - lsls r0, r5, 2 - adds r4, r7, r0 - ldr r0, [r4] - cmp r0, 0 - beq _08098EC2 - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_08098EC2: - adds r0, r5, 0x6 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x4 - bls _08098EB0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08098ED8: .4byte gUnknown_083B6DB4 -_08098EDC: .4byte 0x00001050 - thumb_func_end sub_8098EA0 - - thumb_func_start sub_8098EE0 -sub_8098EE0: @ 8098EE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x8] - lsls r2, 16 - movs r0, 0x2C - str r0, [sp, 0x10] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 19 - movs r1, 0xC8 - lsls r1, 15 - adds r0, r1 - lsrs r0, 16 - mov r10, r0 - ldr r0, [sp, 0x8] - adds r0, 0x1 - lsrs r3, r2, 16 - str r3, [sp, 0xC] - asrs r2, 16 - adds r1, r0, 0 - muls r1, r2 - mov r4, r10 - subs r1, r4, r1 - movs r0, 0x12 - subs r0, r6 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - movs r0, 0 - str r0, [sp, 0x14] - mov r9, r0 - ldr r0, _08098FF8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _08098FFC @ =0x0000117d - adds r2, r0 - mov r8, r2 - ldr r3, _08099000 @ =0x00001050 - adds r3, r0, r3 - str r3, [sp, 0x20] - lsls r1, 16 - str r1, [sp, 0x1C] -_08098F42: - mov r4, r8 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r7, r6, 2 - adds r1, r7, r6 - lsls r1, 4 - ldr r2, _08099004 @ =gPokemonStorage + 0x4 - adds r4, r1, r2 - adds r0, r4 - movs r1, 0x41 - bl GetBoxMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _08098FC8 - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - adds r0, r4 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - ldr r2, [sp, 0x10] - lsls r3, r2, 16 - asrs r3, 16 - movs r0, 0x2 - str r0, [sp] - ldr r4, [sp, 0x18] - str r4, [sp, 0x4] - adds r0, r5, 0 - ldr r4, [sp, 0x1C] - asrs r2, r4, 16 - bl sub_8099AFC - ldr r2, [sp, 0x20] - adds r1, r2, r7 - str r0, [r1] - cmp r0, 0 - beq _08098FC8 - mov r3, sp - ldrh r3, [r3, 0x8] - strh r3, [r0, 0x30] - ldr r0, [r1] - mov r4, sp - ldrh r4, [r4, 0xC] - strh r4, [r0, 0x32] - ldr r0, [r1] - mov r2, r10 - strh r2, [r0, 0x34] - ldr r1, [r1] - ldr r0, _08099008 @ =sub_8098E24 - str r0, [r1, 0x1C] - ldr r0, [sp, 0x14] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] -_08098FC8: - adds r0, r6, 0x6 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x10] - adds r0, 0x18 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x10] - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x4 - bls _08098F42 - ldr r0, [sp, 0x14] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08098FF8: .4byte gUnknown_083B6DB4 -_08098FFC: .4byte 0x0000117d -_08099000: .4byte 0x00001050 -_08099004: .4byte gPokemonStorage + 0x4 -_08099008: .4byte sub_8098E24 - thumb_func_end sub_8098EE0 - - thumb_func_start sub_809900C -sub_809900C: @ 809900C - push {r4-r6,lr} - lsls r1, 24 - lsrs r1, 24 - ldr r4, _08099058 @ =gUnknown_083B6DB4 - ldr r5, [r4] - ldr r3, _0809905C @ =0x0000117c - adds r2, r5, r3 - movs r3, 0 - strb r3, [r2] - ldr r6, _08099060 @ =0x0000117d - adds r2, r5, r6 - strb r0, [r2] - ldr r2, _08099064 @ =0x0000117b - adds r0, r5, r2 - strb r1, [r0] - subs r6, 0xB - adds r2, r5, r6 - movs r0, 0x20 - strh r0, [r2] - lsls r1, 24 - asrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - negs r0, r0 - adds r6, 0x4 - adds r2, r5, r6 - strh r0, [r2] - ldr r2, _08099068 @ =0x00001178 - adds r0, r5, r2 - strh r3, [r0] - cmp r1, 0 - ble _08099070 - ldr r3, _0809906C @ =0x0000117a - adds r1, r5, r3 - movs r0, 0 - b _08099076 - .align 2, 0 -_08099058: .4byte gUnknown_083B6DB4 -_0809905C: .4byte 0x0000117c -_08099060: .4byte 0x0000117d -_08099064: .4byte 0x0000117b -_08099068: .4byte 0x00001178 -_0809906C: .4byte 0x0000117a -_08099070: - ldr r6, _080990A0 @ =0x0000117a - adds r1, r5, r6 - movs r0, 0x5 -_08099076: - strb r0, [r1] - ldr r2, [r4] - ldr r1, _080990A0 @ =0x0000117a - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x64 - ldr r3, _080990A4 @ =0x00001174 - adds r1, r2, r3 - strh r0, [r1] - ldr r6, _080990A8 @ =0x00001176 - adds r2, r6 - movs r1, 0 - ldrsh r0, [r2, r1] - bl sub_8098DE0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080990A0: .4byte 0x0000117a -_080990A4: .4byte 0x00001174 -_080990A8: .4byte 0x00001176 - thumb_func_end sub_809900C - - thumb_func_start sub_80990AC -sub_80990AC: @ 80990AC - push {r4-r6,lr} - ldr r0, _080990D4 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _080990D8 @ =0x00001172 - adds r3, r4, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _080990C0 - subs r0, 0x1 - strh r0, [r3] -_080990C0: - ldr r1, _080990DC @ =0x0000117c - adds r6, r4, r1 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08099138 - cmp r0, 0x1 - bgt _080990E0 - cmp r0, 0 - beq _080990E8 - b _080991F0 - .align 2, 0 -_080990D4: .4byte gUnknown_083B6DB4 -_080990D8: .4byte 0x00001172 -_080990DC: .4byte 0x0000117c -_080990E0: - cmp r0, 0x2 - bne _080990E6 - b _080991E0 -_080990E6: - b _080991F0 -_080990E8: - ldr r2, _0809912C @ =0x00001174 - adds r5, r4, r2 - ldr r3, _08099130 @ =0x00001176 - adds r0, r4, r3 - ldrh r0, [r0] - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - subs r0, 0x41 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xBA - bhi _08099104 - b _080991F8 -_08099104: - adds r2, 0x6 - adds r0, r4, r2 - ldrb r0, [r0] - bl sub_8098EA0 - ldr r3, _08099134 @ =0x0000117b - adds r0, r4, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldrh r1, [r5] - adds r0, r1 - strh r0, [r5] - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _080991F8 - .align 2, 0 -_0809912C: .4byte 0x00001174 -_08099130: .4byte 0x00001176 -_08099134: .4byte 0x0000117b -_08099138: - ldr r2, _08099194 @ =0x00001174 - adds r1, r4, r2 - ldr r5, _08099198 @ =0x00001176 - adds r2, r4, r5 - ldrh r0, [r2] - ldrh r5, [r1] - adds r0, r5 - strh r0, [r1] - ldr r0, _0809919C @ =0x0000117a - adds r5, r4, r0 - ldrb r0, [r5] - ldrh r1, [r3] - movs r3, 0 - ldrsh r2, [r2, r3] - bl sub_8098EE0 - ldr r2, _080991A0 @ =0x00001178 - adds r1, r4, r2 - lsls r0, 24 - lsrs r0, 24 - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - ldr r1, _080991A4 @ =0x0000117b - adds r0, r4, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - cmp r1, 0 - ble _08099178 - ldrb r0, [r5] - cmp r0, 0x5 - beq _08099182 -_08099178: - cmp r1, 0 - bge _080991B0 - ldrb r0, [r5] - cmp r0, 0 - bne _080991B0 -_08099182: - ldr r0, _080991A8 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _080991AC @ =0x0000117c - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080991F8 - .align 2, 0 -_08099194: .4byte 0x00001174 -_08099198: .4byte 0x00001176 -_0809919C: .4byte 0x0000117a -_080991A0: .4byte 0x00001178 -_080991A4: .4byte 0x0000117b -_080991A8: .4byte gUnknown_083B6DB4 -_080991AC: .4byte 0x0000117c -_080991B0: - ldr r0, _080991D0 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r5, _080991D4 @ =0x0000117a - adds r3, r1, r5 - ldr r2, _080991D8 @ =0x0000117b - adds r0, r1, r2 - ldrb r0, [r0] - ldrb r5, [r3] - adds r0, r5 - movs r2, 0 - strb r0, [r3] - ldr r0, _080991DC @ =0x0000117c - adds r1, r0 - strb r2, [r1] - b _080991F8 - .align 2, 0 -_080991D0: .4byte gUnknown_083B6DB4 -_080991D4: .4byte 0x0000117a -_080991D8: .4byte 0x0000117b -_080991DC: .4byte 0x0000117c -_080991E0: - ldr r1, _080991F4 @ =0x00001178 - adds r0, r4, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _080991F8 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] -_080991F0: - movs r0, 0 - b _080991FA - .align 2, 0 -_080991F4: .4byte 0x00001178 -_080991F8: - movs r0, 0x1 -_080991FA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80990AC - - thumb_func_start sub_8099200 -sub_8099200: @ 8099200 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, _080992A0 @ =gPlayerParty - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x68 - movs r3, 0x40 - bl sub_8099AFC - ldr r1, _080992A4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _080992A8 @ =0x00001038 - adds r1, r2 - str r0, [r1] - movs r7, 0x1 - movs r6, 0x1 -_08099246: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _080992A0 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _080992AC - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r1, r0, 0 - subs r0, r6, 0x1 - lsls r3, r0, 1 - adds r3, r0 - lsls r3, 19 - movs r0, 0x80 - lsls r0, 13 - adds r3, r0 - asrs r3, 16 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r2, 0x98 - bl sub_8099AFC - ldr r1, _080992A4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - lsls r2, r6, 2 - ldr r3, _080992A8 @ =0x00001038 - adds r1, r3 - adds r1, r2 - str r0, [r1] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - b _080992BA - .align 2, 0 -_080992A0: .4byte gPlayerParty -_080992A4: .4byte gUnknown_083B6DB4 -_080992A8: .4byte 0x00001038 -_080992AC: - ldr r0, _08099308 @ =gUnknown_083B6DB4 - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _0809930C @ =0x00001038 - adds r0, r2 - adds r0, r1 - str r5, [r0] -_080992BA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _08099246 - mov r3, r8 - cmp r3, 0 - bne _080992FA - movs r6, 0 - cmp r6, r7 - bcs _080992FA - ldr r0, _08099308 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809930C @ =0x00001038 - adds r3, r0, r1 - movs r4, 0x4 -_080992DA: - lsls r1, r6, 2 - adds r1, r3, r1 - ldr r2, [r1] - ldrh r0, [r2, 0x22] - subs r0, 0xA0 - strh r0, [r2, 0x22] - ldr r1, [r1] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - bcc _080992DA -_080992FA: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099308: .4byte gUnknown_083B6DB4 -_0809930C: .4byte 0x00001038 - thumb_func_end sub_8099200 - - thumb_func_start sub_8099310 -sub_8099310: @ 8099310 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08099368 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _0809936C @ =0x00001171 - adds r1, r2, r0 - movs r0, 0 - strb r0, [r1] - movs r5, 0 - movs r6, 0 - mov r8, r2 - ldr r7, _0809936C @ =0x00001171 - add r7, r8 -_0809932C: - lsls r1, r5, 2 - ldr r0, _08099370 @ =0x00001038 - add r0, r8 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _08099354 - cmp r5, r6 - beq _0809934E - adds r1, r6, 0 - bl sub_8099388 - movs r0, 0 - str r0, [r4] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] -_0809934E: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_08099354: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809932C - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099368: .4byte gUnknown_083B6DB4 -_0809936C: .4byte 0x00001171 -_08099370: .4byte 0x00001038 - thumb_func_end sub_8099310 - - thumb_func_start sub_8099374 -sub_8099374: @ 8099374 - ldr r0, _08099380 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099384 @ =0x00001171 - adds r0, r1 - ldrb r0, [r0] - bx lr - .align 2, 0 -_08099380: .4byte gUnknown_083B6DB4 -_08099384: .4byte 0x00001171 - thumb_func_end sub_8099374 - - thumb_func_start sub_8099388 -sub_8099388: @ 8099388 - push {r4,lr} - adds r2, r0, 0 - lsls r1, 16 - lsrs r1, 16 - strh r1, [r2, 0x30] - cmp r1, 0 - bne _0809939C - movs r3, 0x68 - movs r4, 0x40 - b _080993AE -_0809939C: - movs r3, 0x98 - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 19 - movs r1, 0x80 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 -_080993AE: - ldrh r0, [r2, 0x20] - lsls r0, 3 - strh r0, [r2, 0x32] - ldrh r0, [r2, 0x22] - lsls r0, 3 - strh r0, [r2, 0x34] - lsls r1, r3, 3 - movs r3, 0x32 - ldrsh r0, [r2, r3] - subs r0, r1, r0 - cmp r0, 0 - bge _080993C8 - adds r0, 0x7 -_080993C8: - asrs r0, 3 - strh r0, [r2, 0x36] - lsls r0, r4, 16 - asrs r0, 13 - movs r3, 0x34 - ldrsh r1, [r2, r3] - subs r0, r1 - cmp r0, 0 - bge _080993DC - adds r0, 0x7 -_080993DC: - asrs r0, 3 - strh r0, [r2, 0x38] - movs r0, 0x8 - strh r0, [r2, 0x3A] - ldr r0, _080993F0 @ =sub_80993F4 - str r0, [r2, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080993F0: .4byte sub_80993F4 - thumb_func_end sub_8099388 - - thumb_func_start sub_80993F4 -sub_80993F4: @ 80993F4 - push {r4,lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x3A] - movs r1, 0x3A - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08099424 - ldrh r0, [r3, 0x36] - ldrh r4, [r3, 0x32] - adds r0, r4 - strh r0, [r3, 0x32] - ldrh r1, [r3, 0x38] - ldrh r4, [r3, 0x34] - adds r1, r4 - strh r1, [r3, 0x34] - lsls r0, 16 - asrs r0, 19 - strh r0, [r3, 0x20] - lsls r1, 16 - asrs r1, 19 - strh r1, [r3, 0x22] - subs r0, r2, 0x1 - strh r0, [r3, 0x3A] - b _08099468 -_08099424: - movs r1, 0x30 - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08099434 - movs r0, 0x68 - strh r0, [r3, 0x20] - movs r0, 0x40 - b _08099446 -_08099434: - movs r0, 0x98 - strh r0, [r3, 0x20] - movs r4, 0x30 - ldrsh r1, [r3, r4] - subs r1, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x10 -_08099446: - strh r0, [r3, 0x22] - ldr r0, _08099470 @ =SpriteCallbackDummy - str r0, [r3, 0x1C] - ldr r0, _08099474 @ =gUnknown_083B6DB4 - ldr r2, [r0] - movs r0, 0x30 - ldrsh r1, [r3, r0] - lsls r1, 2 - ldr r4, _08099478 @ =0x00001038 - adds r0, r2, r4 - adds r0, r1 - str r3, [r0] - ldr r0, _0809947C @ =0x00001171 - adds r2, r0 - ldrb r0, [r2] - subs r0, 0x1 - strb r0, [r2] -_08099468: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099470: .4byte SpriteCallbackDummy -_08099474: .4byte gUnknown_083B6DB4 -_08099478: .4byte 0x00001038 -_0809947C: .4byte 0x00001171 - thumb_func_end sub_80993F4 - - thumb_func_start sub_8099480 -sub_8099480: @ 8099480 - push {r4,lr} - ldr r0, _080994A0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _080994A4 @ =0x00001034 - adds r4, r0, r1 - ldr r0, [r4] - cmp r0, 0 - beq _08099498 - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_08099498: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080994A0: .4byte gUnknown_083B6DB4 -_080994A4: .4byte 0x00001034 - thumb_func_end sub_8099480 - - thumb_func_start sub_80994A8 -sub_80994A8: @ 80994A8 - push {r4-r6,lr} - movs r3, 0 - ldr r1, _080994FC @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _08099500 @ =0x00001038 - adds r5, r1, r2 - lsls r0, 16 - asrs r4, r0, 16 - movs r6, 0x5 - negs r6, r6 -_080994BC: - lsls r0, r3, 2 - adds r2, r5, r0 - ldr r1, [r2] - cmp r1, 0 - beq _0809950E - ldrh r0, [r1, 0x22] - adds r0, r4, r0 - strh r0, [r1, 0x22] - ldr r2, [r2] - ldrh r1, [r2, 0x26] - ldrh r0, [r2, 0x22] - adds r1, r0 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 13 - adds r0, r1 - lsrs r0, 16 - cmp r0, 0xC0 - bls _08099504 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0809950E - .align 2, 0 -_080994FC: .4byte gUnknown_083B6DB4 -_08099500: .4byte 0x00001038 -_08099504: - adds r2, 0x3E - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r2] -_0809950E: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _080994BC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80994A8 - - thumb_func_start sub_8099520 -sub_8099520: @ 8099520 - push {r4,lr} - lsls r0, 24 - ldr r1, _08099544 @ =gUnknown_083B6DB4 - ldr r1, [r1] - lsrs r0, 22 - ldr r2, _08099548 @ =0x00001038 - adds r1, r2 - adds r4, r1, r0 - ldr r0, [r4] - cmp r0, 0 - beq _0809953E - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_0809953E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099544: .4byte gUnknown_083B6DB4 -_08099548: .4byte 0x00001038 - thumb_func_end sub_8099520 - - thumb_func_start sub_809954C -sub_809954C: @ 809954C - push {r4-r6,lr} - movs r5, 0 - ldr r0, _0809957C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099580 @ =0x00001038 - adds r6, r0, r1 -_08099558: - lsls r0, r5, 2 - adds r4, r6, r0 - ldr r0, [r4] - cmp r0, 0 - beq _0809956A - bl sub_8099BE0 - movs r0, 0 - str r0, [r4] -_0809956A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08099558 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809957C: .4byte gUnknown_083B6DB4 -_08099580: .4byte 0x00001038 - thumb_func_end sub_809954C - - thumb_func_start sub_8099584 -sub_8099584: @ 8099584 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r5, r1, 0 - cmp r4, 0 - bne _080995B4 - ldr r3, _080995AC @ =gUnknown_083B6DB4 - ldr r0, [r3] - ldr r5, _080995B0 @ =0x00001034 - adds r2, r0, r5 - lsls r1, 2 - adds r5, 0x4 - adds r0, r5 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - str r4, [r0] - b _080995D0 - .align 2, 0 -_080995AC: .4byte gUnknown_083B6DB4 -_080995B0: .4byte 0x00001034 -_080995B4: - cmp r4, 0x1 - bne _080995F4 - ldr r3, _080995FC @ =gUnknown_083B6DB4 - ldr r0, [r3] - ldr r1, _08099600 @ =0x00001034 - adds r2, r0, r1 - lsls r1, r5, 2 - ldr r4, _08099604 @ =0x00001050 - adds r0, r4 - adds r0, r1 - ldr r1, [r0] - str r1, [r2] - movs r1, 0 - str r1, [r0] -_080995D0: - ldr r2, [r3] - ldr r5, _08099600 @ =0x00001034 - adds r2, r5 - ldr r1, [r2] - ldr r0, _08099608 @ =sub_80999C4 - str r0, [r1, 0x1C] - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r2] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_080995F4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080995FC: .4byte gUnknown_083B6DB4 -_08099600: .4byte 0x00001034 -_08099604: .4byte 0x00001050 -_08099608: .4byte sub_80999C4 - thumb_func_end sub_8099584 - - thumb_func_start sub_809960C -sub_809960C: @ 809960C - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r0, 0xE - bne _08099654 - ldr r4, _08099648 @ =gUnknown_083B6DB4 - ldr r0, [r4] - lsls r1, r6, 2 - ldr r2, _0809964C @ =0x00001038 - adds r3, r0, r2 - adds r3, r1 - ldr r1, _08099650 @ =0x00001034 - adds r0, r1 - ldr r2, [r0] - str r2, [r3] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r3] - adds r0, 0x43 - movs r1, 0xB - strb r1, [r0] - b _0809968A - .align 2, 0 -_08099648: .4byte gUnknown_083B6DB4 -_0809964C: .4byte 0x00001038 -_08099650: .4byte 0x00001034 -_08099654: - ldr r5, _080996A0 @ =gUnknown_083B6DB4 - ldr r0, [r5] - lsls r1, r6, 2 - ldr r2, _080996A4 @ =0x00001050 - adds r3, r0, r2 - adds r3, r1 - ldr r1, _080996A8 @ =0x00001034 - adds r0, r1 - ldr r2, [r0] - str r2, [r3] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r4, [r3] - adds r0, r6, 0 - movs r1, 0x6 - bl __umodsi3 - movs r1, 0x12 - subs r1, r0 - adds r4, 0x43 - strb r1, [r4] - adds r4, r5, 0 -_0809968A: - ldr r1, [r4] - ldr r2, _080996A8 @ =0x00001034 - adds r1, r2 - ldr r2, [r1] - ldr r0, _080996AC @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - movs r0, 0 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080996A0: .4byte gUnknown_083B6DB4 -_080996A4: .4byte 0x00001050 -_080996A8: .4byte 0x00001034 -_080996AC: .4byte SpriteCallbackDummy - thumb_func_end sub_809960C - - thumb_func_start sub_80996B0 -sub_80996B0: @ 80996B0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0xE - bne _080996D8 - ldr r3, _080996CC @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _080996D0 @ =0x000010c8 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _080996D4 @ =0x00001038 - b _080996E4 - .align 2, 0 -_080996CC: .4byte gUnknown_083B6DB4 -_080996D0: .4byte 0x000010c8 -_080996D4: .4byte 0x00001038 -_080996D8: - ldr r3, _08099704 @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _08099708 @ =0x000010c8 - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _0809970C @ =0x00001050 -_080996E4: - adds r0, r4 - adds r1, r0 - str r1, [r2] - ldr r1, [r3] - ldr r2, _08099710 @ =0x00001034 - adds r0, r1, r2 - ldr r2, [r0] - ldr r0, _08099714 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] - ldr r4, _08099718 @ =0x00001170 - adds r1, r4 - movs r0, 0 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099704: .4byte gUnknown_083B6DB4 -_08099708: .4byte 0x000010c8 -_0809970C: .4byte 0x00001050 -_08099710: .4byte 0x00001034 -_08099714: .4byte SpriteCallbackDummy -_08099718: .4byte 0x00001170 - thumb_func_end sub_80996B0 - - thumb_func_start sub_809971C -sub_809971C: @ 809971C - push {r4-r7,lr} - ldr r0, _08099730 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _08099734 @ =0x00001170 - adds r7, r2, r0 - ldrb r0, [r7] - cmp r0, 0x10 - bne _08099738 - movs r0, 0 - b _08099800 - .align 2, 0 -_08099730: .4byte gUnknown_083B6DB4 -_08099734: .4byte 0x00001170 -_08099738: - adds r0, 0x1 - strb r0, [r7] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809975E - ldr r1, _08099808 @ =0x000010c8 - adds r0, r2, r1 - ldr r0, [r0] - ldr r1, [r0] - ldrh r0, [r1, 0x22] - subs r0, 0x1 - strh r0, [r1, 0x22] - ldr r4, _0809980C @ =0x00001034 - adds r0, r2, r4 - ldr r1, [r0] - ldrh r0, [r1, 0x22] - adds r0, 0x1 - strh r0, [r1, 0x22] -_0809975E: - ldr r0, _08099808 @ =0x000010c8 - adds r5, r2, r0 - ldr r0, [r5] - ldr r1, [r0] - ldr r3, _08099810 @ =gSineTable - ldrb r0, [r7] - lsls r0, 4 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _08099778 - adds r0, 0xF -_08099778: - asrs r0, 4 - strh r0, [r1, 0x24] - ldr r0, _0809980C @ =0x00001034 - adds r6, r2, r0 - ldr r1, [r6] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _08099792 - adds r0, 0xF -_08099792: - asrs r0, 4 - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r7] - cmp r0, 0x8 - bne _080997DE - ldr r4, [r6] - ldr r0, [r5] - ldr r0, [r0] - ldrb r0, [r0, 0x5] - movs r2, 0xC - ands r2, r0 - ldrb r3, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r3 - orrs r0, r2 - strb r0, [r4, 0x5] - ldr r2, [r6] - ldr r0, [r5] - ldr r0, [r0] - adds r0, 0x43 - ldrb r0, [r0] - adds r2, 0x43 - strb r0, [r2] - ldr r0, [r5] - ldr r2, [r0] - ldrb r0, [r2, 0x5] - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r2, 0x5] - ldr r0, [r5] - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0x7 - strb r1, [r0] -_080997DE: - ldrb r0, [r7] - cmp r0, 0x10 - bne _080997FE - ldr r1, [r6] - ldr r0, [r5] - ldr r0, [r0] - str r0, [r6] - ldr r0, [r5] - str r1, [r0] - ldr r1, [r6] - ldr r0, _08099814 @ =sub_80999C4 - str r0, [r1, 0x1C] - ldr r0, [r5] - ldr r1, [r0] - ldr r0, _08099818 @ =SpriteCallbackDummy - str r0, [r1, 0x1C] -_080997FE: - movs r0, 0x1 -_08099800: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08099808: .4byte 0x000010c8 -_0809980C: .4byte 0x00001034 -_08099810: .4byte gSineTable -_08099814: .4byte sub_80999C4 -_08099818: .4byte SpriteCallbackDummy - thumb_func_end sub_809971C - - thumb_func_start sub_809981C -sub_809981C: @ 809981C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r0, 0x1 - beq _08099858 - cmp r0, 0x1 - bgt _08099836 - cmp r0, 0 - beq _0809983C - b _080998C0 -_08099836: - cmp r2, 0x2 - beq _0809987C - b _080998C0 -_0809983C: - ldr r3, _0809984C @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _08099850 @ =0x000010cc - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08099854 @ =0x00001038 - b _08099864 - .align 2, 0 -_0809984C: .4byte gUnknown_083B6DB4 -_08099850: .4byte 0x000010cc -_08099854: .4byte 0x00001038 -_08099858: - ldr r3, _08099870 @ =gUnknown_083B6DB4 - ldr r1, [r3] - ldr r0, _08099874 @ =0x000010cc - adds r2, r1, r0 - lsls r0, r4, 2 - ldr r4, _08099878 @ =0x00001050 -_08099864: - adds r0, r4 - adds r1, r0 - str r1, [r2] - adds r0, r3, 0 - b _0809988A - .align 2, 0 -_08099870: .4byte gUnknown_083B6DB4 -_08099874: .4byte 0x000010cc -_08099878: .4byte 0x00001050 -_0809987C: - ldr r0, _080998C8 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r3, _080998CC @ =0x000010cc - adds r2, r1, r3 - ldr r4, _080998D0 @ =0x00001034 - adds r1, r4 - str r1, [r2] -_0809988A: - ldr r0, [r0] - ldr r1, _080998CC @ =0x000010cc - adds r4, r0, r1 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _080998C0 - bl InitSpriteAffineAnim - ldr r0, [r4] - ldr r2, [r0] - ldrb r1, [r2, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r0, [r4] - ldr r1, [r0] - ldr r0, _080998D4 @ =gSpriteAffineAnimTable_83B6F5C - str r0, [r1, 0x10] - ldr r0, [r4] - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAffineAnim -_080998C0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080998C8: .4byte gUnknown_083B6DB4 -_080998CC: .4byte 0x000010cc -_080998D0: .4byte 0x00001034 -_080998D4: .4byte gSpriteAffineAnimTable_83B6F5C - thumb_func_end sub_809981C - - thumb_func_start sub_80998D8 -sub_80998D8: @ 80998D8 - push {lr} - ldr r0, _080998FC @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099900 @ =0x000010cc - adds r0, r1 - ldr r0, [r0] - ldr r1, [r0] - cmp r1, 0 - beq _080998F8 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - beq _08099904 -_080998F8: - movs r0, 0 - b _0809991A - .align 2, 0 -_080998FC: .4byte gUnknown_083B6DB4 -_08099900: .4byte 0x000010cc -_08099904: - adds r0, r1, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08099918 - movs r0, 0x4 - orrs r0, r2 - strb r0, [r3] -_08099918: - movs r0, 0x1 -_0809991A: - pop {r1} - bx r1 - thumb_func_end sub_80998D8 - - thumb_func_start sub_8099920 -sub_8099920: @ 8099920 - push {r4,lr} - ldr r0, _08099950 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099954 @ =0x000010cc - adds r4, r0, r1 - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0 - beq _0809994A - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, [r4] - ldr r0, [r0] - bl sub_8099BE0 - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_0809994A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099950: .4byte gUnknown_083B6DB4 -_08099954: .4byte 0x000010cc - thumb_func_end sub_8099920 - - thumb_func_start sub_8099958 -sub_8099958: @ 8099958 - push {lr} - ldr r0, _08099988 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809998C @ =0x000010cc - adds r3, r0, r1 - ldr r0, [r3] - ldr r0, [r0] - cmp r0, 0 - beq _08099982 - adds r2, r0, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, [r3] - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAffineAnim -_08099982: - pop {r0} - bx r0 - .align 2, 0 -_08099988: .4byte gUnknown_083B6DB4 -_0809998C: .4byte 0x000010cc - thumb_func_end sub_8099958 - - thumb_func_start sub_8099990 -sub_8099990: @ 8099990 - push {lr} - ldr r0, _080999A4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _080999A8 @ =0x000010cc - adds r2, r0, r1 - ldr r0, [r2] - cmp r0, 0 - bne _080999AC - movs r0, 0 - b _080999C0 - .align 2, 0 -_080999A4: .4byte gUnknown_083B6DB4 -_080999A8: .4byte 0x000010cc -_080999AC: - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080999BE - movs r0, 0 - str r0, [r2] -_080999BE: - movs r0, 0x1 -_080999C0: - pop {r1} - bx r1 - thumb_func_end sub_8099990 - - thumb_func_start sub_80999C4 -sub_80999C4: @ 80999C4 - ldr r1, _080999E4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - movs r2, 0x8E - lsls r2, 5 - adds r1, r2 - ldr r2, [r1] - ldrh r2, [r2, 0x20] - strh r2, [r0, 0x20] - ldr r2, [r1] - ldrh r1, [r2, 0x26] - ldrh r2, [r2, 0x22] - adds r1, r2 - adds r1, 0x4 - strh r1, [r0, 0x22] - bx lr - .align 2, 0 -_080999E4: .4byte gUnknown_083B6DB4 - thumb_func_end sub_80999C4 - - thumb_func_start sub_80999E8 -sub_80999E8: @ 80999E8 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r4, 0 - ldr r1, _08099A58 @ =gUnknown_083B6DB4 - ldr r0, [r1] - movs r2, 0x89 - lsls r2, 5 - adds r0, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, r3 - beq _08099A20 - adds r6, r2, 0 - movs r5, 0x89 - lsls r5, 5 -_08099A08: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08099A20 - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r3 - bne _08099A08 -_08099A20: - cmp r4, 0x28 - bne _08099A60 - movs r4, 0 - ldr r0, [r2] - movs r5, 0x89 - lsls r5, 5 - adds r0, r5 - ldrh r0, [r0] - cmp r0, 0 - beq _08099A4E - adds r6, r2, 0 -_08099A36: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x27 - bhi _08099A4E - ldr r0, [r6] - lsls r1, r4, 1 - adds r0, r5 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08099A36 -_08099A4E: - cmp r4, 0x28 - bne _08099A60 - ldr r0, _08099A5C @ =0x0000ffff - b _08099A94 - .align 2, 0 -_08099A58: .4byte gUnknown_083B6DB4 -_08099A5C: .4byte 0x0000ffff -_08099A60: - ldr r1, [r2] - lsls r2, r4, 1 - movs r5, 0x89 - lsls r5, 5 - adds r0, r1, r5 - adds r0, r2 - strh r3, [r0] - ldr r0, _08099A9C @ =0x000010d0 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r4, 20 - lsrs r4, 16 - ldr r1, _08099AA0 @ =gMonIconTable - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r4, 5 - ldr r2, _08099AA4 @ =0x06010000 - adds r1, r2 - ldr r2, _08099AA8 @ =0x04000080 - bl CpuSet - adds r0, r4, 0 -_08099A94: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08099A9C: .4byte 0x000010d0 -_08099AA0: .4byte gMonIconTable -_08099AA4: .4byte 0x06010000 -_08099AA8: .4byte 0x04000080 - thumb_func_end sub_80999E8 - - thumb_func_start sub_8099AAC -sub_8099AAC: @ 8099AAC - push {r4-r7,lr} - lsls r0, 16 - lsrs r6, r0, 16 - movs r3, 0 - ldr r0, _08099AE4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x89 - lsls r1, 5 - adds r5, r0, r1 - subs r1, 0x50 - adds r4, r0, r1 - ldr r0, _08099AE8 @ =0x0000ffff - adds r7, r0, 0 -_08099AC6: - lsls r1, r3, 1 - adds r2, r5, r1 - ldrh r0, [r2] - cmp r0, r6 - bne _08099AEC - adds r1, r4, r1 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - ands r0, r7 - cmp r0, 0 - bne _08099AF6 - strh r0, [r2] - b _08099AF6 - .align 2, 0 -_08099AE4: .4byte gUnknown_083B6DB4 -_08099AE8: .4byte 0x0000ffff -_08099AEC: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x27 - bls _08099AC6 -_08099AF6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8099AAC - - thumb_func_start sub_8099AFC -sub_8099AFC: @ 8099AFC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r4, [sp, 0x3C] - ldr r5, [sp, 0x40] - lsls r0, 16 - lsrs r6, r0, 16 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x18] - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r9, r5 - mov r2, sp - ldr r0, _08099BAC @ =gSpriteTemplate_83B6F14 - ldm r0!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldm r0!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - adds r0, r6, 0 - bl mon_icon_convert_unown_species_id - mov r10, r0 - mov r6, r10 - mov r2, sp - ldr r1, _08099BB0 @ =gMonIconPaletteIndices - adds r1, r6, r1 - ldr r3, _08099BB4 @ =0x0000dac0 - adds r0, r3, 0 - ldrb r1, [r1] - adds r0, r1 - strh r0, [r2, 0x2] - adds r0, r6, 0 - bl sub_80999E8 - lsls r0, 16 - lsrs r0, 16 - adds r5, r0, 0 - ldr r0, _08099BB8 @ =0x0000ffff - cmp r5, r0 - beq _08099BCE - ldr r7, [sp, 0x18] - lsls r1, r7, 16 - asrs r1, 16 - mov r0, r8 - lsls r2, r0, 16 - asrs r2, 16 - mov r0, sp - mov r3, r9 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _08099BC8 - ldr r1, _08099BBC @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldr r2, _08099BC0 @ =0x000003ff - ands r2, r5 - ldrh r3, [r0, 0x4] - ldr r1, _08099BC4 @ =0xfffffc00 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, 0x4] - movs r1, 0x3 - ands r4, r1 - lsls r3, r4, 2 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r3 - strb r1, [r0, 0x5] - mov r1, r10 - strh r1, [r0, 0x2E] - b _08099BD0 - .align 2, 0 -_08099BAC: .4byte gSpriteTemplate_83B6F14 -_08099BB0: .4byte gMonIconPaletteIndices -_08099BB4: .4byte 0x0000dac0 -_08099BB8: .4byte 0x0000ffff -_08099BBC: .4byte gSprites -_08099BC0: .4byte 0x000003ff -_08099BC4: .4byte 0xfffffc00 -_08099BC8: - adds r0, r6, 0 - bl sub_8099AAC -_08099BCE: - movs r0, 0 -_08099BD0: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8099AFC - - thumb_func_start sub_8099BE0 -sub_8099BE0: @ 8099BE0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - bl sub_8099AAC - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8099BE0 - - thumb_func_start sub_8099BF8 -sub_8099BF8: @ 8099BF8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08099C50 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099C54 @ =0x000008ba - adds r2, r0, r1 - movs r1, 0 - strb r1, [r2] - ldr r2, _08099C58 @ =0x000008b4 - adds r0, r2 - strh r1, [r0] - str r1, [sp] - ldr r1, _08099C5C @ =0x040000d4 - mov r0, sp - str r0, [r1] - ldr r0, _08099C60 @ =0x0600d000 - str r0, [r1, 0x4] - ldr r0, _08099C64 @ =0x85000400 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0 - bl sub_8099EB0 - adds r0, r4, 0 - bl sub_809A23C - bl sub_809A6DC - adds r0, r4, 0 - bl sub_8098C48 - ldr r1, _08099C68 @ =REG_BG2CNT - ldr r2, _08099C6C @ =0x00005a0a - adds r0, r2, 0 - strh r0, [r1] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099C50: .4byte gUnknown_083B6DB4 -_08099C54: .4byte 0x000008ba -_08099C58: .4byte 0x000008b4 -_08099C5C: .4byte 0x040000d4 -_08099C60: .4byte 0x0600d000 -_08099C64: .4byte 0x85000400 -_08099C68: .4byte REG_BG2CNT -_08099C6C: .4byte 0x00005a0a - thumb_func_end sub_8099BF8 - - thumb_func_start sub_8099C70 -sub_8099C70: @ 8099C70 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - bl sub_8099D90 - lsls r0, 24 - asrs r4, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_8099EB0 - ldr r0, _08099D10 @ =gUnknown_083B6DB4 - ldr r2, [r0] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 1 - ldr r3, _08099D14 @ =0x000008b6 - adds r1, r2, r3 - strh r0, [r1] - ldr r0, _08099D18 @ =0x000008b8 - adds r1, r2, r0 - movs r0, 0x20 - strh r0, [r1] - ldr r1, _08099D1C @ =0x000008bb - adds r0, r2, r1 - strb r5, [r0] - movs r1, 0 - cmp r4, 0 - bgt _08099CAE - movs r1, 0x5 -_08099CAE: - ldr r3, _08099D20 @ =0x000008bc - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _08099D24 @ =0x000008be - adds r0, r2, r1 - strh r4, [r0] - movs r1, 0x38 - cmp r4, 0 - ble _08099CC6 - movs r3, 0x84 - lsls r3, 1 - adds r1, r3, 0 -_08099CC6: - movs r3, 0x8C - lsls r3, 4 - adds r0, r2, r3 - strh r1, [r0] - movs r1, 0 - cmp r4, 0 - bgt _08099CD6 - movs r1, 0x5 -_08099CD6: - ldr r3, _08099D28 @ =0x000008c2 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _08099D2C @ =0x000008c4 - adds r0, r2, r1 - strh r4, [r0] - adds r3, 0x4 - adds r1, r2, r3 - movs r0, 0 - strh r0, [r1] - ldr r0, _08099D30 @ =0x000008c8 - adds r1, r2, r0 - movs r0, 0x2 - strh r0, [r1] - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809900C - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809A3D0 - adds r0, r4, 0 - bl sub_809A774 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08099D10: .4byte gUnknown_083B6DB4 -_08099D14: .4byte 0x000008b6 -_08099D18: .4byte 0x000008b8 -_08099D1C: .4byte 0x000008bb -_08099D20: .4byte 0x000008bc -_08099D24: .4byte 0x000008be -_08099D28: .4byte 0x000008c2 -_08099D2C: .4byte 0x000008c4 -_08099D30: .4byte 0x000008c8 - thumb_func_end sub_8099C70 - - thumb_func_start sub_8099D34 -sub_8099D34: @ 8099D34 - push {r4,lr} - bl sub_80990AC - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08099D78 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _08099D7C @ =0x000008b8 - adds r3, r1, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _08099D88 - ldr r4, _08099D80 @ =0x000008b4 - adds r2, r1, r4 - adds r4, 0x2 - adds r0, r1, r4 - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r1 - ldr r1, _08099D84 @ =0x000001ff - ands r0, r1 - strh r0, [r2] - ldrh r0, [r3] - subs r0, 0x1 - strh r0, [r3] - lsls r0, 16 - cmp r0, 0 - bne _08099D74 - bl sub_809A598 - bl sub_809A810 -_08099D74: - movs r0, 0x1 - b _08099D8A - .align 2, 0 -_08099D78: .4byte gUnknown_083B6DB4 -_08099D7C: .4byte 0x000008b8 -_08099D80: .4byte 0x000008b4 -_08099D84: .4byte 0x000001ff -_08099D88: - adds r0, r2, 0 -_08099D8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8099D34 - - thumb_func_start sub_8099D90 -sub_8099D90: @ 8099D90 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0 - cmp r1, r4 - beq _08099DBA -_08099DA4: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xD - bls _08099DB0 - movs r1, 0 -_08099DB0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r1, r4 - bne _08099DA4 -_08099DBA: - movs r0, 0x1 - negs r0, r0 - cmp r2, 0x6 - bhi _08099DC4 - movs r0, 0x1 -_08099DC4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8099D90 - - thumb_func_start sub_8099DCC -sub_8099DCC: @ 8099DCC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08099DF8 @ =gPokemonStorage - ldr r2, _08099DFC @ =0x000083c2 - adds r1, r2 - adds r0, r1 - movs r1, 0 - strb r4, [r0] - ldr r0, _08099E00 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _08099E04 @ =0x00001032 - adds r0, r2 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08099DF8: .4byte gPokemonStorage -_08099DFC: .4byte 0x000083c2 -_08099E00: .4byte gUnknown_083B6DB4 -_08099E04: .4byte 0x00001032 - thumb_func_end sub_8099DCC - - thumb_func_start sub_8099E08 -sub_8099E08: @ 8099E08 - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _08099E24 @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _08099E28 @ =0x00001032 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _08099E54 - cmp r0, 0x1 - bgt _08099E2C - cmp r0, 0 - beq _08099E36 - b _08099EA6 - .align 2, 0 -_08099E24: .4byte gUnknown_083B6DB4 -_08099E28: .4byte 0x00001032 -_08099E2C: - cmp r0, 0x2 - beq _08099E90 - cmp r0, 0x3 - beq _08099EA2 - b _08099EA6 -_08099E36: - ldr r1, _08099E4C @ =0x00000d08 - adds r0, r5, r1 - ldr r0, [r0] - ldr r1, _08099E50 @ =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08099E9A - .align 2, 0 -_08099E4C: .4byte 0x00000d08 -_08099E50: .4byte 0x0000ffff -_08099E54: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08099EA6 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8099EB0 - bl sub_809A654 - ldr r1, _08099E88 @ =0x00000d08 - adds r0, r5, r1 - ldr r0, [r0] - ldr r1, _08099E8C @ =0x0000ffff - str r1, [sp] - movs r1, 0x1 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08099E9A - .align 2, 0 -_08099E88: .4byte 0x00000d08 -_08099E8C: .4byte 0x0000ffff -_08099E90: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08099EA6 -_08099E9A: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08099EA6 -_08099EA2: - movs r0, 0 - b _08099EA8 -_08099EA6: - movs r0, 0x1 -_08099EA8: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8099E08 - - thumb_func_start sub_8099EB0 -sub_8099EB0: @ 8099EB0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r1, 0 - beq _08099ED8 - ldr r0, _08099F38 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r2, 0 - ldr r3, _08099F3C @ =0x000008ba - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _08099ED0 - movs r2, 0x1 -_08099ED0: - strb r2, [r1] - ldr r0, _08099F40 @ =0x0600d000 - bl sub_809A14C -_08099ED8: - ldr r0, _08099F44 @ =gPokemonStorage - ldr r1, _08099F48 @ =0x000083c2 - adds r0, r1 - adds r0, r4, r0 - ldrb r4, [r0] - lsls r4, 4 - ldr r0, _08099F4C @ =gWallpaperTable - adds r4, r0 - ldr r0, [r4, 0xC] - ldr r1, _08099F38 @ =gUnknown_083B6DB4 - ldr r5, [r1] - ldr r2, _08099F3C @ =0x000008ba - adds r6, r5, r2 - ldrb r2, [r6] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 20 - movs r3, 0x80 - lsls r3, 15 - adds r1, r3 - lsrs r1, 16 - movs r2, 0x60 - bl LoadPalette - ldr r0, [r4, 0x8] - ldr r1, _08099F50 @ =0x00000d62 - adds r5, r1 - adds r1, r5, 0 - bl LZ77UnCompWram - ldr r0, _08099F40 @ =0x0600d000 - lsls r2, r7, 24 - asrs r2, 24 - ldrb r3, [r6] - adds r1, r5, 0 - bl sub_8099F58 - ldr r0, [r4] - ldrb r1, [r6] - lsls r1, 13 - ldr r2, _08099F54 @ =0x06008000 - adds r1, r2 - bl LZ77UnCompVram - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08099F38: .4byte gUnknown_083B6DB4 -_08099F3C: .4byte 0x000008ba -_08099F40: .4byte 0x0600d000 -_08099F44: .4byte gPokemonStorage -_08099F48: .4byte 0x000083c2 -_08099F4C: .4byte gWallpaperTable -_08099F50: .4byte 0x00000d62 -_08099F54: .4byte 0x06008000 - thumb_func_end sub_8099EB0 - - thumb_func_start sub_8099F58 -sub_8099F58: @ 8099F58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - mov r9, r0 - adds r5, r1, 0 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, r3, 8 - str r0, [sp] - lsls r0, r3, 1 - adds r0, r3 - adds r0, 0x4 - lsls r0, 28 - lsrs r0, 16 - str r0, [sp, 0x4] - ldr r0, _08099FB8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _08099FBC @ =0x000008b4 - adds r0, r1 - ldrh r1, [r0] - lsrs r1, 3 - adds r1, 0xA - lsrs r0, r2, 24 - mov r8, r0 - asrs r2, 24 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - movs r0, 0x3F - ands r1, r0 - str r1, [sp, 0x8] - adds r2, r1, 0 - cmp r2, 0xC - bgt _08099FC0 - movs r6, 0x14 - movs r3, 0 - lsls r0, r2, 1 - adds r0, 0x80 - mov r1, r9 - adds r4, r1, r0 - movs r7, 0 - b _0809A020 - .align 2, 0 -_08099FB8: .4byte gUnknown_083B6DB4 -_08099FBC: .4byte 0x000008b4 -_08099FC0: - cmp r2, 0x1F - bgt _08099FE6 - movs r0, 0x20 - subs r0, r2 - lsls r0, 16 - movs r1, 0x14 - lsrs r6, r0, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r0, r2, 1 - adds r0, 0x80 - mov r2, r9 - adds r4, r2, r0 - movs r7, 0x88 - lsls r7, 4 - add r7, r9 - b _0809A020 -_08099FE6: - cmp r2, 0x2C - bgt _08099FFE - movs r6, 0x14 - movs r3, 0 - lsls r0, r2, 1 - movs r1, 0x84 - lsls r1, 4 - adds r0, r1 - mov r2, r9 - adds r4, r2, r0 - movs r7, 0 - b _0809A020 -_08099FFE: - movs r0, 0x40 - subs r0, r2 - lsls r0, 16 - movs r1, 0x14 - lsrs r6, r0, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r0, r2, 1 - movs r1, 0x84 - lsls r1, 4 - adds r0, r1 - mov r2, r9 - adds r4, r2, r0 - mov r7, r9 - adds r7, 0x80 -_0809A020: - movs r1, 0 - mov r0, r8 - lsls r0, 24 - str r0, [sp, 0x14] - lsls r0, r6, 16 - asrs r0, 16 - mov r8, r0 - lsls r3, 16 - str r3, [sp, 0xC] - asrs r2, r3, 16 - str r2, [sp, 0x10] -_0809A036: - movs r3, 0 - adds r0, r4, 0 - adds r0, 0x40 - str r0, [sp, 0x18] - adds r2, r7, 0 - adds r2, 0x40 - str r2, [sp, 0x1C] - adds r1, 0x1 - mov r10, r1 - cmp r3, r8 - bge _0809A07A - ldr r0, _0809A0D4 @ =0x00000fff - mov r12, r0 - movs r6, 0xF0 - lsls r6, 8 -_0809A054: - ldrh r2, [r5] - mov r0, r12 - ands r0, r2 - ldr r1, [sp] - adds r0, r1, r0 - adds r1, r6, 0 - ands r1, r2 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - orrs r1, r0 - lsls r0, r3, 1 - adds r0, r4 - strh r1, [r0] - adds r5, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r8 - blt _0809A054 -_0809A07A: - movs r3, 0 - ldr r0, [sp, 0x10] - cmp r3, r0 - bge _0809A0B4 - ldr r1, _0809A0D4 @ =0x00000fff - mov r12, r1 - movs r6, 0xF0 - lsls r6, 8 - ldr r2, [sp, 0xC] - asrs r4, r2, 16 -_0809A08E: - ldrh r2, [r5] - mov r0, r12 - ands r0, r2 - ldr r1, [sp] - adds r0, r1, r0 - adds r1, r6, 0 - ands r1, r2 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - orrs r1, r0 - lsls r0, r3, 1 - adds r0, r7 - strh r1, [r0] - adds r5, 0x2 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _0809A08E -_0809A0B4: - ldr r4, [sp, 0x18] - ldr r7, [sp, 0x1C] - mov r1, r10 - lsls r0, r1, 16 - lsrs r1, r0, 16 - cmp r1, 0x11 - bls _0809A036 - ldr r0, [sp, 0x14] - asrs r2, r0, 24 - cmp r2, 0 - beq _0809A13A - cmp r2, 0 - ble _0809A0D8 - ldr r1, [sp, 0x8] - adds r1, 0x14 - b _0809A0DC - .align 2, 0 -_0809A0D4: .4byte 0x00000fff -_0809A0D8: - ldr r1, [sp, 0x8] - subs r1, 0x4 -_0809A0DC: - movs r0, 0x3F - ands r1, r0 - adds r4, r1, 0 - adds r0, r4, 0 - cmp r0, 0x1F - bgt _0809A0EE - lsls r0, 1 - adds r0, 0x80 - b _0809A0F6 -_0809A0EE: - lsls r0, 1 - movs r2, 0x84 - lsls r2, 4 - adds r0, r2 -_0809A0F6: - mov r1, r9 - adds r2, r1, r0 - movs r3, 0 - movs r6, 0 -_0809A0FE: - movs r1, 0 - adds r5, r3, 0x1 - lsls r3, r4, 16 -_0809A104: - strh r6, [r2] - adds r2, 0x40 - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x11 - bls _0809A104 - asrs r0, r3, 16 - adds r4, r0, 0x1 - movs r0, 0x3F - ands r4, r0 - adds r0, r4, 0 - cmp r0, 0x1F - bgt _0809A126 - lsls r0, 1 - adds r0, 0x80 - b _0809A12E -_0809A126: - lsls r0, 1 - movs r2, 0x84 - lsls r2, 4 - adds r0, r2 -_0809A12E: - mov r1, r9 - adds r2, r1, r0 - lsls r0, r5, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _0809A0FE -_0809A13A: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8099F58 - - thumb_func_start sub_809A14C -sub_809A14C: @ 809A14C - push {r4-r6,lr} - adds r2, r0, 0 - ldr r0, _0809A174 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809A178 @ =0x000008b4 - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 3 - adds r3, r0, 0 - adds r3, 0x1E - movs r0, 0x3F - ands r3, r0 - adds r0, r3, 0 - cmp r0, 0x1F - bgt _0809A17C - lsls r0, 1 - movs r6, 0x98 - lsls r6, 3 - adds r0, r6 - b _0809A184 - .align 2, 0 -_0809A174: .4byte gUnknown_083B6DB4 -_0809A178: .4byte 0x000008b4 -_0809A17C: - lsls r0, 1 - movs r1, 0xC8 - lsls r1, 4 - adds r0, r1 -_0809A184: - adds r2, r0 - movs r0, 0 - movs r5, 0 - movs r4, 0x3F -_0809A18C: - strh r5, [r2] - adds r2, 0x2 - adds r3, 0x1 - ands r3, r4 - adds r1, r3, 0 - cmp r1, 0 - bne _0809A19E - ldr r6, _0809A1B8 @ =0xfffff7c0 - adds r2, r6 -_0809A19E: - cmp r1, 0x20 - bne _0809A1A8 - movs r1, 0xF8 - lsls r1, 3 - adds r2, r1 -_0809A1A8: - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2B - bls _0809A18C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A1B8: .4byte 0xfffff7c0 - thumb_func_end sub_809A14C - - thumb_func_start sub_809A1BC -sub_809A1BC: @ 809A1BC - push {r4-r6,lr} - sub sp, 0x8 - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _0809A228 @ =gUnknown_083B6DB8 - ldr r5, [r0] - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r4, _0809A22C @ =0x040000d4 - str r1, [r4] - str r5, [r4, 0x4] - movs r6, 0x80 - lsls r6, 1 - ldr r0, _0809A230 @ =0x81000100 - str r0, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0809A234 @ =gWindowConfig_81E6D38 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_8004E3C - str r5, [r4] - ldr r3, [sp, 0x4] - str r3, [r4, 0x4] - ldr r1, _0809A238 @ =0x80000040 - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r5, r6 - str r0, [r4] - adds r0, r3, 0 - adds r0, 0x80 - str r0, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - adds r0, r5, 0 - adds r0, 0x80 - str r0, [r4] - adds r6, r3, r6 - str r6, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - adds r5, r0 - str r5, [r4] - adds r3, r0 - str r3, [r4, 0x4] - str r1, [r4, 0x8] - ldr r0, [r4, 0x8] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A228: .4byte gUnknown_083B6DB8 -_0809A22C: .4byte 0x040000d4 -_0809A230: .4byte 0x81000100 -_0809A234: .4byte gWindowConfig_81E6D38 -_0809A238: .4byte 0x80000040 - thumb_func_end sub_809A1BC - - thumb_func_start sub_809A23C -sub_809A23C: @ 809A23C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0809A384 @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r1, _0809A388 @ =0x000008ca - adds r7, r5, r1 - str r7, [sp, 0x18] - mov r2, sp - adds r2, 0x18 - str r2, [sp, 0x20] - ldr r0, _0809A38C @ =0x00030200 - str r0, [r2, 0x4] - mov r1, sp - ldr r3, _0809A390 @ =0x00000ccc - adds r0, r5, r3 - str r0, [sp] - ldr r4, _0809A394 @ =0x0000dac8 - strh r4, [r1, 0x4] - str r0, [sp, 0x8] - ldr r6, _0809A398 @ =0xffffdac9 - strh r6, [r1, 0xC] - add r0, sp, 0x10 - movs r1, 0 - movs r2, 0x8 - bl memset - ldr r0, _0809A39C @ =gPokemonStorage - mov r9, r0 - ldr r0, _0809A3A0 @ =0x000083c2 - add r0, r9 - add r0, r8 - ldrb r1, [r0] - ldr r2, _0809A3A4 @ =gUnknown_083BB0A8 - lsls r1, 2 - adds r0, r1, r2 - ldrh r3, [r0] - ldr r6, _0809A3A8 @ =0x00000ce8 - adds r0, r5, r6 - strh r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrh r1, [r1] - ldr r2, _0809A3AC @ =0x00000cea - adds r0, r5, r2 - strh r1, [r0] - mov r0, sp - bl LoadSpritePalettes - ldr r3, _0809A3B0 @ =0x00000d08 - adds r6, r5, r3 - movs r0, 0xFC - lsls r0, 2 - str r0, [r6] - adds r0, r4, 0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - movs r2, 0x87 - lsls r2, 1 - mov r10, r2 - add r1, r10 - ldr r3, _0809A3B4 @ =0x00000cec - adds r2, r5, r3 - strh r1, [r2] - movs r4, 0x80 - lsls r4, 9 - adds r1, r4, 0 - lsls r1, r0 - ldr r0, [r6] - orrs r0, r1 - str r0, [r6] - ldr r0, _0809A3B8 @ =0x0000dac9 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - add r1, r10 - ldr r2, _0809A3BC @ =0x00000cee - adds r5, r2 - strh r1, [r5] - lsls r4, r0 - ldr r0, [r6] - orrs r0, r4 - str r0, [r6] - mov r3, r8 - lsls r4, r3, 3 - add r4, r8 - ldr r6, _0809A3C0 @ =0x00008344 - add r9, r6 - add r4, r9 - adds r0, r7, 0 - adds r1, r4, 0 - bl sub_809A1BC - ldr r0, [sp, 0x20] - bl LoadSpriteSheet - adds r0, r4, 0 - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809A6D0 - movs r4, 0 - lsls r0, 16 - asrs r6, r0, 16 -_0809A328: - lsls r1, r4, 5 - adds r1, r6, r1 - lsls r1, 16 - asrs r1, 16 - ldr r0, _0809A3C4 @ =gSpriteTemplate_83BB2B8 - movs r2, 0x1C - movs r3, 0x17 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _0809A384 @ =gUnknown_083B6DB4 - ldr r5, [r0] - lsls r0, r4, 2 - movs r3, 0xCF - lsls r3, 4 - adds r2, r5, r3 - adds r2, r0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809A3C8 @ =gSprites - adds r0, r1 - str r0, [r2] - lsls r1, r4, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1 - bls _0809A328 - ldr r6, _0809A3CC @ =0x00000cca - adds r1, r5, r6 - movs r0, 0 - strb r0, [r1] - 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 -_0809A384: .4byte gUnknown_083B6DB4 -_0809A388: .4byte 0x000008ca -_0809A38C: .4byte 0x00030200 -_0809A390: .4byte 0x00000ccc -_0809A394: .4byte 0x0000dac8 -_0809A398: .4byte 0xffffdac9 -_0809A39C: .4byte gPokemonStorage -_0809A3A0: .4byte 0x000083c2 -_0809A3A4: .4byte gUnknown_083BB0A8 -_0809A3A8: .4byte 0x00000ce8 -_0809A3AC: .4byte 0x00000cea -_0809A3B0: .4byte 0x00000d08 -_0809A3B4: .4byte 0x00000cec -_0809A3B8: .4byte 0x0000dac9 -_0809A3BC: .4byte 0x00000cee -_0809A3C0: .4byte 0x00008344 -_0809A3C4: .4byte gSpriteTemplate_83BB2B8 -_0809A3C8: .4byte gSprites -_0809A3CC: .4byte 0x00000cca - thumb_func_end sub_809A23C - - thumb_func_start sub_809A3D0 -sub_809A3D0: @ 809A3D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x28] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - ldr r3, _0809A43C @ =gUnknown_083B6DB4 - ldr r5, [r3] - ldr r1, _0809A440 @ =0x000008ca - adds r0, r5, r1 - str r0, [sp, 0x18] - add r2, sp, 0x18 - ldr r4, _0809A444 @ =0x0000ffff - mov r9, r4 - movs r6, 0xC0 - lsls r6, 10 - mov r8, r6 - ldr r0, _0809A448 @ =0x00030200 - str r0, [r2, 0x4] - mov r1, sp - ldr r0, _0809A44C @ =gSpriteTemplate_83BB2B8 - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - ldm r0!, {r4,r6,r7} - stm r1!, {r4,r6,r7} - movs r1, 0 - ldr r7, _0809A450 @ =0x00000cca - adds r4, r5, r7 - ldrb r0, [r4] - adds r6, r2, 0 - cmp r0, 0 - bne _0809A41E - movs r1, 0x1 -_0809A41E: - strb r1, [r4] - cmp r1, 0 - bne _0809A458 - ldr r0, [r6, 0x4] - mov r1, r9 - ands r0, r1 - mov r4, r8 - orrs r0, r4 - str r0, [r6, 0x4] - ldr r7, _0809A454 @ =0x00000cec - adds r0, r5, r7 - ldrh r0, [r0] - mov r8, r0 - b _0809A478 - .align 2, 0 -_0809A43C: .4byte gUnknown_083B6DB4 -_0809A440: .4byte 0x000008ca -_0809A444: .4byte 0x0000ffff -_0809A448: .4byte 0x00030200 -_0809A44C: .4byte gSpriteTemplate_83BB2B8 -_0809A450: .4byte 0x00000cca -_0809A454: .4byte 0x00000cec -_0809A458: - ldr r0, [r6, 0x4] - mov r1, r9 - ands r0, r1 - movs r1, 0x80 - lsls r1, 11 - orrs r0, r1 - str r0, [r6, 0x4] - ldr r4, _0809A570 @ =0x00000cec - adds r0, r5, r4 - ldrh r0, [r0] - mov r8, r0 - mov r1, sp - movs r0, 0x4 - strh r0, [r1] - ldr r0, _0809A574 @ =0x0000dac9 - strh r0, [r1, 0x2] -_0809A478: - ldr r0, [r3] - ldr r7, _0809A578 @ =0x000008ca - adds r0, r7 - ldr r1, [sp, 0x28] - lsls r5, r1, 3 - adds r5, r1 - ldr r4, _0809A57C @ =gPokemonStorage + 0x8344 - adds r5, r4 - adds r1, r5, 0 - bl sub_809A1BC - adds r0, r6, 0 - bl LoadSpriteSheet - adds r4, 0x7E - ldr r3, [sp, 0x28] - adds r4, r3, r4 - ldrb r0, [r4] - lsls r0, 2 - ldr r1, _0809A580 @ =gUnknown_083BB0A8 - adds r0, r1 - mov r1, r8 - movs r2, 0x4 - bl LoadPalette - adds r0, r5, 0 - bl sub_8072CA4 - lsls r0, 24 - lsrs r0, 24 - bl sub_809A6D0 - lsls r0, 16 - mov r4, r10 - lsls r2, r4, 24 - asrs r2, 24 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 6 - lsrs r6, r0, 16 - str r6, [sp, 0x20] - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x24] - movs r7, 0 - negs r2, r2 - mov r9, r2 - movs r0, 0x1 - mov r10, r0 -_0809A4DE: - lsls r1, r7, 5 - mov r8, r1 - ldr r3, [sp, 0x24] - lsls r1, r3, 16 - asrs r1, 16 - add r1, r8 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x1C - movs r3, 0x17 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809A584 @ =gUnknown_083B6DB4 - ldr r4, [r1] - lsls r6, r7, 2 - ldr r1, _0809A588 @ =0x00000cf8 - adds r2, r4, r1 - adds r2, r6 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0809A58C @ =gSprites - adds r1, r0 - str r1, [r2] - mov r3, r9 - lsls r5, r3, 1 - add r5, r9 - lsls r5, 1 - strh r5, [r1, 0x2E] - ldr r1, [r2] - ldr r3, [sp, 0x20] - lsls r0, r3, 16 - asrs r0, 16 - add r0, r8 - strh r0, [r1, 0x30] - ldr r0, [r2] - mov r1, r10 - strh r1, [r0, 0x32] - ldr r0, [r2] - ldr r1, _0809A590 @ =sub_809A5E8 - str r1, [r0, 0x1C] - lsls r1, r7, 24 - lsrs r1, 24 - bl StartSpriteAnim - movs r3, 0xCF - lsls r3, 4 - adds r4, r3 - adds r4, r6 - ldr r0, [r4] - strh r5, [r0, 0x2E] - ldr r0, [r4] - mov r6, r10 - strh r6, [r0, 0x30] - ldr r1, [r4] - ldr r0, _0809A594 @ =sub_809A61C - str r0, [r1, 0x1C] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x1 - bls _0809A4DE - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A570: .4byte 0x00000cec -_0809A574: .4byte 0x0000dac9 -_0809A578: .4byte 0x000008ca -_0809A57C: .4byte gPokemonStorage + 0x8344 -_0809A580: .4byte gUnknown_083BB0A8 -_0809A584: .4byte gUnknown_083B6DB4 -_0809A588: .4byte 0x00000cf8 -_0809A58C: .4byte gSprites -_0809A590: .4byte sub_809A5E8 -_0809A594: .4byte sub_809A61C - thumb_func_end sub_809A3D0 - - thumb_func_start sub_809A598 -sub_809A598: @ 809A598 - push {lr} - ldr r0, _0809A5B0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809A5B4 @ =0x00000cca - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0809A5B8 - movs r0, 0x4 - bl FreeSpriteTilesByTag - b _0809A5BE - .align 2, 0 -_0809A5B0: .4byte gUnknown_083B6DB4 -_0809A5B4: .4byte 0x00000cca -_0809A5B8: - movs r0, 0x3 - bl FreeSpriteTilesByTag -_0809A5BE: - ldr r0, _0809A5E0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r3, 0xCF - lsls r3, 4 - adds r2, r0, r3 - adds r3, 0x8 - adds r1, r0, r3 - ldr r1, [r1] - str r1, [r2] - ldr r2, _0809A5E4 @ =0x00000cf4 - adds r1, r0, r2 - adds r3, 0x4 - adds r0, r3 - ldr r0, [r0] - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0809A5E0: .4byte gUnknown_083B6DB4 -_0809A5E4: .4byte 0x00000cf4 - thumb_func_end sub_809A598 - - thumb_func_start sub_809A5E8 -sub_809A5E8: @ 809A5E8 - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x32] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0809A5FC - subs r0, r1, 0x1 - strh r0, [r2, 0x32] - b _0809A614 -_0809A5FC: - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - movs r3, 0x30 - ldrsh r1, [r2, r3] - cmp r0, r1 - bne _0809A614 - ldr r0, _0809A618 @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_0809A614: - pop {r0} - bx r0 - .align 2, 0 -_0809A618: .4byte SpriteCallbackDummy - thumb_func_end sub_809A5E8 - - thumb_func_start sub_809A61C -sub_809A61C: @ 809A61C - push {lr} - adds r2, r0, 0 - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0809A630 - subs r0, r1, 0x1 - strh r0, [r2, 0x30] - b _0809A64E -_0809A630: - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x32] - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC0 - bls _0809A64E - adds r0, r2, 0 - bl DestroySprite -_0809A64E: - pop {r0} - bx r0 - thumb_func_end sub_809A61C - - thumb_func_start sub_809A654 -sub_809A654: @ 809A654 - push {lr} - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809A690 @ =gPokemonStorage - ldr r2, _0809A694 @ =0x000083c2 - adds r1, r2 - adds r0, r1 - ldrb r1, [r0] - ldr r0, _0809A698 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r3, _0809A69C @ =0x00000cca - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _0809A6A8 - lsls r0, r1, 2 - ldr r1, _0809A6A0 @ =gUnknown_083BB0A8 - adds r0, r1 - adds r3, 0x22 - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _0809A6A4 @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x2 - bl CpuSet - b _0809A6C0 - .align 2, 0 -_0809A690: .4byte gPokemonStorage -_0809A694: .4byte 0x000083c2 -_0809A698: .4byte gUnknown_083B6DB4 -_0809A69C: .4byte 0x00000cca -_0809A6A0: .4byte gUnknown_083BB0A8 -_0809A6A4: .4byte gPlttBufferUnfaded -_0809A6A8: - lsls r0, r1, 2 - ldr r1, _0809A6C4 @ =gUnknown_083BB0A8 - adds r0, r1 - ldr r3, _0809A6C8 @ =0x00000cee - adds r1, r2, r3 - ldrh r1, [r1] - lsls r1, 1 - ldr r2, _0809A6CC @ =gPlttBufferUnfaded - adds r1, r2 - movs r2, 0x2 - bl CpuSet -_0809A6C0: - pop {r0} - bx r0 - .align 2, 0 -_0809A6C4: .4byte gUnknown_083BB0A8 -_0809A6C8: .4byte 0x00000cee -_0809A6CC: .4byte gPlttBufferUnfaded - thumb_func_end sub_809A654 - - thumb_func_start sub_809A6D0 -sub_809A6D0: @ 809A6D0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 25 - movs r0, 0xB0 - subs r0, r1 - bx lr - thumb_func_end sub_809A6D0 - - thumb_func_start sub_809A6DC -sub_809A6DC: @ 809A6DC - push {r4,r5,lr} - ldr r0, _0809A760 @ =gUnknown_083BB288 - bl LoadSpriteSheet - ldr r0, _0809A764 @ =gUnknown_083BB290 - bl LoadSpritePalette - movs r5, 0 -_0809A6EC: - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 19 - movs r0, 0xB8 - lsls r0, 15 - adds r1, r0 - asrs r1, 16 - ldr r0, _0809A768 @ =gSpriteTemplate_83BB2F0 - movs r2, 0x1C - movs r3, 0x15 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0809A73E - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0809A76C @ =gSprites - adds r4, r0, r1 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - movs r0, 0x1 - cmp r5, 0 - bne _0809A72C - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 -_0809A72C: - strh r0, [r4, 0x34] - ldr r0, _0809A770 @ =gUnknown_083B6DB4 - ldr r0, [r0] - lsls r1, r5, 2 - movs r2, 0xD0 - lsls r2, 4 - adds r0, r2 - adds r0, r1 - str r4, [r0] -_0809A73E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1 - bls _0809A6EC - bl sub_809BF2C - lsls r0, 24 - cmp r0, 0 - beq _0809A758 - movs r0, 0x1 - bl sub_809A860 -_0809A758: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A760: .4byte gUnknown_083BB288 -_0809A764: .4byte gUnknown_083BB290 -_0809A768: .4byte gSpriteTemplate_83BB2F0 -_0809A76C: .4byte gSprites -_0809A770: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A6DC - - thumb_func_start sub_809A774 -sub_809A774: @ 809A774 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0 - ldr r7, _0809A7C4 @ =gUnknown_083B6DB4 - ldr r0, [r7] - movs r1, 0xD0 - lsls r1, 4 - adds r3, r0, r1 - movs r5, 0 - movs r4, 0x2 -_0809A78A: - lsls r1, r2, 2 - adds r1, r3, r1 - ldr r0, [r1] - strh r5, [r0, 0x24] - ldr r0, [r1] - strh r4, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A78A - lsls r0, r6, 24 - cmp r0, 0 - bge _0809A7CC - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, _0809A7C8 @ =0x00000d04 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0x48 - b _0809A7E8 - .align 2, 0 -_0809A7C4: .4byte gUnknown_083B6DB4 -_0809A7C8: .4byte 0x00000d04 -_0809A7CC: - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r3, r1, r2 - ldr r2, [r3] - movs r0, 0x5 - strh r0, [r2, 0x30] - ldr r0, _0809A80C @ =0x00000d04 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x1D - strh r0, [r2, 0x30] - ldr r0, [r3] - movs r2, 0xF8 -_0809A7E8: - strh r2, [r0, 0x32] - ldr r0, [r1] - strh r2, [r0, 0x32] - ldr r1, [r7] - movs r2, 0xD0 - lsls r2, 4 - adds r0, r1, r2 - ldr r2, [r0] - movs r0, 0 - strh r0, [r2, 0x3C] - ldr r0, _0809A80C @ =0x00000d04 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x1 - strh r0, [r1, 0x3C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809A80C: .4byte 0x00000d04 - thumb_func_end sub_809A774 - - thumb_func_start sub_809A810 -sub_809A810: @ 809A810 - push {r4-r6,lr} - movs r3, 0 - ldr r0, _0809A85C @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0xD0 - lsls r1, 4 - adds r4, r0, r1 - movs r5, 0 - movs r6, 0x5 - negs r6, r6 -_0809A824: - lsls r1, r3, 2 - adds r1, r4, r1 - ldr r2, [r1] - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 3 - adds r0, 0x5C - strh r0, [r2, 0x20] - ldr r0, [r1] - strh r5, [r0, 0x24] - ldr r1, [r1] - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x1 - bls _0809A824 - movs r0, 0x1 - bl sub_809A860 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809A85C: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A810 - - thumb_func_start sub_809A860 -sub_809A860: @ 809A860 - push {r4,r5,lr} - lsls r0, 24 - cmp r0, 0 - beq _0809A89C - movs r2, 0 - ldr r0, _0809A898 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0xD0 - lsls r1, 4 - adds r4, r0, r1 - movs r3, 0 - movs r5, 0x1 -_0809A878: - lsls r1, r2, 2 - adds r1, r4, r1 - ldr r0, [r1] - strh r5, [r0, 0x2E] - ldr r0, [r1] - strh r3, [r0, 0x30] - ldr r0, [r1] - strh r3, [r0, 0x32] - ldr r0, [r1] - strh r3, [r0, 0x36] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A878 - b _0809A8BC - .align 2, 0 -_0809A898: .4byte gUnknown_083B6DB4 -_0809A89C: - movs r2, 0 - ldr r0, _0809A8C4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r3, 0xD0 - lsls r3, 4 - adds r1, r0, r3 - movs r3, 0 -_0809A8AA: - lsls r0, r2, 2 - adds r0, r1, r0 - ldr r0, [r0] - strh r3, [r0, 0x2E] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x1 - bls _0809A8AA -_0809A8BC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809A8C4: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809A860 - - thumb_func_start sub_809A8C8 -sub_809A8C8: @ 809A8C8 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x4 - bhi _0809A994 - lsls r0, 2 - ldr r1, _0809A8E0 @ =_0809A8E4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809A8E0: .4byte _0809A8E4 - .align 2, 0 -_0809A8E4: - .4byte _0809A8F8 - .4byte _0809A8FE - .4byte _0809A92C - .4byte _0809A932 - .4byte _0809A984 -_0809A8F8: - movs r0, 0 - strh r0, [r2, 0x24] - b _0809A994 -_0809A8FE: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - movs r1, 0 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0809A994 - strh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - ldrh r3, [r2, 0x24] - adds r0, r3 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - strh r0, [r2, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _0809A994 - strh r1, [r2, 0x32] - strh r1, [r2, 0x24] - b _0809A994 -_0809A92C: - movs r0, 0x3 - strh r0, [r2, 0x2E] - b _0809A994 -_0809A932: - ldr r0, _0809A97C @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809A980 @ =0x000008b6 - adds r1, r0 - ldrh r0, [r2, 0x20] - ldrh r1, [r1] - subs r0, r1 - strh r0, [r2, 0x20] - subs r0, 0x49 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAE - bls _0809A958 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] -_0809A958: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _0809A994 - ldrh r0, [r2, 0x32] - strh r0, [r2, 0x20] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - movs r0, 0x4 - strh r0, [r2, 0x2E] - b _0809A994 - .align 2, 0 -_0809A97C: .4byte gUnknown_083B6DB4 -_0809A980: .4byte 0x000008b6 -_0809A984: - ldr r0, _0809A998 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809A99C @ =0x000008b6 - adds r0, r1 - ldrh r1, [r2, 0x20] - ldrh r0, [r0] - subs r1, r0 - strh r1, [r2, 0x20] -_0809A994: - pop {r0} - bx r0 - .align 2, 0 -_0809A998: .4byte gUnknown_083B6DB4 -_0809A99C: .4byte 0x000008b6 - thumb_func_end sub_809A8C8 - - thumb_func_start sub_809A9A0 -sub_809A9A0: @ 809A9A0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r4, [sp, 0x18] - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0809AA0C @ =gSpriteTemplate_83BB2F0 - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - adds r1, r5, 0 - adds r2, r6, 0 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0809AA18 - movs r1, 0x1 - ands r1, r7 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, _0809AA10 @ =gSprites - adds r6, r4, r5 - adds r0, r6, 0 - bl StartSpriteAnim - movs r0, 0x3 - mov r1, r8 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x5] - adds r5, 0x1C - adds r4, r5 - ldr r0, _0809AA14 @ =SpriteCallbackDummy - str r0, [r4] - adds r0, r6, 0 - b _0809AA1A - .align 2, 0 -_0809AA0C: .4byte gSpriteTemplate_83BB2F0 -_0809AA10: .4byte gSprites -_0809AA14: .4byte SpriteCallbackDummy -_0809AA18: - movs r0, 0 -_0809AA1A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809A9A0 - - thumb_func_start sub_809AA24 -sub_809AA24: @ 809AA24 - push {lr} - ldr r0, _0809AA38 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - cmp r1, 0x1 - beq _0809AA40 - ldr r1, _0809AA3C @ =gUnknown_020384E4 - movs r0, 0 - strb r0, [r1] - b _0809AA44 - .align 2, 0 -_0809AA38: .4byte gUnknown_083B6DB4 -_0809AA3C: .4byte gUnknown_020384E4 -_0809AA40: - ldr r0, _0809AA78 @ =gUnknown_020384E4 - strb r1, [r0] -_0809AA44: - ldr r0, _0809AA7C @ =gUnknown_020384E5 - movs r1, 0 - strb r1, [r0] - ldr r0, _0809AA80 @ =gUnknown_020384E6 - strb r1, [r0] - ldr r0, _0809AA84 @ =gUnknown_020384E7 - strb r1, [r0] - ldr r0, _0809AA88 @ =gUnknown_020384E8 - strb r1, [r0] - ldr r0, _0809AA8C @ =gUnknown_020384E9 - strb r1, [r0] - bl sub_809B0D4 - bl sub_809CC04 - ldr r0, _0809AA90 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809AA94 @ =0x000011e2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809AA78: .4byte gUnknown_020384E4 -_0809AA7C: .4byte gUnknown_020384E5 -_0809AA80: .4byte gUnknown_020384E6 -_0809AA84: .4byte gUnknown_020384E7 -_0809AA88: .4byte gUnknown_020384E8 -_0809AA8C: .4byte gUnknown_020384E9 -_0809AA90: .4byte gUnknown_083B6DB4 -_0809AA94: .4byte 0x000011e2 - thumb_func_end sub_809AA24 - - thumb_func_start sub_809AA98 -sub_809AA98: @ 809AA98 - push {lr} - bl sub_809CC04 - bl sub_809C028 - ldr r0, _0809AAC0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809AAC4 @ =0x000011e2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _0809AAC8 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809AABA - bl sub_8098BF0 -_0809AABA: - pop {r0} - bx r0 - .align 2, 0 -_0809AAC0: .4byte gUnknown_083B6DB4 -_0809AAC4: .4byte 0x000011e2 -_0809AAC8: .4byte gUnknown_020384E6 - thumb_func_end sub_809AA98 - - thumb_func_start sub_809AACC -sub_809AACC: @ 809AACC - push {r4-r6,lr} - adds r4, r2, 0 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r0, 0x4 - bhi _0809AB84 - lsls r0, 2 - ldr r1, _0809AAE8 @ =_0809AAEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809AAE8: .4byte _0809AAEC - .align 2, 0 -_0809AAEC: - .4byte _0809AB00 - .4byte _0809AB2E - .4byte _0809AB56 - .4byte _0809AB5E - .4byte _0809AB7C -_0809AB00: - adds r0, r5, 0 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x64 - strh r1, [r4] - adds r0, r5, 0 - movs r1, 0x6 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, 0x20 - strh r1, [r6] - b _0809AB84 -_0809AB2E: - cmp r5, 0 - bne _0809AB3A - movs r0, 0x68 - strh r0, [r4] - movs r0, 0x34 - b _0809AB82 -_0809AB3A: - cmp r5, 0x6 - bne _0809AB46 - movs r0, 0x98 - strh r0, [r4] - movs r0, 0x84 - b _0809AB82 -_0809AB46: - movs r0, 0x98 - strh r0, [r4] - subs r1, r5, 0x1 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - adds r0, 0x4 - b _0809AB82 -_0809AB56: - movs r0, 0xA2 - strh r0, [r4] - movs r0, 0xC - b _0809AB82 -_0809AB5E: - ldr r0, _0809AB78 @ =gUnknown_020384E6 - ldrb r0, [r0] - movs r1, 0xE - cmp r0, 0 - beq _0809AB6A - movs r1, 0x8 -_0809AB6A: - strh r1, [r6] - movs r0, 0x58 - muls r0, r5 - adds r0, 0x78 - strh r0, [r4] - b _0809AB84 - .align 2, 0 -_0809AB78: .4byte gUnknown_020384E6 -_0809AB7C: - movs r0, 0xA0 - strh r0, [r4] - movs r0, 0x60 -_0809AB82: - strh r0, [r6] -_0809AB84: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_809AACC - - thumb_func_start sub_809AB8C -sub_809AB8C: @ 809AB8C - push {lr} - ldr r0, _0809ABB4 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809ABC0 - cmp r0, 0x1 - bne _0809ABF8 - ldr r0, _0809ABB8 @ =gUnknown_020384E5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809ABBC @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - b _0809ABEA - .align 2, 0 -_0809ABB4: .4byte gUnknown_020384E4 -_0809ABB8: .4byte gUnknown_020384E5 -_0809ABBC: .4byte gPlayerParty -_0809ABC0: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809ABF0 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809ABF4 @ =gPokemonStorage + 0x4 - adds r1, r2 - adds r0, r1 - movs r1, 0xB - bl GetBoxMonData -_0809ABEA: - lsls r0, 16 - lsrs r0, 16 - b _0809ABFA - .align 2, 0 -_0809ABF0: .4byte gUnknown_020384E5 -_0809ABF4: .4byte gPokemonStorage + 0x4 -_0809ABF8: - movs r0, 0 -_0809ABFA: - pop {r1} - bx r1 - thumb_func_end sub_809AB8C - - thumb_func_start sub_809AC00 -sub_809AC00: @ 809AC00 - push {r4-r6,lr} - ldr r0, _0809AC14 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809AC18 @ =0x000011dc - adds r1, r4, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _0809AC1C - movs r0, 0 - b _0809AD2C - .align 2, 0 -_0809AC14: .4byte gUnknown_083B6DB4 -_0809AC18: .4byte 0x000011dc -_0809AC1C: - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _0809AD0C - ldr r1, _0809ACF4 @ =0x000011c8 - adds r3, r4, r1 - ldr r2, _0809ACF8 @ =0x000011d0 - adds r1, r4, r2 - ldr r0, [r3] - ldr r1, [r1] - adds r0, r1 - str r0, [r3] - ldr r6, _0809ACFC @ =0x000011cc - adds r2, r4, r6 - ldr r0, _0809AD00 @ =0x000011d4 - adds r1, r4, r0 - ldr r0, [r2] - ldr r1, [r1] - adds r0, r1 - str r0, [r2] - movs r1, 0x8E - lsls r1, 5 - adds r5, r4, r1 - ldr r1, [r5] - ldr r0, [r3] - asrs r0, 8 - strh r0, [r1, 0x20] - ldr r1, [r5] - ldr r0, [r2] - asrs r0, 8 - strh r0, [r1, 0x22] - ldr r1, [r5] - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - movs r3, 0x80 - lsls r3, 1 - cmp r0, r3 - ble _0809AC78 - ldr r6, _0809AD04 @ =0xffffff00 - adds r0, r2, r6 - lsls r0, 16 - asrs r0, 16 - adds r0, 0x40 - strh r0, [r1, 0x20] -_0809AC78: - ldr r1, [r5] - ldrh r2, [r1, 0x20] - movs r6, 0x20 - ldrsh r0, [r1, r6] - cmp r0, 0x3F - bgt _0809AC90 - movs r0, 0x40 - subs r0, r2 - lsls r0, 16 - asrs r0, 16 - subs r0, r3, r0 - strh r0, [r1, 0x20] -_0809AC90: - ldr r1, [r5] - ldrh r2, [r1, 0x22] - movs r3, 0x22 - ldrsh r0, [r1, r3] - cmp r0, 0xB0 - ble _0809ACA8 - adds r0, r2, 0 - subs r0, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r0, 0x10 - strh r0, [r1, 0x22] -_0809ACA8: - ldr r2, [r5] - ldrh r3, [r2, 0x22] - movs r6, 0x22 - ldrsh r0, [r2, r6] - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bge _0809ACC4 - subs r0, r1, r3 - movs r1, 0xB0 - lsls r0, 16 - asrs r0, 16 - subs r1, r0 - strh r1, [r2, 0x22] -_0809ACC4: - ldr r0, _0809AD08 @ =0x000011e3 - adds r1, r4, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0809AD2A - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _0809AD2A - ldr r2, [r5] - adds r2, 0x3F - ldrb r3, [r2] - lsrs r1, r3, 1 - movs r0, 0x1 - eors r1, r0 - ands r1, r0 - lsls r1, 1 - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - b _0809AD2A - .align 2, 0 -_0809ACF4: .4byte 0x000011c8 -_0809ACF8: .4byte 0x000011d0 -_0809ACFC: .4byte 0x000011cc -_0809AD00: .4byte 0x000011d4 -_0809AD04: .4byte 0xffffff00 -_0809AD08: .4byte 0x000011e3 -_0809AD0C: - movs r1, 0x8E - lsls r1, 5 - adds r2, r4, r1 - ldr r1, [r2] - ldr r3, _0809AD34 @ =0x000011d8 - adds r0, r4, r3 - ldrh r0, [r0] - strh r0, [r1, 0x20] - ldr r1, [r2] - ldr r6, _0809AD38 @ =0x000011da - adds r0, r4, r6 - ldrh r0, [r0] - strh r0, [r1, 0x22] - bl sub_809AFB8 -_0809AD2A: - movs r0, 0x1 -_0809AD2C: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809AD34: .4byte 0x000011d8 -_0809AD38: .4byte 0x000011da - thumb_func_end sub_809AC00 - - thumb_func_start sub_809AD3C -sub_809AD3C: @ 809AD3C - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - mov r6, sp - adds r6, 0x2 - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - adds r3, r6, 0 - bl sub_809AACC - ldr r0, _0809AD88 @ =gUnknown_083B6DB4 - ldr r1, [r0] - movs r2, 0x8F - lsls r2, 5 - adds r0, r1, r2 - strb r4, [r0] - ldr r3, _0809AD8C @ =0x000011e1 - adds r0, r1, r3 - strb r5, [r0] - mov r0, sp - ldrh r2, [r0] - subs r3, 0x9 - adds r0, r1, r3 - strh r2, [r0] - ldrh r0, [r6] - ldr r2, _0809AD90 @ =0x000011da - adds r1, r2 - strh r0, [r1] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809AD88: .4byte gUnknown_083B6DB4 -_0809AD8C: .4byte 0x000011e1 -_0809AD90: .4byte 0x000011da - thumb_func_end sub_809AD3C - - thumb_func_start sub_809AD94 -sub_809AD94: @ 809AD94 - push {r4-r7,lr} - ldr r0, _0809ADB0 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r3, _0809ADB4 @ =0x000011de - adds r1, r2, r3 - ldrh r1, [r1] - adds r4, r0, 0 - cmp r1, 0 - beq _0809ADBC - ldr r0, _0809ADB8 @ =0x000011dc - adds r1, r2, r0 - movs r0, 0xC - b _0809ADC2 - .align 2, 0 -_0809ADB0: .4byte gUnknown_083B6DB4 -_0809ADB4: .4byte 0x000011de -_0809ADB8: .4byte 0x000011dc -_0809ADBC: - ldr r3, _0809AE04 @ =0x000011dc - adds r1, r2, r3 - movs r0, 0x6 -_0809ADC2: - strh r0, [r1] - ldr r2, [r4] - ldr r0, _0809AE08 @ =0x000011e3 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0809ADDA - ldr r3, _0809AE04 @ =0x000011dc - adds r0, r2, r3 - ldrh r0, [r0] - lsrs r0, 1 - strb r0, [r1] -_0809ADDA: - ldr r1, _0809AE0C @ =0x000011de - adds r0, r2, r1 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809AE14 - cmp r1, 0x1 - beq _0809AE30 - ldr r3, _0809AE10 @ =0x000011da - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - b _0809AE46 - .align 2, 0 -_0809AE04: .4byte 0x000011dc -_0809AE08: .4byte 0x000011e3 -_0809AE0C: .4byte 0x000011de -_0809AE10: .4byte 0x000011da -_0809AE14: - ldr r3, _0809AE2C @ =0x000011da - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _0809AE46 - .align 2, 0 -_0809AE2C: .4byte 0x000011da -_0809AE30: - ldr r3, _0809AE74 @ =0x000011da - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x22 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_0809AE46: - subs r7, r1, r0 - ldr r2, [r4] - ldr r3, _0809AE78 @ =0x000011df - adds r0, r2, r3 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0809AE80 - cmp r1, 0x1 - beq _0809AE9C - ldr r1, _0809AE7C @ =0x000011d8 - adds r0, r2, r1 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - b _0809AEB2 - .align 2, 0 -_0809AE74: .4byte 0x000011da -_0809AE78: .4byte 0x000011df -_0809AE7C: .4byte 0x000011d8 -_0809AE80: - ldr r3, _0809AE98 @ =0x000011d8 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - adds r0, 0xC0 - b _0809AEB2 - .align 2, 0 -_0809AE98: .4byte 0x000011d8 -_0809AE9C: - ldr r3, _0809AF00 @ =0x000011d8 - adds r0, r2, r3 - movs r3, 0 - ldrsh r1, [r0, r3] - movs r3, 0x8E - lsls r3, 5 - adds r0, r2, r3 - ldr r0, [r0] - movs r2, 0x20 - ldrsh r0, [r0, r2] - subs r0, 0xC0 -_0809AEB2: - subs r0, r1, r0 - lsls r7, 8 - lsls r0, 8 - ldr r4, [r4] - ldr r3, _0809AF04 @ =0x000011d0 - adds r6, r4, r3 - ldr r1, _0809AF08 @ =0x000011dc - adds r5, r4, r1 - ldrh r1, [r5] - bl __divsi3 - str r0, [r6] - ldr r2, _0809AF0C @ =0x000011d4 - adds r6, r4, r2 - ldrh r1, [r5] - adds r0, r7, 0 - bl __divsi3 - str r0, [r6] - ldr r3, _0809AF10 @ =0x000011c8 - adds r2, r4, r3 - movs r0, 0x8E - lsls r0, 5 - adds r1, r4, r0 - ldr r0, [r1] - movs r3, 0x20 - ldrsh r0, [r0, r3] - lsls r0, 8 - str r0, [r2] - ldr r0, _0809AF14 @ =0x000011cc - adds r4, r0 - ldr r0, [r1] - movs r1, 0x22 - ldrsh r0, [r0, r1] - lsls r0, 8 - str r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0809AF00: .4byte 0x000011d8 -_0809AF04: .4byte 0x000011d0 -_0809AF08: .4byte 0x000011dc -_0809AF0C: .4byte 0x000011d4 -_0809AF10: .4byte 0x000011c8 -_0809AF14: .4byte 0x000011cc - thumb_func_end sub_809AD94 - - thumb_func_start sub_809AF18 -sub_809AF18: @ 809AF18 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_809AD3C - bl sub_809AD94 - ldr r0, _0809AFA4 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809AF46 - ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim -_0809AF46: - cmp r4, 0x1 - bne _0809AF70 - ldr r0, _0809AFAC @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _0809AF70 - ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r2, _0809AFB0 @ =0x000011e2 - adds r1, r0, r2 - strb r4, [r1] - ldr r1, _0809AFB4 @ =0x000011c4 - adds r0, r1 - ldr r1, [r0] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] -_0809AF70: - cmp r4, 0 - beq _0809AF9E - cmp r4, 0 - blt _0809AF9E - cmp r4, 0x3 - bgt _0809AF9E - ldr r0, _0809AFA8 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _0809AFB4 @ =0x000011c4 - adds r2, r0 - ldr r1, [r2] - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1] - ldr r2, [r2] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x5] -_0809AF9E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809AFA4: .4byte gUnknown_020384E6 -_0809AFA8: .4byte gUnknown_083B6DB4 -_0809AFAC: .4byte gUnknown_020384E4 -_0809AFB0: .4byte 0x000011e2 -_0809AFB4: .4byte 0x000011c4 - thumb_func_end sub_809AF18 - - thumb_func_start sub_809AFB8 -sub_809AFB8: @ 809AFB8 - push {r4,r5,lr} - ldr r5, _0809B000 @ =gUnknown_020384E4 - ldr r0, _0809B004 @ =gUnknown_083B6DB4 - ldr r4, [r0] - movs r1, 0x8F - lsls r1, 5 - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _0809B008 @ =gUnknown_020384E5 - ldr r2, _0809B00C @ =0x000011e1 - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0809B010 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809AFEA - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_0809AFEA: - bl sub_809BF74 - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0x1 - beq _0809B020 - cmp r0, 0x1 - bgt _0809B014 - cmp r0, 0 - beq _0809B034 - b _0809B05E - .align 2, 0 -_0809B000: .4byte gUnknown_020384E4 -_0809B004: .4byte gUnknown_083B6DB4 -_0809B008: .4byte gUnknown_020384E5 -_0809B00C: .4byte 0x000011e1 -_0809B010: .4byte gUnknown_020384E6 -_0809B014: - cmp r0, 0x2 - bne _0809B05E - movs r0, 0x1 - bl sub_809A860 - b _0809B05E -_0809B020: - ldr r2, _0809B030 @ =0x000011c4 - adds r0, r4, r2 - ldr r0, [r0] - adds r0, 0x43 - movs r1, 0xC - strb r1, [r0] - b _0809B05E - .align 2, 0 -_0809B030: .4byte 0x000011c4 -_0809B034: - ldr r0, _0809B064 @ =0x000011c4 - adds r2, r4, r0 - ldr r3, [r2] - ldrb r1, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r2] - adds r0, 0x43 - movs r1, 0x14 - strb r1, [r0] - ldr r1, [r2] - adds r1, 0x3E - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_0809B05E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B064: .4byte 0x000011c4 - thumb_func_end sub_809AFB8 - - thumb_func_start sub_809B068 -sub_809B068: @ 809B068 - push {lr} - ldr r0, _0809B078 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809B07C - movs r3, 0 - b _0809B08A - .align 2, 0 -_0809B078: .4byte gUnknown_020384E6 -_0809B07C: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - bls _0809B08A - movs r3, 0x5 -_0809B08A: - ldr r0, _0809B0B8 @ =gUnknown_083B6DB4 - ldr r2, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r2, r1 - ldr r0, [r0] - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809B0AA - ldr r0, _0809B0BC @ =0x000011e3 - adds r1, r2, r0 - movs r0, 0x1 - strb r0, [r1] -_0809B0AA: - movs r0, 0x1 - adds r1, r3, 0 - bl sub_809AF18 - pop {r0} - bx r0 - .align 2, 0 -_0809B0B8: .4byte gUnknown_083B6DB4 -_0809B0BC: .4byte 0x000011e3 - thumb_func_end sub_809B068 - - thumb_func_start sub_809B0C0 -sub_809B0C0: @ 809B0C0 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_809AF18 - pop {r0} - bx r0 - thumb_func_end sub_809B0C0 - - thumb_func_start sub_809B0D4 -sub_809B0D4: @ 809B0D4 - ldr r1, _0809B0DC @ =gUnknown_020384EA - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809B0DC: .4byte gUnknown_020384EA - thumb_func_end sub_809B0D4 - - thumb_func_start sub_809B0E0 -sub_809B0E0: @ 809B0E0 - ldr r0, _0809B0EC @ =gUnknown_020384EA - ldr r1, _0809B0F0 @ =gUnknown_020384E5 - ldrb r1, [r1] - strb r1, [r0] - bx lr - .align 2, 0 -_0809B0EC: .4byte gUnknown_020384EA -_0809B0F0: .4byte gUnknown_020384E5 - thumb_func_end sub_809B0E0 - - thumb_func_start sub_809B0F4 -sub_809B0F4: @ 809B0F4 - ldr r0, _0809B0FC @ =gUnknown_020384EA - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809B0FC: .4byte gUnknown_020384EA - thumb_func_end sub_809B0F4 - - thumb_func_start sub_809B100 -sub_809B100: @ 809B100 - lsls r0, 24 - ldr r1, _0809B120 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B124 @ =0x000012a4 - adds r3, r1, r2 - ldr r2, _0809B128 @ =gUnknown_083BBBC8 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - ldr r0, _0809B12C @ =0x000012a8 - adds r1, r0 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0809B120: .4byte gUnknown_083B6DB4 -_0809B124: .4byte 0x000012a4 -_0809B128: .4byte gUnknown_083BBBC8 -_0809B12C: .4byte 0x000012a8 - thumb_func_end sub_809B100 - - thumb_func_start sub_809B130 -sub_809B130: @ 809B130 - push {lr} - ldr r0, _0809B148 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B14C @ =0x000012a4 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0809B148: .4byte gUnknown_083B6DB4 -_0809B14C: .4byte 0x000012a4 - thumb_func_end sub_809B130 - - thumb_func_start sub_809B150 -sub_809B150: @ 809B150 - push {r4,r5,lr} - ldr r0, _0809B16C @ =gUnknown_083B6DB4 - ldr r5, [r0] - ldr r0, _0809B170 @ =0x000012a8 - adds r4, r5, r0 - ldrb r0, [r4] - cmp r0, 0x1 - beq _0809B1A0 - cmp r0, 0x1 - bgt _0809B174 - cmp r0, 0 - beq _0809B17E - b _0809B1CE - .align 2, 0 -_0809B16C: .4byte gUnknown_083B6DB4 -_0809B170: .4byte 0x000012a8 -_0809B174: - cmp r0, 0x2 - beq _0809B1BE - cmp r0, 0x3 - beq _0809B186 - b _0809B1CE -_0809B17E: - ldr r0, _0809B18C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B190 -_0809B186: - movs r0, 0 - b _0809B1D0 - .align 2, 0 -_0809B18C: .4byte gUnknown_020384E6 -_0809B190: - movs r1, 0x8E - lsls r1, 5 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - b _0809B1C8 -_0809B1A0: - bl sub_809B324 - lsls r0, 24 - cmp r0, 0 - bne _0809B1CE - movs r1, 0x8E - lsls r1, 5 - adds r0, r5, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - bl sub_809B384 - b _0809B1C8 -_0809B1BE: - bl sub_809B358 - lsls r0, 24 - cmp r0, 0 - bne _0809B1CE -_0809B1C8: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_0809B1CE: - movs r0, 0x1 -_0809B1D0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B150 - - thumb_func_start sub_809B1D8 -sub_809B1D8: @ 809B1D8 - push {r4,r5,lr} - ldr r0, _0809B1F4 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809B1F8 @ =0x000012a8 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _0809B220 - cmp r0, 0x1 - bgt _0809B1FC - cmp r0, 0 - beq _0809B202 - b _0809B244 - .align 2, 0 -_0809B1F4: .4byte gUnknown_083B6DB4 -_0809B1F8: .4byte 0x000012a8 -_0809B1FC: - cmp r0, 0x2 - beq _0809B240 - b _0809B244 -_0809B202: - bl sub_809B324 - lsls r0, 24 - cmp r0, 0 - bne _0809B244 - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - bl sub_809B3E0 - b _0809B238 -_0809B220: - bl sub_809B358 - lsls r0, 24 - cmp r0, 0 - bne _0809B244 - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_0809B238: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0809B244 -_0809B240: - movs r0, 0 - b _0809B246 -_0809B244: - movs r0, 0x1 -_0809B246: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B1D8 - - thumb_func_start sub_809B24C -sub_809B24C: @ 809B24C - push {r4,r5,lr} - ldr r0, _0809B268 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809B26C @ =0x000012a8 - adds r5, r4, r0 - ldrb r0, [r5] - cmp r0, 0x1 - beq _0809B2E0 - cmp r0, 0x1 - bgt _0809B270 - cmp r0, 0 - beq _0809B276 - b _0809B31C - .align 2, 0 -_0809B268: .4byte gUnknown_083B6DB4 -_0809B26C: .4byte 0x000012a8 -_0809B270: - cmp r0, 0x2 - beq _0809B318 - b _0809B31C -_0809B276: - ldr r0, _0809B290 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B298 - cmp r0, 0x1 - bne _0809B318 - ldr r2, _0809B294 @ =0x000012a9 - adds r1, r4, r2 - movs r0, 0xE - b _0809B2A0 - .align 2, 0 -_0809B290: .4byte gUnknown_020384E4 -_0809B294: .4byte 0x000012a9 -_0809B298: - bl get_preferred_box - ldr r2, _0809B2D0 @ =0x000012a9 - adds r1, r4, r2 -_0809B2A0: - strb r0, [r1] - ldr r0, _0809B2D4 @ =gUnknown_083B6DB4 - ldr r4, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x2 - bl StartSpriteAnim - ldr r2, _0809B2D0 @ =0x000012a9 - adds r0, r4, r2 - ldrb r0, [r0] - ldr r1, _0809B2D8 @ =gUnknown_020384E5 - ldrb r1, [r1] - bl sub_80996B0 - ldr r0, _0809B2DC @ =0x000012a8 - adds r4, r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0809B31C - .align 2, 0 -_0809B2D0: .4byte 0x000012a9 -_0809B2D4: .4byte gUnknown_083B6DB4 -_0809B2D8: .4byte gUnknown_020384E5 -_0809B2DC: .4byte 0x000012a8 -_0809B2E0: - bl sub_809971C - lsls r0, 24 - cmp r0, 0 - bne _0809B31C - movs r1, 0x8E - lsls r1, 5 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim - ldr r2, _0809B310 @ =0x000012a9 - adds r0, r4, r2 - ldrb r0, [r0] - ldr r1, _0809B314 @ =gUnknown_020384E5 - ldrb r1, [r1] - bl diegohint1 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0809B31C - .align 2, 0 -_0809B310: .4byte 0x000012a9 -_0809B314: .4byte gUnknown_020384E5 -_0809B318: - movs r0, 0 - b _0809B31E -_0809B31C: - movs r0, 0x1 -_0809B31E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B24C - - thumb_func_start sub_809B324 -sub_809B324: @ 809B324 - push {lr} - ldr r0, _0809B348 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0809B33E - cmp r0, 0x8 - beq _0809B34C -_0809B33E: - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _0809B350 - .align 2, 0 -_0809B348: .4byte gUnknown_083B6DB4 -_0809B34C: - movs r0, 0 - b _0809B352 -_0809B350: - movs r0, 0x1 -_0809B352: - pop {r1} - bx r1 - thumb_func_end sub_809B324 - - thumb_func_start sub_809B358 -sub_809B358: @ 809B358 - push {lr} - ldr r0, _0809B378 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0809B37C - ldrh r0, [r1, 0x26] - subs r0, 0x1 - strh r0, [r1, 0x26] - movs r0, 0x1 - b _0809B37E - .align 2, 0 -_0809B378: .4byte gUnknown_083B6DB4 -_0809B37C: - movs r0, 0 -_0809B37E: - pop {r1} - bx r1 - thumb_func_end sub_809B358 - - thumb_func_start sub_809B384 -sub_809B384: @ 809B384 - push {r4,lr} - ldr r0, _0809B3AC @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B3B4 - cmp r0, 0x1 - bne _0809B3D2 - ldr r4, _0809B3B0 @ =gUnknown_020384E5 - ldrb r1, [r4] - movs r0, 0xE - bl sub_809B44C - ldrb r1, [r4] - movs r0, 0 - bl sub_8099584 - b _0809B3CC - .align 2, 0 -_0809B3AC: .4byte gUnknown_020384E4 -_0809B3B0: .4byte gUnknown_020384E5 -_0809B3B4: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - ldr r4, _0809B3D8 @ =gUnknown_020384E5 - ldrb r1, [r4] - bl sub_809B44C - ldrb r1, [r4] - movs r0, 0x1 - bl sub_8099584 -_0809B3CC: - ldr r1, _0809B3DC @ =gUnknown_020384E6 - movs r0, 0x1 - strb r0, [r1] -_0809B3D2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809B3D8: .4byte gUnknown_020384E5 -_0809B3DC: .4byte gUnknown_020384E6 - thumb_func_end sub_809B384 - - thumb_func_start sub_809B3E0 -sub_809B3E0: @ 809B3E0 - push {r4,r5,lr} - ldr r0, _0809B408 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _0809B410 - cmp r0, 0x1 - bne _0809B432 - ldr r4, _0809B40C @ =gUnknown_020384E5 - ldrb r1, [r4] - movs r0, 0xE - bl diegohint2 - ldrb r1, [r4] - movs r0, 0xE - bl sub_809960C - b _0809B42C - .align 2, 0 -_0809B408: .4byte gUnknown_020384E4 -_0809B40C: .4byte gUnknown_020384E5 -_0809B410: - bl get_preferred_box - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _0809B438 @ =gUnknown_020384E5 - ldrb r1, [r5] - adds r0, r4, 0 - bl diegohint2 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_809960C -_0809B42C: - ldr r1, _0809B43C @ =gUnknown_020384E6 - movs r0, 0 - strb r0, [r1] -_0809B432: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B438: .4byte gUnknown_020384E5 -_0809B43C: .4byte gUnknown_020384E6 - thumb_func_end sub_809B3E0 - - thumb_func_start sub_809B440 -sub_809B440: @ 809B440 - push {lr} - bl sub_809BF74 - pop {r0} - bx r0 - thumb_func_end sub_809B440 - - thumb_func_start sub_809B44C -sub_809B44C: @ 809B44C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0xE - bne _0809B488 - ldr r0, _0809B478 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B47C @ =0x000025b4 - adds r0, r1 - ldr r3, _0809B480 @ =gPlayerParty - ldr r1, _0809B484 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - b _0809B4AA - .align 2, 0 -_0809B478: .4byte gUnknown_083B6DB4 -_0809B47C: .4byte 0x000025b4 -_0809B480: .4byte gPlayerParty -_0809B484: .4byte gUnknown_020384E5 -_0809B488: - lsls r1, r4, 2 - adds r1, r4 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 4 - ldr r2, _0809B4C0 @ =gPokemonStorage + 0x4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B4C4 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B4C8 @ =0x000025b4 - adds r1, r2 - bl sub_803B4B4 -_0809B4AA: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_809B548 - ldr r0, _0809B4CC @ =gUnknown_020384E7 - strb r4, [r0] - ldr r0, _0809B4D0 @ =gUnknown_020384E8 - strb r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809B4C0: .4byte gPokemonStorage + 0x4 -_0809B4C4: .4byte gUnknown_083B6DB4 -_0809B4C8: .4byte 0x000025b4 -_0809B4CC: .4byte gUnknown_020384E7 -_0809B4D0: .4byte gUnknown_020384E8 - thumb_func_end sub_809B44C - - thumb_func_start diegohint2 -diegohint2: @ 809B4D4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r6, 0xE - bne _0809B508 - ldr r1, _0809B4FC @ =gPlayerParty - movs r0, 0x64 - muls r0, r5 - adds r0, r1 - ldr r1, _0809B500 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B504 @ =0x000025b4 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _0809B536 - .align 2, 0 -_0809B4FC: .4byte gPlayerParty -_0809B500: .4byte gUnknown_083B6DB4 -_0809B504: .4byte 0x000025b4 -_0809B508: - ldr r0, _0809B53C @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r0, _0809B540 @ =0x000025b4 - adds r4, r0 - adds r0, r4, 0 - bl BoxMonRestorePP - ldr r3, _0809B544 @ =gPokemonStorage - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - lsls r2, r6, 2 - adds r2, r6 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 5 - adds r0, r1 - adds r0, r3 - adds r0, 0x4 - adds r1, r4, 0 - movs r2, 0x50 - bl memcpy -_0809B536: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B53C: .4byte gUnknown_083B6DB4 -_0809B540: .4byte 0x000025b4 -_0809B544: .4byte gPokemonStorage - thumb_func_end diegohint2 - - thumb_func_start sub_809B548 -sub_809B548: @ 809B548 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - cmp r0, 0xE - bne _0809B568 - movs r0, 0x64 - muls r0, r2 - ldr r1, _0809B564 @ =gPlayerParty - adds r0, r1 - bl ZeroMonData - b _0809B582 - .align 2, 0 -_0809B564: .4byte gPlayerParty -_0809B568: - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809B588 @ =gPokemonStorage + 0x4 - adds r1, r2 - adds r0, r1 - bl ZeroBoxMonData -_0809B582: - pop {r0} - bx r0 - .align 2, 0 -_0809B588: .4byte gPokemonStorage + 0x4 - thumb_func_end sub_809B548 - - thumb_func_start diegohint1 -diegohint1: @ 809B58C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r5, 0xE - bne _0809B5C0 - ldr r0, _0809B5B4 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B5B8 @ =0x00002618 - adds r0, r1 - ldr r2, _0809B5BC @ =gPlayerParty - movs r1, 0x64 - muls r1, r6 - adds r1, r2 - movs r2, 0x64 - bl memcpy - b _0809B5E2 - .align 2, 0 -_0809B5B4: .4byte gUnknown_083B6DB4 -_0809B5B8: .4byte 0x00002618 -_0809B5BC: .4byte gPlayerParty -_0809B5C0: - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 4 - ldr r2, _0809B614 @ =gPokemonStorage + 0x4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B618 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809B61C @ =0x00002618 - adds r1, r2 - bl sub_803B4B4 -_0809B5E2: - adds r0, r5, 0 - adds r1, r6, 0 - bl diegohint2 - ldr r0, _0809B618 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809B620 @ =0x000025b4 - adds r4, r1, r0 - ldr r2, _0809B61C @ =0x00002618 - adds r1, r2 - adds r0, r4, 0 - movs r2, 0x64 - bl memcpy - adds r0, r4, 0 - movs r1, 0 - bl sub_809C04C - ldr r0, _0809B624 @ =gUnknown_020384E7 - strb r5, [r0] - ldr r0, _0809B628 @ =gUnknown_020384E8 - strb r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B614: .4byte gPokemonStorage + 0x4 -_0809B618: .4byte gUnknown_083B6DB4 -_0809B61C: .4byte 0x00002618 -_0809B620: .4byte 0x000025b4 -_0809B624: .4byte gUnknown_020384E7 -_0809B628: .4byte gUnknown_020384E8 - thumb_func_end diegohint1 - - thumb_func_start sub_809B62C -sub_809B62C: @ 809B62C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r6, 0 - bl sub_8095B24 - lsls r0, 16 - lsrs r4, r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0809B64A - movs r0, 0 - b _0809B6AC -_0809B64A: - ldr r5, _0809B668 @ =gUnknown_020384E6 - ldrb r0, [r5] - cmp r0, 0 - beq _0809B66C - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - bl sub_8099480 - movs r0, 0 - strb r0, [r5] - b _0809B686 - .align 2, 0 -_0809B668: .4byte gUnknown_020384E6 -_0809B66C: - ldr r5, _0809B6B4 @ =gUnknown_020384E5 - ldrb r1, [r5] - movs r0, 0xE - bl sub_809B44C - lsls r4, 24 - lsrs r1, r4, 24 - adds r0, r6, 0 - bl diegohint2 - ldrb r0, [r5] - bl sub_8099520 -_0809B686: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - bne _0809B698 - lsrs r0, r4, 24 - bl sub_8098D20 -_0809B698: - ldr r0, _0809B6B8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x1 -_0809B6AC: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0809B6B4: .4byte gUnknown_020384E5 -_0809B6B8: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B62C - - thumb_func_start sub_809B6BC -sub_809B6BC: @ 809B6BC - push {lr} - ldr r0, _0809B6D8 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809B6D8: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B6BC - - thumb_func_start sub_809B6DC -sub_809B6DC: @ 809B6DC - push {lr} - ldr r0, _0809B6EC @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B6F0 - movs r2, 0x2 - b _0809B700 - .align 2, 0 -_0809B6EC: .4byte gUnknown_020384E6 -_0809B6F0: - ldr r0, _0809B720 @ =gUnknown_020384E4 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r2, 0x1 - eors r1, r2 - negs r0, r1 - orrs r0, r1 - lsrs r2, r0, 31 -_0809B700: - ldr r0, _0809B724 @ =gUnknown_020384E5 - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_809981C - ldr r0, _0809B728 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _0809B72C @ =0x000026e4 - adds r0, r1, r2 - ldr r2, _0809B730 @ =0x000011fa - adds r1, r2 - bl StringCopy - pop {r0} - bx r0 - .align 2, 0 -_0809B720: .4byte gUnknown_020384E4 -_0809B724: .4byte gUnknown_020384E5 -_0809B728: .4byte gUnknown_083B6DB4 -_0809B72C: .4byte 0x000026e4 -_0809B730: .4byte 0x000011fa - thumb_func_end sub_809B6DC - - thumb_func_start sub_809B734 -sub_809B734: @ 809B734 - push {lr} - bl sub_80998D8 - lsls r0, 24 - cmp r0, 0 - beq _0809B744 - movs r0, 0x1 - b _0809B758 -_0809B744: - ldr r0, _0809B75C @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim - movs r0, 0 -_0809B758: - pop {r1} - bx r1 - .align 2, 0 -_0809B75C: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B734 - - thumb_func_start sub_809B760 -sub_809B760: @ 809B760 - push {lr} - bl sub_8099920 - ldr r1, _0809B774 @ =gUnknown_020384E6 - ldrb r0, [r1] - cmp r0, 0 - beq _0809B778 - movs r0, 0 - strb r0, [r1] - b _0809B79E - .align 2, 0 -_0809B774: .4byte gUnknown_020384E6 -_0809B778: - ldr r0, _0809B788 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809B78C - movs r2, 0xE - b _0809B794 - .align 2, 0 -_0809B788: .4byte gUnknown_020384E4 -_0809B78C: - bl get_preferred_box - lsls r0, 24 - lsrs r2, r0, 24 -_0809B794: - ldr r0, _0809B7A8 @ =gUnknown_020384E5 - ldrb r1, [r0] - adds r0, r2, 0 - bl sub_809B548 -_0809B79E: - bl sub_809BF74 - pop {r0} - bx r0 - .align 2, 0 -_0809B7A8: .4byte gUnknown_020384E5 - thumb_func_end sub_809B760 - - thumb_func_start sub_809B7AC -sub_809B7AC: @ 809B7AC - push {lr} - ldr r0, _0809B7CC @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B7C8 - ldr r0, _0809B7D0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - movs r1, 0x8E - lsls r1, 5 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x3 - bl StartSpriteAnim -_0809B7C8: - pop {r0} - bx r0 - .align 2, 0 -_0809B7CC: .4byte gUnknown_020384E6 -_0809B7D0: .4byte gUnknown_083B6DB4 - thumb_func_end sub_809B7AC - - thumb_func_start sub_809B7D4 -sub_809B7D4: @ 809B7D4 - push {r4-r6,lr} - ldr r0, _0809B804 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809B81C - ldr r0, _0809B808 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r1, _0809B80C @ =0x00002618 - adds r0, r4, r1 - ldr r2, _0809B810 @ =0x000025b4 - adds r1, r4, r2 - movs r2, 0x64 - bl memcpy - ldr r0, _0809B814 @ =0x00002682 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _0809B818 @ =0x00002683 - adds r4, r1 - movs r0, 0x1 - negs r0, r0 - strb r0, [r4] - b _0809B8A6 - .align 2, 0 -_0809B804: .4byte gUnknown_020384E6 -_0809B808: .4byte gUnknown_083B6DB4 -_0809B80C: .4byte 0x00002618 -_0809B810: .4byte 0x000025b4 -_0809B814: .4byte 0x00002682 -_0809B818: .4byte 0x00002683 -_0809B81C: - ldr r0, _0809B84C @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809B864 - ldr r0, _0809B850 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809B854 @ =0x00002618 - adds r0, r4, r2 - ldr r3, _0809B858 @ =gPlayerParty - ldr r1, _0809B85C @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - movs r1, 0x64 - muls r1, r2 - adds r1, r3 - movs r2, 0x64 - bl memcpy - ldr r0, _0809B860 @ =0x00002682 - adds r4, r0 - movs r0, 0xE - b _0809B896 - .align 2, 0 -_0809B84C: .4byte gUnknown_020384E4 -_0809B850: .4byte gUnknown_083B6DB4 -_0809B854: .4byte 0x00002618 -_0809B858: .4byte gPlayerParty -_0809B85C: .4byte gUnknown_020384E5 -_0809B860: .4byte 0x00002682 -_0809B864: - ldr r5, _0809B8FC @ =gPokemonStorage - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809B900 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - adds r2, r5, 0x4 - adds r1, r2 - adds r0, r1 - ldr r1, _0809B904 @ =gUnknown_083B6DB4 - ldr r4, [r1] - ldr r2, _0809B908 @ =0x00002618 - adds r1, r4, r2 - bl sub_803B4B4 - ldrb r0, [r5] - ldr r1, _0809B90C @ =0x00002682 - adds r4, r1 -_0809B896: - strb r0, [r4] - ldr r0, _0809B904 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B900 @ =gUnknown_020384E5 - ldrb r1, [r1] - ldr r2, _0809B910 @ =0x00002683 - adds r0, r2 - strb r1, [r0] -_0809B8A6: - ldr r0, _0809B904 @ =gUnknown_083B6DB4 - ldr r6, [r0] - ldr r0, _0809B914 @ =0x0000267e - adds r4, r6, r0 - movs r0, 0 - strb r0, [r4] - ldr r1, _0809B918 @ =0x0000267f - adds r5, r6, r1 - strb r0, [r5] - ldr r0, _0809B91C @ =0x00002686 - adds r2, r6, r0 - movs r0, 0x39 - strh r0, [r2] - ldr r0, _0809B920 @ =0x00002688 - adds r1, r6, r0 - ldr r0, _0809B924 @ =0x00000123 - strh r0, [r1] - ldr r0, _0809B928 @ =0x0000268a - adds r1, r6, r0 - ldr r0, _0809B92C @ =0x00000163 - strh r0, [r1] - ldr r1, _0809B908 @ =0x00002618 - adds r0, r6, r1 - movs r1, 0x50 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - movs r2, 0x1 - ands r1, r2 - strb r1, [r4] - lsrs r0, 17 - movs r1, 0x1 - ands r0, r1 - strb r0, [r5] - ldrh r0, [r4] - cmp r0, 0 - beq _0809B934 - ldr r2, _0809B930 @ =0x0000267d - adds r1, r6, r2 - movs r0, 0 - strb r0, [r1] - b _0809B940 - .align 2, 0 -_0809B8FC: .4byte gPokemonStorage -_0809B900: .4byte gUnknown_020384E5 -_0809B904: .4byte gUnknown_083B6DB4 -_0809B908: .4byte 0x00002618 -_0809B90C: .4byte 0x00002682 -_0809B910: .4byte 0x00002683 -_0809B914: .4byte 0x0000267e -_0809B918: .4byte 0x0000267f -_0809B91C: .4byte 0x00002686 -_0809B920: .4byte 0x00002688 -_0809B924: .4byte 0x00000123 -_0809B928: .4byte 0x0000268a -_0809B92C: .4byte 0x00000163 -_0809B930: .4byte 0x0000267d -_0809B934: - ldr r2, _0809B954 @ =0x0000267d - adds r0, r6, r2 - strb r1, [r0] - subs r2, 0x1 - adds r0, r6, r2 - strb r1, [r0] -_0809B940: - ldr r0, _0809B958 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809B95C @ =0x00002684 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0809B954: .4byte 0x0000267d -_0809B958: .4byte gUnknown_083B6DB4 -_0809B95C: .4byte 0x00002684 - thumb_func_end sub_809B7D4 - - thumb_func_start sub_809B960 -sub_809B960: @ 809B960 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0809B988 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r3, _0809B98C @ =0x0000267d - adds r1, r2, r3 - ldrb r1, [r1] - mov r12, r0 - cmp r1, 0 - beq _0809B994 - ldr r7, _0809B990 @ =0x0000267c - adds r0, r2, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _0809BB5C - .align 2, 0 -_0809B988: .4byte gUnknown_083B6DB4 -_0809B98C: .4byte 0x0000267d -_0809B990: .4byte 0x0000267c -_0809B994: - ldr r1, _0809B9A4 @ =0x00002684 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _0809B9A8 - cmp r0, 0x1 - beq _0809BA84 - b _0809BB58 - .align 2, 0 -_0809B9A4: .4byte 0x00002684 -_0809B9A8: - movs r5, 0 - movs r6, 0 -_0809B9AC: - mov r2, r12 - ldr r4, [r2] - ldr r3, _0809BA28 @ =0x00002682 - adds r0, r4, r3 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xE - bne _0809B9CC - ldr r7, _0809BA2C @ =0x00002683 - adds r0, r4, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, r5 - beq _0809BA02 -_0809B9CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0809BA30 @ =gPlayerParty - adds r0, r1 - ldr r1, _0809BA34 @ =0x00002686 - adds r2, r4, r1 - movs r1, 0x50 - bl GetMonData - lsls r0, 16 - lsrs r3, r0, 16 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0809B9F0 - ldr r2, _0809BA38 @ =0x0000267e - adds r0, r4, r2 - strb r6, [r0] -_0809B9F0: - movs r0, 0x2 - ands r3, r0 - ldr r7, _0809BA3C @ =gUnknown_083B6DB4 - mov r12, r7 - cmp r3, 0 - beq _0809BA02 - ldr r1, _0809BA40 @ =0x0000267f - adds r0, r4, r1 - strb r6, [r0] -_0809BA02: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809B9AC - mov r3, r12 - ldr r2, [r3] - ldr r7, _0809BA38 @ =0x0000267e - adds r0, r2, r7 - ldrh r0, [r0] - cmp r0, 0 - bne _0809BA4C - ldr r1, _0809BA44 @ =0x0000267d - adds r0, r2, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r3, _0809BA48 @ =0x0000267c - b _0809BB54 - .align 2, 0 -_0809BA28: .4byte 0x00002682 -_0809BA2C: .4byte 0x00002683 -_0809BA30: .4byte gPlayerParty -_0809BA34: .4byte 0x00002686 -_0809BA38: .4byte 0x0000267e -_0809BA3C: .4byte gUnknown_083B6DB4 -_0809BA40: .4byte 0x0000267f -_0809BA44: .4byte 0x0000267d -_0809BA48: .4byte 0x0000267c -_0809BA4C: - movs r7, 0x9A - lsls r7, 6 - adds r0, r2, r7 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809BA68 @ =0x00002681 - adds r0, r2, r3 - strb r1, [r0] - adds r7, 0x4 - adds r1, r2, r7 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _0809BB58 - .align 2, 0 -_0809BA68: .4byte 0x00002681 -_0809BA6C: - ldr r1, _0809BA7C @ =0x0000267d - adds r0, r2, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r7, _0809BA80 @ =0x0000267c - adds r0, r2, r7 - strb r3, [r0] - b _0809BB3C - .align 2, 0 -_0809BA7C: .4byte 0x0000267d -_0809BA80: .4byte 0x0000267c -_0809BA84: - movs r5, 0 - mov r9, r12 - adds r4, r2, 0 - movs r0, 0x9A - lsls r0, 6 - adds r6, r4, r0 - ldr r1, _0809BB6C @ =0x0000267f - adds r1, r4 - mov r8, r1 - ldr r2, _0809BB70 @ =0x0000ffff - mov r10, r2 -_0809BA9A: - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r3, _0809BB74 @ =0x00002681 - adds r1, r4, r3 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809BB78 @ =gPokemonStorage + 0x4 - adds r1, r2 - adds r0, r1 - movs r1, 0x50 - ldr r7, _0809BB7C @ =0x00002686 - adds r2, r4, r7 - bl GetBoxMonData - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _0809BB00 - ldr r1, _0809BB80 @ =0x00002682 - adds r0, r4, r1 - ldrh r0, [r0] - ldrh r2, [r6] - mov r1, r10 - ands r1, r0 - mov r0, r10 - ands r0, r2 - cmp r1, r0 - beq _0809BB00 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0809BAF2 - ldr r2, _0809BB84 @ =0x0000267e - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] -_0809BAF2: - movs r0, 0x2 - ands r3, r0 - cmp r3, 0 - beq _0809BB00 - movs r0, 0 - mov r3, r8 - strb r0, [r3] -_0809BB00: - mov r7, r9 - ldr r2, [r7] - ldr r0, _0809BB74 @ =0x00002681 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - movs r3, 0 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - ldr r7, _0809BB88 @ =gUnknown_083B6DB4 - mov r12, r7 - cmp r0, 0x1D - ble _0809BB32 - strb r3, [r1] - movs r0, 0x9A - lsls r0, 6 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xD - bgt _0809BA6C -_0809BB32: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _0809BA9A -_0809BB3C: - mov r1, r12 - ldr r2, [r1] - ldr r3, _0809BB84 @ =0x0000267e - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _0809BB58 - ldr r7, _0809BB8C @ =0x0000267d - adds r0, r2, r7 - movs r1, 0x1 - strb r1, [r0] - subs r3, 0x2 -_0809BB54: - adds r0, r2, r3 - strb r1, [r0] -_0809BB58: - movs r0, 0x1 - negs r0, r0 -_0809BB5C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809BB6C: .4byte 0x0000267f -_0809BB70: .4byte 0x0000ffff -_0809BB74: .4byte 0x00002681 -_0809BB78: .4byte gPokemonStorage + 0x4 -_0809BB7C: .4byte 0x00002686 -_0809BB80: .4byte 0x00002682 -_0809BB84: .4byte 0x0000267e -_0809BB88: .4byte gUnknown_083B6DB4 -_0809BB8C: .4byte 0x0000267d - thumb_func_end sub_809B960 - - thumb_func_start sub_809BB90 -sub_809BB90: @ 809BB90 - push {lr} - ldr r0, _0809BBB0 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BBAA - ldr r0, _0809BBB4 @ =gUnknown_02038480 - ldr r1, _0809BBB8 @ =gUnknown_083B6DB4 - ldr r1, [r1] - ldr r2, _0809BBBC @ =0x000025b4 - adds r1, r2 - movs r2, 0x64 - bl memcpy -_0809BBAA: - pop {r0} - bx r0 - .align 2, 0 -_0809BBB0: .4byte gUnknown_020384E6 -_0809BBB4: .4byte gUnknown_02038480 -_0809BBB8: .4byte gUnknown_083B6DB4 -_0809BBBC: .4byte 0x000025b4 - thumb_func_end sub_809BB90 - - thumb_func_start sub_809BBC0 -sub_809BBC0: @ 809BBC0 - push {lr} - ldr r0, _0809BBE4 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BC08 - ldr r0, _0809BBE8 @ =gUnknown_020384E7 - ldrb r0, [r0] - cmp r0, 0xE - bne _0809BBF8 - ldr r0, _0809BBEC @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809BBF0 @ =0x000025b4 - adds r0, r1 - ldr r1, _0809BBF4 @ =gUnknown_02038480 - movs r2, 0x64 - bl memcpy - b _0809BC08 - .align 2, 0 -_0809BBE4: .4byte gUnknown_020384E6 -_0809BBE8: .4byte gUnknown_020384E7 -_0809BBEC: .4byte gUnknown_083B6DB4 -_0809BBF0: .4byte 0x000025b4 -_0809BBF4: .4byte gUnknown_02038480 -_0809BBF8: - ldr r0, _0809BC0C @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldr r1, _0809BC10 @ =0x000025b4 - adds r0, r1 - ldr r1, _0809BC14 @ =gUnknown_02038480 - movs r2, 0x50 - bl memcpy -_0809BC08: - pop {r0} - bx r0 - .align 2, 0 -_0809BC0C: .4byte gUnknown_083B6DB4 -_0809BC10: .4byte 0x000025b4 -_0809BC14: .4byte gUnknown_02038480 - thumb_func_end sub_809BBC0 - - thumb_func_start sub_809BC18 -sub_809BC18: @ 809BC18 - push {r4,r5,lr} - ldr r0, _0809BC48 @ =gUnknown_020384E6 - ldrb r5, [r0] - cmp r5, 0 - beq _0809BC64 - bl sub_809BB90 - ldr r0, _0809BC4C @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r0, _0809BC50 @ =0x00002690 - adds r1, r2, r0 - ldr r0, _0809BC54 @ =gUnknown_02038480 - str r0, [r1] - ldr r1, _0809BC58 @ =0x0000268d - adds r0, r2, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809BC5C @ =0x0000268c - adds r0, r2, r3 - strb r1, [r0] - ldr r0, _0809BC60 @ =0x0000268e - adds r2, r0 - strb r1, [r2] - b _0809BCF2 - .align 2, 0 -_0809BC48: .4byte gUnknown_020384E6 -_0809BC4C: .4byte gUnknown_083B6DB4 -_0809BC50: .4byte 0x00002690 -_0809BC54: .4byte gUnknown_02038480 -_0809BC58: .4byte 0x0000268d -_0809BC5C: .4byte 0x0000268c -_0809BC60: .4byte 0x0000268e -_0809BC64: - ldr r0, _0809BC9C @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BCBC - ldr r0, _0809BCA0 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809BCA4 @ =0x00002690 - adds r1, r4, r2 - ldr r0, _0809BCA8 @ =gPlayerParty - str r0, [r1] - ldr r0, _0809BCAC @ =gUnknown_020384E5 - ldrb r1, [r0] - ldr r3, _0809BCB0 @ =0x0000268d - adds r0, r4, r3 - strb r1, [r0] - bl StorageSystemGetPartySize - subs r0, 0x1 - ldr r2, _0809BCB4 @ =0x0000268c - adds r1, r4, r2 - strb r0, [r1] - ldr r3, _0809BCB8 @ =0x0000268e - adds r4, r3 - strb r5, [r4] - b _0809BCF2 - .align 2, 0 -_0809BC9C: .4byte gUnknown_020384E4 -_0809BCA0: .4byte gUnknown_083B6DB4 -_0809BCA4: .4byte 0x00002690 -_0809BCA8: .4byte gPlayerParty -_0809BCAC: .4byte gUnknown_020384E5 -_0809BCB0: .4byte 0x0000268d -_0809BCB4: .4byte 0x0000268c -_0809BCB8: .4byte 0x0000268e -_0809BCBC: - ldr r0, _0809BCF8 @ =gUnknown_083B6DB4 - ldr r3, [r0] - ldr r0, _0809BCFC @ =0x00002690 - adds r4, r3, r0 - ldr r2, _0809BD00 @ =gPokemonStorage - ldrb r0, [r2] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - adds r2, 0x4 - adds r0, r2 - str r0, [r4] - ldr r0, _0809BD04 @ =gUnknown_020384E5 - ldrb r1, [r0] - ldr r2, _0809BD08 @ =0x0000268d - adds r0, r3, r2 - strb r1, [r0] - ldr r0, _0809BD0C @ =0x0000268c - adds r1, r3, r0 - movs r0, 0x1D - strb r0, [r1] - ldr r1, _0809BD10 @ =0x0000268e - adds r3, r1 - movs r0, 0x5 - strb r0, [r3] -_0809BCF2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0809BCF8: .4byte gUnknown_083B6DB4 -_0809BCFC: .4byte 0x00002690 -_0809BD00: .4byte gPokemonStorage -_0809BD04: .4byte gUnknown_020384E5 -_0809BD08: .4byte 0x0000268d -_0809BD0C: .4byte 0x0000268c -_0809BD10: .4byte 0x0000268e - thumb_func_end sub_809BC18 - - thumb_func_start sub_809BD14 -sub_809BD14: @ 809BD14 - push {lr} - ldr r0, _0809BD24 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BD28 - bl sub_809BBC0 - b _0809BD30 - .align 2, 0 -_0809BD24: .4byte gUnknown_020384E6 -_0809BD28: - ldr r0, _0809BD34 @ =gUnknown_020384E5 - ldr r1, _0809BD38 @ =gSharedMem + 0x18000 - ldrb r1, [r1, 0x9] - strb r1, [r0] -_0809BD30: - pop {r0} - bx r0 - .align 2, 0 -_0809BD34: .4byte gUnknown_020384E5 -_0809BD38: .4byte gSharedMem + 0x18000 - thumb_func_end sub_809BD14 - - thumb_func_start party_compaction -party_compaction: @ 809BD3C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r7, _0809BD88 @ =0x0000ffff - movs r6, 0 - movs r5, 0 - movs r0, 0x64 - mov r9, r0 - ldr r1, _0809BD8C @ =gPlayerParty - mov r8, r1 - subs r0, 0x65 - mov r10, r0 -_0809BD58: - mov r0, r9 - muls r0, r6 - mov r1, r8 - adds r4, r0, r1 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - cmp r0, 0 - beq _0809BD90 - cmp r6, r5 - beq _0809BD80 - mov r0, r9 - muls r0, r5 - add r0, r8 - adds r1, r4, 0 - movs r2, 0x64 - bl memcpy -_0809BD80: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - b _0809BD9A - .align 2, 0 -_0809BD88: .4byte 0x0000ffff -_0809BD8C: .4byte gPlayerParty -_0809BD90: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, r10 - bne _0809BD9A - adds r7, r6, 0 -_0809BD9A: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _0809BD58 - lsls r7, 16 - cmp r5, 0x5 - bhi _0809BDC2 - movs r6, 0x64 - ldr r4, _0809BDD4 @ =gPlayerParty -_0809BDAE: - adds r0, r5, 0 - muls r0, r6 - adds r0, r4 - bl ZeroMonData - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _0809BDAE -_0809BDC2: - asrs r0, r7, 16 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0809BDD4: .4byte gPlayerParty - thumb_func_end party_compaction - - thumb_func_start sub_809BDD8 -sub_809BDD8: @ 809BDD8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - ldr r1, _0809BE04 @ =gUnknown_083B6DB4 - ldr r2, [r1] - ldr r3, _0809BE08 @ =0x000011f7 - adds r1, r2, r3 - strb r0, [r1] - ldr r0, _0809BE0C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BE14 - ldr r1, _0809BE10 @ =0x000025b4 - adds r0, r2, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData - b _0809BE68 - .align 2, 0 -_0809BE04: .4byte gUnknown_083B6DB4 -_0809BE08: .4byte 0x000011f7 -_0809BE0C: .4byte gUnknown_020384E6 -_0809BE10: .4byte 0x000025b4 -_0809BE14: - ldr r4, _0809BE70 @ =gUnknown_020384E4 - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0x1 - bne _0809BE34 - ldr r0, _0809BE74 @ =gUnknown_020384E5 - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809BE78 @ =gPlayerParty - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetMonData -_0809BE34: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bne _0809BE68 - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809BE74 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809BE7C @ =gPokemonStorage + 0x4 - adds r1, r2 - adds r0, r1 - movs r1, 0x8 - mov r2, sp - bl SetBoxMonData -_0809BE68: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809BE70: .4byte gUnknown_020384E4 -_0809BE74: .4byte gUnknown_020384E5 -_0809BE78: .4byte gPlayerParty -_0809BE7C: .4byte gPokemonStorage + 0x4 - thumb_func_end sub_809BDD8 - - thumb_func_start sub_809BE80 -sub_809BE80: @ 809BE80 - push {lr} - ldr r0, _0809BEA8 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BEB4 - ldr r0, _0809BEAC @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - bne _0809BEB4 - ldr r0, _0809BEB0 @ =gUnknown_020384E5 - ldrb r0, [r0] - bl CountAlivePartyMonsExceptOne - lsls r0, 24 - cmp r0, 0 - bne _0809BEB4 - movs r0, 0x1 - b _0809BEB6 - .align 2, 0 -_0809BEA8: .4byte gUnknown_020384E4 -_0809BEAC: .4byte gUnknown_020384E6 -_0809BEB0: .4byte gUnknown_020384E5 -_0809BEB4: - movs r0, 0 -_0809BEB6: - pop {r1} - bx r1 - thumb_func_end sub_809BE80 - - thumb_func_start sub_809BEBC -sub_809BEBC: @ 809BEBC - push {lr} - ldr r0, _0809BF00 @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809BF18 - ldr r0, _0809BF04 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BEFC - ldr r0, _0809BF08 @ =gUnknown_020384E5 - ldrb r0, [r0] - bl CountAlivePartyMonsExceptOne - lsls r0, 24 - cmp r0, 0 - bne _0809BEFC - ldr r0, _0809BF0C @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r2, _0809BF10 @ =0x000011f9 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0809BF18 - ldr r2, _0809BF14 @ =0x000025b4 - adds r0, r1, r2 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0809BF18 -_0809BEFC: - movs r0, 0x1 - b _0809BF1A - .align 2, 0 -_0809BF00: .4byte gUnknown_020384E6 -_0809BF04: .4byte gUnknown_020384E4 -_0809BF08: .4byte gUnknown_020384E5 -_0809BF0C: .4byte gUnknown_083B6DB4 -_0809BF10: .4byte 0x000011f9 -_0809BF14: .4byte 0x000025b4 -_0809BF18: - movs r0, 0 -_0809BF1A: - pop {r1} - bx r1 - thumb_func_end sub_809BEBC - - thumb_func_start sub_809BF20 -sub_809BF20: @ 809BF20 - ldr r0, _0809BF28 @ =gUnknown_020384E6 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0809BF28: .4byte gUnknown_020384E6 - thumb_func_end sub_809BF20 - - thumb_func_start sub_809BF2C -sub_809BF2C: @ 809BF2C - push {lr} - movs r1, 0 - ldr r0, _0809BF44 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x2 - bne _0809BF3E - movs r1, 0x1 -_0809BF3E: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809BF44: .4byte gUnknown_020384E4 - thumb_func_end sub_809BF2C - - thumb_func_start sub_809BF48 -sub_809BF48: @ 809BF48 - push {lr} - movs r1, 0 - ldr r0, _0809BF6C @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _0809BF66 - ldr r0, _0809BF70 @ =gUnknown_020384E5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _0809BF66 - movs r1, 0x1 -_0809BF66: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_0809BF6C: .4byte gUnknown_020384E4 -_0809BF70: .4byte gUnknown_020384E5 - thumb_func_end sub_809BF48 - - thumb_func_start sub_809BF74 -sub_809BF74: @ 809BF74 - push {r4,lr} - ldr r0, _0809BFA8 @ =gUnknown_083B6DB4 - ldr r1, [r0] - movs r2, 0 - ldr r3, _0809BFAC @ =gUnknown_020384E6 - ldrb r0, [r3] - cmp r0, 0 - bne _0809BF86 - movs r2, 0x1 -_0809BF86: - ldr r4, _0809BFB0 @ =0x000011f6 - adds r0, r1, r4 - strb r2, [r0] - ldrb r0, [r3] - cmp r0, 0 - bne _0809C018 - ldr r0, _0809BFB4 @ =gUnknown_020384E4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - beq _0809BFBE - cmp r0, 0x1 - bgt _0809BFB8 - cmp r0, 0 - beq _0809BFEE - b _0809C018 - .align 2, 0 -_0809BFA8: .4byte gUnknown_083B6DB4 -_0809BFAC: .4byte gUnknown_020384E6 -_0809BFB0: .4byte 0x000011f6 -_0809BFB4: .4byte gUnknown_020384E4 -_0809BFB8: - cmp r0, 0x3 - bgt _0809C018 - b _0809BFE4 -_0809BFBE: - ldr r1, _0809BFDC @ =gUnknown_020384E5 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _0809BFE4 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, _0809BFE0 @ =gPlayerParty - adds r0, r1 - movs r1, 0 - bl sub_809C04C - b _0809C018 - .align 2, 0 -_0809BFDC: .4byte gUnknown_020384E5 -_0809BFE0: .4byte gPlayerParty -_0809BFE4: - movs r0, 0 - movs r1, 0x2 - bl sub_809C04C - b _0809C018 -_0809BFEE: - bl get_preferred_box - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - ldr r1, _0809C020 @ =gUnknown_020384E5 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 4 - ldr r2, _0809C024 @ =gPokemonStorage + 0x4 - adds r1, r2 - adds r0, r1 - movs r1, 0x1 - bl sub_809C04C -_0809C018: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0809C020: .4byte gUnknown_020384E5 -_0809C024: .4byte gPokemonStorage + 0x4 - thumb_func_end sub_809BF74 - - thumb_func_start sub_809C028 -sub_809C028: @ 809C028 - push {lr} - ldr r0, _0809C03C @ =gUnknown_020384E6 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C044 - ldr r0, _0809C040 @ =gUnknown_02038480 - movs r1, 0 - bl sub_809C04C - b _0809C048 - .align 2, 0 -_0809C03C: .4byte gUnknown_020384E6 -_0809C040: .4byte gUnknown_02038480 -_0809C044: - bl sub_809BF74 -_0809C048: - pop {r0} - bx r0 - thumb_func_end sub_809C028 - - thumb_func_start sub_809C04C -sub_809C04C: @ 809C04C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - str r0, [sp] - ldr r0, _0809C0FC @ =gUnknown_083B6DB4 - ldr r6, [r0] - ldr r2, _0809C100 @ =0x000011f2 - adds r2, r6 - mov r8, r2 - mov r0, sp - ldrh r0, [r0] - strh r0, [r2] - cmp r1, 0 - bne _0809C120 - adds r0, r7, 0 - movs r1, 0x41 - bl GetMonData - ldr r2, _0809C104 @ =0x000011f0 - adds r1, r6, r2 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _0809C08C - b _0809C1EC -_0809C08C: - adds r0, r7, 0 - movs r1, 0x2D - bl GetMonData - ldr r2, _0809C108 @ =0x000011f9 - adds r1, r6, r2 - strb r0, [r1] - ldr r0, _0809C10C @ =0x000011fa - adds r4, r6, r0 - adds r0, r7, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r7, 0 - movs r1, 0x38 - bl GetMonData - ldr r2, _0809C110 @ =0x000011f8 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0x8 - bl GetMonData - ldr r2, _0809C114 @ =0x000011f7 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetMonData - ldr r2, _0809C118 @ =0x000011ec - adds r1, r6, r2 - str r0, [r1] - adds r0, r7, 0 - bl GetMonSpritePal - ldr r2, _0809C11C @ =0x000011e8 - adds r1, r6, r2 - str r0, [r1] - adds r0, r7, 0 - bl GetMonGender - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0xC - bl GetMonData - b _0809C1B2 - .align 2, 0 -_0809C0FC: .4byte gUnknown_083B6DB4 -_0809C100: .4byte 0x000011f2 -_0809C104: .4byte 0x000011f0 -_0809C108: .4byte 0x000011f9 -_0809C10C: .4byte 0x000011fa -_0809C110: .4byte 0x000011f8 -_0809C114: .4byte 0x000011f7 -_0809C118: .4byte 0x000011ec -_0809C11C: .4byte 0x000011e8 -_0809C120: - cmp r1, 0x1 - bne _0809C1D4 - adds r0, r7, 0 - movs r1, 0x41 - bl GetBoxMonData - ldr r2, _0809C1B8 @ =0x000011f0 - adds r5, r6, r2 - strh r0, [r5] - lsls r0, 16 - cmp r0, 0 - beq _0809C1EC - adds r0, r7, 0 - movs r1, 0x1 - bl GetBoxMonData - mov r9, r0 - adds r0, r7, 0 - movs r1, 0x2D - bl GetBoxMonData - ldr r2, _0809C1BC @ =0x000011f9 - adds r1, r6, r2 - strb r0, [r1] - ldr r0, _0809C1C0 @ =0x000011fa - adds r4, r6, r0 - adds r0, r7, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetBoxMonData - adds r0, r4, 0 - bl StringGetEnd10 - adds r0, r7, 0 - bl GetLevelFromBoxMonExp - ldr r2, _0809C1C4 @ =0x000011f8 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0x8 - bl GetBoxMonData - ldr r2, _0809C1C8 @ =0x000011f7 - adds r1, r6, r2 - strb r0, [r1] - adds r0, r7, 0 - movs r1, 0 - bl GetBoxMonData - adds r2, r0, 0 - ldr r0, _0809C1CC @ =0x000011ec - adds r4, r6, r0 - str r2, [r4] - ldrh r0, [r5] - mov r1, r9 - bl GetMonSpritePalFromOtIdPersonality - ldr r2, _0809C1D0 @ =0x000011e8 - adds r1, r6, r2 - str r0, [r1] - ldrh r0, [r5] - ldr r1, [r4] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r7, 0 - movs r1, 0xC - bl GetBoxMonData -_0809C1B2: - mov r1, r8 - strh r0, [r1] - b _0809C1DE - .align 2, 0 -_0809C1B8: .4byte 0x000011f0 -_0809C1BC: .4byte 0x000011f9 -_0809C1C0: .4byte 0x000011fa -_0809C1C4: .4byte 0x000011f8 -_0809C1C8: .4byte 0x000011f7 -_0809C1CC: .4byte 0x000011ec -_0809C1D0: .4byte 0x000011e8 -_0809C1D4: - ldr r2, _0809C220 @ =0x000011f0 - adds r0, r6, r2 - mov r1, sp - ldrh r1, [r1] - strh r1, [r0] -_0809C1DE: - ldr r0, _0809C224 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809C220 @ =0x000011f0 - adds r0, r4, r2 - ldrh r1, [r0] - cmp r1, 0 - bne _0809C23C -_0809C1EC: - ldr r0, _0809C224 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809C228 @ =0x000011fa - adds r2, r1, r0 - movs r0, 0xFF - strb r0, [r2] - ldr r0, _0809C22C @ =0x0000120f - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r0, _0809C230 @ =0x00001234 - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r0, _0809C234 @ =0x00001259 - adds r2, r1, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r2] - ldr r2, _0809C238 @ =0x0000127a - adds r1, r2 - strb r0, [r1] - b _0809C43E - .align 2, 0 -_0809C220: .4byte 0x000011f0 -_0809C224: .4byte gUnknown_083B6DB4 -_0809C228: .4byte 0x000011fa -_0809C22C: .4byte 0x0000120f -_0809C230: .4byte 0x00001234 -_0809C234: .4byte 0x00001259 -_0809C238: .4byte 0x0000127a -_0809C23C: - ldr r2, _0809C28C @ =0x000011f9 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0809C2A4 - ldr r0, _0809C290 @ =0x0000120f - adds r7, r4, r0 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x4 - strb r0, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r0, 0x1 - strb r0, [r7, 0x4] - ldr r1, _0809C294 @ =0x00001214 - adds r7, r4, r1 - adds r2, 0x1 - adds r1, r4, r2 - adds r0, r7, 0 - bl StringCopy - ldr r0, _0809C298 @ =0x00001234 - adds r1, r4, r0 - movs r0, 0xFF - strb r0, [r1] - ldr r2, _0809C29C @ =0x00001259 - adds r1, r4, r2 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - ldr r0, _0809C2A0 @ =0x0000127a - adds r1, r4, r0 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - b _0809C43E - .align 2, 0 -_0809C28C: .4byte 0x000011f9 -_0809C290: .4byte 0x0000120f -_0809C294: .4byte 0x00001214 -_0809C298: .4byte 0x00001234 -_0809C29C: .4byte 0x00001259 -_0809C2A0: .4byte 0x0000127a -_0809C2A4: - cmp r1, 0x20 - beq _0809C2AC - cmp r1, 0x1D - bne _0809C2B0 -_0809C2AC: - movs r1, 0xFF - str r1, [sp] -_0809C2B0: - ldr r0, _0809C388 @ =gUnknown_083B6DB4 - ldr r4, [r0] - ldr r2, _0809C38C @ =0x0000120f - adds r7, r4, r2 - movs r0, 0xFC - mov r9, r0 - strb r0, [r7] - movs r1, 0x4 - mov r8, r1 - strb r1, [r7, 0x1] - movs r2, 0xF - strb r2, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r6, 0x1 - strb r6, [r7, 0x4] - ldr r1, _0809C390 @ =0x00001214 - adds r7, r4, r1 - ldr r2, _0809C394 @ =0x000011fa - adds r1, r4, r2 - adds r0, r7, 0 - bl StringCopy - ldr r0, _0809C398 @ =0x00001234 - adds r7, r4, r0 - mov r1, r9 - strb r1, [r7] - mov r2, r8 - strb r2, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r1, 0 - strb r1, [r7, 0x3] - strb r6, [r7, 0x4] - mov r2, r9 - strb r2, [r7, 0x5] - movs r0, 0x13 - mov r10, r0 - strb r0, [r7, 0x6] - movs r1, 0x7 - strb r1, [r7, 0x7] - movs r0, 0xBA - strb r0, [r7, 0x8] - ldr r2, _0809C39C @ =0x0000123d - adds r7, r4, r2 - ldr r1, _0809C3A0 @ =0x000011f0 - adds r0, r4, r1 - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, _0809C3A4 @ =gSpeciesNames - adds r1, r0 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - mov r2, r9 - strb r2, [r7] - mov r0, r10 - strb r0, [r7, 0x1] - movs r0, 0x50 - strb r0, [r7, 0x2] - movs r0, 0xFF - strb r0, [r7, 0x3] - ldr r1, _0809C3A8 @ =0x00001259 - adds r7, r4, r1 - strb r2, [r7] - mov r2, r8 - strb r2, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r1, 0 - strb r1, [r7, 0x3] - strb r6, [r7, 0x4] - mov r2, r9 - strb r2, [r7, 0x5] - mov r0, r10 - strb r0, [r7, 0x6] - movs r6, 0x8 - strb r6, [r7, 0x7] - ldr r1, _0809C3AC @ =0x00001261 - adds r7, r4, r1 - movs r0, 0x34 - strb r0, [r7] - ldr r2, _0809C3B0 @ =0x00001262 - adds r7, r4, r2 - ldr r0, _0809C3B4 @ =0x000011f8 - adds r4, r0 - ldrb r1, [r4] - adds r0, r7, 0 - movs r2, 0x22 - movs r3, 0x1 - bl sub_8072C14 - adds r7, r0, 0 - mov r1, r9 - strb r1, [r7] - movs r0, 0x11 - strb r0, [r7, 0x1] - strb r6, [r7, 0x2] - adds r7, 0x3 - ldr r2, [sp] - cmp r2, 0 - beq _0809C3B8 - cmp r2, 0xFE - beq _0809C3D0 - b _0809C3EA - .align 2, 0 -_0809C388: .4byte gUnknown_083B6DB4 -_0809C38C: .4byte 0x0000120f -_0809C390: .4byte 0x00001214 -_0809C394: .4byte 0x000011fa -_0809C398: .4byte 0x00001234 -_0809C39C: .4byte 0x0000123d -_0809C3A0: .4byte 0x000011f0 -_0809C3A4: .4byte gSpeciesNames -_0809C3A8: .4byte 0x00001259 -_0809C3AC: .4byte 0x00001261 -_0809C3B0: .4byte 0x00001262 -_0809C3B4: .4byte 0x000011f8 -_0809C3B8: - mov r0, r9 - strb r0, [r7] - mov r1, r8 - strb r1, [r7, 0x1] - strb r1, [r7, 0x2] - mov r2, sp - ldrb r2, [r2] - strb r2, [r7, 0x3] - movs r0, 0x5 - strb r0, [r7, 0x4] - movs r0, 0xB5 - b _0809C3E6 -_0809C3D0: - mov r0, r9 - strb r0, [r7] - mov r1, r8 - strb r1, [r7, 0x1] - movs r0, 0x6 - strb r0, [r7, 0x2] - movs r2, 0 - strb r2, [r7, 0x3] - movs r0, 0x7 - strb r0, [r7, 0x4] - movs r0, 0xB6 -_0809C3E6: - strb r0, [r7, 0x5] - adds r7, 0x6 -_0809C3EA: - movs r5, 0xFF - strb r5, [r7] - ldr r0, _0809C450 @ =gUnknown_083B6DB4 - ldr r2, [r0] - ldr r1, _0809C454 @ =0x0000127a - adds r7, r2, r1 - ldr r0, _0809C458 @ =0x000011f2 - adds r3, r2, r0 - ldrh r0, [r3] - cmp r0, 0 - beq _0809C43C - movs r4, 0xFC - strb r4, [r7] - movs r1, 0x4 - strb r1, [r7, 0x1] - movs r0, 0xF - strb r0, [r7, 0x2] - movs r0, 0 - strb r0, [r7, 0x3] - movs r0, 0x1 - strb r0, [r7, 0x4] - ldr r0, _0809C45C @ =0x0000127f - adds r7, r2, r0 - strb r4, [r7] - movs r0, 0x6 - strb r0, [r7, 0x1] - strb r1, [r7, 0x2] - ldr r1, _0809C460 @ =0x00001282 - adds r7, r2, r1 - ldrh r0, [r3] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - strb r4, [r7] - movs r0, 0x7 - strb r0, [r7, 0x1] - adds r7, 0x2 -_0809C43C: - strb r5, [r7] -_0809C43E: - 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 -_0809C450: .4byte gUnknown_083B6DB4 -_0809C454: .4byte 0x0000127a -_0809C458: .4byte 0x000011f2 -_0809C45C: .4byte 0x0000127f -_0809C460: .4byte 0x00001282 - thumb_func_end sub_809C04C - - thumb_func_start sub_809C464 -sub_809C464: @ 809C464 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0809C4D8 @ =gUnknown_020384E4 - ldrb r0, [r0] - mov r8, r0 - ldr r2, _0809C4DC @ =gUnknown_020384E5 - ldrb r4, [r2] - ldr r0, _0809C4E0 @ =gUnknown_083B6DB4 - ldr r1, [r0] - ldr r0, _0809C4E4 @ =0x000011de - adds r7, r1, r0 - movs r0, 0 - strb r0, [r7] - ldr r3, _0809C4E8 @ =0x000011df - adds r5, r1, r3 - strb r0, [r5] - adds r3, 0x4 - adds r6, r1, r3 - strb r0, [r6] - ldr r0, _0809C4EC @ =gMain - mov r12, r0 - ldrh r1, [r0, 0x30] - movs r0, 0x40 - ands r0, r1 - adds r3, r2, 0 - cmp r0, 0 - beq _0809C4A0 - b _0809C62A -_0809C4A0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809C4F0 - movs r1, 0x1 - mov r9, r1 - lsls r0, r4, 24 - movs r3, 0xC0 - lsls r3, 19 - adds r0, r3 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x1D - bgt _0809C4BE - b _0809C648 -_0809C4BE: - movs r1, 0x3 - mov r8, r1 - subs r0, 0x1E - lsls r0, 24 - asrs r0, 24 - bl __divsi3 - lsls r0, 24 - lsrs r4, r0, 24 - mov r3, r9 - strb r3, [r7] - strb r3, [r6] - b _0809C648 - .align 2, 0 -_0809C4D8: .4byte gUnknown_020384E4 -_0809C4DC: .4byte gUnknown_020384E5 -_0809C4E0: .4byte gUnknown_083B6DB4 -_0809C4E4: .4byte 0x000011de -_0809C4E8: .4byte 0x000011df -_0809C4EC: .4byte gMain -_0809C4F0: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809C524 - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - movs r1, 0x6 - bl __modsi3 - lsls r0, 24 - cmp r0, 0 - beq _0809C514 - lsls r0, r4, 24 - movs r1, 0xFF - lsls r1, 24 - b _0809C63C -_0809C514: - movs r0, 0xFF - strb r0, [r5] - lsls r0, r4, 24 - movs r3, 0xA0 - lsls r3, 19 - adds r0, r3 - lsrs r4, r0, 24 - b _0809C648 -_0809C524: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809C554 - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r3, r0] - adds r0, 0x1 - movs r1, 0x6 - bl __modsi3 - cmp r0, 0 - beq _0809C548 - lsls r0, r4, 24 - movs r1, 0x80 - lsls r1, 17 - b _0809C63C -_0809C548: - mov r3, r9 - strb r3, [r5] - lsls r0, r4, 24 - movs r1, 0xFB - lsls r1, 24 - b _0809C63C -_0809C554: - mov r3, r12 - ldrh r1, [r3, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0809C56A - movs r0, 0x1 - mov r9, r0 - movs r1, 0x2 - mov r8, r1 - b _0809C646 -_0809C56A: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C5D4 - bl sub_809CAB0 - lsls r0, 24 - cmp r0, 0 - beq _0809C5D4 - ldr r0, _0809C588 @ =gUnknown_020384E9 - ldrb r0, [r0] - cmp r0, 0 - bne _0809C58C - movs r0, 0x8 - b _0809C658 - .align 2, 0 -_0809C588: .4byte gUnknown_020384E9 -_0809C58C: - movs r0, 0 - bl sub_809CE4C - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _0809C5D4 - lsls r0, 2 - ldr r1, _0809C5A8 @ =_0809C5AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C5A8: .4byte _0809C5AC - .align 2, 0 -_0809C5AC: - .4byte _0809C5C0 - .4byte _0809C5C4 - .4byte _0809C5C8 - .4byte _0809C5CC - .4byte _0809C5D0 -_0809C5C0: - movs r0, 0xB - b _0809C658 -_0809C5C4: - movs r0, 0xC - b _0809C658 -_0809C5C8: - movs r0, 0xD - b _0809C658 -_0809C5CC: - movs r0, 0xE - b _0809C658 -_0809C5D0: - movs r0, 0xF - b _0809C658 -_0809C5D4: - ldr r2, _0809C5E4 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C5E8 - movs r0, 0x10 - b _0809C658 - .align 2, 0 -_0809C5E4: .4byte gMain -_0809C5E8: - ldr r0, _0809C600 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _0809C612 - ldrh r1, [r2, 0x2C] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0809C604 - movs r0, 0xA - b _0809C658 - .align 2, 0 -_0809C600: .4byte gSaveBlock2 -_0809C604: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _0809C612 - movs r0, 0x9 - b _0809C658 -_0809C612: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C624 - bl sub_809CD88 - movs r0, 0 - b _0809C658 -_0809C624: - movs r3, 0 - mov r9, r3 - b _0809C656 -_0809C62A: - movs r0, 0x1 - mov r9, r0 - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x5 - ble _0809C642 - lsls r0, r4, 24 - movs r1, 0xFA - lsls r1, 24 -_0809C63C: - adds r0, r1 - lsrs r4, r0, 24 - b _0809C648 -_0809C642: - movs r3, 0x2 - mov r8, r3 -_0809C646: - movs r4, 0 -_0809C648: - mov r0, r9 - cmp r0, 0 - beq _0809C656 - mov r0, r8 - adds r1, r4, 0 - bl sub_809AF18 -_0809C656: - mov r0, r9 -_0809C658: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C464 - - thumb_func_start sub_809C664 -sub_809C664: @ 809C664 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0809C6D8 @ =gUnknown_020384E4 - ldrb r0, [r0] - mov r10, r0 - ldr r7, _0809C6DC @ =gUnknown_020384E5 - ldrb r4, [r7] - ldr r2, _0809C6E0 @ =gUnknown_083B6DB4 - ldr r5, [r2] - ldr r1, _0809C6E4 @ =0x000011df - adds r0, r5, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _0809C6E8 @ =0x000011de - adds r0, r5, r3 - strb r1, [r0] - adds r3, 0x5 - adds r0, r5, r3 - strb r1, [r0] - mov r9, r1 - mov r8, r1 - ldr r1, _0809C6EC @ =gMain - ldrh r3, [r1, 0x30] - movs r0, 0x40 - ands r0, r3 - adds r6, r7, 0 - mov r12, r2 - adds r2, r1, 0 - cmp r0, 0 - beq _0809C6A8 - b _0809C81C -_0809C6A8: - movs r0, 0x80 - ands r0, r3 - cmp r0, 0 - beq _0809C6F0 - lsls r0, r4, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r4, r0, 24 - asrs r0, 24 - cmp r0, 0x6 - ble _0809C6C2 - movs r4, 0 -_0809C6C2: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r6, r1] - cmp r0, r1 - bne _0809C6D0 - b _0809C83C -_0809C6D0: - movs r2, 0x1 - mov r8, r2 - b _0809C842 - .align 2, 0 -_0809C6D8: .4byte gUnknown_020384E4 -_0809C6DC: .4byte gUnknown_020384E5 -_0809C6E0: .4byte gUnknown_083B6DB4 -_0809C6E4: .4byte 0x000011df -_0809C6E8: .4byte 0x000011de -_0809C6EC: .4byte gMain -_0809C6F0: - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _0809C714 - ldrb r1, [r6] - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0 - beq _0809C714 - movs r3, 0x1 - mov r8, r3 - ldr r2, _0809C710 @ =0x000011e2 - adds r0, r5, r2 - strb r1, [r0] - movs r4, 0 - b _0809C83C - .align 2, 0 -_0809C710: .4byte 0x000011e2 -_0809C714: - ldrh r1, [r2, 0x30] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809C748 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0 - bne _0809C73C - movs r3, 0x1 - mov r8, r3 - mov r1, r12 - ldr r0, [r1] - ldr r2, _0809C738 @ =0x000011e2 - adds r0, r2 - ldrb r4, [r0] - b _0809C83C - .align 2, 0 -_0809C738: .4byte 0x000011e2 -_0809C73C: - movs r3, 0x6 - mov r8, r3 - movs r0, 0 - mov r10, r0 - movs r4, 0 - b _0809C83C -_0809C748: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C7D0 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0x6 - bne _0809C76E - mov r1, r12 - ldr r0, [r1] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809C768 - movs r0, 0x4 - b _0809C84C -_0809C768: - movs r2, 0x1 - mov r9, r2 - b _0809C7D0 -_0809C76E: - bl sub_809CAB0 - lsls r0, 24 - cmp r0, 0 - beq _0809C7D0 - ldr r0, _0809C784 @ =gUnknown_020384E9 - ldrb r0, [r0] - cmp r0, 0 - bne _0809C788 - movs r0, 0x8 - b _0809C84C - .align 2, 0 -_0809C784: .4byte gUnknown_020384E9 -_0809C788: - movs r0, 0 - bl sub_809CE4C - subs r0, 0x1 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _0809C7D0 - lsls r0, 2 - ldr r1, _0809C7A4 @ =_0809C7A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0809C7A4: .4byte _0809C7A8 - .align 2, 0 -_0809C7A8: - .4byte _0809C7BC - .4byte _0809C7C0 - .4byte _0809C7C4 - .4byte _0809C7C8 - .4byte _0809C7CC -_0809C7BC: - movs r0, 0xB - b _0809C84C -_0809C7C0: - movs r0, 0xC - b _0809C84C -_0809C7C4: - movs r0, 0xD - b _0809C84C -_0809C7C8: - movs r0, 0xE - b _0809C84C -_0809C7CC: - movs r0, 0xF - b _0809C84C -_0809C7D0: - ldr r2, _0809C7EC @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C7F8 - ldr r0, _0809C7F0 @ =gUnknown_083B6DB4 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _0809C7F4 - movs r0, 0x10 - b _0809C84C - .align 2, 0 -_0809C7EC: .4byte gMain -_0809C7F0: .4byte gUnknown_083B6DB4 -_0809C7F4: - movs r3, 0x1 - mov r9, r3 -_0809C7F8: - mov r0, r9 - cmp r0, 0 - beq _0809C80A - movs r1, 0x6 - mov r8, r1 - movs r2, 0 - mov r10, r2 - movs r4, 0 - b _0809C83C -_0809C80A: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C83C - bl sub_809CD88 - movs r0, 0 - b _0809C84C -_0809C81C: - lsls r0, r4, 24 - movs r3, 0xFF - lsls r3, 24 - adds r0, r3 - lsrs r4, r0, 24 - cmp r0, 0 - bge _0809C82C - movs r4, 0x6 -_0809C82C: - lsls r0, r4, 24 - asrs r0, 24 - movs r1, 0 - ldrsb r1, [r7, r1] - cmp r0, r1 - beq _0809C83C - movs r0, 0x1 - mov r8, r0 -_0809C83C: - mov r1, r8 - cmp r1, 0 - beq _0809C84A -_0809C842: - mov r0, r10 - adds r1, r4, 0 - bl sub_809AF18 -_0809C84A: - mov r0, r8 -_0809C84C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809C664 - thumb_func_start sub_809C85C +@ u8 sub_809C85C(void) sub_809C85C: @ 809C85C push {r4-r6,lr} - ldr r0, _0809C894 @ =gUnknown_083B6DB4 + ldr r0, _0809C894 @ =gPokemonStorageSystemPtr ldr r2, [r0] ldr r1, _0809C898 @ =0x000011df adds r0, r2, r1 @@ -13677,7 +36,7 @@ sub_809C85C: @ 809C85C movs r5, 0x2 b _0809C922 .align 2, 0 -_0809C894: .4byte gUnknown_083B6DB4 +_0809C894: .4byte gPokemonStorageSystemPtr _0809C898: .4byte 0x000011df _0809C89C: .4byte 0x000011de _0809C8A0: .4byte 0x000011e3 @@ -13771,6 +130,7 @@ _0809C93E: thumb_func_end sub_809C85C thumb_func_start sub_809C944 +@ u8 sub_809C944(void) sub_809C944: @ 809C944 push {r4-r7,lr} ldr r0, _0809C988 @ =gUnknown_020384E4 @@ -13778,7 +138,7 @@ sub_809C944: @ 809C944 mov r12, r0 ldr r7, _0809C98C @ =gUnknown_020384E5 ldrb r3, [r7] - ldr r0, _0809C990 @ =gUnknown_083B6DB4 + ldr r0, _0809C990 @ =gPokemonStorageSystemPtr ldr r1, [r0] ldr r0, _0809C994 @ =0x000011df adds r5, r1, r0 @@ -13808,7 +168,7 @@ sub_809C944: @ 809C944 .align 2, 0 _0809C988: .4byte gUnknown_020384E4 _0809C98C: .4byte gUnknown_020384E5 -_0809C990: .4byte gUnknown_083B6DB4 +_0809C990: .4byte gPokemonStorageSystemPtr _0809C994: .4byte 0x000011df _0809C998: .4byte 0x000011de _0809C99C: .4byte gMain @@ -13963,6 +323,149 @@ sub_809CA8C: @ 809CA8C bx r0 thumb_func_end sub_809CA8C +.if DEBUG + thumb_func_start debug_sub_80AA40C +debug_sub_80AA40C: +.syntax divided + push {lr} + bl sub_809AB8C + lsl r0, r0, #0x10 + cmp r0, #0 + beq ._2084 @cond_branch + bl sub_809CDCC + mov r0, #0x20 + bl sub_809CDEC + mov r0, #0x6 + bl sub_809CDEC + mov r0, #0x1 + b ._2085 +._2084: + mov r0, #0x0 +._2085: + pop {r1} + bx r1 +.syntax unified + thumb_func_end debug_sub_80AA40C +.endif + +.if DEBUG + thumb_func_start sub_809CAB0 +sub_809CAB0: +.syntax divided + push {lr} + ldr r0, ._2088 @ unk_2038790 + ldrb r0, [r0] + cmp r0, #0 + beq ._2086 @cond_branch + bl debug_sub_80AA40C + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._2110 +._2089: + .align 2, 0 +._2088: + .word unk_2038790 +._2086: + bl sub_809CDCC + bl sub_809AB8C + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + ldr r0, ._2094 @ gPokemonStorageSystemPtr + ldr r0, [r0] + ldrb r0, [r0, #0x5] + cmp r0, #0x1 + beq ._2090 @cond_branch + cmp r0, #0x1 + bgt ._2091 @cond_branch + cmp r0, #0 + beq ._2092 @cond_branch + b ._2108 +._2095: + .align 2, 0 +._2094: + .word gPokemonStorageSystemPtr +._2091: + cmp r0, #0x2 + beq ._2096 @cond_branch + b ._2108 +._2090: + cmp r1, #0 + beq ._2108 @cond_branch + mov r0, #0x1 + bl sub_809CDEC + b ._2109 +._2092: + cmp r1, #0 + beq ._2108 @cond_branch + mov r0, #0x2 + bl sub_809CDEC + b ._2109 +._2096: + ldr r0, ._2105 @ gUnknown_020384E6 + ldrb r0, [r0] + cmp r0, #0 + beq ._2102 @cond_branch + cmp r1, #0 + beq ._2103 @cond_branch + mov r0, #0x4 + bl sub_809CDEC + b ._2109 +._2106: + .align 2, 0 +._2105: + .word gUnknown_020384E6 +._2103: + mov r0, #0x5 + bl sub_809CDEC + b ._2109 +._2102: + cmp r1, #0 + beq ._2108 @cond_branch + mov r0, #0x3 + bl sub_809CDEC + b ._2109 +._2108: + mov r0, #0x0 + b ._2110 +._2109: + mov r0, #0x6 + bl sub_809CDEC + ldr r0, ._2114 @ gPokemonStorageSystemPtr + ldr r0, [r0] + ldrb r0, [r0, #0x5] + cmp r0, #0x2 + bne ._2113 @cond_branch + ldr r0, ._2114 + 4 @ gUnknown_020384E4 + ldrb r0, [r0] + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, #0 + bne ._2112 @cond_branch + mov r0, #0x2 + bl sub_809CDEC + b ._2113 +._2115: + .align 2, 0 +._2114: + .word gPokemonStorageSystemPtr + .word gUnknown_020384E4 +._2112: + mov r0, #0x1 + bl sub_809CDEC +._2113: + mov r0, #0x8 + bl sub_809CDEC + mov r0, #0x7 + bl sub_809CDEC + mov r0, #0x0 + bl sub_809CDEC + mov r0, #0x1 +._2110: + pop {r1} + bx r1 +.syntax unified + thumb_func_end sub_809CAB0 +.else thumb_func_start sub_809CAB0 sub_809CAB0: @ 809CAB0 push {lr} @@ -13970,7 +473,7 @@ sub_809CAB0: @ 809CAB0 bl sub_809AB8C lsls r0, 16 lsrs r1, r0, 16 - ldr r0, _0809CAD4 @ =gUnknown_083B6DB4 + ldr r0, _0809CAD4 @ =gPokemonStorageSystemPtr ldr r0, [r0] ldrb r0, [r0, 0x5] cmp r0, 0x1 @@ -13981,7 +484,7 @@ sub_809CAB0: @ 809CAB0 beq _0809CAEA b _0809CB24 .align 2, 0 -_0809CAD4: .4byte gUnknown_083B6DB4 +_0809CAD4: .4byte gPokemonStorageSystemPtr _0809CAD8: cmp r0, 0x2 beq _0809CAF6 @@ -14026,7 +529,7 @@ _0809CB24: _0809CB28: movs r0, 0x6 bl sub_809CDEC - ldr r0, _0809CB4C @ =gUnknown_083B6DB4 + ldr r0, _0809CB4C @ =gPokemonStorageSystemPtr ldr r0, [r0] ldrb r0, [r0, 0x5] cmp r0, 0x2 @@ -14041,7 +544,7 @@ _0809CB28: bl sub_809CDEC b _0809CB5A .align 2, 0 -_0809CB4C: .4byte gUnknown_083B6DB4 +_0809CB4C: .4byte gPokemonStorageSystemPtr _0809CB50: .4byte gUnknown_020384E4 _0809CB54: movs r0, 0x1 @@ -14058,10 +561,11 @@ _0809CB6E: pop {r1} bx r1 thumb_func_end sub_809CAB0 +.endif thumb_func_start sub_809CB74 sub_809CB74: @ 809CB74 - ldr r1, _0809CB90 @ =gUnknown_083B6DB4 + ldr r1, _0809CB90 @ =gPokemonStorageSystemPtr ldr r1, [r1] movs r2, 0x8E lsls r2, 5 @@ -14075,7 +579,7 @@ sub_809CB74: @ 809CB74 strh r1, [r0, 0x22] bx lr .align 2, 0 -_0809CB90: .4byte gUnknown_083B6DB4 +_0809CB90: .4byte gPokemonStorageSystemPtr thumb_func_end sub_809CB74 thumb_func_start unref_sub_809CB94 @@ -14157,7 +661,7 @@ sub_809CC04: @ 809CC04 bl LoadSpritePalettes ldr r0, _0809CCB8 @ =0x0000dac6 bl IndexOfSpritePaletteTag - ldr r1, _0809CCBC @ =gUnknown_083B6DB4 + ldr r1, _0809CCBC @ =gPokemonStorageSystemPtr ldr r6, [r1] ldr r4, _0809CCC0 @ =0x000011e4 adds r7, r6, r4 @@ -14219,7 +723,7 @@ sub_809CC04: @ 809CC04 _0809CCB0: .4byte gHandCursorSpriteSheets _0809CCB4: .4byte gHandCursorSpritePalettes _0809CCB8: .4byte 0x0000dac6 -_0809CCBC: .4byte gUnknown_083B6DB4 +_0809CCBC: .4byte gPokemonStorageSystemPtr _0809CCC0: .4byte 0x000011e4 _0809CCC4: .4byte 0x0000dad1 _0809CCC8: .4byte 0x000011e5 @@ -14259,7 +763,7 @@ _0809CD08: lsrs r2, r0, 24 cmp r2, 0x40 beq _0809CD6C - ldr r0, _0809CD5C @ =gUnknown_083B6DB4 + ldr r0, _0809CD5C @ =gPokemonStorageSystemPtr ldr r0, [r0] ldr r1, _0809CD60 @ =0x000011c4 adds r4, r0, r1 @@ -14291,12 +795,12 @@ _0809CD08: b _0809CD78 .align 2, 0 _0809CD58: .4byte gSpriteTemplate_83BBC88 -_0809CD5C: .4byte gUnknown_083B6DB4 +_0809CD5C: .4byte gPokemonStorageSystemPtr _0809CD60: .4byte 0x000011c4 _0809CD64: .4byte gSprites _0809CD68: .4byte gUnknown_020384E4 _0809CD6C: - ldr r0, _0809CD80 @ =gUnknown_083B6DB4 + ldr r0, _0809CD80 @ =gPokemonStorageSystemPtr ldr r0, [r0] ldr r2, _0809CD84 @ =0x000011c4 adds r0, r2 @@ -14308,7 +812,7 @@ _0809CD78: pop {r0} bx r0 .align 2, 0 -_0809CD80: .4byte gUnknown_083B6DB4 +_0809CD80: .4byte gPokemonStorageSystemPtr _0809CD84: .4byte 0x000011c4 thumb_func_end sub_809CC04 @@ -14323,7 +827,7 @@ sub_809CD88: @ 809CD88 movs r1, 0x1 _0809CD96: strb r1, [r2] - ldr r0, _0809CDC4 @ =gUnknown_083B6DB4 + ldr r0, _0809CDC4 @ =gPokemonStorageSystemPtr ldr r0, [r0] movs r3, 0x8E lsls r3, 5 @@ -14344,13 +848,15 @@ _0809CD96: bx r0 .align 2, 0 _0809CDC0: .4byte gUnknown_020384E9 -_0809CDC4: .4byte gUnknown_083B6DB4 +_0809CDC4: .4byte gPokemonStorageSystemPtr _0809CDC8: .4byte 0x000011e4 thumb_func_end sub_809CD88 +// file boundary here + thumb_func_start sub_809CDCC sub_809CDCC: @ 809CDCC - ldr r0, _0809CDE0 @ =gUnknown_083B6DB4 + ldr r0, _0809CDE0 @ =gPokemonStorageSystemPtr ldr r0, [r0] ldr r2, _0809CDE4 @ =0x000011b8 adds r1, r0, r2 @@ -14361,7 +867,7 @@ sub_809CDCC: @ 809CDCC strb r2, [r0] bx lr .align 2, 0 -_0809CDE0: .4byte gUnknown_083B6DB4 +_0809CDE0: .4byte gPokemonStorageSystemPtr _0809CDE4: .4byte 0x000011b8 _0809CDE8: .4byte 0x000011b9 thumb_func_end sub_809CDCC @@ -14371,7 +877,7 @@ sub_809CDEC: @ 809CDEC push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 - ldr r0, _0809CE3C @ =gUnknown_083B6DB4 + ldr r0, _0809CE3C @ =gPokemonStorageSystemPtr ldr r5, [r0] ldr r0, _0809CE40 @ =0x000011b8 adds r4, r5, r0 @@ -14410,7 +916,7 @@ _0809CE36: pop {r0} bx r0 .align 2, 0 -_0809CE3C: .4byte gUnknown_083B6DB4 +_0809CE3C: .4byte gPokemonStorageSystemPtr _0809CE40: .4byte 0x000011b8 _0809CE44: .4byte gUnknown_083BBCA0 _0809CE48: .4byte 0x000011b9 @@ -14421,7 +927,7 @@ sub_809CE4C: @ 809CE4C push {lr} lsls r0, 24 lsrs r2, r0, 24 - ldr r0, _0809CE70 @ =gUnknown_083B6DB4 + ldr r0, _0809CE70 @ =gPokemonStorageSystemPtr ldr r1, [r0] ldr r3, _0809CE74 @ =0x000011b8 adds r0, r1, r3 @@ -14436,7 +942,7 @@ sub_809CE4C: @ 809CE4C ldrsb r0, [r1, r0] b _0809CE80 .align 2, 0 -_0809CE70: .4byte gUnknown_083B6DB4 +_0809CE70: .4byte gPokemonStorageSystemPtr _0809CE74: .4byte 0x000011b8 _0809CE78: .4byte 0x00001184 _0809CE7C: @@ -14455,7 +961,7 @@ sub_809CE84: @ 809CE84 mov r4, r8 push {r4-r6} sub sp, 0x8 - ldr r0, _0809CF20 @ =gUnknown_083B6DB4 + ldr r0, _0809CF20 @ =gPokemonStorageSystemPtr ldr r4, [r0] ldr r0, _0809CF24 @ =0x000011b8 adds r0, r4 @@ -14483,7 +989,7 @@ sub_809CE84: @ 809CE84 ldrb r1, [r6] movs r2, 0x1D movs r3, 0xF - bl MenuDrawTextWindow + bl Menu_DrawStdWindowFrame ldrb r0, [r5] adds r0, 0x1 lsls r0, 24 @@ -14498,7 +1004,7 @@ sub_809CE84: @ 809CE84 lsls r3, 5 adds r4, r3 adds r3, r4, 0 - bl PrintMenuItems + bl Menu_PrintItems ldrb r1, [r5] adds r1, 0x1 lsls r1, 24 @@ -14525,7 +1031,7 @@ sub_809CE84: @ 809CE84 pop {r0} bx r0 .align 2, 0 -_0809CF20: .4byte gUnknown_083B6DB4 +_0809CF20: .4byte gPokemonStorageSystemPtr _0809CF24: .4byte 0x000011b8 _0809CF28: .4byte 0x000011bc _0809CF2C: .4byte 0x000011b9 @@ -14559,7 +1065,7 @@ _0809CF52: bl PlaySE movs r0, 0x1 negs r0, r0 - bl MoveMenuCursor + bl Menu_MoveCursor b _0809CF8E .align 2, 0 _0809CF6C: .4byte gMain @@ -14571,10 +1077,10 @@ _0809CF70: movs r0, 0x5 bl PlaySE movs r0, 0x1 - bl MoveMenuCursor + bl Menu_MoveCursor b _0809CF8E _0809CF86: - bl GetMenuCursorPos + bl Menu_GetCursorPos lsls r0, 24 lsrs r5, r0, 24 _0809CF8E: @@ -14582,8 +1088,8 @@ _0809CF8E: negs r0, r0 cmp r5, r0 beq _0809CFB2 - bl HandleDestroyMenuCursors - ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 + bl Menu_DestroyCursor + ldr r0, _0809CFD0 @ =gPokemonStorageSystemPtr ldr r1, [r0] ldr r2, _0809CFD4 @ =0x000011ba adds r0, r1, r2 @@ -14593,11 +1099,11 @@ _0809CF8E: ldrb r1, [r1] movs r2, 0x1D movs r3, 0xF - bl MenuZeroFillWindowRect + bl Menu_EraseWindowRect _0809CFB2: cmp r5, 0 blt _0809CFC4 - ldr r0, _0809CFD0 @ =gUnknown_083B6DB4 + ldr r0, _0809CFD0 @ =gPokemonStorageSystemPtr ldr r0, [r0] lsls r1, r5, 3 ldr r2, _0809CFD8 @ =0x00001184 @@ -14611,7 +1117,7 @@ _0809CFC4: pop {r1} bx r1 .align 2, 0 -_0809CFD0: .4byte gUnknown_083B6DB4 +_0809CFD0: .4byte gPokemonStorageSystemPtr _0809CFD4: .4byte 0x000011ba _0809CFD8: .4byte 0x00001184 thumb_func_end sub_809CF30 diff --git a/asm/pokenav.s b/asm/pokenav.s index 83ceed00f..ca65b2e06 100644 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -229,7 +229,7 @@ _080F07E0: lsrs r1, 16 bl sub_80F445C _080F07F4: - ldr r0, _080F0814 @ =gWindowConfig_81E710C + ldr r0, _080F0814 @ =gWindowTemplate_81E710C bl BasicInitMenuWindow ldr r0, _080F0818 @ =gUnknown_083DFEC4 ldr r0, [r0] @@ -237,13 +237,13 @@ _080F07F4: adds r0, r1 movs r1, 0x1 movs r2, 0x6 - bl MenuPrint + bl Menu_PrintText _080F080A: pop {r0} bx r0 .align 2, 0 _080F0810: .4byte 0x00008788 -_080F0814: .4byte gWindowConfig_81E710C +_080F0814: .4byte gWindowTemplate_81E710C _080F0818: .4byte gUnknown_083DFEC4 thumb_func_end ShowMapNamePopUpWindow @@ -252,7 +252,7 @@ sub_80F081C: @ 80F081C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - ldr r0, _080F0838 @ =gWindowConfig_81E710C + ldr r0, _080F0838 @ =gWindowTemplate_81E710C bl BasicInitMenuWindow cmp r5, 0x4 bhi _080F08C6 @@ -262,7 +262,7 @@ sub_80F081C: @ 80F081C ldr r0, [r0] mov pc, r0 .align 2, 0 -_080F0838: .4byte gWindowConfig_81E710C +_080F0838: .4byte gWindowTemplate_81E710C _080F083C: .4byte _080F0840 .align 2, 0 _080F0840: @@ -342,17 +342,17 @@ _080F08E0: .4byte 0x0001869f thumb_func_start sub_80F08E4 sub_80F08E4: @ 80F08E4 push {lr} - ldr r0, _080F08FC @ =gWindowConfig_81E710C + ldr r0, _080F08FC @ =gWindowTemplate_81E710C bl BasicInitMenuWindow movs r0, 0 movs r1, 0x9 movs r2, 0xB movs r3, 0x10 - bl MenuZeroFillWindowRect + bl Menu_EraseWindowRect pop {r0} bx r0 .align 2, 0 -_080F08FC: .4byte gWindowConfig_81E710C +_080F08FC: .4byte gWindowTemplate_81E710C thumb_func_end sub_80F08E4 thumb_func_start sub_80F0900 @@ -376,7 +376,7 @@ sub_80F0900: @ 80F0900 movs r1, 0x1 movs r2, 0x1F movs r3, 0xF - bl MenuZeroFillWindowRect + bl Menu_EraseWindowRect _080F092A: ldrh r0, [r5] lsrs r2, r4, 16 @@ -527,13 +527,13 @@ _080F0A40: adds r0, r4, 0 adds r1, r3, 0 bl sub_80F4428 - ldr r0, _080F0A70 @ =gWindowConfig_81E70D4 + ldr r0, _080F0A70 @ =gWindowTemplate_81E70D4 bl BasicInitMenuWindow lsls r2, r5, 24 lsrs r2, 24 adds r0, r4, 0 movs r1, 0xD - bl MenuPrint + bl Menu_PrintText pop {r4,r5} pop {r0} bx r0 @@ -541,7 +541,7 @@ _080F0A40: _080F0A64: .4byte gUnknown_083DFEC4 _080F0A68: .4byte 0x000087c8 _080F0A6C: .4byte 0x00008788 -_080F0A70: .4byte gWindowConfig_81E70D4 +_080F0A70: .4byte gWindowTemplate_81E70D4 thumb_func_end sub_80F0A24 thumb_func_start sub_80F0A74 @@ -561,13 +561,13 @@ sub_80F0A74: @ 80F0A74 bl sub_80F700C movs r0, 0x1F ands r7, r0 - ldr r0, _080F0AE4 @ =gWindowConfig_81E70D4 + ldr r0, _080F0AE4 @ =gWindowTemplate_81E70D4 bl BasicInitMenuWindow lsls r2, r7, 3 adds r0, r4, 0 movs r1, 0x61 movs r3, 0 - bl MenuPrint_PixelCoords + bl Menu_PrintTextPixelCoords ldr r1, _080F0AE8 @ =0x0000d158 adds r0, r5, r1 ldrh r0, [r0] @@ -597,7 +597,7 @@ sub_80F0A74: @ 80F0A74 .align 2, 0 _080F0ADC: .4byte gUnknown_083DFEC4 _080F0AE0: .4byte 0x00008788 -_080F0AE4: .4byte gWindowConfig_81E70D4 +_080F0AE4: .4byte gWindowTemplate_81E70D4 _080F0AE8: .4byte 0x0000d158 _080F0AEC: .4byte 0x0000ceed _080F0AF0: .4byte 0x0600f000 @@ -688,13 +688,13 @@ _080F0B60: ldrsh r0, [r0, r1] cmp r2, r0 beq _080F0BAA - ldr r0, _080F0BC8 @ =gWindowConfig_81E70D4 + ldr r0, _080F0BC8 @ =gWindowTemplate_81E70D4 bl BasicInitMenuWindow adds r1, r4, 0 adds r3, r1, 0x1 movs r0, 0xC movs r2, 0x1F - bl MenuZeroFillWindowRect + bl Menu_EraseWindowRect _080F0BAA: ldrh r0, [r6] cmp r0, 0 @@ -709,9 +709,9 @@ _080F0BB4: _080F0BBC: .4byte 0x00000306 _080F0BC0: .4byte 0x00008778 _080F0BC4: .4byte 0x0000876c -_080F0BC8: .4byte gWindowConfig_81E70D4 +_080F0BC8: .4byte gWindowTemplate_81E70D4 _080F0BCC: - ldr r0, _080F0C10 @ =gWindowConfig_81E70D4 + ldr r0, _080F0C10 @ =gWindowTemplate_81E70D4 bl BasicInitMenuWindow ldr r1, _080F0C14 @ =0x00008778 adds r0, r5, r1 @@ -726,7 +726,7 @@ _080F0BE2: movs r0, 0xC adds r1, r4, 0 movs r2, 0x1F - bl MenuZeroFillWindowRect + bl Menu_EraseWindowRect adds r4, 0x2 movs r0, 0x1F ands r4, r0 @@ -745,7 +745,7 @@ _080F0BE2: movs r0, 0 b _080F0C22 .align 2, 0 -_080F0C10: .4byte gWindowConfig_81E70D4 +_080F0C10: .4byte gWindowTemplate_81E70D4 _080F0C14: .4byte 0x00008778 _080F0C18: .4byte gUnknown_083DFEC4 _080F0C1C: .4byte 0x0000d15c @@ -804,7 +804,7 @@ _080F0C64: bls _080F0CD0 movs r0, 0 strh r0, [r1] - ldr r0, _080F0CC4 @ =gWindowConfig_81E70D4 + ldr r0, _080F0CC4 @ =gWindowTemplate_81E70D4 bl BasicInitMenuWindow ldr r0, _080F0CC8 @ =0x00008770 adds r1, r4, r0 @@ -835,7 +835,7 @@ _080F0C64: .align 2, 0 _080F0CBC: .4byte 0x00000306 _080F0CC0: .4byte 0x0000ffff -_080F0CC4: .4byte gWindowConfig_81E70D4 +_080F0CC4: .4byte gWindowTemplate_81E70D4 _080F0CC8: .4byte 0x00008770 _080F0CCC: .4byte 0x00008778 _080F0CD0: @@ -942,7 +942,7 @@ _080F0D78: _080F0D8C: movs r0, 0 strh r0, [r1] - ldr r0, _080F0DBC @ =gWindowConfig_81E70D4 + ldr r0, _080F0DBC @ =gWindowTemplate_81E70D4 bl BasicInitMenuWindow ldr r0, _080F0DC0 @ =0x00008778 adds r1, r4, r0 @@ -962,7 +962,7 @@ _080F0D8C: mov pc, r0 .align 2, 0 _080F0DB8: .4byte 0x00000306 -_080F0DBC: .4byte gWindowConfig_81E70D4 +_080F0DBC: .4byte gWindowTemplate_81E70D4 _080F0DC0: .4byte 0x00008778 _080F0DC4: .4byte _080F0DC8 .align 2, 0 @@ -1032,7 +1032,7 @@ _080F0E42: _080F0E54: movs r1, 0x61 movs r3, 0 - bl MenuPrint_PixelCoords + bl Menu_PrintTextPixelCoords b _080F0EA0 .align 2, 0 _080F0E60: .4byte gUnknown_083DFEC4 @@ -1054,7 +1054,7 @@ _080F0E6C: adds r0, r4, 0 movs r1, 0x61 movs r3, 0 - bl MenuPrint_PixelCoords + bl Menu_PrintTextPixelCoords b _080F0D6C .align 2, 0 _080F0E94: .4byte gUnknown_083DFEC4 @@ -1141,13 +1141,13 @@ _080F0F10: adds r4, r0 movs r0, 0x1F ands r4, r0 - ldr r0, _080F0F60 @ =gWindowConfig_81E70D4 + ldr r0, _080F0F60 @ =gWindowTemplate_81E70D4 bl BasicInitMenuWindow adds r3, r4, 0x1 movs r0, 0xC adds r1, r4, 0 movs r2, 0x1F - bl MenuZeroFillWindowRect + bl Menu_EraseWindowRect ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] @@ -1160,7 +1160,7 @@ _080F0F52: .align 2, 0 _080F0F58: .4byte 0x00000306 _080F0F5C: .4byte 0x00008778 -_080F0F60: .4byte gWindowConfig_81E70D4 +_080F0F60: .4byte gWindowTemplate_81E70D4 thumb_func_end sub_80F0EF4 thumb_func_start sub_80F0F64 @@ -1260,7 +1260,7 @@ sub_80F0FFC: @ 80F0FFC adds r0, r5, 0 movs r2, 0 bl GetMapSectionName - ldr r0, _080F1054 @ =gWindowConfig_81E710C + ldr r0, _080F1054 @ =gWindowTemplate_81E710C bl BasicInitMenuWindow adds r0, r5, 0 bl sub_80F19DC @@ -1274,7 +1274,7 @@ sub_80F0FFC: @ 80F0FFC adds r0, r4, 0 movs r1, 0 movs r2, 0x5 - bl MenuPrint + bl Menu_PrintText pop {r4,r5} pop {r0} bx r0 @@ -1282,7 +1282,7 @@ sub_80F0FFC: @ 80F0FFC _080F1048: .4byte gUnknown_083DFEC4 _080F104C: .4byte 0x00008788 _080F1050: .4byte 0x0000ceea -_080F1054: .4byte gWindowConfig_81E710C +_080F1054: .4byte gWindowTemplate_81E710C _080F1058: .4byte 0x0000d138 thumb_func_end sub_80F0FFC @@ -1357,17 +1357,17 @@ _080F10E8: _080F10FC: .4byte gUnknown_083DFEC4 _080F1100: .4byte 0x0000d162 _080F1104: - ldr r0, _080F110C @ =gWindowConfig_81E70B8 - bl SetUpWindowConfig + ldr r0, _080F110C @ =gWindowTemplate_81E70B8 + bl Text_LoadWindowTemplate b _080F1218 .align 2, 0 -_080F110C: .4byte gWindowConfig_81E70B8 +_080F110C: .4byte gWindowTemplate_81E70B8 _080F1110: - ldr r0, _080F1118 @ =gWindowConfig_81E70B8 + ldr r0, _080F1118 @ =gWindowTemplate_81E70B8 bl MultistepInitMenuWindowBegin b _080F1218 .align 2, 0 -_080F1118: .4byte gWindowConfig_81E70B8 +_080F1118: .4byte gWindowTemplate_81E70B8 _080F111C: bl MultistepInitMenuWindowContinue cmp r0, 0 @@ -1376,7 +1376,7 @@ _080F111C: _080F1126: b _080F1226 _080F1128: - bl MenuZeroFillScreen + bl Menu_EraseScreen b _080F1218 _080F112E: bl sub_80F1614 @@ -1761,7 +1761,7 @@ sub_80F1438: @ 80F1438 adds r0, r4, r1 movs r1, 0xD movs r2, 0x1 - bl MenuPrint + bl Menu_PrintText ldr r0, _080F1478 @ =0x00008788 adds r5, r4, r0 ldr r1, _080F147C @ =0x0000876e @@ -1775,7 +1775,7 @@ sub_80F1438: @ 80F1438 adds r0, r5, 0 movs r1, 0x1 movs r2, 0x5 - bl MenuPrint + bl Menu_PrintText pop {r4,r5} pop {r0} bx r0 @@ -1793,7 +1793,7 @@ sub_80F1480: @ 80F1480 movs r1, 0xD movs r2, 0x1B movs r3, 0x10 - bl MenuZeroFillWindowRect + bl Menu_EraseWindowRect pop {r0} bx r0 thumb_func_end sub_80F1480 @@ -1914,11 +1914,11 @@ _080F158A: adds r0, r6, 0 movs r1, 0xC movs r2, 0xD - bl MenuPrint + bl Menu_PrintText adds r0, r7, 0 movs r1, 0xC movs r2, 0xF - bl MenuPrint + bl Menu_PrintText pop {r4-r7} pop {r0} bx r0 @@ -1933,7 +1933,7 @@ sub_80F15A8: @ 80F15A8 movs r1, 0xD movs r2, 0x1B movs r3, 0x10 - bl MenuZeroFillWindowRect + bl Menu_EraseWindowRect ldr r0, _080F1600 @ =gUnknown_083DFEC4 ldr r4, [r0] ldr r0, _080F1604 @ =0x00008788 @@ -1964,7 +1964,7 @@ sub_80F15A8: @ 80F15A8 adds r0, r5, 0 movs r1, 0xC movs r2, 0xD - bl MenuPrint + bl Menu_PrintText pop {r4,r5} pop {r0} bx r0 @@ -2422,7 +2422,7 @@ _080F19B8: movs r1, 0x1 movs r2, 0x70 movs r3, 0x1 - bl MenuPrint_PixelCoords + bl Menu_PrintTextPixelCoords pop {r4,r5} pop {r0} bx r0 @@ -2502,7 +2502,7 @@ _080F1A46: movs r0, 0xE movs r2, 0x1C movs r3, 0xF - bl MenuFillWindowRectWithBlankTile + bl Menu_BlankWindowRect movs r0, 0 strb r0, [r5] _080F1A60: @@ -7663,9 +7663,9 @@ sub_80F4194: @ 80F4194 str r1, [r4, 0x4] str r3, [r4, 0x8] ldr r0, [r4, 0x8] - ldr r0, _080F42B4 @ =gWindowConfig_81E70F0 + ldr r0, _080F42B4 @ =gWindowTemplate_81E70F0 adds r1, r6, 0 - bl sub_8004E3C + bl Text_InitWindow8004E3C movs r3, 0x88 lsls r3, 2 adds r1, r6, r3 @@ -7779,7 +7779,7 @@ _080F42A4: .4byte gUnknown_083DFEC8 _080F42A8: .4byte 0x00001111 _080F42AC: .4byte 0x040000d4 _080F42B0: .4byte 0x81000140 -_080F42B4: .4byte gWindowConfig_81E70F0 +_080F42B4: .4byte gWindowTemplate_81E70F0 _080F42B8: .4byte 0x81000030 _080F42BC: .4byte 0x0fffffff _080F42C0: .4byte 0x80000040 @@ -10956,8 +10956,8 @@ sub_80F5B50: @ 80F5B50 _080F5B68: .4byte gUnknown_083DFEC4 _080F5B6C: .4byte 0x00009345 _080F5B70: - bl dp12_8087EA4 - ldr r0, _080F5BA8 @ =gUnknown_03004DE0 + bl ScanlineEffect_Clear + ldr r0, _080F5BA8 @ =gScanlineEffectRegBuffers movs r2, 0xEF movs r3, 0xF4 lsls r3, 3 @@ -10984,7 +10984,7 @@ _080F5B82: movs r0, 0x1 b _080F5BCE .align 2, 0 -_080F5BA8: .4byte gUnknown_03004DE0 +_080F5BA8: .4byte gScanlineEffectRegBuffers _080F5BAC: .4byte gUnknown_083DFEC4 _080F5BB0: .4byte 0x00009345 _080F5BB4: @@ -10995,7 +10995,7 @@ _080F5BB4: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80895F8 + bl ScanlineEffect_SetParams ldrb r0, [r4] adds r0, 0x1 strb r0, [r4] @@ -11013,14 +11013,14 @@ _080F5BD8: .4byte gUnknown_083E4990 thumb_func_start sub_80F5BDC sub_80F5BDC: @ 80F5BDC push {lr} - ldr r1, _080F5BEC @ =gUnknown_03004DC0 + ldr r1, _080F5BEC @ =gScanlineEffect movs r0, 0x3 strb r0, [r1, 0x15] - bl sub_8089668 + bl ScanlineEffect_InitHBlankDmaTransfer pop {r0} bx r0 .align 2, 0 -_080F5BEC: .4byte gUnknown_03004DC0 +_080F5BEC: .4byte gScanlineEffect thumb_func_end sub_80F5BDC thumb_func_start sub_80F5BF0 @@ -11045,7 +11045,7 @@ sub_80F5BF0: @ 80F5BF0 adds r0, r4, 0 bl sub_80F5A1C movs r6, 0 - ldr r1, _080F5CC4 @ =gUnknown_03004DE0 + ldr r1, _080F5CC4 @ =gScanlineEffectRegBuffers mov r12, r1 movs r0, 0xF0 lsls r0, 3 @@ -11128,7 +11128,7 @@ _080F5CA6: _080F5CB8: .4byte gUnknown_083DFEC4 _080F5CBC: .4byte 0x00009344 _080F5CC0: .4byte 0x0000911c -_080F5CC4: .4byte gUnknown_03004DE0 +_080F5CC4: .4byte gScanlineEffectRegBuffers _080F5CC8: .4byte 0x0000ffff _080F5CCC: .4byte 0x00009130 _080F5CD0: .4byte 0x00009132 @@ -11164,7 +11164,7 @@ sub_80F5CDC: @ 80F5CDC lsls r0, 17 lsrs r5, r0, 16 movs r7, 0 - ldr r1, _080F5DBC @ =gUnknown_03004DE0 + ldr r1, _080F5DBC @ =gScanlineEffectRegBuffers mov r12, r1 movs r4, 0xF0 lsls r4, 3 @@ -11248,7 +11248,7 @@ _080F5DA0: _080F5DB0: .4byte gUnknown_083DFEC4 _080F5DB4: .4byte 0x00009344 _080F5DB8: .4byte 0x0000911c -_080F5DBC: .4byte gUnknown_03004DE0 +_080F5DBC: .4byte gScanlineEffectRegBuffers _080F5DC0: .4byte 0x0000ffff _080F5DC4: .4byte 0x00009130 _080F5DC8: .4byte 0x00009132 diff --git a/asm/psychic.s b/asm/psychic.s deleted file mode 100755 index 7a6000335..000000000 --- a/asm/psychic.s +++ /dev/null @@ -1,2183 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - @ psychic - - thumb_func_start sub_80DB74C -sub_80DB74C: @ 80DB74C - push {r4-r7,lr} - adds r6, r0, 0 - ldr r0, _080DB804 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DB768 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080DB77E -_080DB768: - ldrb r1, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r6, 0x5] - adds r1, r6, 0 - adds r1, 0x43 - movs r0, 0xC8 - strb r0, [r1] -_080DB77E: - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080DB7DA - movs r0, 0x1 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - adds r0, r4, 0 - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080DB7BC - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8076034 -_080DB7BC: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r7 - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080DB7DA - movs r0, 0x1 - eors r5, r0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8076034 -_080DB7DA: - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080DB810 - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080DB810 - ldr r0, _080DB804 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080DB808 - movs r0, 0x48 - strh r0, [r6, 0x20] - movs r0, 0x50 - b _080DB84A - .align 2, 0 -_080DB804: .4byte gAnimBankAttacker -_080DB808: - movs r0, 0xB0 - strh r0, [r6, 0x20] - movs r0, 0x28 - b _080DB84A -_080DB810: - ldr r5, _080DB880 @ =gAnimBankAttacker - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DB826 - ldr r1, _080DB884 @ =gBattleAnimArgs - ldrh r0, [r1] - negs r0, r0 - strh r0, [r1] -_080DB826: - ldrb r0, [r5] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - ldr r4, _080DB884 @ =gBattleAnimArgs - lsrs r0, 24 - ldrh r1, [r4] - adds r0, r1 - strh r0, [r6, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldrh r4, [r4, 0x2] - adds r0, r4 -_080DB84A: - strh r0, [r6, 0x22] - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080DB85C - ldrh r0, [r6, 0x22] - adds r0, 0x9 - strh r0, [r6, 0x22] -_080DB85C: - ldr r0, _080DB884 @ =gBattleAnimArgs - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 20 - movs r1, 0x80 - lsls r1, 1 - adds r0, r1 - strh r0, [r6, 0x2E] - ldr r1, _080DB888 @ =sub_80DB88C - str r1, [r6, 0x1C] - adds r0, r6, 0 - bl _call_via_r1 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB880: .4byte gAnimBankAttacker -_080DB884: .4byte gBattleAnimArgs -_080DB888: .4byte sub_80DB88C - thumb_func_end sub_80DB74C - - thumb_func_start sub_80DB88C -sub_80DB88C: @ 80DB88C - push {lr} - adds r3, r0, 0 - ldr r2, _080DB8B0 @ =REG_BLDALPHA - ldrh r1, [r3, 0x34] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0xD - bne _080DB8B8 - ldr r0, _080DB8B4 @ =sub_80DB8C0 - str r0, [r3, 0x1C] - b _080DB8BC - .align 2, 0 -_080DB8B0: .4byte REG_BLDALPHA -_080DB8B4: .4byte sub_80DB8C0 -_080DB8B8: - adds r0, r1, 0x1 - strh r0, [r3, 0x34] -_080DB8BC: - pop {r0} - bx r0 - thumb_func_end sub_80DB88C - - thumb_func_start sub_80DB8C0 -sub_80DB8C0: @ 80DB8C0 - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _080DB91E - movs r0, 0 - strh r0, [r3, 0x30] - ldrh r4, [r3, 0x2E] - ldr r1, _080DB924 @ =gPlttBufferFaded - adds r0, r4, 0 - adds r0, 0x8 - lsls r0, 1 - adds r0, r1 - ldrh r7, [r0] - movs r5, 0x8 - adds r6, r1, 0 - adds r1, r4, 0x7 - lsls r0, r4, 1 - adds r0, r6 - adds r2, r0, 0 - adds r2, 0x10 - lsls r1, 1 - adds r1, r6 -_080DB8F6: - ldrh r0, [r1] - strh r0, [r2] - subs r1, 0x2 - subs r2, 0x2 - subs r5, 0x1 - cmp r5, 0 - bgt _080DB8F6 - adds r0, r4, 0x1 - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080DB91E - ldr r0, _080DB928 @ =sub_80DB92C - str r0, [r3, 0x1C] -_080DB91E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB924: .4byte gPlttBufferFaded -_080DB928: .4byte sub_80DB92C - thumb_func_end sub_80DB8C0 - - thumb_func_start sub_80DB92C -sub_80DB92C: @ 80DB92C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r2, _080DB9D4 @ =REG_BLDALPHA - ldrh r1, [r5, 0x34] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r5, 0x34] - subs r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DB9CC - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080DB9BC - movs r0, 0x1 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080DB98E - ldr r2, _080DB9D8 @ =gSprites - ldr r0, _080DB9DC @ =gObjectBankIDs - adds r0, r4, r0 - ldrb r1, [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] -_080DB98E: - movs r0, 0x2 - adds r4, r0, 0 - eors r4, r6 - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080DB9BC - ldr r2, _080DB9D8 @ =gSprites - ldr r0, _080DB9DC @ =gObjectBankIDs - adds r0, r4, r0 - ldrb r1, [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] -_080DB9BC: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _080DB9E0 @ =sub_80DB9E4 - str r0, [r5, 0x1C] -_080DB9CC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DB9D4: .4byte REG_BLDALPHA -_080DB9D8: .4byte gSprites -_080DB9DC: .4byte gObjectBankIDs -_080DB9E0: .4byte sub_80DB9E4 - thumb_func_end sub_80DB92C - - thumb_func_start sub_80DB9E4 -sub_80DB9E4: @ 80DB9E4 - push {r4-r6,lr} - adds r6, r0, 0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080DBA3C - movs r0, 0x1 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - eors r0, r1 - negs r1, r0 - orrs r1, r0 - lsrs r5, r1, 31 - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080DBA22 - adds r0, r5, 0 - bl sub_8076464 -_080DBA22: - movs r0, 0x2 - eors r4, r0 - adds r0, r4, 0 - bl IsAnimBankSpriteVisible - lsls r0, 24 - cmp r0, 0 - beq _080DBA3C - movs r0, 0x1 - eors r5, r0 - adds r0, r5, 0 - bl sub_8076464 -_080DBA3C: - ldr r0, _080DBA48 @ =DestroyAnimSprite - str r0, [r6, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DBA48: .4byte DestroyAnimSprite - thumb_func_end sub_80DB9E4 - - thumb_func_start sub_80DBA4C -sub_80DBA4C: @ 80DBA4C - push {r4-r6,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DBAD8 - ldr r5, _080DBA98 @ =gBattleAnimArgs - movs r1, 0x6 - ldrsh r0, [r5, r1] - movs r6, 0 - cmp r0, 0 - bne _080DBA66 - movs r6, 0x1 -_080DBA66: - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080DBAAE - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080DBAAE - ldr r0, _080DBA9C @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080DBAA0 - ldrh r0, [r5] - movs r1, 0x48 - subs r1, r0 - strh r1, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x50 - strh r0, [r4, 0x22] - b _080DBAD0 - .align 2, 0 -_080DBA98: .4byte gBattleAnimArgs -_080DBA9C: .4byte gAnimBankAttacker -_080DBAA0: - ldrh r0, [r5] - adds r0, 0xB0 - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x2] - adds r0, 0x28 - strh r0, [r4, 0x22] - b _080DBAD0 -_080DBAAE: - ldr r0, _080DBAC4 @ =gBattleAnimArgs - movs r1, 0x4 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DBAC8 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80787B0 - b _080DBAD0 - .align 2, 0 -_080DBAC4: .4byte gBattleAnimArgs -_080DBAC8: - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8078764 -_080DBAD0: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DBAEC -_080DBAD8: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _080DBAEC - adds r0, r4, 0 - bl move_anim_8074EE0 -_080DBAEC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80DBA4C - - thumb_func_start sub_80DBAF4 -sub_80DBAF4: @ 80DBAF4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DBB3C @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DBB44 - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r5, 0x20] - subs r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xA - strh r0, [r5, 0x22] - ldr r0, _080DBB40 @ =0x0000ffff - b _080DBB52 - .align 2, 0 -_080DBB3C: .4byte gAnimBankAttacker -_080DBB40: .4byte 0x0000ffff -_080DBB44: - ldrh r0, [r5, 0x20] - adds r0, 0x28 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - subs r0, 0xA - strh r0, [r5, 0x22] - movs r0, 0x1 -_080DBB52: - strh r0, [r5, 0x30] - ldr r1, _080DBB68 @ =DestroyAnimSprite - adds r0, r5, 0 - bl StoreSpriteCallbackInData - ldr r0, _080DBB6C @ =sub_8078600 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBB68: .4byte DestroyAnimSprite -_080DBB6C: .4byte sub_8078600 - thumb_func_end sub_80DBAF4 - - thumb_func_start sub_80DBB70 -sub_80DBB70: @ 80DBB70 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r6, _080DBBF4 @ =gAnimBankAttacker - ldrb r0, [r6] - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - lsls r1, 15 - lsrs r4, r1, 16 - ldrb r0, [r6] - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r1, r0, 16 - lsrs r0, 31 - adds r1, r0 - asrs r1, 1 - negs r1, r1 - lsls r1, 16 - lsrs r7, r1, 16 - ldrb r0, [r6] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DBBB6 - lsls r0, r4, 16 - negs r0, r0 - lsrs r4, r0, 16 -_080DBBB6: - ldrb r0, [r6] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - strh r0, [r5, 0x20] - ldrb r0, [r6] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - adds r0, r7 - strh r0, [r5, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - bgt _080DBBE2 - movs r0, 0x10 - strh r0, [r5, 0x22] -_080DBBE2: - ldr r1, _080DBBF8 @ =sub_80DBC00 - adds r0, r5, 0 - bl StoreSpriteCallbackInData - ldr r0, _080DBBFC @ =sub_8078600 - str r0, [r5, 0x1C] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBBF4: .4byte gAnimBankAttacker -_080DBBF8: .4byte sub_80DBC00 -_080DBBFC: .4byte sub_8078600 - thumb_func_end sub_80DBB70 - - thumb_func_start sub_80DBC00 -sub_80DBC00: @ 80DBC00 - push {r4,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080DBC2C @ =gUnknown_083DA888 - str r0, [r4, 0x10] - movs r0, 0 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl InitSpriteAffineAnim - ldr r0, _080DBC30 @ =sub_80DBC34 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBC2C: .4byte gUnknown_083DA888 -_080DBC30: .4byte sub_80DBC34 - thumb_func_end sub_80DBC00 - - thumb_func_start sub_80DBC34 -sub_80DBC34: @ 80DBC34 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DBC46 - cmp r0, 0x1 - beq _080DBC74 - b _080DBC8C -_080DBC46: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DBC8C - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x12 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _080DBC8C -_080DBC74: - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DBC8C - adds r0, r4, 0 - bl DestroyAnimSprite -_080DBC8C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DBC34 - - thumb_func_start sub_80DBC94 -sub_80DBC94: @ 80DBC94 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _080DBCC4 @ =gTasks - adds r4, r0 - movs r0, 0 - bl GetAnimBankSpriteId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - strh r1, [r4, 0x8] - ldr r2, _080DBCC8 @ =gUnknown_083DA8A4 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080DBCCC @ =sub_80DBCD0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBCC4: .4byte gTasks -_080DBCC8: .4byte gUnknown_083DA8A4 -_080DBCCC: .4byte sub_80DBCD0 - thumb_func_end sub_80DBC94 - - thumb_func_start sub_80DBCD0 -sub_80DBCD0: @ 80DBCD0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DBCF8 @ =gTasks - adds r0, r1 - bl sub_807992C - lsls r0, 24 - cmp r0, 0 - bne _080DBCF0 - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080DBCF0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBCF8: .4byte gTasks - thumb_func_end sub_80DBCD0 - - thumb_func_start sub_80DBCFC -sub_80DBCFC: @ 80DBCFC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DBD48 @ =gTasks - adds r4, r1, r0 - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - strh r1, [r4, 0xC] - ldr r0, _080DBD4C @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - movs r1, 0x8 - cmp r0, 0 - beq _080DBD30 - movs r1, 0x4 -_080DBD30: - strh r1, [r4, 0xE] - ldrb r1, [r4, 0x8] - ldr r2, _080DBD50 @ =gUnknown_083DA8C4 - adds r0, r4, 0 - bl sub_80798F4 - ldr r0, _080DBD54 @ =sub_80DBD58 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBD48: .4byte gTasks -_080DBD4C: .4byte gAnimBankAttacker -_080DBD50: .4byte gUnknown_083DA8C4 -_080DBD54: .4byte sub_80DBD58 - thumb_func_end sub_80DBCFC - - thumb_func_start sub_80DBD58 -sub_80DBD58: @ 80DBD58 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DBD78 @ =gTasks - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DBD7C - cmp r0, 0x1 - beq _080DBD98 - b _080DBDF6 - .align 2, 0 -_080DBD78: .4byte gTasks -_080DBD7C: - adds r0, r4, 0 - bl sub_807992C - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _080DBDF6 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _080DBDF6 -_080DBD98: - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080DBDC0 - ldr r2, _080DBDBC @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x26] - subs r1, 0x8 - strh r1, [r0, 0x26] - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080DBDF6 - .align 2, 0 -_080DBDBC: .4byte gSprites -_080DBDC0: - ldr r3, _080DBDFC @ =gSprites - movs r0, 0x8 - ldrsh r1, [r4, 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] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - ldrb r0, [r4, 0x8] - bl sub_8078F40 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080DBDF6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBDFC: .4byte gSprites - thumb_func_end sub_80DBD58 - - thumb_func_start sub_80DBE00 -sub_80DBE00: @ 80DBE00 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DBE84 @ =gTasks - adds r5, r1, r0 - movs r0, 0 - movs r7, 0x10 - strh r7, [r5, 0xE] - strh r0, [r5, 0x10] - ldr r4, _080DBE88 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x24] - ldrb r0, [r4] - movs r1, 0x1 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldrb r0, [r4] - movs r1, 0 - bl sub_807A100 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, r6 - bcs _080DBE6A - adds r1, r6, 0 -_080DBE6A: - strh r1, [r5, 0x20] - ldr r1, _080DBE8C @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _080DBE90 @ =REG_BLDALPHA - strh r7, [r0] - ldr r0, _080DBE94 @ =sub_80DBE98 - str r0, [r5] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DBE84: .4byte gTasks -_080DBE88: .4byte gAnimBankAttacker -_080DBE8C: .4byte REG_BLDCNT -_080DBE90: .4byte REG_BLDALPHA -_080DBE94: .4byte sub_80DBE98 - thumb_func_end sub_80DBE00 - - thumb_func_start sub_80DBE98 -sub_80DBE98: @ 80DBE98 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DBEBC @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0x1 - beq _080DBF98 - cmp r1, 0x1 - bgt _080DBEC0 - cmp r1, 0 - beq _080DBECE - b _080DC014 - .align 2, 0 -_080DBEBC: .4byte gTasks -_080DBEC0: - cmp r1, 0x2 - bne _080DBEC6 - b _080DBFF4 -_080DBEC6: - cmp r1, 0x3 - bne _080DBECC - b _080DC004 -_080DBECC: - b _080DC014 -_080DBECE: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bgt _080DBEDE - b _080DC014 -_080DBEDE: - strh r1, [r4, 0xA] - ldr r0, _080DBF1C @ =gSpriteTemplate_83DA8DC - movs r2, 0x22 - ldrsh r1, [r4, r2] - movs r3, 0x24 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xC - ldrsh r1, [r4, r0] - adds r1, 0x8 - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x8 - adds r0, r1 - strh r2, [r0] - cmp r2, 0x40 - beq _080DBF82 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DBF3C - cmp r0, 0x1 - bgt _080DBF20 - cmp r0, 0 - beq _080DBF2A - b _080DBF82 - .align 2, 0 -_080DBF1C: .4byte gSpriteTemplate_83DA8DC -_080DBF20: - cmp r0, 0x2 - beq _080DBF54 - cmp r0, 0x3 - beq _080DBF6C - b _080DBF82 -_080DBF2A: - ldr r0, _080DBF38 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - b _080DBF7A - .align 2, 0 -_080DBF38: .4byte gSprites -_080DBF3C: - ldr r0, _080DBF50 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - b _080DBF80 - .align 2, 0 -_080DBF50: .4byte gSprites -_080DBF54: - ldr r1, _080DBF68 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x24] - ldrh r1, [r4, 0x20] - strh r1, [r0, 0x26] - b _080DBF82 - .align 2, 0 -_080DBF68: .4byte gSprites -_080DBF6C: - ldr r0, _080DBF94 @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r4, 0x20] - negs r0, r0 -_080DBF7A: - strh r0, [r1, 0x24] - ldrh r0, [r4, 0x20] - negs r0, r0 -_080DBF80: - strh r0, [r1, 0x26] -_080DBF82: - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _080DC014 - b _080DBFF4 - .align 2, 0 -_080DBF94: .4byte gSprites -_080DBF98: - ldrh r0, [r4, 0xA] - ands r1, r0 - cmp r1, 0 - beq _080DBFA8 - ldrh r0, [r4, 0xE] - subs r0, 0x1 - strh r0, [r4, 0xE] - b _080DBFAE -_080DBFA8: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] -_080DBFAE: - ldr r2, _080DBFFC @ =REG_BLDALPHA - ldrh r0, [r4, 0x10] - lsls r0, 8 - ldrh r1, [r4, 0xE] - orrs r0, r1 - strh r0, [r2] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - bne _080DC014 - movs r5, 0x8 - adds r6, r4, 0 - adds r6, 0x8 -_080DBFCE: - lsls r0, r5, 1 - adds r1, r6, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x40 - beq _080DBFEA - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DC000 @ =gSprites - adds r0, r1 - bl DestroySprite -_080DBFEA: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xC - bls _080DBFCE -_080DBFF4: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DC014 - .align 2, 0 -_080DBFFC: .4byte REG_BLDALPHA -_080DC000: .4byte gSprites -_080DC004: - ldr r0, _080DC01C @ =REG_BLDALPHA - movs r1, 0 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080DC014: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC01C: .4byte REG_BLDALPHA - thumb_func_end sub_80DBE98 - - thumb_func_start sub_80DC020 -sub_80DC020: @ 80DC020 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - subs r0, 0xA - cmp r1, r0 - ble _080DC04A - ldrh r0, [r4, 0x30] - movs r1, 0x1 - ands r1, r0 - adds r3, r4, 0 - adds r3, 0x3E - lsls r1, 2 - ldrb r2, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_080DC04A: - movs r0, 0x30 - ldrsh r1, [r4, r0] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080DC05C - adds r0, r4, 0 - bl DestroyAnimSprite -_080DC05C: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DC020 - - thumb_func_start sub_80DC068 -sub_80DC068: @ 80DC068 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080DC0A4 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080DC094 - ldr r4, _080DC0A8 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x3 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] -_080DC094: - ldrh r0, [r6, 0x2] - strh r0, [r5, 0x2E] - ldr r0, _080DC0AC @ =sub_80DC020 - str r0, [r5, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC0A4: .4byte gBattleAnimArgs -_080DC0A8: .4byte gAnimBankAttacker -_080DC0AC: .4byte sub_80DC020 - thumb_func_end sub_80DC068 - - thumb_func_start sub_80DC0B0 -sub_80DC0B0: @ 80DC0B0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DC10C @ =gTasks - adds r5, r1, r0 - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080DC154 - ldr r0, _080DC110 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080DC120 - ldr r0, _080DC114 @ =0x0000fff6 - strh r0, [r5, 0x1C] - ldr r4, _080DC118 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC11C @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080DC1DE - .align 2, 0 -_080DC10C: .4byte gTasks -_080DC110: .4byte gBattleAnimArgs -_080DC114: .4byte 0x0000fff6 -_080DC118: .4byte gAnimBankTarget -_080DC11C: .4byte gAnimBankAttacker -_080DC120: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080DC14C @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC150 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - b _080DC1D2 - .align 2, 0 -_080DC14C: .4byte gAnimBankAttacker -_080DC150: .4byte gAnimBankTarget -_080DC154: - ldr r0, _080DC198 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _080DC1A8 - ldr r0, _080DC19C @ =0x0000fff6 - strh r0, [r5, 0x1C] - ldr r4, _080DC1A0 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC1A4 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x4 - bl sub_807A100 - adds r0, 0x8 - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x2 - bl sub_807A100 - adds r0, 0x8 - b _080DC1DE - .align 2, 0 -_080DC198: .4byte gBattleAnimArgs -_080DC19C: .4byte 0x0000fff6 -_080DC1A0: .4byte gAnimBankTarget -_080DC1A4: .4byte gAnimBankAttacker -_080DC1A8: - movs r0, 0xA - strh r0, [r5, 0x1C] - ldr r4, _080DC1F0 @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x1E] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - subs r0, 0x8 - strh r0, [r5, 0x20] - ldr r4, _080DC1F4 @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x5 - bl sub_807A100 - subs r0, 0x8 -_080DC1D2: - strh r0, [r5, 0x22] - ldrb r0, [r4] - movs r1, 0x3 - bl sub_807A100 - subs r0, 0x8 -_080DC1DE: - strh r0, [r5, 0x24] - movs r0, 0x6 - strh r0, [r5, 0xA] - ldr r0, _080DC1F8 @ =sub_80DC1FC - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC1F0: .4byte gAnimBankAttacker -_080DC1F4: .4byte gAnimBankTarget -_080DC1F8: .4byte sub_80DC1FC - thumb_func_end sub_80DC0B0 - - thumb_func_start sub_80DC1FC -sub_80DC1FC: @ 80DC1FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DC21C @ =gTasks - adds r5, r0, r1 - movs r0, 0x8 - ldrsh r1, [r5, r0] - cmp r1, 0 - beq _080DC220 - cmp r1, 0x1 - beq _080DC294 - b _080DC2A8 - .align 2, 0 -_080DC21C: .4byte gTasks -_080DC220: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - ble _080DC2A8 - strh r1, [r5, 0xA] - ldr r0, _080DC28C @ =gSpriteTemplate_83DA9AC - movs r2, 0x1E - ldrsh r1, [r5, r2] - movs r3, 0x20 - ldrsh r2, [r5, r3] - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080DC274 - ldr r0, _080DC290 @ =gSprites - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r0 - movs r0, 0x10 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x22] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x36] - ldrh r0, [r5, 0x1C] - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldrb r0, [r5, 0xC] - movs r1, 0x3 - ands r1, r0 - adds r0, r4, 0 - bl StartSpriteAffineAnim -_080DC274: - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080DC2A8 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080DC2A8 - .align 2, 0 -_080DC28C: .4byte gSpriteTemplate_83DA9AC -_080DC290: .4byte gSprites -_080DC294: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _080DC2A8 - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080DC2A8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DC1FC - - thumb_func_start sub_80DC2B0 -sub_80DC2B0: @ 80DC2B0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080DC2CE - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite -_080DC2CE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DC2B0 - - thumb_func_start sub_80DC2D4 -sub_80DC2D4: @ 80DC2D4 - push {r4-r6,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DC30C @ =gTasks - adds r4, r1, r0 - ldr r0, _080DC310 @ =gAnimBankTarget - ldrb r0, [r0] - bl sub_8077FC0 - lsls r0, 24 - lsrs r1, r0, 24 - adds r0, r1, 0 - subs r0, 0x20 - strh r0, [r4, 0x24] - ldr r0, _080DC314 @ =gBattleAnimArgs - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0x1 - beq _080DC32A - cmp r0, 0x1 - bgt _080DC318 - cmp r0, 0 - beq _080DC31E - b _080DC346 - .align 2, 0 -_080DC30C: .4byte gTasks -_080DC310: .4byte gAnimBankTarget -_080DC314: .4byte gBattleAnimArgs -_080DC318: - cmp r0, 0x2 - beq _080DC336 - b _080DC346 -_080DC31E: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0x40 - b _080DC33E -_080DC32A: - movs r0, 0x2 - strh r0, [r4, 0x1E] - movs r0, 0x5 - strh r0, [r4, 0x20] - movs r0, 0xC0 - b _080DC33E -_080DC336: - movs r0, 0x4 - strh r0, [r4, 0x1E] - strh r0, [r4, 0x20] - movs r0, 0 -_080DC33E: - strh r0, [r4, 0x22] - adds r0, r1, 0 - adds r0, 0x20 - strh r0, [r4, 0x26] -_080DC346: - movs r1, 0x24 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _080DC352 - movs r0, 0 - strh r0, [r4, 0x24] -_080DC352: - ldr r0, _080DC36C @ =gAnimBankTarget - ldrb r0, [r0] - bl GetBankIdentity_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DC378 - ldr r0, _080DC370 @ =gBattle_BG1_X - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080DC374 @ =REG_BG1HOFS - b _080DC380 - .align 2, 0 -_080DC36C: .4byte gAnimBankTarget -_080DC370: .4byte gBattle_BG1_X -_080DC374: .4byte REG_BG1HOFS -_080DC378: - ldr r0, _080DC3E0 @ =gBattle_BG2_X - ldrh r0, [r0] - strh r0, [r4, 0x1C] - ldr r0, _080DC3E4 @ =REG_BG2HOFS -_080DC380: - str r0, [sp] - ldrh r1, [r4, 0x24] - lsls r3, r1, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - bgt _080DC3BA - ldr r5, _080DC3E8 @ =gUnknown_03004DE0 - movs r0, 0xF0 - lsls r0, 3 - adds r6, r5, r0 -_080DC39A: - asrs r3, 16 - lsls r1, r3, 1 - adds r2, r1, r5 - ldrh r0, [r4, 0x1C] - strh r0, [r2] - adds r1, r6 - ldrh r0, [r4, 0x1C] - strh r0, [r1] - adds r3, 0x1 - lsls r3, 16 - asrs r1, r3, 16 - movs r2, 0x24 - ldrsh r0, [r4, r2] - adds r0, 0x40 - cmp r1, r0 - ble _080DC39A -_080DC3BA: - ldr r0, _080DC3EC @ =0xa2600001 - str r0, [sp, 0x4] - mov r1, sp - movs r2, 0 - movs r0, 0x1 - strb r0, [r1, 0x8] - mov r0, sp - strb r2, [r0, 0x9] - ldr r0, [sp] - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - bl sub_80895F8 - ldr r0, _080DC3F0 @ =sub_80DC3F4 - str r0, [r4] - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC3E0: .4byte gBattle_BG2_X -_080DC3E4: .4byte REG_BG2HOFS -_080DC3E8: .4byte gUnknown_03004DE0 -_080DC3EC: .4byte 0xa2600001 -_080DC3F0: .4byte sub_80DC3F4 - thumb_func_end sub_80DC2D4 - - thumb_func_start sub_80DC3F4 -sub_80DC3F4: @ 80DC3F4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DC41C @ =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080DC4CE - cmp r0, 0x1 - bgt _080DC420 - cmp r0, 0 - beq _080DC426 - b _080DC4E6 - .align 2, 0 -_080DC41C: .4byte gTasks -_080DC420: - cmp r0, 0x2 - beq _080DC4E0 - b _080DC4E6 -_080DC426: - ldrh r3, [r5, 0x22] - ldrh r4, [r5, 0x24] - movs r2, 0x24 - ldrsh r1, [r5, r2] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r1, r0 - bgt _080DC4BE - ldr r0, _080DC470 @ =gSineTable - mov r9, r0 - movs r7, 0x3 - ldr r1, _080DC474 @ =gUnknown_03004DE0 - mov r12, r1 - movs r2, 0xF0 - lsls r2, 3 - add r2, r12 - mov r8, r2 -_080DC448: - lsls r2, r3, 16 - asrs r0, r2, 15 - add r0, r9 - movs r3, 0 - ldrsh r0, [r0, r3] - movs r3, 0x20 - ldrsh r1, [r5, r3] - asrs r0, r1 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r3, r0, 16 - adds r6, r2, 0 - cmp r3, 0 - ble _080DC478 - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - adds r0, r3, r0 - b _080DC484 - .align 2, 0 -_080DC470: .4byte gSineTable -_080DC474: .4byte gUnknown_03004DE0 -_080DC478: - cmp r3, 0 - bge _080DC488 - ldrh r1, [r5, 0xA] - adds r0, r7, 0 - ands r0, r1 - subs r0, r3, r0 -_080DC484: - lsls r0, 16 - lsrs r1, r0, 16 -_080DC488: - lsls r2, r4, 16 - asrs r2, 16 - lsls r3, r2, 1 - mov r0, r12 - adds r4, r3, r0 - ldrh r0, [r5, 0x1C] - lsls r1, 16 - asrs r1, 16 - adds r0, r1, r0 - strh r0, [r4] - add r3, r8 - ldrh r0, [r5, 0x1C] - adds r1, r0 - strh r1, [r3] - asrs r0, r6, 16 - ldrh r1, [r5, 0x1E] - adds r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r2, 0x1 - lsls r2, 16 - lsrs r4, r2, 16 - asrs r2, 16 - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r2, r0 - ble _080DC448 -_080DC4BE: - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - ble _080DC4E6 - b _080DC4D4 -_080DC4CE: - ldr r1, _080DC4DC @ =gUnknown_03004DC0 - movs r0, 0x3 - strb r0, [r1, 0x15] -_080DC4D4: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080DC4E6 - .align 2, 0 -_080DC4DC: .4byte gUnknown_03004DC0 -_080DC4E0: - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080DC4E6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DC3F4 - - thumb_func_start sub_80DC4F4 -sub_80DC4F4: @ 80DC4F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080DC528 @ =gTasks - adds r7, r0, r1 - bl AllocOamMatrix - lsls r0, 24 - lsrs r5, r0, 24 - mov r10, r5 - adds r6, r5, 0 - cmp r6, 0xFF - bne _080DC52C - adds r0, r4, 0 - bl DestroyAnimVisualTask - b _080DC5D6 - .align 2, 0 -_080DC528: .4byte gTasks -_080DC52C: - ldr r1, _080DC550 @ =gBattleAnimArgs - ldrb r0, [r1] - bl duplicate_obj_of_side_rel2move_in_transparent_mode - lsls r0, 16 - lsrs r1, r0, 16 - mov r9, r1 - asrs r0, 16 - cmp r0, 0 - bge _080DC554 - adds r0, r5, 0 - bl FreeOamMatrix - mov r0, r8 - bl DestroyAnimVisualTask - b _080DC5D6 - .align 2, 0 -_080DC550: .4byte gBattleAnimArgs -_080DC554: - ldr r2, _080DC5E4 @ =gSprites - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r2, 0 - adds r0, 0x1C - adds r0, r4, r0 - ldr r1, _080DC5E8 @ =SpriteCallbackDummy - str r1, [r0] - adds r4, r2 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1F - ands r6, r0 - lsls r2, r6, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r1, r4, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - ldr r1, _080DC5EC @ =gBattleAnimArgs - ldrb r0, [r1] - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x22] - mov r0, r10 - strh r0, [r7, 0x24] - mov r1, r9 - strh r1, [r7, 0x26] - ldr r0, _080DC5F0 @ =sub_80DC5F4 - str r0, [r7] -_080DC5D6: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DC5E4: .4byte gSprites -_080DC5E8: .4byte SpriteCallbackDummy -_080DC5EC: .4byte gBattleAnimArgs -_080DC5F0: .4byte sub_80DC5F4 - thumb_func_end sub_80DC4F4 - - thumb_func_start sub_80DC5F4 -sub_80DC5F4: @ 80DC5F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080DC618 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080DC678 - cmp r0, 0x1 - bgt _080DC61C - cmp r0, 0 - beq _080DC626 - b _080DC6F8 - .align 2, 0 -_080DC618: .4byte gTasks -_080DC61C: - cmp r0, 0x2 - beq _080DC6C8 - cmp r0, 0x3 - beq _080DC6E8 - b _080DC6F8 -_080DC626: - ldrh r0, [r4, 0xA] - adds r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080DC674 @ =gSineTable - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8079AB8 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0x30 - bne _080DC6F8 - b _080DC6DA - .align 2, 0 -_080DC674: .4byte gSineTable -_080DC678: - ldrh r0, [r4, 0xA] - subs r0, 0x4 - strh r0, [r4, 0xA] - ldr r1, _080DC6C4 @ =gSineTable - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r1, 16 - asrs r1, 17 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xC - ldrsh r2, [r4, r1] - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - lsls r1, 24 - lsrs r1, 24 - bl sub_8079AB8 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080DC6F8 - b _080DC6DA - .align 2, 0 -_080DC6C4: .4byte gSineTable -_080DC6C8: - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DC6E4 @ =gSprites - adds r0, r1 - bl obj_delete_but_dont_free_vram -_080DC6DA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DC6F8 - .align 2, 0 -_080DC6E4: .4byte gSprites -_080DC6E8: - ldrh r0, [r4, 0x24] - lsls r0, 24 - lsrs r0, 24 - bl FreeOamMatrix - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080DC6F8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DC5F4 - - thumb_func_start sub_80DC700 -sub_80DC700: @ 80DC700 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080DC778 - cmp r0, 0x1 - bgt _080DC716 - cmp r0, 0 - beq _080DC720 - b _080DC818 -_080DC716: - cmp r0, 0x2 - beq _080DC7AA - cmp r0, 0x3 - beq _080DC808 - b _080DC818 -_080DC720: - ldr r4, _080DC76C @ =gAnimBankAttacker - ldrb r0, [r4] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x20] - ldrb r0, [r4] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0x22] - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080DC74E - ldrh r0, [r5, 0x22] - adds r0, 0xC - strh r0, [r5, 0x22] -_080DC74E: - movs r0, 0x8 - strh r0, [r5, 0x30] - ldr r1, _080DC770 @ =REG_BLDCNT - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _080DC774 @ =REG_BLDALPHA - ldrh r1, [r5, 0x30] - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r0, r1 - strh r0, [r2] - b _080DC7A2 - .align 2, 0 -_080DC76C: .4byte gAnimBankAttacker -_080DC770: .4byte REG_BLDCNT -_080DC774: .4byte REG_BLDALPHA -_080DC778: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080DC818 - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - movs r0, 0xCB - bl PlaySE12WithPanning - adds r0, r5, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim -_080DC7A2: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DC818 -_080DC7AA: - ldrh r0, [r5, 0x32] - adds r1, r0, 0x1 - strh r1, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080DC7E8 - movs r0, 0 - strh r0, [r5, 0x32] - ldrh r1, [r5, 0x30] - subs r1, 0x1 - strh r1, [r5, 0x30] - ldr r2, _080DC804 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DC7E8 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080DC7E8: - movs r0, 0xE0 - lsls r0, 2 - adds r2, r0, 0 - ldrh r1, [r5, 0x34] - adds r2, r1 - lsls r1, r2, 16 - asrs r1, 24 - ldrh r0, [r5, 0x26] - subs r0, r1 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r2, r0 - strh r2, [r5, 0x34] - b _080DC818 - .align 2, 0 -_080DC804: .4byte REG_BLDALPHA -_080DC808: - ldr r0, _080DC820 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r5, 0 - bl DestroyAnimSprite -_080DC818: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC820: .4byte REG_BLDCNT - thumb_func_end sub_80DC700 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rock.s b/asm/rock.s deleted file mode 100755 index 923c842be..000000000 --- a/asm/rock.s +++ /dev/null @@ -1,1643 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - @ rock - - thumb_func_start sub_80DCE9C -sub_80DCE9C: @ 80DCE9C - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080DCF08 @ =gBattleAnimArgs - movs r1, 0x6 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080DCEBC - ldr r0, _080DCF0C @ =gAnimBankTarget - ldrb r0, [r0] - adds r2, r5, 0 - adds r2, 0x20 - adds r3, r5, 0 - adds r3, 0x22 - movs r1, 0 - bl sub_807A3FC -_080DCEBC: - ldrh r0, [r6] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r4, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0xE - strh r0, [r5, 0x22] - ldrb r1, [r6, 0x2] - adds r0, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - strh r4, [r5, 0x2E] - strh r4, [r5, 0x30] - movs r0, 0x4 - strh r0, [r5, 0x32] - movs r0, 0x10 - strh r0, [r5, 0x34] - ldr r0, _080DCF10 @ =0x0000ffba - strh r0, [r5, 0x36] - ldrh r0, [r6, 0x4] - strh r0, [r5, 0x38] - ldr r1, _080DCF14 @ =sub_80DCF1C - adds r0, r5, 0 - bl StoreSpriteCallbackInData - ldr r1, _080DCF18 @ =sub_8078278 - str r1, [r5, 0x1C] - adds r0, r5, 0 - bl _call_via_r1 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DCF08: .4byte gBattleAnimArgs -_080DCF0C: .4byte gAnimBankTarget -_080DCF10: .4byte 0x0000ffba -_080DCF14: .4byte sub_80DCF1C -_080DCF18: .4byte sub_8078278 - thumb_func_end sub_80DCE9C - - thumb_func_start sub_80DCF1C -sub_80DCF1C: @ 80DCF1C - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x38] - ldrh r2, [r4, 0x20] - adds r0, r1, r2 - strh r0, [r4, 0x20] - movs r0, 0xC0 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r0, 0x4 - strh r0, [r4, 0x32] - movs r0, 0x20 - strh r0, [r4, 0x34] - ldr r0, _080DCF54 @ =0x0000ffe8 - strh r0, [r4, 0x36] - ldr r1, _080DCF58 @ =move_anim_8074EE0 - adds r0, r4, 0 - bl StoreSpriteCallbackInData - ldr r1, _080DCF5C @ =sub_8078278 - str r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DCF54: .4byte 0x0000ffe8 -_080DCF58: .4byte move_anim_8074EE0 -_080DCF5C: .4byte sub_8078278 - thumb_func_end sub_80DCF1C - - thumb_func_start sub_80DCF60 -sub_80DCF60: @ 80DCF60 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _080DCF88 @ =gBattleAnimArgs - ldrb r1, [r4, 0xA] - bl StartSpriteAnim - adds r0, r5, 0 - bl AnimateSprite - ldr r0, _080DCF8C @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DCF90 - ldrh r0, [r5, 0x20] - ldrh r1, [r4] - subs r0, r1 - b _080DCF96 - .align 2, 0 -_080DCF88: .4byte gBattleAnimArgs -_080DCF8C: .4byte gAnimBankAttacker -_080DCF90: - ldrh r0, [r4] - ldrh r1, [r5, 0x20] - adds r0, r1 -_080DCF96: - strh r0, [r5, 0x20] - ldr r3, _080DCFD8 @ =gBattleAnimArgs - ldrh r2, [r3, 0x2] - ldrh r0, [r5, 0x22] - adds r2, r0 - movs r4, 0 - strh r2, [r5, 0x22] - ldrh r0, [r3, 0x8] - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x20] - strh r0, [r5, 0x30] - ldrh r1, [r3, 0x4] - adds r0, r1 - strh r0, [r5, 0x32] - strh r2, [r5, 0x34] - ldrh r0, [r3, 0x6] - adds r2, r0 - strh r2, [r5, 0x36] - adds r0, r5, 0 - bl sub_8078A5C - strh r4, [r5, 0x34] - strh r4, [r5, 0x36] - ldr r0, _080DCFDC @ =sub_8078394 - str r0, [r5, 0x1C] - ldr r1, _080DCFE0 @ =move_anim_8074EE0 - adds r0, r5, 0 - bl StoreSpriteCallbackInData - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCFD8: .4byte gBattleAnimArgs -_080DCFDC: .4byte sub_8078394 -_080DCFE0: .4byte move_anim_8074EE0 - thumb_func_end sub_80DCF60 - - thumb_func_start sub_80DCFE4 -sub_80DCFE4: @ 80DCFE4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DCFFC @ =gBattleAnimArgs - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _080DD000 - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - b _080DD008 - .align 2, 0 -_080DCFFC: .4byte gBattleAnimArgs -_080DD000: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078764 -_080DD008: - ldr r1, _080DD024 @ =gBattleAnimArgs - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x30] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0x32] - ldrh r0, [r1, 0xA] - strh r0, [r4, 0x34] - ldr r0, _080DD028 @ =sub_80DD02C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD024: .4byte gBattleAnimArgs -_080DD028: .4byte sub_80DD02C - thumb_func_end sub_80DCFE4 - - thumb_func_start sub_80DD02C -sub_80DD02C: @ 80DD02C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x36] - adds r0, r1 - strh r0, [r4, 0x36] - lsls r0, 16 - asrs r0, 24 - negs r0, r0 - strh r0, [r4, 0x26] - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x34 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x32] - ldrh r1, [r4, 0x38] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x2E] - subs r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080DD072 - adds r0, r4, 0 - bl DestroyAnimSprite -_080DD072: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD02C - - thumb_func_start do_boulder_dust -do_boulder_dust: @ 80DD078 - push {r4-r6,lr} - sub sp, 0x10 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, _080DD154 @ =REG_BLDCNT - ldr r2, _080DD158 @ =0x00003f42 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080DD15C @ =REG_BG1CNT - ldrb r1, [r4] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r4, 0x1] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080DD0C4 - ldrb r0, [r4] - movs r1, 0xD - negs r1, r1 - ands r1, r0 - movs r0, 0x4 - orrs r1, r0 - strb r1, [r4] -_080DD0C4: - ldr r0, _080DD160 @ =gBattle_BG1_X - strh r5, [r0] - ldr r0, _080DD164 @ =gBattle_BG1_Y - strh r5, [r0] - ldr r0, _080DD168 @ =REG_BG1HOFS - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - str r5, [sp, 0xC] - ldr r2, _080DD16C @ =0x040000d4 - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _080DD170 @ =0x85000400 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _080DD174 @ =gBattleAnimBackgroundTilemap_SandstormBrew - bl LZDecompressVram - ldr r0, _080DD178 @ =gBattleAnimBackgroundImage_SandstormBrew - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _080DD17C @ =gBattleAnimSpritePalette_261 - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - bl IsContest - lsls r0, 24 - cmp r0, 0 - beq _080DD120 - mov r0, sp - ldrb r0, [r0, 0x8] - ldr r1, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_80763FC -_080DD120: - ldr r0, _080DD180 @ =gBattleAnimArgs - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080DD13A - ldr r0, _080DD184 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DD13A - movs r5, 0x1 -_080DD13A: - ldr r0, _080DD188 @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - strh r5, [r1, 0x8] - ldr r0, _080DD18C @ =sub_80DD190 - str r0, [r1] - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DD154: .4byte REG_BLDCNT -_080DD158: .4byte 0x00003f42 -_080DD15C: .4byte REG_BG1CNT -_080DD160: .4byte gBattle_BG1_X -_080DD164: .4byte gBattle_BG1_Y -_080DD168: .4byte REG_BG1HOFS -_080DD16C: .4byte 0x040000d4 -_080DD170: .4byte 0x85000400 -_080DD174: .4byte gBattleAnimBackgroundTilemap_SandstormBrew -_080DD178: .4byte gBattleAnimBackgroundImage_SandstormBrew -_080DD17C: .4byte gBattleAnimSpritePalette_261 -_080DD180: .4byte gBattleAnimArgs -_080DD184: .4byte gAnimBankAttacker -_080DD188: .4byte gTasks -_080DD18C: .4byte sub_80DD190 - thumb_func_end do_boulder_dust - - thumb_func_start sub_80DD190 -sub_80DD190: @ 80DD190 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080DD1C0 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r3, r1, 0 - cmp r0, 0 - bne _080DD1CC - ldr r1, _080DD1C4 @ =gBattle_BG1_X - ldr r5, _080DD1C8 @ =0x0000fffa - adds r0, r5, 0 - ldrh r2, [r1] - adds r0, r2 - b _080DD1D2 - .align 2, 0 -_080DD1C0: .4byte gTasks -_080DD1C4: .4byte gBattle_BG1_X -_080DD1C8: .4byte 0x0000fffa -_080DD1CC: - ldr r1, _080DD204 @ =gBattle_BG1_X - ldrh r0, [r1] - adds r0, 0x6 -_080DD1D2: - strh r0, [r1] - adds r4, r1, 0 - ldr r1, _080DD208 @ =gBattle_BG1_Y - ldr r5, _080DD20C @ =0x0000ffff - adds r0, r5, 0 - ldrh r2, [r1] - adds r0, r2 - strh r0, [r1] - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r0, r3 - movs r5, 0x20 - ldrsh r0, [r0, r5] - mov r8, r2 - adds r2, r1, 0 - cmp r0, 0x4 - bls _080DD1F8 - b _080DD37C -_080DD1F8: - lsls r0, 2 - ldr r1, _080DD210 @ =_080DD214 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DD204: .4byte gBattle_BG1_X -_080DD208: .4byte gBattle_BG1_Y -_080DD20C: .4byte 0x0000ffff -_080DD210: .4byte _080DD214 - .align 2, 0 -_080DD214: - .4byte _080DD228 - .4byte _080DD270 - .4byte _080DD292 - .4byte _080DD2D4 - .4byte _080DD358 -_080DD228: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - movs r4, 0 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _080DD242 - b _080DD37C -_080DD242: - strh r4, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - adds r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080DD26C @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r0, [r3, r2] - cmp r0, 0x7 - beq _080DD260 - b _080DD37C -_080DD260: - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r4, [r3, 0x1E] - b _080DD37C - .align 2, 0 -_080DD26C: .4byte REG_BLDALPHA -_080DD270: - mov r5, r8 - adds r0, r5, r7 - lsls r0, 3 - adds r1, r0, r3 - ldrh r0, [r1, 0x1E] - adds r0, 0x1 - strh r0, [r1, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x65 - bne _080DD37C - movs r0, 0x7 - strh r0, [r1, 0x1E] - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - b _080DD37C -_080DD292: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 3 - adds r3, r0, r3 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bne _080DD37C - movs r0, 0 - strh r0, [r3, 0x1C] - ldrh r1, [r3, 0x1E] - subs r1, 0x1 - strh r1, [r3, 0x1E] - ldr r2, _080DD2D0 @ =REG_BLDALPHA - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x1E - ldrsh r1, [r3, r2] - cmp r1, 0 - bne _080DD37C - ldrh r0, [r3, 0x20] - adds r0, 0x1 - strh r0, [r3, 0x20] - strh r1, [r3, 0x1E] - b _080DD37C - .align 2, 0 -_080DD2D0: .4byte REG_BLDALPHA -_080DD2D4: - mov r0, sp - bl sub_8078914 - ldr r2, [sp] - movs r3, 0x80 - lsls r3, 6 - add r5, sp, 0xC - movs r6, 0 - ldr r1, _080DD38C @ =0x040000d4 - movs r4, 0x80 - lsls r4, 5 - mov r9, r5 - ldr r0, _080DD390 @ =0x85000400 - mov r12, r0 - movs r0, 0x85 - lsls r0, 24 - mov r10, r0 -_080DD2F6: - str r6, [sp, 0xC] - mov r0, r9 - str r0, [r1] - str r2, [r1, 0x4] - mov r0, r12 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r4 - subs r3, r4 - cmp r3, r4 - bhi _080DD2F6 - str r6, [sp, 0xC] - str r5, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 2 - mov r2, r10 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r0, _080DD38C @ =0x040000d4 - str r5, [r0] - str r1, [r0, 0x4] - ldr r1, _080DD394 @ =0x85000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - bl IsContest - lsls r0, 24 - cmp r0, 0 - bne _080DD344 - ldr r2, _080DD398 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_080DD344: - ldr r0, _080DD39C @ =gTasks - mov r5, r8 - adds r1, r5, r7 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x20] - adds r0, 0x1 - strh r0, [r1, 0x20] - ldr r4, _080DD3A0 @ =gBattle_BG1_X - ldr r2, _080DD3A4 @ =gBattle_BG1_Y -_080DD358: - movs r1, 0 - strh r1, [r4] - strh r1, [r2] - ldr r0, _080DD3A8 @ =REG_BLDCNT - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r2, _080DD398 @ =REG_BG1CNT - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080DD37C: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD38C: .4byte 0x040000d4 -_080DD390: .4byte 0x85000400 -_080DD394: .4byte 0x85000200 -_080DD398: .4byte REG_BG1CNT -_080DD39C: .4byte gTasks -_080DD3A0: .4byte gBattle_BG1_X -_080DD3A4: .4byte gBattle_BG1_Y -_080DD3A8: .4byte REG_BLDCNT - thumb_func_end sub_80DD190 - - thumb_func_start sub_80DD3AC -sub_80DD3AC: @ 80DD3AC - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DD428 - ldr r4, _080DD3F0 @ =gBattleAnimArgs - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _080DD3F8 - ldr r0, _080DD3F4 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080DD3F8 - movs r0, 0x98 - lsls r0, 1 - strh r0, [r5, 0x20] - ldrh r0, [r4, 0x2] - negs r0, r0 - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r5, 0x38] - ldrb r1, [r5, 0x3] - subs r0, 0x40 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r5, 0x3] - b _080DD3FC - .align 2, 0 -_080DD3F0: .4byte gBattleAnimArgs -_080DD3F4: .4byte gAnimBankAttacker -_080DD3F8: - ldr r0, _080DD41C @ =0x0000ffc0 - strh r0, [r5, 0x20] -_080DD3FC: - ldr r4, _080DD420 @ =gBattleAnimArgs - ldrh r0, [r4] - strh r0, [r5, 0x22] - ldr r1, _080DD424 @ =gUnknown_083DAD10 - adds r0, r5, 0 - bl SetSubspriteTables - ldrh r0, [r4, 0x2] - strh r0, [r5, 0x30] - ldrh r0, [r4, 0x4] - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _080DD484 - .align 2, 0 -_080DD41C: .4byte 0x0000ffc0 -_080DD420: .4byte gBattleAnimArgs -_080DD424: .4byte gUnknown_083DAD10 -_080DD428: - ldrh r1, [r5, 0x30] - ldrh r3, [r5, 0x34] - adds r1, r3 - ldrh r2, [r5, 0x32] - ldrh r0, [r5, 0x36] - adds r2, r0 - lsls r0, r1, 16 - asrs r0, 24 - ldrh r3, [r5, 0x24] - adds r0, r3 - strh r0, [r5, 0x24] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r3, [r5, 0x26] - adds r0, r3 - strh r0, [r5, 0x26] - movs r0, 0xFF - ands r1, r0 - strh r1, [r5, 0x34] - ands r2, r0 - strh r2, [r5, 0x36] - movs r1, 0x38 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DD46E - movs r2, 0x20 - ldrsh r0, [r5, r2] - movs r3, 0x24 - ldrsh r1, [r5, r3] - adds r0, r1 - movs r1, 0x88 - lsls r1, 1 - cmp r0, r1 - ble _080DD484 - b _080DD480 -_080DD46E: - movs r1, 0x20 - ldrsh r0, [r5, r1] - movs r2, 0x24 - ldrsh r1, [r5, r2] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - bge _080DD484 -_080DD480: - ldr r0, _080DD48C @ =DestroyAnimSprite - str r0, [r5, 0x1C] -_080DD484: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD48C: .4byte DestroyAnimSprite - thumb_func_end sub_80DD3AC - - thumb_func_start sub_80DD490 -sub_80DD490: @ 80DD490 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DD4C8 @ =gBattleAnimArgs - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl sub_80787B0 - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x32] - ldrh r0, [r5, 0x4] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x36] - ldr r0, _080DD4CC @ =sub_8078B34 - str r0, [r4, 0x1C] - ldr r1, _080DD4D0 @ =DestroyAnimSprite - adds r0, r4, 0 - bl StoreSpriteCallbackInData - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD4C8: .4byte gBattleAnimArgs -_080DD4CC: .4byte sub_8078B34 -_080DD4D0: .4byte DestroyAnimSprite - thumb_func_end sub_80DD490 - - thumb_func_start sub_80DD4D4 -sub_80DD4D4: @ 80DD4D4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080DD554 @ =gTasks - adds r6, r1, r0 - ldr r5, _080DD558 @ =gAnimBankAttacker - ldrb r0, [r5] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r0, [r5] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 8 - movs r1, 0xC0 - lsls r1, 13 - adds r0, r1 - lsrs r7, r0, 16 - ldr r4, _080DD55C @ =gAnimBankTarget - ldrb r0, [r4] - movs r1, 0x2 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldrb r0, [r4] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 8 - movs r2, 0xC0 - lsls r2, 13 - adds r0, r2 - lsrs r0, 16 - mov r8, r0 - ldrb r1, [r5] - movs r0, 0x2 - eors r0, r1 - ldrb r4, [r4] - cmp r0, r4 - bne _080DD544 - mov r8, r7 -_080DD544: - bl sub_80DD8BC - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _080DD560 - movs r0, 0x20 - b _080DD566 - .align 2, 0 -_080DD554: .4byte gTasks -_080DD558: .4byte gAnimBankAttacker -_080DD55C: .4byte gAnimBankTarget -_080DD560: - lsls r1, r5, 3 - movs r0, 0x30 - subs r0, r1 -_080DD566: - strh r0, [r6, 0x18] - movs r4, 0 - strh r4, [r6, 0x8] - strh r4, [r6, 0x1E] - strh r4, [r6, 0x1A] - movs r0, 0x1 - strh r0, [r6, 0x20] - movs r1, 0x18 - ldrsh r0, [r6, r1] - cmp r0, 0 - bge _080DD57E - adds r0, 0x7 -_080DD57E: - asrs r0, 3 - subs r0, 0x1 - strh r0, [r6, 0x1C] - mov r2, r9 - lsls r0, r2, 3 - strh r0, [r6, 0xC] - lsls r0, r7, 3 - strh r0, [r6, 0xE] - mov r1, r10 - subs r0, r1, r2 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x10] - mov r1, r8 - subs r0, r1, r7 - lsls r0, 3 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x12] - strh r4, [r6, 0x14] - strh r4, [r6, 0x16] - movs r0, 0x40 - negs r0, r0 - bl BattleAnimAdjustPanning - adds r4, r0, 0 - lsls r4, 24 - asrs r4, 8 - lsrs r4, 16 - movs r0, 0x3F - bl BattleAnimAdjustPanning - lsls r0, 24 - strh r4, [r6, 0x22] - asrs r0, 24 - lsls r4, 16 - asrs r4, 16 - subs r0, r4 - movs r2, 0x18 - ldrsh r1, [r6, r2] - bl __divsi3 - strh r0, [r6, 0x24] - strh r5, [r6, 0xA] - movs r0, 0 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x26] - ldr r0, _080DD600 @ =sub_80DD604 - str r0, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD600: .4byte sub_80DD604 - thumb_func_end sub_80DD4D4 - - thumb_func_start sub_80DD604 -sub_80DD604: @ 80DD604 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080DD628 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bls _080DD61E - b _080DD76C -_080DD61E: - lsls r0, 2 - ldr r1, _080DD62C @ =_080DD630 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DD628: .4byte gTasks -_080DD62C: .4byte _080DD630 - .align 2, 0 -_080DD630: - .4byte _080DD644 - .4byte _080DD6A8 - .4byte _080DD6B0 - .4byte _080DD70C - .4byte _080DD75E -_080DD644: - ldrh r2, [r4, 0x14] - ldrh r0, [r4, 0x10] - subs r2, r0 - strh r2, [r4, 0x14] - ldrh r0, [r4, 0x16] - ldrh r1, [r4, 0x12] - subs r0, r1 - strh r0, [r4, 0x16] - ldr r3, _080DD6A4 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - lsls r2, 16 - asrs r2, 19 - strh r2, [r0, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080DD694 - movs r0, 0x14 - strh r0, [r4, 0x1E] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080DD694: - ldrh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xA2 - bl PlaySE12WithPanning - b _080DD76C - .align 2, 0 -_080DD6A4: .4byte gSprites -_080DD6A8: - ldrh r0, [r4, 0x1E] - subs r0, 0x1 - strh r0, [r4, 0x1E] - b _080DD750 -_080DD6B0: - ldrh r0, [r4, 0x1A] - subs r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _080DD6D0 - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0x14] - adds r0, r2 - strh r0, [r4, 0x14] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x16] - adds r0, r1 - strh r0, [r4, 0x16] - b _080DD6DA -_080DD6D0: - strh r0, [r4, 0x14] - strh r0, [r4, 0x16] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080DD6DA: - ldr r2, _080DD708 @ =gSprites - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x14] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x24] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r4, 0x16] - lsls r0, 16 - asrs r0, 19 - strh r0, [r1, 0x26] - b _080DD76C - .align 2, 0 -_080DD708: .4byte gSprites -_080DD70C: - ldrh r0, [r4, 0x10] - ldrh r2, [r4, 0xC] - adds r0, r2 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0xE] - adds r0, r1 - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x1A] - adds r0, 0x1 - strh r0, [r4, 0x1A] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1C - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _080DD74A - movs r0, 0 - strh r0, [r4, 0x1A] - adds r0, r4, 0 - bl sub_80DD774 - ldrh r1, [r4, 0x24] - ldrh r0, [r4, 0x22] - adds r1, r0 - strh r1, [r4, 0x22] - lsls r1, 24 - asrs r1, 24 - movs r0, 0xAF - bl PlaySE12WithPanning -_080DD74A: - ldrh r0, [r4, 0x18] - subs r0, 0x1 - strh r0, [r4, 0x18] -_080DD750: - lsls r0, 16 - cmp r0, 0 - bne _080DD76C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080DD76C -_080DD75E: - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DD76C - adds r0, r2, 0 - bl DestroyAnimVisualTask -_080DD76C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD604 - - thumb_func_start sub_80DD774 -sub_80DD774: @ 80DD774 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - bhi _080DD864 - lsls r0, 2 - ldr r1, _080DD790 @ =_080DD794 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080DD790: .4byte _080DD794 - .align 2, 0 -_080DD794: - .4byte _080DD7A8 - .4byte _080DD7B4 - .4byte _080DD7B4 - .4byte _080DD7C0 - .4byte _080DD7CC -_080DD7A8: - ldr r3, _080DD7B0 @ =gSpriteTemplate_83DAD78 - movs r5, 0 - b _080DD7D0 - .align 2, 0 -_080DD7B0: .4byte gSpriteTemplate_83DAD78 -_080DD7B4: - ldr r3, _080DD7BC @ =gSpriteTemplate_83DAD90 - movs r5, 0x50 - b _080DD7D0 - .align 2, 0 -_080DD7BC: .4byte gSpriteTemplate_83DAD90 -_080DD7C0: - ldr r3, _080DD7C8 @ =gSpriteTemplate_83DAD90 - movs r5, 0x40 - b _080DD7D0 - .align 2, 0 -_080DD7C8: .4byte gSpriteTemplate_83DAD90 -_080DD7CC: - ldr r3, _080DD86C @ =gSpriteTemplate_83DAD90 - movs r5, 0x30 -_080DD7D0: - ldrh r1, [r4, 0xC] - lsls r1, 16 - asrs r1, 19 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r4, 0xE] - lsls r2, 16 - asrs r2, 19 - lsls r2, 16 - movs r6, 0x20 - ldrsh r0, [r4, r6] - lsls r0, 2 - adds r1, r0 - lsls r1, 16 - lsrs r6, r1, 16 - asrs r1, 16 - lsrs r7, r2, 16 - asrs r2, 16 - adds r0, r3, 0 - movs r3, 0x23 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080DD85C - ldr r1, _080DD870 @ =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x12 - strh r1, [r0, 0x2E] - movs r2, 0x20 - ldrsh r1, [r4, r2] - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 2 - adds r2, r6, r2 - movs r6, 0xA - ldrsh r3, [r4, r6] - lsls r1, r3, 1 - adds r1, r3 - adds r2, r1 - strh r2, [r0, 0x32] - strh r7, [r0, 0x36] - movs r1, 0xA - ldrsh r2, [r4, r1] - lsls r2, 1 - movs r3, 0x10 - negs r3, r3 - adds r1, r3, 0 - subs r1, r2 - strh r1, [r0, 0x38] - ldrh r3, [r0, 0x4] - lsls r2, r3, 22 - lsrs r2, 22 - adds r2, r5 - ldr r5, _080DD874 @ =0x000003ff - adds r1, r5, 0 - ands r2, r1 - ldr r1, _080DD878 @ =0xfffffc00 - ands r1, r3 - orrs r1, r2 - strh r1, [r0, 0x4] - bl sub_80786EC - ldrh r0, [r4, 0x1E] - adds r0, 0x1 - strh r0, [r4, 0x1E] -_080DD85C: - movs r6, 0x20 - ldrsh r0, [r4, r6] - negs r0, r0 - strh r0, [r4, 0x20] -_080DD864: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DD86C: .4byte gSpriteTemplate_83DAD90 -_080DD870: .4byte gSprites -_080DD874: .4byte 0x000003ff -_080DD878: .4byte 0xfffffc00 - thumb_func_end sub_80DD774 - - thumb_func_start sub_80DD87C -sub_80DD87C: @ 80DD87C - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _080DD8AE - ldr r0, _080DD8B4 @ =sub_80DD604 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080DD8A8 - ldr r0, _080DD8B8 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x1E] - subs r0, 0x1 - strh r0, [r1, 0x1E] -_080DD8A8: - adds r0, r4, 0 - bl DestroySprite -_080DD8AE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD8B4: .4byte sub_80DD604 -_080DD8B8: .4byte gTasks - thumb_func_end sub_80DD87C - - thumb_func_start sub_80DD8BC -sub_80DD8BC: @ 80DD8BC - push {lr} - ldr r0, _080DD8E4 @ =gAnimDisableStructPtr - ldr r0, [r0] - ldrb r1, [r0, 0x11] - lsrs r0, r1, 4 - lsls r1, 28 - lsrs r1, 28 - subs r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xFF - lsls r2, 24 - adds r0, r2 - lsrs r0, 24 - cmp r0, 0x4 - bls _080DD8DE - movs r1, 0x1 -_080DD8DE: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080DD8E4: .4byte gAnimDisableStructPtr - thumb_func_end sub_80DD8BC - - thumb_func_start sub_80DD8E8 -sub_80DD8E8: @ 80DD8E8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DD920 @ =gBattleAnimArgs - ldrb r1, [r5, 0x8] - bl StartSpriteAnim - ldrh r0, [r5] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - ldrh r1, [r5, 0x4] - subs r0, r1 - strh r0, [r4, 0x34] - movs r0, 0x3 - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x6] - strh r0, [r4, 0x30] - ldr r0, _080DD924 @ =sub_80DD928 - str r0, [r4, 0x1C] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD920: .4byte gBattleAnimArgs -_080DD924: .4byte sub_80DD928 - thumb_func_end sub_80DD8E8 - - thumb_func_start sub_80DD928 -sub_80DD928: @ 80DD928 - push {lr} - adds r2, r0, 0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r3] - ldrh r1, [r2, 0x34] - movs r3, 0x34 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080DD960 - ldrh r3, [r2, 0x32] - adds r0, r1, r3 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x2E] - adds r1, r0 - strh r1, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x2E] - lsls r1, 16 - cmp r1, 0 - ble _080DD972 - movs r0, 0 - strh r0, [r2, 0x34] - b _080DD972 -_080DD960: - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080DD972 - adds r0, r2, 0 - bl DestroyAnimSprite -_080DD972: - pop {r0} - bx r0 - thumb_func_end sub_80DD928 - - thumb_func_start sub_80DD978 -sub_80DD978: @ 80DD978 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080DD9A0 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DD994 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080DD994: - adds r0, r4, 0 - bl sub_807941C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DD9A0: .4byte gAnimBankAttacker - thumb_func_end sub_80DD978 - - thumb_func_start sub_80DD9A4 -sub_80DD9A4: @ 80DD9A4 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _080DD9F0 @ =gAnimBankTarget - ldrb r0, [r5] - movs r1, 0 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - ldrb r0, [r5] - movs r1, 0x1 - bl GetBankPosition - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DD9F4 @ =gBattleAnimArgs - ldrh r3, [r2] - ldrh r5, [r4, 0x20] - adds r1, r3, r5 - strh r1, [r4, 0x20] - ldrh r1, [r2, 0x2] - adds r0, r1 - strh r0, [r4, 0x22] - strh r3, [r4, 0x30] - strh r1, [r4, 0x32] - ldrh r0, [r2, 0x4] - strh r0, [r4, 0x38] - ldrb r1, [r2, 0x6] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _080DD9F8 @ =sub_80DD9FC - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DD9F0: .4byte gAnimBankTarget -_080DD9F4: .4byte gBattleAnimArgs -_080DD9F8: .4byte sub_80DD9FC - thumb_func_end sub_80DD9A4 - - thumb_func_start sub_80DD9FC -sub_80DD9FC: @ 80DD9FC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x8 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x32] - ldrh r2, [r4, 0x36] - adds r0, r2 - strh r0, [r4, 0x36] - movs r1, 0x34 - ldrsh r0, [r4, r1] - movs r1, 0x28 - bl __divsi3 - ldrh r1, [r4, 0x24] - adds r1, r0 - strh r1, [r4, 0x24] - movs r2, 0x2E - ldrsh r0, [r4, r2] - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - ldrh r1, [r4, 0x26] - subs r1, r0 - strh r1, [r4, 0x26] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x8C - ble _080DDA46 - adds r0, r4, 0 - bl DestroyAnimSprite -_080DDA46: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DD9FC - - thumb_func_start sub_80DDA4C -sub_80DDA4C: @ 80DDA4C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080DDA84 @ =gAnimMoveDmg - ldr r0, [r2] - cmp r0, 0x20 - bgt _080DDA60 - ldr r1, _080DDA88 @ =gBattleAnimArgs - movs r0, 0 - strh r0, [r1, 0xE] -_080DDA60: - ldr r2, [r2] - adds r0, r2, 0 - subs r0, 0x21 - cmp r0, 0x20 - bhi _080DDA70 - ldr r1, _080DDA88 @ =gBattleAnimArgs - movs r0, 0x1 - strh r0, [r1, 0xE] -_080DDA70: - cmp r2, 0x41 - ble _080DDA7A - ldr r1, _080DDA88 @ =gBattleAnimArgs - movs r0, 0x2 - strh r0, [r1, 0xE] -_080DDA7A: - adds r0, r3, 0 - bl DestroyAnimVisualTask - pop {r0} - bx r0 - .align 2, 0 -_080DDA84: .4byte gAnimMoveDmg -_080DDA88: .4byte gBattleAnimArgs - thumb_func_end sub_80DDA4C - - thumb_func_start sub_80DDA8C -sub_80DDA8C: @ 80DDA8C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080DDAE8 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080DDAAE - movs r0, 0 - bl sub_80789D4 - movs r0, 0xC8 - strh r0, [r5, 0xA] -_080DDAAE: - ldr r4, _080DDAEC @ =gUnknown_030041B8 - movs r1, 0xA - ldrsh r0, [r5, r1] - movs r1, 0xA - bl __divsi3 - ldrh r1, [r4] - adds r1, r0 - strh r1, [r4] - ldrh r0, [r5, 0xA] - subs r0, 0x3 - strh r0, [r5, 0xA] - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x78 - bne _080DDADA - movs r0, 0x1 - bl sub_80789D4 - adds r0, r6, 0 - bl DestroyAnimVisualTask -_080DDADA: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDAE8: .4byte gTasks -_080DDAEC: .4byte gUnknown_030041B8 - thumb_func_end sub_80DDA8C - - thumb_func_start sub_80DDAF0 -sub_80DDAF0: @ 80DDAF0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _080DDB5C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DDB1C - movs r0, 0 - bl sub_80789D4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _080DDB60 @ =gUnknown_030041B8 - ldrh r0, [r0] - strh r0, [r4, 0xC] -_080DDB1C: - ldrh r0, [r4, 0xA] - adds r0, 0x50 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0xA] - ldr r6, _080DDB60 @ =gUnknown_030041B8 - movs r2, 0xA - ldrsh r1, [r4, r2] - movs r0, 0x4 - bl Cos - ldrh r4, [r4, 0xC] - adds r0, r4 - strh r0, [r6] - ldr r0, _080DDB64 @ =gBattleAnimArgs - movs r2, 0xE - ldrsh r1, [r0, r2] - ldr r0, _080DDB68 @ =0x00000fff - cmp r1, r0 - bne _080DDB54 - movs r0, 0 - strh r0, [r6] - movs r0, 0x1 - bl sub_80789D4 - adds r0, r5, 0 - bl DestroyAnimVisualTask -_080DDB54: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DDB5C: .4byte gTasks -_080DDB60: .4byte gUnknown_030041B8 -_080DDB64: .4byte gBattleAnimArgs -_080DDB68: .4byte 0x00000fff - thumb_func_end sub_80DDAF0 - - .align 2, 0 @ Don't pad with nop. 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. diff --git a/asm/slot_machine.s b/asm/slot_machine.s deleted file mode 100644 index 62792245d..000000000 --- a/asm/slot_machine.s +++ /dev/null @@ -1,10158 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start PlaySlotMachine -PlaySlotMachine: @ 81018A0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_81019B0 - ldr r0, _081018B4 @ =sub_81018B8 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_081018B4: .4byte sub_81018B8 - thumb_func_end PlaySlotMachine - - thumb_func_start sub_81018B8 -sub_81018B8: @ 81018B8 - push {lr} - ldr r0, _081018D0 @ =gMain - ldr r1, _081018D4 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bhi _0810194A - lsls r0, 2 - ldr r1, _081018D8 @ =_081018DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081018D0: .4byte gMain -_081018D4: .4byte 0x0000043c -_081018D8: .4byte _081018DC - .align 2, 0 -_081018DC: - .4byte _081018F8 - .4byte _08101902 - .4byte _08101908 - .4byte _08101912 - .4byte _08101918 - .4byte _0810191E - .4byte _08101938 -_081018F8: - bl sub_8101A28 - bl sub_8101BA4 - b _08101922 -_08101902: - bl sub_8101A8C - b _08101922 -_08101908: - bl sub_8101AE0 - bl sub_8101B04 - b _08101922 -_08101912: - bl sub_8101C84 - b _08101922 -_08101918: - bl sub_8101CA0 - b _08101922 -_0810191E: - bl sub_8101CC0 -_08101922: - ldr r1, _08101930 @ =gMain - ldr r0, _08101934 @ =0x0000043c - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0810194A - .align 2, 0 -_08101930: .4byte gMain -_08101934: .4byte 0x0000043c -_08101938: - bl sub_8101CD4 - bl sub_8101CEC - bl sub_8101A44 - ldr r0, _08101950 @ =sub_8101954 - bl SetMainCallback2 -_0810194A: - pop {r0} - bx r0 - .align 2, 0 -_08101950: .4byte sub_8101954 - thumb_func_end sub_81018B8 - - thumb_func_start sub_8101954 -sub_8101954: @ 8101954 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8101954 - - thumb_func_start sub_810196C -sub_810196C: @ 810196C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r1, _081019A8 @ =REG_WIN0H - ldr r2, _081019AC @ =gSharedMem - adds r0, r2, 0 - adds r0, 0x58 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - adds r0, r2, 0 - adds r0, 0x5A - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - adds r0, r2, 0 - adds r0, 0x5C - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - adds r0, r2, 0 - adds r0, 0x5E - ldrh r0, [r0] - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_081019A8: .4byte REG_WIN0H -_081019AC: .4byte gSharedMem - thumb_func_end sub_810196C - - thumb_func_start sub_81019B0 -sub_81019B0: @ 81019B0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _081019E4 @ =nullsub_67 - movs r1, 0xFF - bl CreateTask - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _081019E8 @ =gTasks - adds r0, r1 - strh r4, [r0, 0x8] - adds r0, 0xA - adds r1, r5, 0 - bl StoreWordInTwoHalfwords - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081019E4: .4byte nullsub_67 -_081019E8: .4byte gTasks - thumb_func_end sub_81019B0 - - thumb_func_start sub_81019EC -sub_81019EC: @ 81019EC - push {lr} - ldr r0, _08101A18 @ =nullsub_67 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - ldr r0, _08101A1C @ =gTasks - adds r2, r0 - ldr r1, _08101A20 @ =gSharedMem - ldrh r0, [r2, 0x8] - strb r0, [r1, 0x1] - adds r2, 0xA - adds r1, 0x64 - adds r0, r2, 0 - bl LoadWordFromTwoHalfwords - pop {r0} - bx r0 - .align 2, 0 -_08101A18: .4byte nullsub_67 -_08101A1C: .4byte gTasks -_08101A20: .4byte gSharedMem - thumb_func_end sub_81019EC - - thumb_func_start nullsub_67 -nullsub_67: @ 8101A24 - bx lr - thumb_func_end nullsub_67 - - thumb_func_start sub_8101A28 -sub_8101A28: @ 8101A28 - push {lr} - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - thumb_func_end sub_8101A28 - - thumb_func_start sub_8101A44 -sub_8101A44: @ 8101A44 - push {r4,lr} - ldr r0, _08101A7C @ =sub_810196C - bl SetVBlankCallback - ldr r3, _08101A80 @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _08101A84 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08101A88 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101A7C: .4byte sub_810196C -_08101A80: .4byte 0x04000208 -_08101A84: .4byte 0x04000200 -_08101A88: .4byte REG_DISPSTAT - thumb_func_end sub_8101A44 - - thumb_func_start sub_8101A8C -sub_8101A8C: @ 8101A8C - push {r4-r7,lr} - sub sp, 0x4 - movs r2, 0xC0 - lsls r2, 19 - movs r3, 0x80 - lsls r3, 9 - mov r4, sp - movs r6, 0 - ldr r1, _08101AD8 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _08101ADC @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_08101AAA: - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r2, r5 - subs r3, r5 - cmp r3, r5 - bhi _08101AAA - strh r6, [r4] - mov r0, sp - str r0, [r1] - str r2, [r1, 0x4] - lsrs r0, r3, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101AD8: .4byte 0x040000d4 -_08101ADC: .4byte 0x81000800 - thumb_func_end sub_8101A8C - - thumb_func_start sub_8101AE0 -sub_8101AE0: @ 8101AE0 - sub sp, 0x4 - movs r2, 0xE0 - lsls r2, 19 - mov r1, sp - movs r0, 0 - strh r0, [r1] - ldr r0, _08101AFC @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _08101B00 @ =0x81000200 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - add sp, 0x4 - bx lr - .align 2, 0 -_08101AFC: .4byte 0x040000d4 -_08101B00: .4byte 0x81000200 - thumb_func_end sub_8101AE0 - - thumb_func_start sub_8101B04 -sub_8101B04: @ 8101B04 - push {r4,r5,lr} - ldr r5, _08101B70 @ =REG_BG0CNT - movs r1, 0 - strh r1, [r5] - ldr r2, _08101B74 @ =REG_BG1CNT - strh r1, [r2] - ldr r3, _08101B78 @ =REG_BG2CNT - strh r1, [r3] - ldr r4, _08101B7C @ =REG_BG3CNT - strh r1, [r4] - ldr r0, _08101B80 @ =REG_BG0HOFS - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08101B84 @ =0x00001f08 - adds r0, r1, 0 - strh r0, [r5] - ldr r1, _08101B88 @ =0x00001c01 - adds r0, r1, 0 - strh r0, [r2] - ldr r2, _08101B8C @ =0x00001d02 - adds r0, r2, 0 - strh r0, [r3] - ldr r1, _08101B90 @ =0x00001e02 - adds r0, r1, 0 - strh r0, [r4] - ldr r0, _08101B94 @ =REG_WININ - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r1, _08101B98 @ =REG_BLDCNT - ldr r2, _08101B9C @ =0x00001048 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08101BA0 @ =0x00000809 - adds r0, r2, 0 - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08101B70: .4byte REG_BG0CNT -_08101B74: .4byte REG_BG1CNT -_08101B78: .4byte REG_BG2CNT -_08101B7C: .4byte REG_BG3CNT -_08101B80: .4byte REG_BG0HOFS -_08101B84: .4byte 0x00001f08 -_08101B88: .4byte 0x00001c01 -_08101B8C: .4byte 0x00001d02 -_08101B90: .4byte 0x00001e02 -_08101B94: .4byte REG_WININ -_08101B98: .4byte REG_BLDCNT -_08101B9C: .4byte 0x00001048 -_08101BA0: .4byte 0x00000809 - thumb_func_end sub_8101B04 - - thumb_func_start sub_8101BA4 -sub_8101BA4: @ 8101BA4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - bl sub_81019EC - ldr r5, _08101C74 @ =gSharedMem - movs r4, 0 - strb r4, [r5] - strb r4, [r5, 0x2] - bl Random - movs r1, 0x1 - ands r1, r0 - strb r1, [r5, 0x3] - strb r4, [r5, 0x4] - movs r0, 0 - strh r4, [r5, 0x8] - strb r0, [r5, 0xA] - strb r0, [r5, 0xB] - ldr r0, _08101C78 @ =gSaveBlock1 - ldr r1, _08101C7C @ =0x00000494 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r5, 0xC] - strh r4, [r5, 0xE] - strh r4, [r5, 0x10] - strh r4, [r5, 0x12] - strh r4, [r5, 0x18] - movs r0, 0x8 - strh r0, [r5, 0x1A] - adds r1, r5, 0 - adds r1, 0x58 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xA0 - strh r0, [r1] - adds r0, r5, 0 - adds r0, 0x5C - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl GetCurrentMapMusic - adds r1, r5, 0 - adds r1, 0x60 - strh r0, [r1] - movs r7, 0 - adds r6, r5, 0 - ldr r2, _08101C80 @ =gUnknown_083ECCF8 - mov r9, r2 - movs r0, 0x1C - adds r0, r6 - mov r8, r0 -_08101C14: - lsls r5, r7, 1 - adds r0, r6, 0 - adds r0, 0x22 - adds r0, r5, r0 - movs r1, 0 - strh r1, [r0] - adds r4, r6, 0 - adds r4, 0x28 - adds r4, r5, r4 - ldrb r0, [r6, 0x3] - lsls r0, 1 - lsls r1, r7, 2 - adds r0, r1 - add r0, r9 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x15 - bl __modsi3 - strh r0, [r4] - add r5, r8 - movs r2, 0 - ldrsh r0, [r4, r2] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - movs r2, 0xFC - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r5] - movs r1, 0 - ldrsh r0, [r5, r1] - adds r1, r2, 0 - bl __modsi3 - strh r0, [r5] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x2 - bls _08101C14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101C74: .4byte gSharedMem -_08101C78: .4byte gSaveBlock1 -_08101C7C: .4byte 0x00000494 -_08101C80: .4byte gUnknown_083ECCF8 - thumb_func_end sub_8101BA4 - - thumb_func_start sub_8101C84 -sub_8101C84: @ 8101C84 - push {r4,lr} - ldr r4, _08101C9C @ =gWindowConfig_81E7128 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101C9C: .4byte gWindowConfig_81E7128 - thumb_func_end sub_8101C84 - - thumb_func_start sub_8101CA0 -sub_8101CA0: @ 8101CA0 - push {lr} - bl ResetPaletteFade - bl ResetSpriteData - ldr r1, _08101CBC @ =gOamLimit - movs r0, 0x80 - strb r0, [r1] - bl FreeAllSpritePalettes - bl ResetTasks - pop {r0} - bx r0 - .align 2, 0 -_08101CBC: .4byte gOamLimit - thumb_func_end sub_8101CA0 - - thumb_func_start sub_8101CC0 -sub_8101CC0: @ 8101CC0 - push {lr} - bl sub_8106448 - bl sub_81064B8 - bl sub_81063C0 - pop {r0} - bx r0 - thumb_func_end sub_8101CC0 - - thumb_func_start sub_8101CD4 -sub_8101CD4: @ 8101CD4 - push {lr} - bl sub_8104EA8 - bl sub_8104F8C - bl sub_8103DC8 - bl sub_81050C4 - pop {r0} - bx r0 - thumb_func_end sub_8101CD4 - - thumb_func_start sub_8101CEC -sub_8101CEC: @ 8101CEC - push {lr} - bl sub_8104048 - bl sub_8102DA8 - bl sub_8104C5C - bl sub_8101D04 - pop {r0} - bx r0 - thumb_func_end sub_8101CEC - - thumb_func_start sub_8101D04 -sub_8101D04: @ 8101D04 - push {r4,lr} - ldr r4, _08101D20 @ =sub_8101D24 - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08101D20: .4byte sub_8101D24 - thumb_func_end sub_8101D04 - - thumb_func_start sub_8101D24 -sub_8101D24: @ 8101D24 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r7, _08101D50 @ =gUnknown_083ECAAC - lsls r1, r0, 2 - adds r1, r0 - lsls r4, r1, 3 - ldr r6, _08101D54 @ =gSharedMem - ldr r5, _08101D58 @ =gTasks -_08101D36: - ldrb r0, [r6] - lsls r0, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r4, r5 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08101D36 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08101D50: .4byte gUnknown_083ECAAC -_08101D54: .4byte gSharedMem -_08101D58: .4byte gTasks - thumb_func_end sub_8101D24 - - thumb_func_start sub_8101D5C -sub_8101D5C: @ 8101D5C - push {r4,lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r4, _08101D88 @ =gSharedMem - ldrb r0, [r4, 0x2] - bl sub_810423C - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08101D88: .4byte gSharedMem - thumb_func_end sub_8101D5C - - thumb_func_start sub_8101D8C -sub_8101D8C: @ 8101D8C - push {lr} - ldr r0, _08101DA8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08101DA2 - ldr r1, _08101DAC @ =gSharedMem - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08101DA2: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101DA8: .4byte gPaletteFade -_08101DAC: .4byte gSharedMem - thumb_func_end sub_8101D8C - - thumb_func_start sub_8101DB0 -sub_8101DB0: @ 8101DB0 - push {lr} - ldr r2, _08101DD8 @ =gSharedMem - movs r0, 0 - strh r0, [r2, 0xE] - strh r0, [r2, 0x12] - strh r0, [r2, 0x18] - ldrb r1, [r2, 0x4] - movs r0, 0xC0 - ands r0, r1 - strb r0, [r2, 0x4] - movs r0, 0x4 - strb r0, [r2] - movs r1, 0xC - ldrsh r0, [r2, r1] - cmp r0, 0 - bgt _08101DDC - movs r0, 0x19 - strb r0, [r2] - b _08101DEC - .align 2, 0 -_08101DD8: .4byte gSharedMem -_08101DDC: - ldrb r0, [r2, 0xA] - cmp r0, 0 - beq _08101DEC - movs r0, 0x3 - strb r0, [r2] - movs r0, 0x4 - bl sub_8104CAC -_08101DEC: - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_8101DB0 - - thumb_func_start sub_8101DF4 -sub_8101DF4: @ 8101DF4 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _08101E06 - ldr r1, _08101E0C @ =gSharedMem - movs r0, 0x4 - strb r0, [r1] -_08101E06: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101E0C: .4byte gSharedMem - thumb_func_end sub_8101DF4 - - thumb_func_start sub_8101E10 -sub_8101E10: @ 8101E10 - push {lr} - movs r0, 0 - bl sub_8104CAC - ldr r2, _08101E34 @ =gSharedMem - movs r0, 0x5 - strb r0, [r2] - movs r0, 0xC - ldrsh r1, [r2, r0] - ldr r0, _08101E38 @ =0x0000270e - cmp r1, r0 - ble _08101E2C - movs r0, 0x17 - strb r0, [r2] -_08101E2C: - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_08101E34: .4byte gSharedMem -_08101E38: .4byte 0x0000270e - thumb_func_end sub_8101E10 - - thumb_func_start sub_8101E3C -sub_8101E3C: @ 8101E3C - push {r4,lr} - ldr r0, _08101E58 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08101E60 - movs r0, 0 - bl sub_8104AB8 - ldr r1, _08101E5C @ =gSharedMem - movs r0, 0x8 - strb r0, [r1] - b _08101F1A - .align 2, 0 -_08101E58: .4byte gMain -_08101E5C: .4byte gSharedMem -_08101E60: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08101EC2 - ldr r2, _08101EB8 @ =gSharedMem - movs r1, 0xC - ldrsh r0, [r2, r1] - subs r0, 0x3 - movs r3, 0x12 - ldrsh r1, [r2, r3] - adds r0, r1 - cmp r0, 0 - blt _08101EBC - ldrh r4, [r2, 0x12] - adds r0, r1, 0 - cmp r0, 0x2 - bgt _08101E9C -_08101E84: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8103D50 - lsls r0, r4, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _08101E84 -_08101E9C: - ldr r1, _08101EB8 @ =gSharedMem - ldrh r0, [r1, 0xC] - subs r0, 0x3 - ldrh r3, [r1, 0x12] - adds r0, r3 - strh r0, [r1, 0xC] - movs r0, 0x3 - strh r0, [r1, 0x12] - movs r0, 0x9 - strb r0, [r1] - movs r0, 0x5F - bl PlaySE - b _08101F1A - .align 2, 0 -_08101EB8: .4byte gSharedMem -_08101EBC: - movs r0, 0x6 - strb r0, [r2] - b _08101F1A -_08101EC2: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08101EEC - ldr r4, _08101F24 @ =gSharedMem - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08101EEC - movs r0, 0x5F - bl PlaySE - ldrb r0, [r4, 0x12] - bl sub_8103D50 - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] -_08101EEC: - ldr r0, _08101F24 @ =gSharedMem - movs r2, 0x12 - ldrsh r1, [r0, r2] - ldr r2, _08101F28 @ =gMain - adds r3, r0, 0 - cmp r1, 0x2 - bgt _08101F08 - cmp r1, 0 - beq _08101F0C - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08101F0C -_08101F08: - movs r0, 0x9 - strb r0, [r3] -_08101F0C: - ldrh r1, [r2, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08101F1A - movs r0, 0x15 - strb r0, [r3] -_08101F1A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08101F24: .4byte gSharedMem -_08101F28: .4byte gMain - thumb_func_end sub_8101E3C - - thumb_func_start sub_8101F2C -sub_8101F2C: @ 8101F2C - push {r4,lr} - adds r4, r0, 0 - bl MenuDisplayMessageBox - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8101F2C - - thumb_func_start sub_8101F44 -sub_8101F44: @ 8101F44 - push {lr} - ldr r0, _08101F58 @ =gOtherText_DontHaveThreeCoins - bl sub_8101F2C - ldr r1, _08101F5C @ =gSharedMem - movs r0, 0x7 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101F58: .4byte gOtherText_DontHaveThreeCoins -_08101F5C: .4byte gSharedMem - thumb_func_end sub_8101F44 - - thumb_func_start sub_8101F60 -sub_8101F60: @ 8101F60 - push {lr} - ldr r0, _08101F80 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08101F78 - bl MenuZeroFillScreen - ldr r1, _08101F84 @ =gSharedMem - movs r0, 0x5 - strb r0, [r1] -_08101F78: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101F80: .4byte gMain -_08101F84: .4byte gSharedMem - thumb_func_end sub_8101F60 - - thumb_func_start sub_8101F88 -sub_8101F88: @ 8101F88 - push {lr} - bl sub_8104AEC - lsls r0, 24 - cmp r0, 0 - beq _08101F9A - ldr r1, _08101FA0 @ =gSharedMem - movs r0, 0x5 - strb r0, [r1] -_08101F9A: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08101FA0: .4byte gSharedMem - thumb_func_end sub_8101F88 - - thumb_func_start sub_8101FA4 -sub_8101FA4: @ 8101FA4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8102484 - bl sub_8104DA4 - movs r0, 0 - bl sub_8102DEC - movs r0, 0x1 - bl sub_8102DEC - movs r0, 0x2 - bl sub_8102DEC - movs r0, 0 - strh r0, [r4, 0x8] - ldr r4, _08101FDC @ =gSharedMem - ldrb r1, [r4, 0x4] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08101FE0 - bl sub_810430C - movs r0, 0xA - b _08101FE8 - .align 2, 0 -_08101FDC: .4byte gSharedMem -_08101FE0: - movs r0, 0x1 - bl sub_8104CAC - movs r0, 0xB -_08101FE8: - strb r0, [r4] - ldr r4, _08102004 @ =gSharedMem - movs r0, 0x8 - strh r0, [r4, 0x1A] - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _08101FFC - bl dp15_jump_random_unknown - strh r0, [r4, 0x1A] -_08101FFC: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102004: .4byte gSharedMem - thumb_func_end sub_8101FA4 - - thumb_func_start sub_8102008 -sub_8102008: @ 8102008 - push {lr} - bl sub_810432C - lsls r0, 24 - cmp r0, 0 - beq _08102028 - movs r0, 0x1 - bl sub_8104CAC - ldr r1, _08102030 @ =gSharedMem - ldrb r2, [r1, 0x4] - movs r0, 0xDF - ands r0, r2 - strb r0, [r1, 0x4] - movs r0, 0xB - strb r0, [r1] -_08102028: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102030: .4byte gSharedMem - thumb_func_end sub_8102008 - - thumb_func_start sub_8102034 -sub_8102034: @ 8102034 - push {lr} - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1D - ble _0810204E - bl sub_81024F0 - ldr r1, _08102054 @ =gSharedMem - movs r0, 0xC - strb r0, [r1] -_0810204E: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102054: .4byte gSharedMem - thumb_func_end sub_8102034 - - thumb_func_start sub_8102058 -sub_8102058: @ 8102058 - push {r4,lr} - ldr r0, _08102088 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810207E - movs r0, 0x18 - bl PlaySE - ldr r4, _0810208C @ =gSharedMem - ldrb r0, [r4, 0x18] - bl sub_8102E1C - ldrb r0, [r4, 0x18] - bl sub_8103C14 - movs r0, 0xD - strb r0, [r4] -_0810207E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102088: .4byte gMain -_0810208C: .4byte gSharedMem - thumb_func_end sub_8102058 - - thumb_func_start sub_8102090 -sub_8102090: @ 8102090 - push {r4,lr} - ldr r4, _081020BC @ =gSharedMem - ldrb r0, [r4, 0x18] - bl sub_8102E40 - lsls r0, 24 - cmp r0, 0 - bne _081020C0 - ldrh r0, [r4, 0x18] - adds r0, 0x1 - strh r0, [r4, 0x18] - movs r1, 0xC - strb r1, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _081020B6 - movs r0, 0xE - strb r0, [r4] -_081020B6: - movs r0, 0x1 - b _081020C2 - .align 2, 0 -_081020BC: .4byte gSharedMem -_081020C0: - movs r0, 0 -_081020C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102090 - - thumb_func_start sub_81020C8 -sub_81020C8: @ 81020C8 - push {r4,lr} - ldr r4, _08102128 @ =gSharedMem - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - strb r0, [r4, 0x4] - bl sub_81027A0 - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _081020E8 - subs r0, 0x1 - strb r0, [r4, 0xA] - ldrb r0, [r4, 0xB] - adds r0, 0x1 - strb r0, [r4, 0xB] -_081020E8: - ldrh r0, [r4, 0x8] - cmp r0, 0 - beq _081021B4 - movs r0, 0xF - strb r0, [r4] - bl sub_8102A24 - bl sub_8103F70 - ldrh r0, [r4, 0x10] - ldrh r1, [r4, 0xE] - subs r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bge _0810210C - movs r0, 0 - strh r0, [r4, 0x10] -_0810210C: - ldrh r1, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08102130 - ldr r0, _0810212C @ =0x00000185 - bl PlayFanfare - movs r0, 0x6 - bl sub_8104CAC - b _0810215A - .align 2, 0 -_08102128: .4byte gSharedMem -_0810212C: .4byte 0x00000185 -_08102130: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810214C - ldr r0, _08102148 @ =0x00000185 - bl PlayFanfare - movs r0, 0x5 - bl sub_8104CAC - b _0810215A - .align 2, 0 -_08102148: .4byte 0x00000185 -_0810214C: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare - movs r0, 0x2 - bl sub_8104CAC -_0810215A: - ldr r1, _081021B0 @ =gSharedMem - ldrh r3, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 1 - ands r0, r3 - adds r2, r1, 0 - cmp r0, 0 - beq _08102192 - ldrb r1, [r2, 0x4] - movs r0, 0x3F - ands r0, r1 - movs r1, 0 - strb r0, [r2, 0x4] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r3 - cmp r0, 0 - beq _08102192 - strb r1, [r2, 0xA] - strb r1, [r2, 0xB] - strb r1, [r2, 0x3] - movs r0, 0x80 - lsls r0, 1 - ands r0, r3 - cmp r0, 0 - beq _08102192 - movs r0, 0x1 - strb r0, [r2, 0x3] -_08102192: - ldrh r1, [r2, 0x8] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _081021D2 - ldrb r0, [r2, 0x2] - cmp r0, 0xF - bhi _081021D2 - adds r0, 0x1 - strb r0, [r2, 0x2] - ldrb r0, [r2, 0x2] - bl sub_8104064 - b _081021D2 - .align 2, 0 -_081021B0: .4byte gSharedMem -_081021B4: - movs r0, 0x3 - bl sub_8104CAC - movs r0, 0x14 - strb r0, [r4] - ldrh r0, [r4, 0x12] - ldrh r1, [r4, 0x10] - adds r0, r1 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - ldr r1, _081021DC @ =0x0000270f - cmp r0, r1 - ble _081021D2 - strh r1, [r4, 0x10] -_081021D2: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_081021DC: .4byte 0x0000270f - thumb_func_end sub_81020C8 - - thumb_func_start sub_81021E0 -sub_81021E0: @ 81021E0 - push {lr} - bl sub_8102A44 - lsls r0, 24 - cmp r0, 0 - beq _081021F2 - ldr r1, _081021F8 @ =gSharedMem - movs r0, 0x10 - strb r0, [r1] -_081021F2: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081021F8: .4byte gSharedMem - thumb_func_end sub_81021E0 - - thumb_func_start sub_81021FC -sub_81021FC: @ 81021FC - push {r4,lr} - bl sub_8103FA0 - lsls r0, 24 - cmp r0, 0 - beq _08102256 - ldr r4, _08102260 @ =gSharedMem - movs r0, 0x13 - strb r0, [r4] - ldrh r1, [r4, 0x8] - movs r0, 0xC0 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08102220 - movs r0, 0x1C - bl IncrementGameStat -_08102220: - ldrh r1, [r4, 0x8] - movs r0, 0x4 - ands r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08102236 - movs r0, 0 - strh r0, [r4, 0x18] - movs r0, 0x9 - strb r0, [r4] -_08102236: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08102242 - movs r0, 0x11 - strb r0, [r4] -_08102242: - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _08102256 - cmp r2, 0 - beq _08102256 - movs r0, 0x4 - bl sub_8104CAC - movs r0, 0x12 - strb r0, [r4] -_08102256: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102260: .4byte gSharedMem - thumb_func_end sub_81021FC - - thumb_func_start sub_8102264 -sub_8102264: @ 8102264 - push {r4,lr} - bl sub_81040C8 - lsls r0, 24 - cmp r0, 0 - bne _08102294 - ldr r4, _0810229C @ =gSharedMem - movs r0, 0x13 - strb r0, [r4] - ldrh r1, [r4, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08102294 - movs r0, 0x9 - strb r0, [r4] - ldrb r0, [r4, 0xA] - cmp r0, 0 - beq _08102294 - movs r0, 0x4 - bl sub_8104CAC - movs r0, 0x12 - strb r0, [r4] -_08102294: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810229C: .4byte gSharedMem - thumb_func_end sub_8102264 - - thumb_func_start sub_81022A0 -sub_81022A0: @ 81022A0 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _081022C0 - ldr r2, _081022C8 @ =gSharedMem - movs r0, 0x13 - strb r0, [r2] - ldrh r1, [r2, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _081022C0 - movs r0, 0x9 - strb r0, [r2] -_081022C0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081022C8: .4byte gSharedMem - thumb_func_end sub_81022A0 - - thumb_func_start sub_81022CC -sub_81022CC: @ 81022CC - push {lr} - movs r0, 0 - bl sub_8103D8C - movs r0, 0x1 - bl sub_8103D8C - movs r0, 0x2 - bl sub_8103D8C - ldr r1, _081022EC @ =gSharedMem - movs r0, 0x2 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081022EC: .4byte gSharedMem - thumb_func_end sub_81022CC - - thumb_func_start sub_81022F0 -sub_81022F0: @ 81022F0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x40 - ble _0810230C - movs r0, 0 - strh r0, [r1, 0xA] - ldr r1, _08102314 @ =gSharedMem - movs r0, 0x13 - strb r0, [r1] -_0810230C: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102314: .4byte gSharedMem - thumb_func_end sub_81022F0 - - thumb_func_start sub_8102318 -sub_8102318: @ 8102318 - push {lr} - ldr r0, _0810233C @ =gOtherText_QuitGamePrompt - bl sub_8101F2C - movs r0, 0x15 - movs r1, 0x7 - movs r2, 0x1 - bl DisplayYesNoMenu - bl sub_814AB84 - ldr r1, _08102340 @ =gSharedMem - movs r0, 0x16 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810233C: .4byte gOtherText_QuitGamePrompt -_08102340: .4byte gSharedMem - thumb_func_end sub_8102318 - - thumb_func_start sub_8102344 -sub_8102344: @ 8102344 - push {lr} - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - bne _0810237C - bl MenuZeroFillScreen - movs r0, 0 - bl sub_8103D8C - movs r0, 0x1 - bl sub_8103D8C - movs r0, 0x2 - bl sub_8103D8C - ldr r0, _08102378 @ =gSharedMem - ldrh r1, [r0, 0x12] - ldrh r2, [r0, 0xC] - adds r1, r2 - strh r1, [r0, 0xC] - movs r1, 0x1B - strb r1, [r0] - b _08102392 - .align 2, 0 -_08102378: .4byte gSharedMem -_0810237C: - cmp r1, 0x1 - beq _08102388 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _08102392 -_08102388: - bl MenuZeroFillScreen - ldr r1, _08102398 @ =gSharedMem - movs r0, 0x5 - strb r0, [r1] -_08102392: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102398: .4byte gSharedMem - thumb_func_end sub_8102344 - - thumb_func_start sub_810239C -sub_810239C: @ 810239C - push {lr} - ldr r0, _081023B0 @ =gOtherText_MaxCoins - bl sub_8101F2C - ldr r1, _081023B4 @ =gSharedMem - movs r0, 0x18 - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081023B0: .4byte gOtherText_MaxCoins -_081023B4: .4byte gSharedMem - thumb_func_end sub_810239C - - thumb_func_start sub_81023B8 -sub_81023B8: @ 81023B8 - push {lr} - ldr r0, _081023D8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _081023D0 - bl MenuZeroFillScreen - ldr r1, _081023DC @ =gSharedMem - movs r0, 0x5 - strb r0, [r1] -_081023D0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081023D8: .4byte gMain -_081023DC: .4byte gSharedMem - thumb_func_end sub_81023B8 - - thumb_func_start sub_81023E0 -sub_81023E0: @ 81023E0 - push {lr} - ldr r0, _081023F4 @ =gOtherText_OutOfCoins - bl sub_8101F2C - ldr r1, _081023F8 @ =gSharedMem - movs r0, 0x1A - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_081023F4: .4byte gOtherText_OutOfCoins -_081023F8: .4byte gSharedMem - thumb_func_end sub_81023E0 - - thumb_func_start sub_81023FC -sub_81023FC: @ 81023FC - push {lr} - ldr r0, _0810241C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08102414 - bl MenuZeroFillScreen - ldr r1, _08102420 @ =gSharedMem - movs r0, 0x1B - strb r0, [r1] -_08102414: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810241C: .4byte gMain -_08102420: .4byte gSharedMem - thumb_func_end sub_81023FC - - thumb_func_start sub_8102424 -sub_8102424: @ 8102424 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08102454 @ =gSaveBlock1 - ldr r4, _08102458 @ =gSharedMem - ldrh r1, [r4, 0xC] - ldr r2, _0810245C @ =0x00000494 - adds r0, r2 - movs r2, 0 - strh r1, [r0] - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102454: .4byte gSaveBlock1 -_08102458: .4byte gSharedMem -_0810245C: .4byte 0x00000494 - thumb_func_end sub_8102424 - - thumb_func_start sub_8102460 -sub_8102460: @ 8102460 - push {lr} - ldr r0, _0810247C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08102476 - ldr r0, _08102480 @ =gSharedMem - ldr r0, [r0, 0x64] - bl SetMainCallback2 -_08102476: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810247C: .4byte gPaletteFade -_08102480: .4byte gSharedMem - thumb_func_end sub_8102460 - - thumb_func_start sub_8102484 -sub_8102484: @ 8102484 - push {r4,lr} - ldr r4, _081024E4 @ =gSharedMem - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _081024DC - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - bne _081024DC - bl sub_8102540 - lsls r0, 24 - cmp r0, 0 - beq _081024C0 - bl sub_8102578 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - beq _081024C0 - ldr r1, _081024E8 @ =gUnknown_083ECE42 - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - ldrb r0, [r4, 0x4] - orrs r0, r1 - strb r0, [r4, 0x4] - cmp r3, 0x1 - bne _081024DC -_081024C0: - bl sub_81025BC - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x5 - beq _081024DC - ldr r2, _081024E4 @ =gSharedMem - ldr r1, _081024EC @ =gUnknown_083ECE48 - lsls r0, r3, 1 - adds r0, r1 - ldrb r1, [r0] - ldrb r0, [r2, 0x4] - orrs r0, r1 - strb r0, [r2, 0x4] -_081024DC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081024E4: .4byte gSharedMem -_081024E8: .4byte gUnknown_083ECE42 -_081024EC: .4byte gUnknown_083ECE48 - thumb_func_end sub_8102484 - - thumb_func_start sub_81024F0 -sub_81024F0: @ 81024F0 - push {lr} - ldr r1, _08102508 @ =gSharedMem - movs r0, 0 - strb r0, [r1, 0x6] - ldrb r0, [r1, 0x4] - cmp r0, 0 - beq _08102502 - movs r0, 0x1 - strb r0, [r1, 0x6] -_08102502: - pop {r0} - bx r0 - .align 2, 0 -_08102508: .4byte gSharedMem - thumb_func_end sub_81024F0 - - thumb_func_start sub_810250C -sub_810250C: @ 810250C - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0 - movs r3, 0x1 - ldr r4, _08102528 @ =gUnknown_083ECE3A -_08102518: - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0810252C - adds r0, r2, r4 - ldrb r0, [r0] - b _0810253A - .align 2, 0 -_08102528: .4byte gUnknown_083ECE3A -_0810252C: - lsrs r1, 1 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _08102518 - movs r0, 0 -_0810253A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810250C - - thumb_func_start sub_8102540 -sub_8102540: @ 8102540 - push {r4,lr} - bl Random - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08102568 @ =gUnknown_083ECD04 - ldr r1, _0810256C @ =gSharedMem - movs r3, 0x12 - ldrsh r2, [r1, r3] - ldrb r3, [r1, 0x1] - lsls r1, r3, 1 - adds r1, r3 - subs r1, 0x1 - adds r2, r1 - adds r2, r4 - ldrb r1, [r2] - cmp r1, r0 - bhi _08102570 - movs r0, 0 - b _08102572 - .align 2, 0 -_08102568: .4byte gUnknown_083ECD04 -_0810256C: .4byte gSharedMem -_08102570: - movs r0, 0x1 -_08102572: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102540 - - thumb_func_start sub_8102578 -sub_8102578: @ 8102578 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _081025B4 @ =gUnknown_083ECD16 -_0810257E: - bl Random - movs r2, 0xFF - ldr r3, _081025B8 @ =gSharedMem - lsls r1, r5, 16 - asrs r4, r1, 16 - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 1 - ldrb r3, [r3, 0x1] - adds r1, r3 - adds r1, r6 - ldrb r1, [r1] - ands r2, r0 - cmp r1, r2 - bgt _081025AA - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x2 - ble _0810257E -_081025AA: - lsls r0, r5, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081025B4: .4byte gUnknown_083ECD16 -_081025B8: .4byte gSharedMem - thumb_func_end sub_8102578 - - thumb_func_start sub_81025BC -sub_81025BC: @ 81025BC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, _08102600 @ =gUnknown_083ECD28 - mov r8, r0 - ldr r5, _08102604 @ =gSharedMem - movs r7, 0x80 - lsls r7, 17 -_081025CE: - bl Random - movs r4, 0xFF - ands r4, r0 - lsls r2, r6, 16 - asrs r1, r2, 16 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldrb r3, [r5, 0x1] - adds r0, r3 - add r0, r8 - ldrb r3, [r0] - cmp r1, 0 - bne _08102608 - ldrb r0, [r5, 0x3] - cmp r0, 0x1 - bne _08102608 - adds r3, 0xA - asrs r0, r7, 16 - cmp r3, r0 - ble _08102622 - adds r3, r0, 0 - b _08102622 - .align 2, 0 -_08102600: .4byte gUnknown_083ECD28 -_08102604: .4byte gSharedMem -_08102608: - asrs r0, r2, 16 - cmp r0, 0x4 - bne _08102622 - ldrb r0, [r5, 0x3] - cmp r0, 0x1 - bne _08102622 - lsls r0, r3, 16 - ldr r1, _08102648 @ =0xfff60000 - adds r0, r1 - lsrs r3, r0, 16 - cmp r0, 0 - bge _08102622 - movs r3, 0 -_08102622: - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, r4 - bgt _08102638 - movs r3, 0x80 - lsls r3, 9 - adds r0, r2, r3 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081025CE -_08102638: - lsls r0, r6, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08102648: .4byte 0xfff60000 - thumb_func_end sub_81025BC - - thumb_func_start sub_810264C -sub_810264C: @ 810264C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, _08102660 @ =gSharedMem - ldrb r0, [r3, 0x3] - cmp r0, 0 - beq _08102668 - ldr r0, _08102664 @ =gUnknown_083ECDAC - b _0810266A - .align 2, 0 -_08102660: .4byte gSharedMem -_08102664: .4byte gUnknown_083ECDAC -_08102668: - ldr r0, _0810267C @ =gUnknown_083ECD46 -_0810266A: - lsls r1, r2, 4 - adds r1, r2 - ldrb r3, [r3, 0x2] - adds r1, r3 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_0810267C: .4byte gUnknown_083ECD46 - thumb_func_end sub_810264C - - thumb_func_start sub_8102680 -sub_8102680: @ 8102680 - push {r4-r6,lr} - ldr r1, _081026A4 @ =gSharedMem - movs r0, 0 - strb r0, [r1, 0x5] - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl sub_810264C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _081026D2 - movs r6, 0x5 - b _081026AE - .align 2, 0 -_081026A4: .4byte gSharedMem -_081026A8: - subs r0, r5, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081026AE: - lsls r0, r6, 16 - asrs r5, r0, 16 - cmp r5, 0 - ble _081026CE - bl Random - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r6, 24 - lsrs r0, 24 - bl sub_810264C - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcs _081026A8 -_081026CE: - ldr r0, _081026D8 @ =gSharedMem - strb r6, [r0, 0x5] -_081026D2: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081026D8: .4byte gSharedMem - thumb_func_end sub_8102680 - - thumb_func_start sub_81026DC -sub_81026DC: @ 81026DC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - movs r1, 0xFF - ands r1, r0 - ldr r0, _081026FC @ =gUnknown_083ECE12 - lsls r4, 1 - adds r4, r0 - ldrh r4, [r4] - cmp r1, r4 - bcc _08102700 - movs r0, 0 - b _08102702 - .align 2, 0 -_081026FC: .4byte gUnknown_083ECE12 -_08102700: - movs r0, 0x1 -_08102702: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81026DC - - thumb_func_start dp15_jump_random_unknown -dp15_jump_random_unknown: @ 8102708 - push {r4,r5,lr} - movs r4, 0 - ldr r0, _0810271C @ =gSharedMem - movs r2, 0x10 - ldrsh r1, [r0, r2] - ldr r0, _08102720 @ =0x0000012b - cmp r1, r0 - ble _08102724 - movs r4, 0x4 - b _0810273A - .align 2, 0 -_0810271C: .4byte gSharedMem -_08102720: .4byte 0x0000012b -_08102724: - cmp r1, 0xF9 - ble _0810272C - movs r4, 0x3 - b _0810273A -_0810272C: - cmp r1, 0xC7 - ble _08102734 - movs r4, 0x2 - b _0810273A -_08102734: - cmp r1, 0x95 - ble _0810273A - movs r4, 0x1 -_0810273A: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r5, _0810275C @ =gUnknown_083ECE1C - lsls r4, 2 - adds r0, r4, r5 - ldrb r0, [r0] - cmp r1, r0 - bcs _08102760 - movs r0, 0x4 - b _0810279A - .align 2, 0 -_0810275C: .4byte gUnknown_083ECE1C -_08102760: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 24 - adds r2, r5, 0x2 - adds r2, r4, r2 - ldr r3, _08102790 @ =gUnknown_083ECE30 - ldr r1, _08102794 @ =gSharedMem - ldrb r1, [r1, 0xB] - lsls r1, 1 - adds r1, r3 - ldrb r1, [r1] - ldrb r2, [r2] - adds r1, r2 - lsls r1, 24 - cmp r0, r1 - bcc _08102798 - movs r0, 0x8 - b _0810279A - .align 2, 0 -_08102790: .4byte gUnknown_083ECE30 -_08102794: .4byte gSharedMem -_08102798: - movs r0, 0x2 -_0810279A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end dp15_jump_random_unknown - - thumb_func_start sub_81027A0 -sub_81027A0: @ 81027A0 - push {r4,lr} - ldr r4, _081027CC @ =gSharedMem - movs r0, 0 - strh r0, [r4, 0x8] - bl sub_81027D0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - ble _081027B8 - bl sub_8102840 -_081027B8: - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0x2 - ble _081027C4 - bl sub_810290C -_081027C4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081027CC: .4byte gSharedMem - thumb_func_end sub_81027A0 - - thumb_func_start sub_81027D0 -sub_81027D0: @ 81027D0 - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x2 - bl sub_8102BA4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_8102BA4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x2 - bl sub_8102BA4 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0810282E - ldr r2, _08102834 @ =gSharedMem - ldr r0, _08102838 @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _0810283C @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0 - bl sub_8103E04 -_0810282E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102834: .4byte gSharedMem -_08102838: .4byte gUnknown_083ECE6C -_0810283C: .4byte gUnknown_083ECE5A - thumb_func_end sub_81027D0 - - thumb_func_start sub_8102840 -sub_8102840: @ 8102840 - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _0810289E - cmp r1, 0 - bne _0810287C - movs r1, 0x1 -_0810287C: - ldr r2, _08102900 @ =gSharedMem - ldr r0, _08102904 @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _08102908 @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0x1 - bl sub_8103E04 -_0810289E: - movs r0, 0 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _081028FA - cmp r1, 0 - bne _081028D8 - movs r1, 0x1 -_081028D8: - ldr r2, _08102900 @ =gSharedMem - ldr r0, _08102904 @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _08102908 @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] - movs r0, 0x2 - bl sub_8103E04 -_081028FA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102900: .4byte gSharedMem -_08102904: .4byte gUnknown_083ECE6C -_08102908: .4byte gUnknown_083ECE5A - thumb_func_end sub_8102840 - - thumb_func_start sub_810290C -sub_810290C: @ 810290C - push {r4,r5,lr} - movs r0, 0 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _08102968 - cmp r1, 0 - beq _08102962 - ldr r2, _081029C8 @ =gSharedMem - ldr r0, _081029CC @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _081029D0 @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] -_08102962: - movs r0, 0x3 - bl sub_8103E04 -_08102968: - movs r0, 0 - movs r1, 0x3 - bl sub_8102BA4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x1 - movs r1, 0x2 - bl sub_8102BA4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x2 - movs r1, 0x1 - bl sub_8102BA4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_81029D4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x9 - beq _081029C2 - cmp r1, 0 - beq _081029BC - ldr r2, _081029C8 @ =gSharedMem - ldr r0, _081029CC @ =gUnknown_083ECE6C - lsls r1, 1 - adds r0, r1, r0 - ldrh r0, [r0] - ldrh r3, [r2, 0xE] - adds r0, r3 - strh r0, [r2, 0xE] - ldr r0, _081029D0 @ =gUnknown_083ECE5A - adds r1, r0 - ldrh r0, [r2, 0x8] - ldrh r1, [r1] - orrs r0, r1 - strh r0, [r2, 0x8] -_081029BC: - movs r0, 0x4 - bl sub_8103E04 -_081029C2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081029C8: .4byte gSharedMem -_081029CC: .4byte gUnknown_083ECE6C -_081029D0: .4byte gUnknown_083ECE5A - thumb_func_end sub_810290C - - thumb_func_start sub_81029D4 -sub_81029D4: @ 81029D4 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r3, r1 - bne _081029F8 - cmp r3, r2 - bne _081029F8 - ldr r0, _081029F4 @ =gUnknown_083ECE52 - adds r0, r3, r0 - ldrb r0, [r0] - b _08102A1E - .align 2, 0 -_081029F4: .4byte gUnknown_083ECE52 -_081029F8: - cmp r3, 0 - bne _08102A04 - cmp r1, 0 - bne _08102A04 - cmp r2, 0x1 - beq _08102A10 -_08102A04: - cmp r3, 0x1 - bne _08102A14 - cmp r1, 0x1 - bne _08102A14 - cmp r2, 0 - bne _08102A14 -_08102A10: - movs r0, 0x6 - b _08102A1E -_08102A14: - cmp r3, 0x4 - beq _08102A1C - movs r0, 0x9 - b _08102A1E -_08102A1C: - movs r0, 0 -_08102A1E: - pop {r1} - bx r1 - thumb_func_end sub_81029D4 - - thumb_func_start sub_8102A24 -sub_8102A24: @ 8102A24 - push {r4,lr} - ldr r4, _08102A40 @ =sub_8102A64 - adds r0, r4, 0 - movs r1, 0x4 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102A40: .4byte sub_8102A64 - thumb_func_end sub_8102A24 - - thumb_func_start sub_8102A44 -sub_8102A44: @ 8102A44 - push {lr} - ldr r0, _08102A58 @ =sub_8102A64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08102A5C - movs r0, 0 - b _08102A5E - .align 2, 0 -_08102A58: .4byte sub_8102A64 -_08102A5C: - movs r0, 0x1 -_08102A5E: - pop {r1} - bx r1 - thumb_func_end sub_8102A44 - - thumb_func_start sub_8102A64 -sub_8102A64: @ 8102A64 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08102A94 @ =gUnknown_083ECB20 - ldr r2, _08102A98 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08102A76: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08102A76 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102A94: .4byte gUnknown_083ECB20 -_08102A98: .4byte gTasks - thumb_func_end sub_8102A64 - - thumb_func_start sub_8102A9C -sub_8102A9C: @ 8102A9C - push {r4,lr} - adds r4, r0, 0 - bl sub_8103E38 - lsls r0, 24 - cmp r0, 0 - beq _08102AC8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r0, _08102AC4 @ =gSharedMem - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08102AC8 - movs r0, 0x2 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _08102ACA - .align 2, 0 -_08102AC4: .4byte gSharedMem -_08102AC8: - movs r0, 0 -_08102ACA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8102A9C - - thumb_func_start sub_8102AD0 -sub_8102AD0: @ 8102AD0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08102B22 - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08102AF6 - movs r0, 0x15 - bl PlaySE -_08102AF6: - ldr r2, _08102B70 @ =gSharedMem - ldrh r0, [r2, 0xE] - subs r0, 0x1 - strh r0, [r2, 0xE] - ldrh r3, [r2, 0xC] - movs r0, 0xC - ldrsh r1, [r2, r0] - ldr r0, _08102B74 @ =0x0000270e - cmp r1, r0 - bgt _08102B0E - adds r0, r3, 0x1 - strh r0, [r2, 0xC] -_08102B0E: - movs r0, 0x8 - strh r0, [r4, 0xA] - ldr r0, _08102B78 @ =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08102B22 - movs r0, 0x4 - strh r0, [r4, 0xA] -_08102B22: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08102B58 - ldr r0, _08102B78 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08102B58 - movs r0, 0x15 - bl PlaySE - ldr r1, _08102B70 @ =gSharedMem - ldrh r0, [r1, 0xE] - ldrh r2, [r1, 0xC] - adds r0, r2 - strh r0, [r1, 0xC] - lsls r0, 16 - asrs r0, 16 - ldr r2, _08102B7C @ =0x0000270f - cmp r0, r2 - ble _08102B54 - strh r2, [r1, 0xC] -_08102B54: - movs r0, 0 - strh r0, [r1, 0xE] -_08102B58: - ldr r0, _08102B70 @ =gSharedMem - movs r1, 0xE - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08102B68 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08102B68: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102B70: .4byte gSharedMem -_08102B74: .4byte 0x0000270e -_08102B78: .4byte gMain -_08102B7C: .4byte 0x0000270f - thumb_func_end sub_8102AD0 - - thumb_func_start sub_8102B80 -sub_8102B80: @ 8102B80 - push {lr} - bl sub_8103E7C - lsls r0, 24 - cmp r0, 0 - beq _08102B9A - ldr r0, _08102BA0 @ =sub_8102A64 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08102B9A: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102BA0: .4byte sub_8102A64 - thumb_func_end sub_8102B80 - - thumb_func_start sub_8102BA4 -sub_8102BA4: @ 8102BA4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - ldr r0, _08102BF0 @ =gSharedMem - lsls r2, r4, 1 - adds r0, 0x28 - adds r2, r0 - movs r3, 0 - ldrsh r0, [r2, r3] - lsls r1, 16 - asrs r1, 16 - adds r0, r1 - movs r1, 0x15 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08102BD4 - adds r0, 0x15 - lsls r0, 16 - lsrs r1, r0, 16 -_08102BD4: - ldr r2, _08102BF4 @ =gUnknown_083ECCB2 - lsls r1, 16 - asrs r1, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 2 - adds r0, r4 - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102BF0: .4byte gSharedMem -_08102BF4: .4byte gUnknown_083ECCB2 - thumb_func_end sub_8102BA4 - - thumb_func_start sub_8102BF8 -sub_8102BF8: @ 8102BF8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - movs r6, 0 - ldr r0, _08102C40 @ =gSharedMem - lsls r1, r5, 1 - adds r0, 0x1C - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - beq _08102C20 - ldr r6, _08102C44 @ =0x0000ffff -_08102C20: - lsls r1, r4, 16 - asrs r1, 16 - lsls r0, r6, 16 - asrs r0, 16 - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - bl sub_8102BA4 - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08102C40: .4byte gSharedMem -_08102C44: .4byte 0x0000ffff - thumb_func_end sub_8102BF8 - - thumb_func_start sub_8102C48 -sub_8102C48: @ 8102C48 - push {lr} - ldr r1, _08102C7C @ =gSharedMem - movs r2, 0x16 - ldrsh r1, [r1, r2] - lsls r0, 16 - asrs r0, 16 - adds r1, r0 - adds r0, r1, 0 - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08102C6E - adds r0, 0x6 - lsls r0, 16 - lsrs r1, r0, 16 -_08102C6E: - ldr r0, _08102C80 @ =gUnknown_083ECCF1 - lsls r1, 16 - asrs r1, 16 - adds r1, r0 - ldrb r0, [r1] - pop {r1} - bx r1 - .align 2, 0 -_08102C7C: .4byte gSharedMem -_08102C80: .4byte gUnknown_083ECCF1 - thumb_func_end sub_8102C48 - - thumb_func_start sub_8102C84 -sub_8102C84: @ 8102C84 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - ldr r6, _08102CC8 @ =gSharedMem - lsrs r5, 23 - adds r4, r6, 0 - adds r4, 0x1C - adds r4, r5, r4 - lsls r1, 16 - asrs r1, 16 - ldrh r0, [r4] - adds r1, r0 - strh r1, [r4] - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0xFC - lsls r1, 1 - bl __modsi3 - strh r0, [r4] - adds r6, 0x28 - adds r5, r6 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r1, 0x18 - bl __divsi3 - movs r1, 0x15 - subs r1, r0 - strh r1, [r5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08102CC8: .4byte gSharedMem - thumb_func_end sub_8102C84 - - thumb_func_start sub_8102CCC -sub_8102CCC: @ 8102CCC - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r0, _08102D24 @ =gSharedMem - lsls r1, r6, 1 - adds r0, 0x1C - adds r5, r1, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r2, r0, 16 - asrs r1, r2, 16 - cmp r1, 0 - beq _08102D18 - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - bge _08102D00 - lsrs r4, r2, 16 -_08102D00: - lsls r1, r4, 16 - asrs r1, 16 - adds r0, r6, 0 - bl sub_8102C84 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 -_08102D18: - lsls r0, 16 - asrs r0, 16 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08102D24: .4byte gSharedMem - thumb_func_end sub_8102CCC - - thumb_func_start sub_8102D28 -sub_8102D28: @ 8102D28 - push {r4,lr} - ldr r4, _08102D58 @ =gSharedMem - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4, 0x14] - adds r0, r1 - strh r0, [r4, 0x14] - movs r1, 0x14 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl __modsi3 - strh r0, [r4, 0x14] - movs r1, 0x14 - ldrsh r0, [r4, r1] - movs r1, 0x14 - bl __divsi3 - movs r1, 0x6 - subs r1, r0 - strh r1, [r4, 0x16] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08102D58: .4byte gSharedMem - thumb_func_end sub_8102D28 - - thumb_func_start sub_8102D5C -sub_8102D5C: @ 8102D5C - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r5, _08102DA4 @ =gSharedMem - movs r1, 0x14 - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 - lsls r2, r0, 16 - asrs r1, r2, 16 - cmp r1, 0 - beq _08102D9A - lsls r0, r4, 16 - asrs r0, 16 - cmp r1, r0 - bge _08102D84 - lsrs r4, r2, 16 -_08102D84: - lsls r0, r4, 16 - asrs r0, 16 - bl sub_8102D28 - movs r1, 0x14 - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r0, 16 -_08102D9A: - lsls r0, 16 - asrs r0, 16 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08102DA4: .4byte gSharedMem - thumb_func_end sub_8102D5C - - thumb_func_start sub_8102DA8 -sub_8102DA8: @ 8102DA8 - push {r4-r7,lr} - movs r4, 0 - ldr r5, _08102DE0 @ =sub_8102E68 - ldr r7, _08102DE4 @ =gTasks - ldr r6, _08102DE8 @ =gSharedMem + 0x3A -_08102DB2: - adds r0, r5, 0 - movs r1, 0x2 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r7 - strh r4, [r1, 0x26] - adds r1, r4, r6 - strb r0, [r1] - bl _call_via_r5 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08102DB2 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08102DE0: .4byte sub_8102E68 -_08102DE4: .4byte gTasks -_08102DE8: .4byte gSharedMem + 0x3A - thumb_func_end sub_8102DA8 - - thumb_func_start sub_8102DEC -sub_8102DEC: @ 8102DEC - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08102E14 @ =gTasks - ldr r1, _08102E18 @ =gSharedMem - adds r1, 0x3A - adds r0, r1 - ldrb r2, [r0] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r3 - movs r2, 0x1 - strh r2, [r1, 0x8] - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - strh r2, [r0, 0x24] - bx lr - .align 2, 0 -_08102E14: .4byte gTasks -_08102E18: .4byte gSharedMem - thumb_func_end sub_8102DEC - - thumb_func_start sub_8102E1C -sub_8102E1C: @ 8102E1C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08102E38 @ =gTasks - ldr r1, _08102E3C @ =gSharedMem - adds r1, 0x3A - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x8] - bx lr - .align 2, 0 -_08102E38: .4byte gTasks -_08102E3C: .4byte gSharedMem - thumb_func_end sub_8102E1C - - thumb_func_start sub_8102E40 -sub_8102E40: @ 8102E40 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08102E60 @ =gTasks - ldr r1, _08102E64 @ =gSharedMem - adds r1, 0x3A - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x24] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_08102E60: .4byte gTasks -_08102E64: .4byte gSharedMem - thumb_func_end sub_8102E40 - - thumb_func_start sub_8102E68 -sub_8102E68: @ 8102E68 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08102E98 @ =gUnknown_083ECB2C - ldr r2, _08102E9C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08102E7A: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08102E7A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08102E98: .4byte gUnknown_083ECB2C -_08102E9C: .4byte gTasks - thumb_func_end sub_8102E68 - - thumb_func_start sub_8102EA0 -sub_8102EA0: @ 8102EA0 - movs r0, 0 - bx lr - thumb_func_end sub_8102EA0 - - thumb_func_start sub_8102EA4 -sub_8102EA4: @ 8102EA4 - push {lr} - ldrh r0, [r0, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08102EBC @ =gSharedMem - movs r2, 0x1A - ldrsh r1, [r1, r2] - bl sub_8102C84 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08102EBC: .4byte gSharedMem - thumb_func_end sub_8102EA4 - - thumb_func_start sub_8102EC0 -sub_8102EC0: @ 8102EC0 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0x8] - ldr r3, _08102F40 @ =gSharedMem - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x34 - adds r0, r1 - strh r2, [r0] - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0x2E - adds r0, r1 - strh r2, [r0] - ldrb r0, [r3, 0xA] - cmp r0, 0 - bne _08102F28 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _08102F12 - ldrb r0, [r3, 0x6] - cmp r0, 0 - beq _08102F12 - ldr r1, _08102F44 @ =gUnknown_083ECB40 - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - cmp r0, 0 - bne _08102F28 -_08102F12: - ldr r1, _08102F40 @ =gSharedMem - movs r0, 0 - strb r0, [r1, 0x6] - ldr r1, _08102F48 @ =gUnknown_083ECB4C - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08102F28: - ldr r0, _08102F40 @ =gSharedMem - movs r2, 0x26 - ldrsh r1, [r4, r2] - lsls r1, 1 - adds r0, 0x2E - adds r1, r0 - ldrh r0, [r1] - strh r0, [r4, 0xA] - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08102F40: .4byte gSharedMem -_08102F44: .4byte gUnknown_083ECB40 -_08102F48: .4byte gUnknown_083ECB4C - thumb_func_end sub_8102EC0 - - thumb_func_start sub_8102F4C -sub_8102F4C: @ 8102F4C - push {r4-r7,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r1, _08102F8C @ =gUnknown_083ECB58 - mov r0, sp - movs r2, 0xA - bl memcpy - ldr r5, _08102F90 @ =gSharedMem - movs r1, 0x26 - ldrsh r0, [r4, r1] - lsls r6, r0, 1 - adds r7, r5, 0 - adds r7, 0x1C - adds r0, r6, r7 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r0, 0 - beq _08102F94 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r6, 0x1A - ldrsh r1, [r5, r6] - bl sub_8102CCC - b _08102FC8 - .align 2, 0 -_08102F8C: .4byte gUnknown_083ECB58 -_08102F90: .4byte gSharedMem -_08102F94: - adds r0, r5, 0 - adds r0, 0x2E - adds r1, r6, r0 - ldrh r3, [r1] - movs r6, 0 - ldrsh r0, [r1, r6] - cmp r0, 0 - beq _08102FCC - subs r0, r3, 0x1 - strh r0, [r1] - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x1A - ldrsh r1, [r5, r2] - bl sub_8102C84 - movs r6, 0x26 - ldrsh r0, [r4, r6] - lsls r0, 1 - adds r0, r7 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x18 - bl __modsi3 -_08102FC8: - lsls r0, 16 - lsrs r2, r0, 16 -_08102FCC: - cmp r2, 0 - bne _08102FF8 - ldr r1, _08103004 @ =gSharedMem - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r1, 0x2E - adds r0, r1 - movs r6, 0 - ldrsh r1, [r0, r6] - cmp r1, 0 - bne _08102FF8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r2, 0xA - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0xA] - strh r1, [r4, 0xC] -_08102FF8: - movs r0, 0 - add sp, 0xC - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08103004: .4byte gSharedMem - thumb_func_end sub_8102F4C - - thumb_func_start sub_8103008 -sub_8103008: @ 8103008 - push {r4,lr} - adds r2, r0, 0 - ldr r1, _08103058 @ =gSharedMem - movs r3, 0x26 - ldrsh r0, [r2, r3] - lsls r0, 1 - adds r4, r1, 0 - adds r4, 0x22 - adds r0, r4 - ldrh r1, [r2, 0xA] - strh r1, [r0] - ldrh r0, [r2, 0xA] - negs r3, r0 - strh r3, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08103038 - lsls r0, r3, 16 - asrs r0, 17 - strh r0, [r2, 0xA] -_08103038: - movs r0, 0xA - ldrsh r3, [r2, r0] - cmp r3, 0 - bne _0810304E - strh r3, [r2, 0x8] - strh r3, [r2, 0x24] - movs r1, 0x26 - ldrsh r0, [r2, r1] - lsls r0, 1 - adds r0, r4 - strh r3, [r0] -_0810304E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08103058: .4byte gSharedMem - thumb_func_end sub_8103008 - - thumb_func_start sub_810305C -sub_810305C: @ 810305C - push {r4,r5,lr} - ldr r4, _0810309C @ =gSharedMem - ldrb r0, [r4, 0x4] - bl sub_810250C - lsls r0, 24 - lsrs r3, r0, 24 - adds r5, r3, 0 - ldrb r1, [r4, 0x4] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _0810307A - movs r5, 0 - movs r3, 0x1 -_0810307A: - ldr r1, _081030A0 @ =gUnknown_083ECB64 - movs r2, 0x12 - ldrsh r0, [r4, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - adds r0, r5, 0 - adds r1, r3, 0 - bl _call_via_r2 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810309C: .4byte gSharedMem -_081030A0: .4byte gUnknown_083ECB64 - thumb_func_end sub_810305C - - thumb_func_start sub_81030A4 -sub_81030A4: @ 81030A4 - push {r4,r5,lr} - adds r3, r0, 0 - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 16 - asrs r3, 16 - movs r0, 0 - adds r1, r3, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, r4 - beq _081030CC - cmp r0, r5 - bne _081030D8 -_081030CC: - ldr r0, _081030D4 @ =gSharedMem - strb r1, [r0, 0x7] - movs r0, 0x1 - b _081030DA - .align 2, 0 -_081030D4: .4byte gSharedMem -_081030D8: - movs r0, 0 -_081030DA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81030A4 - - thumb_func_start sub_81030E0 -sub_81030E0: @ 81030E0 - push {r4,lr} - movs r1, 0x1 - lsls r0, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _08103128 - movs r1, 0x2 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _08103128 - movs r1, 0x3 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bne _0810312C -_08103128: - movs r0, 0x1 - b _0810312E -_0810312C: - movs r0, 0 -_0810312E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81030E0 - - thumb_func_start sub_8103134 -sub_8103134: @ 8103134 - push {lr} - ldr r0, _08103148 @ =gSharedMem - ldrb r1, [r0, 0x4] - movs r0, 0xC2 - ands r0, r1 - cmp r0, 0 - bne _0810314C - movs r0, 0 - b _0810314E - .align 2, 0 -_08103148: .4byte gSharedMem -_0810314C: - movs r0, 0x1 -_0810314E: - pop {r1} - bx r1 - thumb_func_end sub_8103134 - - thumb_func_start sub_8103154 -sub_8103154: @ 8103154 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - movs r5, 0 - movs r0, 0x2 - mov r9, r0 - ldr r6, _08103194 @ =gSharedMem -_0810316E: - lsls r0, r5, 16 - asrs r4, r0, 16 - mov r1, r9 - subs r0, r1, r4 - lsls r0, 16 - asrs r0, 16 - mov r1, r8 - adds r2, r7, 0 - bl sub_81030A4 - lsls r0, 24 - cmp r0, 0 - beq _08103198 - movs r0, 0x2 - strh r0, [r6, 0x34] - strh r5, [r6, 0x2E] - movs r0, 0x1 - b _081031A6 - .align 2, 0 -_08103194: .4byte gSharedMem -_08103198: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0810316E - movs r0, 0 -_081031A6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8103154 - - thumb_func_start sub_81031B4 -sub_81031B4: @ 81031B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - bl sub_8103134 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _081031E2 - movs r0, 0 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _0810321E -_081031E2: - movs r0, 0x1 - mov r8, r0 - ldr r5, _0810320C @ =gSharedMem - movs r7, 0 -_081031EA: - mov r1, r8 - lsls r0, r1, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - mov r1, r10 - mov r2, r9 - bl sub_81030A4 - lsls r0, 24 - cmp r0, 0 - beq _08103210 - mov r0, r8 - strh r0, [r5, 0x34] - strh r7, [r5, 0x2E] - movs r0, 0x1 - b _081032B2 - .align 2, 0 -_0810320C: .4byte gSharedMem -_08103210: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - mov r8, r1 - asrs r0, 16 - cmp r0, 0x3 - ble _081031EA -_0810321E: - movs r0, 0x1 - mov r8, r0 - adds r7, r6, 0 - ldr r6, _0810326C @ =gSharedMem -_08103226: - mov r1, r8 - lsls r5, r1, 16 - cmp r7, 0 - bne _0810323A - asrs r0, r5, 16 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _081032A0 -_0810323A: - movs r0, 0x1 - asrs r4, r5, 16 - subs r0, r4 - lsls r0, 16 - asrs r0, 16 - mov r1, r10 - mov r2, r9 - bl sub_81030A4 - lsls r0, 24 - cmp r0, 0 - beq _081032A0 - cmp r4, 0x1 - bne _08103270 - cmp r7, 0 - bne _08103266 - movs r0, 0x3 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _08103270 -_08103266: - movs r0, 0x3 - strh r0, [r6, 0x34] - b _0810329A - .align 2, 0 -_0810326C: .4byte gSharedMem -_08103270: - asrs r0, r5, 16 - cmp r0, 0x3 - bgt _08103294 - adds r4, r0, 0x1 - cmp r7, 0 - bne _0810328A - lsls r0, r4, 16 - asrs r0, 16 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _08103294 -_0810328A: - movs r0, 0x2 - strh r0, [r6, 0x34] - strh r4, [r6, 0x2E] - movs r0, 0x1 - b _081032B2 -_08103294: - movs r0, 0x1 - strh r0, [r6, 0x34] - mov r0, r8 -_0810329A: - strh r0, [r6, 0x2E] - movs r0, 0x1 - b _081032B2 -_081032A0: - movs r1, 0x80 - lsls r1, 9 - adds r0, r5, r1 - lsrs r1, r0, 16 - mov r8, r1 - asrs r0, 16 - cmp r0, 0x4 - ble _08103226 - movs r0, 0 -_081032B2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81031B4 - - thumb_func_start sub_81032C0 -sub_81032C0: @ 81032C0 - push {lr} - ldr r1, _081032E0 @ =gUnknown_083ECB70 - ldr r0, _081032E4 @ =gSharedMem - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_081032E0: .4byte gUnknown_083ECB70 -_081032E4: .4byte gSharedMem - thumb_func_end sub_81032C0 - - thumb_func_start sub_81032E8 -sub_81032E8: @ 81032E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08103320 @ =gSharedMem - movs r6, 0 - ldrh r1, [r0, 0x34] - mov r8, r1 - movs r1, 0x34 - ldrsh r7, [r0, r1] - adds r5, r0, 0 -_081032FC: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r5, 0x7] - cmp r0, r1 - bne _08103324 - mov r0, r8 - strh r0, [r5, 0x36] - strh r6, [r5, 0x30] - movs r0, 0x1 - b _08103332 - .align 2, 0 -_08103320: .4byte gSharedMem -_08103324: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081032FC - movs r0, 0 -_08103332: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81032E8 - - thumb_func_start sub_810333C -sub_810333C: @ 810333C - push {r4-r7,lr} - bl sub_81032E8 - lsls r0, 24 - cmp r0, 0 - beq _0810339A - ldr r1, _0810338C @ =gSharedMem - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _08103396 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - ble _08103396 - cmp r0, 0x4 - beq _08103396 - movs r5, 0 - movs r7, 0x2 - adds r6, r1, 0 -_08103364: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x7] - cmp r0, r1 - beq _08103390 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08103364 - b _08103396 - .align 2, 0 -_0810338C: .4byte gSharedMem -_08103390: - movs r0, 0x2 - strh r0, [r6, 0x36] - strh r5, [r6, 0x30] -_08103396: - movs r0, 0x1 - b _081033D2 -_0810339A: - ldr r1, _081033D8 @ =gSharedMem - movs r2, 0x34 - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _081033D0 - movs r5, 0 - movs r7, 0x2 - adds r6, r1, 0 -_081033AA: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x7] - cmp r0, r1 - beq _08103390 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081033AA -_081033D0: - movs r0, 0 -_081033D2: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081033D8: .4byte gSharedMem - thumb_func_end sub_810333C - - thumb_func_start sub_81033DC -sub_81033DC: @ 81033DC - push {r4,lr} - ldr r0, _08103414 @ =gSharedMem - ldrb r3, [r0, 0x7] - adds r4, r3, 0 - ldrb r2, [r0, 0x4] - movs r1, 0x40 - ands r1, r2 - cmp r1, 0 - beq _081033F6 - movs r3, 0 - cmp r4, 0 - bne _081033F6 - movs r3, 0x1 -_081033F6: - ldr r1, _08103418 @ =gUnknown_083ECB7C - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r3, 0 - bl _call_via_r1 - lsls r0, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08103414: .4byte gSharedMem -_08103418: .4byte gUnknown_083ECB7C - thumb_func_end sub_81033DC - - thumb_func_start sub_810341C -sub_810341C: @ 810341C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, _0810345C @ =gSharedMem - movs r5, 0 - ldrh r1, [r0, 0x36] - mov r8, r1 - movs r1, 0x36 - ldrsh r7, [r0, r1] - adds r6, r0, 0 -_08103438: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r9 - bne _08103460 - mov r0, r8 - strh r0, [r6, 0x38] - strh r5, [r6, 0x32] - movs r0, 0x1 - b _0810346E - .align 2, 0 -_0810345C: .4byte gSharedMem -_08103460: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08103438 - movs r0, 0 -_0810346E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810341C - - thumb_func_start sub_810347C -sub_810347C: @ 810347C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _081034A0 @ =gSharedMem - movs r2, 0x34 - ldrsh r1, [r0, r2] - movs r2, 0x36 - ldrsh r0, [r0, r2] - cmp r1, r0 - bne _081034B4 - adds r0, r6, 0 - bl sub_810341C - lsls r0, 24 - lsrs r0, 24 - b _081034EA - .align 2, 0 -_081034A0: .4byte gSharedMem -_081034A4: - ldr r0, _081034B0 @ =gSharedMem - strh r5, [r0, 0x32] - mov r1, r8 - strh r1, [r0, 0x38] - movs r0, 0x1 - b _081034EA - .align 2, 0 -_081034B0: .4byte gSharedMem -_081034B4: - movs r2, 0x1 - mov r8, r2 - cmp r1, 0x1 - bne _081034C0 - movs r0, 0x3 - mov r8, r0 -_081034C0: - movs r5, 0 - mov r7, r8 -_081034C4: - lsls r0, r5, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, r6 - beq _081034A4 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081034C4 - movs r0, 0 -_081034EA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810347C - - thumb_func_start sub_81034F4 -sub_81034F4: @ 81034F4 - push {r4,r5,lr} - movs r5, 0 - b _08103500 -_081034FA: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08103500: - lsls r0, r5, 16 - asrs r4, r0, 16 - adds r0, r4, 0 - bl sub_81030E0 - lsls r0, 24 - cmp r0, 0 - bne _081034FA - ldr r0, _0810351C @ =gSharedMem - strh r5, [r0, 0x2E] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810351C: .4byte gSharedMem - thumb_func_end sub_81034F4 - - thumb_func_start sub_8103520 -sub_8103520: @ 8103520 - push {lr} - adds r1, r0, 0 - ldrb r0, [r1] - cmp r0, 0 - bne _0810352E - movs r0, 0x1 - b _08103538 -_0810352E: - cmp r0, 0x1 - beq _08103536 - movs r0, 0 - b _0810353C -_08103536: - movs r0, 0 -_08103538: - strb r0, [r1] - movs r0, 0x1 -_0810353C: - pop {r1} - bx r1 - thumb_func_end sub_8103520 - - thumb_func_start sub_8103540 -sub_8103540: @ 8103540 - push {lr} - ldr r1, _0810355C @ =gUnknown_083ECB88 - ldr r0, _08103560 @ =gSharedMem - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .align 2, 0 -_0810355C: .4byte gUnknown_083ECB88 -_08103560: .4byte gSharedMem - thumb_func_end sub_8103540 - - thumb_func_start sub_8103564 -sub_8103564: @ 8103564 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r4, _081035D0 @ =gSharedMem - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081035E0 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081035E0 - ldrh r0, [r4, 0x2E] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_8103520 - lsls r0, 24 - cmp r0, 0 - beq _081035E0 - movs r5, 0 - mov r7, sp - movs r0, 0x2 - mov r8, r0 - adds r6, r4, 0 -_081035AA: - lsls r0, r5, 16 - asrs r4, r0, 16 - mov r0, r8 - subs r1, r0, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _081035D4 - movs r0, 0x2 - strh r0, [r6, 0x36] - strh r5, [r6, 0x30] - b _081035E0 - .align 2, 0 -_081035D0: .4byte gSharedMem -_081035D4: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081035AA -_081035E0: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8103564 - - thumb_func_start j5_08111E84 -j5_08111E84: @ 81035EC - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _08103650 @ =gSharedMem - ldrh r2, [r4, 0x34] - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08103660 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08103660 - ldrh r1, [r4, 0x2E] - subs r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_8103520 - lsls r0, 24 - cmp r0, 0 - beq _08103660 - movs r6, 0 - mov r7, sp - adds r5, r4, 0 -_0810362A: - ldrh r1, [r5, 0x34] - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _08103654 - ldrh r0, [r5, 0x34] - strh r0, [r5, 0x36] - strh r6, [r5, 0x30] - b _08103660 - .align 2, 0 -_08103650: .4byte gSharedMem -_08103654: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0810362A -_08103660: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end j5_08111E84 - - thumb_func_start sub_8103668 -sub_8103668: @ 8103668 - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, _0810368C @ =gSharedMem - ldrh r3, [r4, 0x34] - movs r0, 0x34 - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _0810375A - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0810375A - cmp r2, 0x2 - bne _081036AE - bl j5_08111E84 - b _0810375A - .align 2, 0 -_0810368C: .4byte gSharedMem -_08103690: - ldr r0, _0810369C @ =gSharedMem - movs r1, 0 - strh r6, [r0, 0x36] - strh r1, [r0, 0x30] - b _0810375A - .align 2, 0 -_0810369C: .4byte gSharedMem -_081036A0: - movs r0, 0x2 - strh r0, [r5, 0x36] - adds r0, r4, 0x1 - strh r0, [r5, 0x30] - b _0810375A -_081036AA: - movs r0, 0x3 - b _08103736 -_081036AE: - ldrh r1, [r4, 0x2E] - subs r1, r3, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - mov r1, sp - strb r0, [r1] - mov r0, sp - bl sub_8103520 - lsls r0, 24 - cmp r0, 0 - beq _0810375A - movs r6, 0x2 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - bne _081036D8 - movs r6, 0x3 -_081036D8: - movs r5, 0 - mov r7, sp -_081036DC: - lsls r0, r6, 16 - asrs r4, r0, 16 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - beq _08103690 - lsls r1, r5, 16 - movs r0, 0x80 - lsls r0, 9 - adds r1, r0 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - lsrs r5, r1, 16 - asrs r1, 16 - cmp r1, 0x1 - ble _081036DC - movs r6, 0x1 - mov r7, sp - ldr r5, _0810373C @ =gSharedMem -_0810370E: - ldrh r1, [r5, 0x34] - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - ldrb r1, [r7] - lsls r0, 24 - lsrs r0, 24 - cmp r1, r0 - bne _0810374E - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _08103740 - cmp r4, 0x2 - ble _081036A0 -_08103736: - strh r0, [r5, 0x36] - strh r6, [r5, 0x30] - b _0810375A - .align 2, 0 -_0810373C: .4byte gSharedMem -_08103740: - cmp r4, 0x2 - ble _081036AA - movs r0, 0x2 - strh r0, [r5, 0x36] - subs r0, r4, 0x1 - strh r0, [r5, 0x30] - b _0810375A -_0810374E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _0810370E -_0810375A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8103668 - - thumb_func_start sub_8103764 -sub_8103764: @ 8103764 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r0, 0 - bne _08103778 - cmp r1, 0x1 - beq _08103780 -_08103778: - cmp r0, 0x1 - bne _08103784 - cmp r2, 0 - bne _08103784 -_08103780: - movs r0, 0x1 - b _08103786 -_08103784: - movs r0, 0 -_08103786: - pop {r1} - bx r1 - thumb_func_end sub_8103764 - - thumb_func_start sub_810378C -sub_810378C: @ 810378C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0 - bne _081037A6 - cmp r1, 0x1 - bne _081037A6 - cmp r2, 0 - beq _081037B2 -_081037A6: - cmp r0, 0x1 - bne _081037B6 - cmp r1, 0 - bne _081037B6 - cmp r2, 0x1 - bne _081037B6 -_081037B2: - movs r0, 0x1 - b _081037B8 -_081037B6: - movs r0, 0 -_081037B8: - pop {r1} - bx r1 - thumb_func_end sub_810378C - - thumb_func_start sub_81037BC -sub_81037BC: @ 81037BC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - cmp r0, 0 - bne _081037D6 - cmp r1, 0x1 - bne _081037D6 - cmp r2, 0 - beq _08103802 -_081037D6: - cmp r0, 0x1 - bne _081037E2 - cmp r1, 0 - bne _081037E2 - cmp r2, 0x1 - beq _08103802 -_081037E2: - cmp r0, 0 - bne _081037EE - cmp r1, 0 - bne _081037EE - cmp r2, 0x1 - beq _08103802 -_081037EE: - cmp r0, 0x1 - bne _081037FA - cmp r1, 0x1 - bne _081037FA - cmp r2, 0 - beq _08103802 -_081037FA: - cmp r0, r1 - bne _08103806 - cmp r0, r2 - bne _08103806 -_08103802: - movs r0, 0 - b _08103808 -_08103806: - movs r0, 0x1 -_08103808: - pop {r1} - bx r1 - thumb_func_end sub_81037BC - - thumb_func_start sub_810380C -sub_810380C: @ 810380C - push {lr} - ldr r1, _08103828 @ =gUnknown_083ECB94 - ldr r0, _0810382C @ =gSharedMem - movs r2, 0x12 - ldrsh r0, [r0, r2] - subs r0, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .align 2, 0 -_08103828: .4byte gUnknown_083ECB94 -_0810382C: .4byte gSharedMem - thumb_func_end sub_810380C - - thumb_func_start sub_8103830 -sub_8103830: @ 8103830 - push {r4-r7,lr} - movs r6, 0 - ldr r7, _08103868 @ =gSharedMem - ldrh r1, [r7, 0x2E] - movs r4, 0x2 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x30] - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r5, r1 - bne _081038A0 - movs r4, 0x2 - b _08103876 - .align 2, 0 -_08103868: .4byte gSharedMem -_0810386C: - lsls r0, r6, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r6, r0, 16 -_08103876: - lsls r1, r6, 16 - asrs r1, 16 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _0810386C - cmp r5, 0 - bne _08103896 - cmp r0, 0x1 - beq _0810386C -_08103896: - cmp r5, 0x1 - bne _08103900 - cmp r0, 0 - beq _0810386C - b _08103900 -_081038A0: - adds r0, r5, 0 - bl sub_8103764 - lsls r0, 24 - cmp r0, 0 - beq _08103900 - ldrb r1, [r7, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081038DC - movs r7, 0x2 -_081038B8: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08103900 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _081038B8 -_081038DC: - movs r6, 0 - movs r7, 0x2 - b _081038E8 -_081038E2: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 -_081038E8: - lsls r0, r6, 16 - asrs r4, r0, 16 - subs r1, r7, r4 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _081038E2 -_08103900: - ldr r0, _0810390C @ =gSharedMem - strh r6, [r0, 0x32] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810390C: .4byte gSharedMem - thumb_func_end sub_8103830 - - thumb_func_start sub_8103910 -sub_8103910: @ 8103910 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, _08103978 @ =gSharedMem - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _081039A6 - ldrh r2, [r4, 0x34] - movs r3, 0x34 - ldrsh r0, [r4, r3] - cmp r0, r1 - bne _081039A6 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _081039A6 - ldrh r1, [r4, 0x2E] - subs r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r1, [r4, 0x36] - ldrh r0, [r4, 0x30] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_8103764 - lsls r0, 24 - cmp r0, 0 - beq _081039A6 - movs r5, 0 - b _08103982 - .align 2, 0 -_08103978: .4byte gSharedMem -_0810397C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08103982: - lsls r6, r5, 16 - asrs r5, r6, 16 - cmp r5, 0x4 - bgt _081039A6 - ldr r0, _08103A34 @ =gSharedMem - ldrh r1, [r0, 0x36] - subs r1, r5 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r7, r4 - bne _0810397C - lsrs r6, 16 - str r6, [sp] -_081039A6: - ldr r0, _08103A34 @ =gSharedMem - mov r9, r0 -_081039AA: - movs r5, 0x1 - movs r1, 0 - mov r8, r1 - ldr r2, [sp] - lsls r2, 16 - mov r10, r2 -_081039B6: - mov r3, r9 - ldrh r1, [r3, 0x2E] - lsls r5, 16 - asrs r4, r5, 16 - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, r9 - ldrh r1, [r0, 0x30] - subs r1, r4, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - mov r1, r10 - asrs r0, r1, 16 - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x2 - adds r1, r4, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_81037BC - lsls r0, 24 - cmp r0, 0 - bne _08103A38 - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_810378C - lsls r0, 24 - cmp r0, 0 - beq _08103A24 - mov r2, r9 - ldrb r1, [r2, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08103A38 -_08103A24: - mov r3, r8 - lsls r0, r3, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r0, 16 - mov r8, r0 - b _08103A46 - .align 2, 0 -_08103A34: .4byte gSharedMem -_08103A38: - movs r2, 0x80 - lsls r2, 9 - adds r0, r5, r2 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081039B6 -_08103A46: - mov r3, r8 - cmp r3, 0 - beq _08103A5C - ldr r1, [sp] - lsls r0, r1, 16 - movs r2, 0x80 - lsls r2, 9 - adds r0, r2 - lsrs r0, 16 - str r0, [sp] - b _081039AA -_08103A5C: - ldr r0, _08103A74 @ =gSharedMem - mov r3, sp - ldrh r3, [r3] - strh r3, [r0, 0x32] - 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 -_08103A74: .4byte gSharedMem - thumb_func_end sub_8103910 - - thumb_func_start sub_8103A78 -sub_8103A78: @ 8103A78 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl sub_8103910 - ldr r4, _08103B10 @ =gSharedMem - movs r0, 0x36 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _08103B20 - ldrh r2, [r4, 0x34] - movs r3, 0x34 - ldrsh r0, [r4, r3] - cmp r0, r1 - beq _08103B20 - ldrb r1, [r4, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08103B20 - ldrh r1, [r4, 0x2E] - subs r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r1, [r4, 0x36] - ldrh r0, [r4, 0x30] - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8103764 - lsls r0, 24 - cmp r0, 0 - beq _08103B20 - movs r1, 0x1 - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _08103AE0 - movs r1, 0x3 -_08103AE0: - movs r3, 0 - lsls r1, 16 - mov r8, r1 - adds r7, r4, 0 -_08103AE8: - ldrh r2, [r7, 0x32] - lsls r0, r3, 16 - asrs r5, r0, 16 - adds r2, r5, r2 - mov r3, r8 - asrs r1, r3, 16 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r6, r4 - bne _08103B14 - ldrh r0, [r7, 0x32] - adds r0, r5, r0 - strh r0, [r7, 0x32] - b _08103B20 - .align 2, 0 -_08103B10: .4byte gSharedMem -_08103B14: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08103AE8 -_08103B20: - ldr r7, _08103B90 @ =gSharedMem -_08103B22: - ldrh r0, [r7, 0x2E] - movs r1, 0x1 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r7, 0x30] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x32] - movs r1, 0x3 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_81037BC - lsls r0, 24 - cmp r0, 0 - bne _08103B94 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_810378C - lsls r0, 24 - cmp r0, 0 - beq _08103B88 - ldrb r1, [r7, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08103B94 -_08103B88: - ldrh r0, [r7, 0x32] - adds r0, 0x1 - strh r0, [r7, 0x32] - b _08103B22 - .align 2, 0 -_08103B90: .4byte gSharedMem -_08103B94: - ldr r7, _08103C04 @ =gSharedMem -_08103B96: - ldrh r0, [r7, 0x2E] - movs r1, 0x3 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl sub_8102BF8 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r7, 0x30] - movs r1, 0x2 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x1 - bl sub_8102BF8 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r7, 0x32] - movs r1, 0x1 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x2 - bl sub_8102BF8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_81037BC - lsls r0, 24 - cmp r0, 0 - bne _08103C08 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_810378C - lsls r0, 24 - cmp r0, 0 - beq _08103BFC - ldrb r1, [r7, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08103C08 -_08103BFC: - ldrh r0, [r7, 0x32] - adds r0, 0x1 - strh r0, [r7, 0x32] - b _08103B96 - .align 2, 0 -_08103C04: .4byte gSharedMem -_08103C08: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8103A78 - - thumb_func_start sub_8103C14 -sub_8103C14: @ 8103C14 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08103C40 @ =sub_8103C48 - adds r0, r5, 0 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103C44 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x26] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08103C40: .4byte sub_8103C48 -_08103C44: .4byte gTasks - thumb_func_end sub_8103C14 - - thumb_func_start sub_8103C48 -sub_8103C48: @ 8103C48 - push {r4,lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08103C70 @ =gUnknown_083ECBA0 - ldr r2, _08103C74 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r4, 0x8 - ldrsh r2, [r0, r4] - lsls r2, 2 - adds r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103C70: .4byte gUnknown_083ECBA0 -_08103C74: .4byte gTasks - thumb_func_end sub_8103C48 - - thumb_func_start sub_8103C78 -sub_8103C78: @ 8103C78 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _08103CA8 @ =gUnknown_083ECBAC - movs r2, 0x26 - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x73 - str r1, [sp] - movs r1, 0x62 - movs r2, 0x63 - movs r3, 0x72 - bl sub_81065A8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103CA8: .4byte gUnknown_083ECBAC - thumb_func_end sub_8103C78 - - thumb_func_start sub_8103CAC -sub_8103CAC: @ 8103CAC - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _08103CC4 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08103CC4: - pop {r0} - bx r0 - thumb_func_end sub_8103CAC - - thumb_func_start sub_8103CC8 -sub_8103CC8: @ 8103CC8 - push {r4,lr} - sub sp, 0x4 - lsls r4, r1, 24 - lsrs r4, 24 - ldr r1, _08103CFC @ =gUnknown_083ECBAC - movs r2, 0x26 - ldrsh r0, [r0, r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x53 - str r1, [sp] - movs r1, 0x42 - movs r2, 0x43 - movs r3, 0x52 - bl sub_81065A8 - adds r0, r4, 0 - bl DestroyTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103CFC: .4byte gUnknown_083ECBAC - thumb_func_end sub_8103CC8 - - thumb_func_start sub_8103D00 -sub_8103D00: @ 8103D00 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103D20 @ =gUnknown_083EDD08 - lsls r1, r0, 2 - adds r1, r2 - ldr r2, [r1] - ldr r1, _08103D24 @ =gUnknown_083EDD30 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08103D20: .4byte gUnknown_083EDD08 -_08103D24: .4byte gUnknown_083EDD30 - thumb_func_end sub_8103D00 - - thumb_func_start sub_8103D28 -sub_8103D28: @ 8103D28 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103D48 @ =gUnknown_083EDD1C - lsls r1, r0, 2 - adds r1, r2 - ldr r2, [r1] - ldr r1, _08103D4C @ =gUnknown_083EDD30 - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0x2 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08103D48: .4byte gUnknown_083EDD1C -_08103D4C: .4byte gUnknown_083EDD30 - thumb_func_end sub_8103D28 - - thumb_func_start sub_8103D50 -sub_8103D50: @ 8103D50 - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - ldr r0, _08103D84 @ =gUnknown_083EDD3B - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bcs _08103D7C - ldr r7, _08103D88 @ =gUnknown_083EDD35 - adds r6, r0, 0 - lsls r5, r1, 1 -_08103D68: - adds r0, r4, r5 - adds r0, r7 - ldrb r0, [r0] - bl sub_8103D00 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08103D68 -_08103D7C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103D84: .4byte gUnknown_083EDD3B -_08103D88: .4byte gUnknown_083EDD35 - thumb_func_end sub_8103D50 - - thumb_func_start sub_8103D8C -sub_8103D8C: @ 8103D8C - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - ldr r0, _08103DC0 @ =gUnknown_083EDD3B - adds r0, r1, r0 - ldrb r0, [r0] - cmp r4, r0 - bcs _08103DB8 - ldr r7, _08103DC4 @ =gUnknown_083EDD35 - adds r6, r0, 0 - lsls r5, r1, 1 -_08103DA4: - adds r0, r4, r5 - adds r0, r7 - ldrb r0, [r0] - bl sub_8103D28 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08103DA4 -_08103DB8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103DC0: .4byte gUnknown_083EDD3B -_08103DC4: .4byte gUnknown_083EDD35 - thumb_func_end sub_8103D8C - - thumb_func_start sub_8103DC8 -sub_8103DC8: @ 8103DC8 - push {r4-r6,lr} - movs r4, 0 - ldr r6, _08103DF8 @ =gSprites - ldr r5, _08103DFC @ =gSharedMem + 0x44 -_08103DD0: - ldr r0, _08103E00 @ =sub_8103EE4 - bl CreateInvisibleSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - strh r4, [r1, 0x2E] - adds r1, r4, r5 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08103DD0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08103DF8: .4byte gSprites -_08103DFC: .4byte gSharedMem + 0x44 -_08103E00: .4byte sub_8103EE4 - thumb_func_end sub_8103DC8 - - thumb_func_start sub_8103E04 -sub_8103E04: @ 8103E04 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08103E30 @ =gSharedMem - adds r1, 0x44 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08103E34 @ =gSprites - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x30] - movs r1, 0x4 - strh r1, [r0, 0x32] - strh r2, [r0, 0x34] - strh r2, [r0, 0x36] - movs r1, 0x2 - strh r1, [r0, 0x38] - strh r2, [r0, 0x3C] - bx lr - .align 2, 0 -_08103E30: .4byte gSharedMem -_08103E34: .4byte gSprites - thumb_func_end sub_8103E04 - - thumb_func_start sub_8103E38 -sub_8103E38: @ 8103E38 - push {r4,r5,lr} - movs r2, 0 - ldr r4, _08103E60 @ =gSharedMem + 0x44 - ldr r3, _08103E64 @ =gSprites -_08103E40: - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r3 - movs r5, 0x30 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _08103E68 - movs r5, 0x32 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _08103E68 - movs r0, 0 - b _08103E74 - .align 2, 0 -_08103E60: .4byte gSharedMem + 0x44 -_08103E64: .4byte gSprites -_08103E68: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _08103E40 - movs r0, 0x1 -_08103E74: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8103E38 - - thumb_func_start sub_8103E7C -sub_8103E7C: @ 8103E7C - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08103E94 @ =gSharedMem + 0x44 -_08103E82: - adds r0, r4, r5 - ldrb r0, [r0] - bl sub_8103EAC - lsls r0, 24 - cmp r0, 0 - bne _08103E98 - movs r0, 0 - b _08103EA4 - .align 2, 0 -_08103E94: .4byte gSharedMem + 0x44 -_08103E98: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08103E82 - movs r0, 0x1 -_08103EA4: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8103E7C - - thumb_func_start sub_8103EAC -sub_8103EAC: @ 8103EAC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08103EC8 @ =gSprites - adds r1, r0 - movs r2, 0x30 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08103ECC - movs r0, 0x1 - b _08103EDE - .align 2, 0 -_08103EC8: .4byte gSprites -_08103ECC: - ldrh r2, [r1, 0x3C] - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08103EDA - movs r0, 0 - strh r0, [r1, 0x30] -_08103EDA: - lsls r0, r2, 24 - lsrs r0, 24 -_08103EDE: - pop {r1} - bx r1 - thumb_func_end sub_8103EAC - - thumb_func_start sub_8103EE4 -sub_8103EE4: @ 8103EE4 - push {r4-r7,lr} - adds r2, r0, 0 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08103F66 - ldrh r0, [r2, 0x34] - subs r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08103F4E - movs r0, 0 - strh r0, [r2, 0x3C] - movs r6, 0x1 - strh r6, [r2, 0x34] - ldrh r1, [r2, 0x38] - ldrh r3, [r2, 0x36] - adds r0, r1, r3 - strh r0, [r2, 0x36] - movs r4, 0x4 - ldrh r5, [r2, 0x32] - movs r7, 0x32 - ldrsh r3, [r2, r7] - cmp r3, 0 - beq _08103F20 - movs r4, 0x8 -_08103F20: - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bgt _08103F38 - strh r6, [r2, 0x3C] - negs r0, r1 - strh r0, [r2, 0x38] - cmp r3, 0 - beq _08103F4E - subs r0, r5, 0x1 - strh r0, [r2, 0x32] - b _08103F40 -_08103F38: - cmp r0, r4 - blt _08103F40 - negs r0, r1 - strh r0, [r2, 0x38] -_08103F40: - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08103F4E - ldrh r0, [r2, 0x34] - lsls r0, 1 - strh r0, [r2, 0x34] -_08103F4E: - ldr r1, _08103F6C @ =gUnknown_083EDD30 - movs r3, 0x2E - ldrsh r0, [r2, r3] - adds r0, r1 - ldrb r0, [r0] - ldrh r3, [r2, 0x36] - lsls r3, 24 - lsrs r3, 24 - adds r1, r3, 0 - adds r2, r3, 0 - bl MultiplyPaletteRGBComponents -_08103F66: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08103F6C: .4byte gUnknown_083EDD30 - thumb_func_end sub_8103EE4 - - thumb_func_start sub_8103F70 -sub_8103F70: @ 8103F70 - push {r4,lr} - ldr r4, _08103F98 @ =sub_8103FE8 - adds r0, r4, 0 - movs r1, 0x6 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08103F9C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x1 - strh r2, [r1, 0xE] - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08103F98: .4byte sub_8103FE8 -_08103F9C: .4byte gTasks - thumb_func_end sub_8103F70 - - thumb_func_start sub_8103FA0 -sub_8103FA0: @ 8103FA0 - push {lr} - ldr r0, _08103FC4 @ =sub_8103FE8 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08103FC8 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08103FCC - movs r0, 0 - b _08103FE0 - .align 2, 0 -_08103FC4: .4byte sub_8103FE8 -_08103FC8: .4byte gTasks -_08103FCC: - adds r0, r2, 0 - bl DestroyTask - ldr r0, _08103FE4 @ =gUnknown_083EDDAC - ldr r0, [r0] - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - movs r0, 0x1 -_08103FE0: - pop {r1} - bx r1 - .align 2, 0 -_08103FE4: .4byte gUnknown_083EDDAC - thumb_func_end sub_8103FA0 - - thumb_func_start sub_8103FE8 -sub_8103FE8: @ 8103FE8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08104040 @ =gTasks - adds r2, r1, r0 - ldrh r0, [r2, 0xA] - subs r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08104026 - movs r0, 0x4 - strh r0, [r2, 0xA] - ldrh r1, [r2, 0xE] - ldrh r3, [r2, 0xC] - adds r0, r1, r3 - strh r0, [r2, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _08104022 - cmp r0, 0x2 - bne _08104026 -_08104022: - negs r0, r1 - strh r0, [r2, 0xE] -_08104026: - ldr r0, _08104044 @ =gUnknown_083EDDA0 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x10 - movs r2, 0x20 - bl LoadPalette - pop {r0} - bx r0 - .align 2, 0 -_08104040: .4byte gTasks -_08104044: .4byte gUnknown_083EDDA0 - thumb_func_end sub_8103FE8 - - thumb_func_start sub_8104048 -sub_8104048: @ 8104048 - push {lr} - ldr r0, _0810405C @ =sub_81040E8 - movs r1, 0x8 - bl CreateTask - ldr r1, _08104060 @ =gSharedMem - adds r1, 0x3E - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0810405C: .4byte sub_81040E8 -_08104060: .4byte gSharedMem - thumb_func_end sub_8104048 - - thumb_func_start sub_8104064 -sub_8104064: @ 8104064 - push {r4,lr} - ldr r0, _08104090 @ =gSharedMem - adds r0, 0x3E - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08104094 @ =gTasks - adds r4, r0 - adds r0, r4, 0 - bl sub_810421C - movs r1, 0x1 - strh r1, [r4, 0x8] - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - strh r1, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104090: .4byte gSharedMem -_08104094: .4byte gTasks - thumb_func_end sub_8104064 - - thumb_func_start sub_8104098 -sub_8104098: @ 8104098 - push {r4,lr} - ldr r0, _081040C0 @ =gSharedMem - adds r0, 0x3E - ldrb r0, [r0] - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _081040C4 @ =gTasks - adds r4, r0 - adds r0, r4, 0 - bl sub_810421C - movs r0, 0x3 - strh r0, [r4, 0x8] - movs r0, 0x1 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081040C0: .4byte gSharedMem -_081040C4: .4byte gTasks - thumb_func_end sub_8104098 - - thumb_func_start sub_81040C8 -sub_81040C8: @ 81040C8 - ldr r2, _081040E0 @ =gTasks - ldr r0, _081040E4 @ =gSharedMem - adds r0, 0x3E - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x26] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_081040E0: .4byte gTasks -_081040E4: .4byte gSharedMem - thumb_func_end sub_81040C8 - - thumb_func_start sub_81040E8 -sub_81040E8: @ 81040E8 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104110 @ =gUnknown_083ECBB4 - ldr r2, _08104114 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08104110: .4byte gUnknown_083ECBB4 -_08104114: .4byte gTasks - thumb_func_end sub_81040E8 - - thumb_func_start nullsub_68 -nullsub_68: @ 8104118 - bx lr - thumb_func_end nullsub_68 - - thumb_func_start sub_810411C -sub_810411C: @ 810411C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0xA] - lsls r0, 19 - movs r1, 0xA0 - lsls r1, 13 - adds r0, r1 - asrs r0, 16 - movs r1, 0x14 - bl sub_8105B1C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810411C - - thumb_func_start sub_8104144 -sub_8104144: @ 8104144 - push {r4,lr} - adds r4, r0, 0 - ldr r2, _08104174 @ =gSprites - movs r0, 0xC - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0810419E - ldrh r1, [r4, 0xA] - adds r0, r1, 0x2 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0 - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1 - bne _08104178 - movs r0, 0x1 - b _0810417E - .align 2, 0 -_08104174: .4byte gSprites -_08104178: - cmp r1, 0x10 - bne _0810417E - movs r0, 0x2 -_0810417E: - lsls r1, r2, 16 - asrs r1, 15 - ldr r2, _081041A4 @ =0x0600e800 - adds r1, r2 - adds r1, 0x80 - ldr r2, _081041A8 @ =gUnknown_083ECBC4 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - ldrb r0, [r4, 0xC] - bl sub_8105B88 - movs r0, 0 - strh r0, [r4, 0x8] - strh r0, [r4, 0x26] -_0810419E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081041A4: .4byte 0x0600e800 -_081041A8: .4byte gUnknown_083ECBC4 - thumb_func_end sub_8104144 - - thumb_func_start sub_81041AC -sub_81041AC: @ 81041AC - push {r4,lr} - adds r3, r0, 0 - ldrh r1, [r3, 0xA] - adds r0, r1, 0x2 - lsls r0, 16 - lsrs r4, r0, 16 - movs r2, 0 - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x1 - bne _081041C6 - movs r2, 0x1 - b _081041CC -_081041C6: - cmp r1, 0x10 - bne _081041CC - movs r2, 0x2 -_081041CC: - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _081041F0 - lsls r0, r4, 16 - asrs r0, 15 - ldr r1, _08104214 @ =0x0600e800 - adds r0, r1 - adds r0, 0x80 - ldr r1, _08104218 @ =gUnknown_083ECBC4 - lsls r2, 2 - adds r1, 0x2 - adds r2, r1 - ldrh r1, [r2] - strh r1, [r0] - ldrh r0, [r3, 0xA] - subs r0, 0x1 - strh r0, [r3, 0xA] -_081041F0: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x13 - ble _08104202 - movs r0, 0 - strh r0, [r3, 0xC] -_08104202: - movs r1, 0xA - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _0810420E - strh r0, [r3, 0x8] - strh r0, [r3, 0x26] -_0810420E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104214: .4byte 0x0600e800 -_08104218: .4byte gUnknown_083ECBC4 - thumb_func_end sub_81041AC - - thumb_func_start sub_810421C -sub_810421C: @ 810421C - push {lr} - movs r1, 0x2 - adds r2, r0, 0 - adds r2, 0x8 - movs r3, 0 -_08104226: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _08104226 - pop {r0} - bx r0 - thumb_func_end sub_810421C - - thumb_func_start sub_810423C -sub_810423C: @ 810423C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0x3 - ldr r6, _08104268 @ =0x0600e800 - movs r4, 0 - ldr r0, _0810426C @ =gTasks - mov r8, r0 - ldr r1, _08104270 @ =gSharedMem - mov r12, r1 - cmp r4, r5 - bge _081042A6 - ldr r7, _08104274 @ =gUnknown_083ECBC4 -_0810425A: - movs r3, 0 - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0 - bne _08104278 - movs r3, 0x1 - b _0810427E - .align 2, 0 -_08104268: .4byte 0x0600e800 -_0810426C: .4byte gTasks -_08104270: .4byte gSharedMem -_08104274: .4byte gUnknown_083ECBC4 -_08104278: - cmp r0, 0xF - bne _0810427E - movs r3, 0x2 -_0810427E: - lsls r2, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r1, r6 - adds r1, 0x80 - lsls r0, r3, 2 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - adds r2, 0x1 - lsls r2, 16 - lsrs r2, 16 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, r5 - blt _0810425A -_081042A6: - lsls r1, r4, 16 - asrs r0, r1, 16 - cmp r0, 0xF - bgt _081042F0 - ldr r7, _081042BC @ =gUnknown_083ECBC4 + 0x2 -_081042B0: - movs r3, 0 - asrs r0, r1, 16 - cmp r0, 0 - bne _081042C0 - movs r3, 0x1 - b _081042C6 - .align 2, 0 -_081042BC: .4byte gUnknown_083ECBC4 + 0x2 -_081042C0: - cmp r0, 0xF - bne _081042C6 - movs r3, 0x2 -_081042C6: - lsls r2, 16 - asrs r2, 16 - lsls r1, r2, 1 - adds r1, r6 - adds r1, 0x80 - lsls r0, r3, 2 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r1] - lsls r0, r4, 16 - movs r1, 0x80 - lsls r1, 9 - adds r0, r1 - lsrs r4, r0, 16 - adds r2, 0x1 - lsls r2, 16 - lsrs r2, 16 - lsls r1, r4, 16 - asrs r0, r1, 16 - cmp r0, 0xF - ble _081042B0 -_081042F0: - mov r0, r12 - adds r0, 0x3E - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - add r0, r8 - strh r5, [r0, 0xA] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810423C - - thumb_func_start sub_810430C -sub_810430C: @ 810430C - push {r4,lr} - ldr r4, _08104328 @ =sub_810434C - adds r0, r4, 0 - movs r1, 0x7 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104328: .4byte sub_810434C - thumb_func_end sub_810430C - - thumb_func_start sub_810432C -sub_810432C: @ 810432C - push {lr} - ldr r0, _08104340 @ =sub_810434C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08104344 - movs r0, 0 - b _08104346 - .align 2, 0 -_08104340: .4byte sub_810434C -_08104344: - movs r0, 0x1 -_08104346: - pop {r1} - bx r1 - thumb_func_end sub_810432C - - thumb_func_start sub_810434C -sub_810434C: @ 810434C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104374 @ =gUnknown_083ECBD0 - ldr r2, _08104378 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08104374: .4byte gUnknown_083ECBD0 -_08104378: .4byte gTasks - thumb_func_end sub_810434C - - thumb_func_start sub_810437C -sub_810437C: @ 810437C - push {lr} - ldr r1, _081043DC @ =gSharedMem - movs r2, 0 - strb r2, [r1, 0xA] - strh r2, [r1, 0x14] - strh r2, [r1, 0x16] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - strh r2, [r0, 0xA] - movs r1, 0x1E - strh r1, [r0, 0xC] - movs r1, 0xA0 - lsls r1, 3 - strh r1, [r0, 0x10] - ldr r0, _081043E0 @ =gSpriteCoordOffsetX - strh r2, [r0] - ldr r0, _081043E4 @ =gSpriteCoordOffsetY - strh r2, [r0] - ldr r0, _081043E8 @ =REG_BG1HOFS - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - movs r0, 0x1E - movs r1, 0 - bl sub_8104A40 - bl sub_81051C0 - bl sub_8105100 - bl sub_81052EC - bl sub_81053A0 - bl sub_810545C - bl sub_8102680 - bl StopMapMusic - movs r0, 0xC4 - lsls r0, 1 - bl PlayNewMapMusic - pop {r0} - bx r0 - .align 2, 0 -_081043DC: .4byte gSharedMem -_081043E0: .4byte gSpriteCoordOffsetX -_081043E4: .4byte gSpriteCoordOffsetY -_081043E8: .4byte REG_BG1HOFS - thumb_func_end sub_810437C - - thumb_func_start sub_81043EC -sub_81043EC: @ 81043EC - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0810445C @ =gSpriteCoordOffsetX - ldrh r0, [r1] - subs r0, 0x8 - strh r0, [r1] - ldrh r2, [r4, 0xA] - adds r2, 0x8 - strh r2, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - adds r0, 0xF0 - movs r1, 0xFF - ands r0, r1 - lsrs r3, r0, 3 - ldr r1, _08104460 @ =REG_BG1HOFS - ldr r0, _08104464 @ =0x000001ff - ands r2, r0 - strh r2, [r1] - adds r2, r3, 0 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r2, r0 - beq _08104438 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x12 - bgt _08104438 - strh r3, [r4, 0xC] - ldrh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 19 - strh r0, [r4, 0xE] - movs r0, 0xE - ldrsh r1, [r4, r0] - adds r0, r2, 0 - bl sub_8104A40 -_08104438: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0xC7 - ble _0810444A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xE] -_0810444A: - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810445C: .4byte gSpriteCoordOffsetX -_08104460: .4byte REG_BG1HOFS -_08104464: .4byte 0x000001ff - thumb_func_end sub_81043EC - - thumb_func_start sub_8104468 -sub_8104468: @ 8104468 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _08104492 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_8105578 - bl sub_81056F0 -_08104492: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104468 - - thumb_func_start sub_8104498 -sub_8104498: @ 8104498 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r7, r0, 0 - ldr r1, _08104534 @ =gUnknown_083ECC1C - mov r0, sp - movs r2, 0x4 - bl memcpy - add r0, sp, 0x4 - mov r8, r0 - ldr r1, _08104538 @ =gUnknown_083ECC20 - movs r2, 0x8 - bl memcpy - add r6, sp, 0xC - ldr r1, _0810453C @ =gUnknown_083ECC28 - adds r0, r6, 0 - movs r2, 0x8 - bl memcpy - ldrh r0, [r7, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r7, 0x10] - subs r0, 0x4 - strh r0, [r7, 0x10] - lsls r0, 16 - asrs r0, 24 - movs r5, 0x4 - subs r5, r0 - lsls r4, r5, 1 - add r8, r4 - mov r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - bl sub_8105688 - adds r6, r4 - movs r1, 0 - ldrsh r0, [r6, r1] - bl sub_81057E8 - ldr r0, _08104540 @ =gSharedMem - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104544 @ =gSprites - adds r0, r1 - mov r2, sp - adds r1, r2, r5 - ldrb r1, [r1] - bl StartSpriteAnimIfDifferent - movs r1, 0x10 - ldrsh r0, [r7, r1] - movs r1, 0x80 - lsls r1, 1 - cmp r0, r1 - bgt _08104526 - ldrh r0, [r7, 0x8] - adds r0, 0x1 - strh r0, [r7, 0x8] - strh r1, [r7, 0x10] - movs r0, 0 - strh r0, [r7, 0x12] -_08104526: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104534: .4byte gUnknown_083ECC1C -_08104538: .4byte gUnknown_083ECC20 -_0810453C: .4byte gUnknown_083ECC28 -_08104540: .4byte gSharedMem -_08104544: .4byte gSprites - thumb_func_end sub_8104498 - - thumb_func_start sub_8104548 -sub_8104548: @ 8104548 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _0810458A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] - movs r0, 0x2 - bl sub_81057E8 - ldr r0, _08104590 @ =gSharedMem - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104594 @ =gSprites - adds r0, r1 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent -_0810458A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104590: .4byte gSharedMem -_08104594: .4byte gSprites - thumb_func_end sub_8104548 - - thumb_func_start sub_8104598 -sub_8104598: @ 8104598 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrb r0, [r4, 0x10] - adds r0, 0x80 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - ble _081045C4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - strh r0, [r4, 0x12] -_081045C4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104598 - - thumb_func_start sub_81045CC -sub_81045CC: @ 81045CC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - ldrb r0, [r4, 0x10] - adds r0, 0x40 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _08104634 - movs r0, 0 - strh r0, [r4, 0x12] - ldr r1, _0810460C @ =gSharedMem - ldrb r0, [r1, 0x5] - cmp r0, 0 - beq _08104610 - ldrb r1, [r1, 0xA] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bgt _0810462E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0810462C - .align 2, 0 -_0810460C: .4byte gSharedMem -_08104610: - movs r1, 0x14 - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _0810461E - ldrh r0, [r4, 0x8] - adds r0, 0x1 - b _0810462C -_0810461E: - ldrh r0, [r4, 0x14] - bl sub_81026DC - lsls r0, 24 - cmp r0, 0 - beq _0810462E - movs r0, 0xE -_0810462C: - strh r0, [r4, 0x8] -_0810462E: - ldrh r0, [r4, 0x14] - adds r0, 0x1 - strh r0, [r4, 0x14] -_08104634: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81045CC - - thumb_func_start sub_810463C -sub_810463C: @ 810463C - push {r4-r6,lr} - adds r4, r0, 0 - ldr r6, _08104660 @ =gSharedMem - movs r1, 0x14 - ldrsh r0, [r6, r1] - movs r1, 0x14 - bl __modsi3 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r0, 0 - beq _08104664 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D5C - b _08104688 - .align 2, 0 -_08104660: .4byte gSharedMem -_08104664: - movs r0, 0x1 - bl sub_8102C48 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6, 0x5] - cmp r0, r1 - beq _08104692 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 24 - bl sub_8102D28 - movs r1, 0x14 - ldrsh r0, [r6, r1] - movs r1, 0x14 - bl __modsi3 -_08104688: - lsls r0, 16 - lsrs r5, r0, 16 - ldrb r0, [r4, 0x10] - adds r0, 0x40 - strh r0, [r4, 0x10] -_08104692: - lsls r0, r5, 16 - asrs r5, r0, 16 - cmp r5, 0 - bne _081046B4 - movs r0, 0x1 - bl sub_8102C48 - ldr r1, _081046BC @ =gSharedMem - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1, 0x5] - cmp r0, r1 - bne _081046B4 - strh r5, [r4, 0x10] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_081046B4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081046BC: .4byte gSharedMem - thumb_func_end sub_810463C - - thumb_func_start sub_81046C0 -sub_81046C0: @ 81046C0 - push {r4-r7,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x10] - adds r0, 0x1 - movs r7, 0 - strh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - ble _08104758 - bl StopMapMusic - bl sub_81056C0 - bl sub_8105804 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r5, _08104710 @ =gSharedMem - ldrb r0, [r5, 0x5] - cmp r0, 0 - bne _0810471C - movs r0, 0xA0 - strh r0, [r4, 0x10] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104714 @ =gSprites - adds r0, r1 - movs r1, 0x5 - bl StartSpriteAnimIfDifferent - ldr r0, _08104718 @ =0x00000187 - bl PlayFanfare - b _08104758 - .align 2, 0 -_08104710: .4byte gSharedMem -_08104714: .4byte gSprites -_08104718: .4byte 0x00000187 -_0810471C: - movs r0, 0xC0 - strh r0, [r4, 0x10] - adds r6, r5, 0 - adds r6, 0x3F - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08104760 @ =gSprites - adds r0, r4 - movs r1, 0x4 - bl StartSpriteAnimIfDifferent - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x2B - strb r7, [r0] - ldrb r0, [r5, 0x2] - cmp r0, 0 - beq _08104750 - bl sub_8104098 - strb r7, [r5, 0x2] -_08104750: - movs r0, 0xC3 - lsls r0, 1 - bl PlayFanfare -_08104758: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104760: .4byte gSprites - thumb_func_end sub_81046C0 - - thumb_func_start sub_8104764 -sub_8104764: @ 8104764 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x10] - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0810477C - subs r0, r1, 0x1 - strh r0, [r4, 0x10] - lsls r0, 16 - cmp r0, 0 - bne _0810478C -_0810477C: - bl sub_81040C8 - lsls r0, 24 - cmp r0, 0 - bne _0810478C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0810478C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104764 - - thumb_func_start sub_8104794 -sub_8104794: @ 8104794 - push {r4,lr} - adds r3, r0, 0 - ldr r1, _081047D4 @ =gSpriteCoordOffsetX - ldrh r0, [r1] - subs r0, 0x8 - strh r0, [r1] - ldrh r2, [r3, 0xA] - adds r2, 0x8 - strh r2, [r3, 0xA] - ldrh r0, [r3, 0xE] - adds r0, 0x8 - strh r0, [r3, 0xE] - movs r1, 0xA - ldrsh r0, [r3, r1] - subs r0, 0x8 - movs r1, 0xFF - ands r0, r1 - lsrs r4, r0, 3 - ldr r1, _081047D8 @ =REG_BG1HOFS - ldr r0, _081047DC @ =0x000001ff - ands r2, r0 - strh r2, [r1] - ldrh r0, [r3, 0xE] - lsls r0, 16 - asrs r0, 19 - cmp r0, 0x19 - bgt _081047E0 - adds r0, r4, 0 - bl sub_8104A88 - b _081047E6 - .align 2, 0 -_081047D4: .4byte gSpriteCoordOffsetX -_081047D8: .4byte REG_BG1HOFS -_081047DC: .4byte 0x000001ff -_081047E0: - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_081047E6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104794 - - thumb_func_start sub_81047EC -sub_81047EC: @ 81047EC - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _08104834 @ =gSharedMem - movs r6, 0 - strb r6, [r4, 0xB] - ldrb r0, [r4, 0x5] - strb r0, [r4, 0xA] - ldr r0, _08104838 @ =gSpriteCoordOffsetX - strh r6, [r0] - ldr r0, _0810483C @ =REG_BG1HOFS - strh r6, [r0] - movs r0, 0x8 - strh r0, [r4, 0x1A] - bl sub_810514C - bl sub_81054B8 - bl sub_8105524 - adds r0, r4, 0 - adds r0, 0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - ldrb r0, [r4, 0xA] - cmp r0, 0 - bne _08104844 - ldr r0, _08104840 @ =sub_810434C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - b _0810485A - .align 2, 0 -_08104834: .4byte gSharedMem -_08104838: .4byte gSpriteCoordOffsetX -_0810483C: .4byte REG_BG1HOFS -_08104840: .4byte sub_810434C -_08104844: - movs r0, 0x4 - bl sub_8104CAC - bl dp15_jump_random_unknown - strh r0, [r5, 0xA] - strh r6, [r5, 0xC] - strh r6, [r5, 0xE] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_0810485A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81047EC - - thumb_func_start sub_8104860 -sub_8104860: @ 8104860 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r5, _0810487C @ =gSharedMem - ldrh r0, [r5, 0x1A] - lsls r6, r0, 16 - asrs r1, r6, 16 - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08104880 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _081048A2 - .align 2, 0 -_0810487C: .4byte gSharedMem -_08104880: - movs r1, 0x1C - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _081048A2 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _081048A2 - asrs r0, r6, 17 - strh r0, [r5, 0x1A] -_081048A2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8104860 - - thumb_func_start sub_81048A8 -sub_81048A8: @ 81048A8 - push {lr} - bl sub_8104E18 - lsls r0, 24 - cmp r0, 0 - beq _081048C2 - ldr r0, _081048C8 @ =sub_810434C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_081048C2: - pop {r0} - bx r0 - .align 2, 0 -_081048C8: .4byte sub_810434C - thumb_func_end sub_81048A8 - - thumb_func_start sub_81048CC -sub_81048CC: @ 81048CC - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_81054B8 - bl sub_81056C0 - bl sub_8105804 - bl sub_8105854 - ldr r5, _08104934 @ =gSprites - ldr r3, _08104938 @ =gSharedMem - adds r0, r3, 0 - adds r0, 0x4E - 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] - adds r3, 0x3F - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x5 - bl StartSpriteAnimIfDifferent - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - movs r0, 0x4 - strh r0, [r4, 0x10] - strh r1, [r4, 0x12] - bl StopMapMusic - ldr r0, _0810493C @ =0x00000187 - bl PlayFanfare - movs r0, 0xB2 - bl PlaySE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104934: .4byte gSprites -_08104938: .4byte gSharedMem -_0810493C: .4byte 0x00000187 - thumb_func_end sub_81048CC - - thumb_func_start sub_8104940 -sub_8104940: @ 8104940 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _081049B8 @ =gSpriteCoordOffsetY - ldrh r1, [r4, 0x10] - strh r1, [r0] - ldr r0, _081049BC @ =REG_BG1VOFS - strh r1, [r0] - ldrh r1, [r4, 0x12] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810495E - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] -_0810495E: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - movs r1, 0x1F - ands r0, r1 - cmp r0, 0 - bne _08104974 - ldrh r0, [r4, 0x10] - lsls r0, 16 - asrs r0, 17 - strh r0, [r4, 0x10] -_08104974: - movs r0, 0x10 - ldrsh r5, [r4, r0] - cmp r5, 0 - bne _081049B0 - bl sub_81058A0 - bl sub_81058C4 - bl sub_8105284 - bl sub_81059E8 - ldr r2, _081049C0 @ =gSprites - ldr r0, _081049C4 @ =gSharedMem - adds r0, 0x4E - ldrb r1, [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] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - strh r5, [r4, 0x12] -_081049B0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081049B8: .4byte gSpriteCoordOffsetY -_081049BC: .4byte REG_BG1VOFS -_081049C0: .4byte gSprites -_081049C4: .4byte gSharedMem - thumb_func_end sub_8104940 - - thumb_func_start sub_81049C8 -sub_81049C8: @ 81049C8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _081049F0 @ =gSpriteCoordOffsetY - movs r1, 0 - strh r1, [r0] - ldr r0, _081049F4 @ =REG_BG1VOFS - strh r1, [r0] - bl sub_8105ACC - lsls r0, 24 - cmp r0, 0 - beq _081049EA - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_8105AEC -_081049EA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081049F0: .4byte gSpriteCoordOffsetY -_081049F4: .4byte REG_BG1VOFS - thumb_func_end sub_81049C8 - - thumb_func_start sub_81049F8 -sub_81049F8: @ 81049F8 - push {lr} - ldr r0, _08104A30 @ =gSpriteCoordOffsetX - movs r1, 0 - strh r1, [r0] - ldr r0, _08104A34 @ =REG_BG1HOFS - strh r1, [r0] - ldr r0, _08104A38 @ =gSharedMem - adds r0, 0x60 - ldrh r0, [r0] - bl PlayNewMapMusic - bl sub_810514C - bl sub_8105554 - bl sub_8105524 - bl sub_81059B8 - ldr r0, _08104A3C @ =sub_810434C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_08104A30: .4byte gSpriteCoordOffsetX -_08104A34: .4byte REG_BG1HOFS -_08104A38: .4byte gSharedMem -_08104A3C: .4byte sub_810434C - thumb_func_end sub_81049F8 - - thumb_func_start sub_8104A40 -sub_8104A40: @ 8104A40 - push {r4-r7,lr} - movs r3, 0x4 - ldr r7, _08104A80 @ =gReelTimeWindowTilemap - lsls r1, 16 - asrs r5, r1, 16 - lsls r0, 16 - asrs r4, r0, 16 - ldr r6, _08104A84 @ =0x0600e000 -_08104A50: - lsls r2, r3, 16 - asrs r2, 16 - subs r1, r2, 0x4 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5, r0 - lsls r0, 1 - adds r0, r7 - ldrh r1, [r0] - lsls r0, r2, 5 - adds r0, r4 - lsls r0, 1 - adds r0, r6 - strh r1, [r0] - adds r2, 0x1 - lsls r2, 16 - lsrs r3, r2, 16 - asrs r2, 16 - cmp r2, 0xE - ble _08104A50 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104A80: .4byte gReelTimeWindowTilemap -_08104A84: .4byte 0x0600e000 - thumb_func_end sub_8104A40 - - thumb_func_start sub_8104A88 -sub_8104A88: @ 8104A88 - push {r4,r5,lr} - movs r2, 0x4 - lsls r0, 16 - asrs r3, r0, 16 - ldr r5, _08104AB4 @ =0x0600e000 - movs r4, 0 -_08104A94: - lsls r1, r2, 16 - asrs r1, 16 - lsls r0, r1, 5 - adds r0, r3 - lsls r0, 1 - adds r0, r5 - strh r4, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r2, r1, 16 - asrs r1, 16 - cmp r1, 0xE - ble _08104A94 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104AB4: .4byte 0x0600e000 - thumb_func_end sub_8104A88 - - thumb_func_start sub_8104AB8 -sub_8104AB8: @ 8104AB8 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08104AE4 @ =sub_8104B0C - adds r0, r5, 0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08104AE8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - bl _call_via_r5 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104AE4: .4byte sub_8104B0C -_08104AE8: .4byte gTasks - thumb_func_end sub_8104AB8 - - thumb_func_start sub_8104AEC -sub_8104AEC: @ 8104AEC - push {lr} - ldr r0, _08104B00 @ =sub_8104B0C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _08104B04 - movs r0, 0 - b _08104B06 - .align 2, 0 -_08104B00: .4byte sub_8104B0C -_08104B04: - movs r0, 0x1 -_08104B06: - pop {r1} - bx r1 - thumb_func_end sub_8104AEC - - thumb_func_start sub_8104B0C -sub_8104B0C: @ 8104B0C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104B34 @ =gUnknown_083ECC30 - ldr r2, _08104B38 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08104B34: .4byte gUnknown_083ECC30 -_08104B38: .4byte gTasks - thumb_func_end sub_8104B0C - - thumb_func_start sub_8104B3C -sub_8104B3C: @ 8104B3C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8104B3C - - thumb_func_start sub_8104B60 -sub_8104B60: @ 8104B60 - push {lr} - adds r2, r0, 0 - ldr r0, _08104B7C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08104B76 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_08104B76: - pop {r0} - bx r0 - .align 2, 0 -_08104B7C: .4byte gPaletteFade - thumb_func_end sub_8104B60 - - thumb_func_start sub_8104B80 -sub_8104B80: @ 8104B80 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl sub_8104DA4 - bl sub_81065DC - ldr r0, _08104BC0 @ =gWindowConfig_81E7144 - bl BasicInitMenuWindow - ldr r0, _08104BC4 @ =gOtherText_ReelTime - movs r1, 0xA - movs r2, 0x20 - movs r3, 0x1 - bl MenuPrint_PixelCoords - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104BC0: .4byte gWindowConfig_81E7144 -_08104BC4: .4byte gOtherText_ReelTime - thumb_func_end sub_8104B80 - - thumb_func_start sub_8104BC8 -sub_8104BC8: @ 8104BC8 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, _08104BF8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _08104BF0 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08104BF0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104BF8: .4byte gMain - thumb_func_end sub_8104BC8 - - thumb_func_start sub_8104BFC -sub_8104BFC: @ 8104BFC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl MenuZeroFillScreen - ldr r0, _08104C3C @ =gWindowConfig_81E7128 - bl BasicInitMenuWindow - bl sub_81064B8 - ldrb r0, [r4, 0xA] - bl sub_8104CAC - ldr r0, _08104C40 @ =gSharedMem - ldrb r0, [r0, 0x2] - bl sub_810423C - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08104C3C: .4byte gWindowConfig_81E7128 -_08104C40: .4byte gSharedMem - thumb_func_end sub_8104BFC - - thumb_func_start sub_8104C44 -sub_8104C44: @ 8104C44 - push {lr} - ldr r0, _08104C58 @ =sub_8104B0C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - .align 2, 0 -_08104C58: .4byte sub_8104B0C - thumb_func_end sub_8104C44 - - thumb_func_start sub_8104C5C -sub_8104C5C: @ 8104C5C - push {lr} - ldr r0, _08104C9C @ =sub_8104E74 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _08104CA0 @ =gSharedMem - adds r0, 0x3D - strb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104CA4 @ =gTasks - adds r0, r1 - ldr r1, _08104CA8 @ =0x0000ffff - strh r1, [r0, 0xA] - movs r1, 0x4 - adds r2, r0, 0 - adds r2, 0x8 - movs r3, 0x40 -_08104C86: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _08104C86 - pop {r0} - bx r0 - .align 2, 0 -_08104C9C: .4byte sub_8104E74 -_08104CA0: .4byte gSharedMem -_08104CA4: .4byte gTasks -_08104CA8: .4byte 0x0000ffff - thumb_func_end sub_8104C5C - -.section .text_8104D30 - - thumb_func_start sub_8104D30 -sub_8104D30: @ 8104D30 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - mov r8, r1 - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08104D84 @ =gSharedMem - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104D88 @ =gTasks - adds r0, r1 - mov r12, r0 - movs r5, 0x4 - lsls r4, 16 - asrs r6, r4, 16 - lsls r2, 16 - lsls r3, 16 -_08104D5C: - lsls r0, r5, 1 - mov r1, r12 - adds r1, 0x8 - adds r4, r1, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - bne _08104D8C - str r6, [sp] - adds r0, r7, 0 - mov r1, r8 - asrs r2, 16 - asrs r3, 16 - bl sub_8105BF8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - b _08104D96 - .align 2, 0 -_08104D84: .4byte gSharedMem -_08104D88: .4byte gTasks -_08104D8C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08104D5C -_08104D96: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8104D30 - - thumb_func_start sub_8104DA4 -sub_8104DA4: @ 8104DA4 - push {r4-r6,lr} - ldr r0, _08104E04 @ =gSharedMem - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104E08 @ =gTasks - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - ldr r0, _08104E0C @ =0x0000ffff - cmp r1, r0 - beq _08104DCE - ldr r0, _08104E10 @ =gUnknown_083ED064 - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_08104DCE: - movs r5, 0x4 - adds r6, r4, 0 - adds r6, 0x8 -_08104DD4: - lsls r0, r5, 1 - adds r4, r6, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _08104DF4 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08104E14 @ =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0x40 - strh r0, [r4] -_08104DF4: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xF - bls _08104DD4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08104E04: .4byte gSharedMem -_08104E08: .4byte gTasks -_08104E0C: .4byte 0x0000ffff -_08104E10: .4byte gUnknown_083ED064 -_08104E14: .4byte gSprites - thumb_func_end sub_8104DA4 - - thumb_func_start sub_8104E18 -sub_8104E18: @ 8104E18 - push {r4,r5,lr} - ldr r0, _08104E54 @ =gSharedMem - adds r0, 0x3D - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _08104E58 @ =gTasks - adds r0, r1 - movs r2, 0x4 - adds r3, r0, 0 - adds r3, 0x8 - ldr r4, _08104E5C @ =gSprites -_08104E32: - lsls r0, r2, 1 - adds r1, r3, r0 - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, 0x40 - beq _08104E60 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r5, 0x3C - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _08104E60 - movs r0, 0 - b _08104E6C - .align 2, 0 -_08104E54: .4byte gSharedMem -_08104E58: .4byte gTasks -_08104E5C: .4byte gSprites -_08104E60: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _08104E32 - movs r0, 0x1 -_08104E6C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8104E18 - - thumb_func_start sub_8104E74 -sub_8104E74: @ 8104E74 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08104E9C @ =gUnknown_083ECC54 - ldr r2, _08104EA0 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08104E9C: .4byte gUnknown_083ECC54 -_08104EA0: .4byte gTasks - thumb_func_end sub_8104E74 - - thumb_func_start nullsub_69 -nullsub_69: @ 8104EA4 - bx lr - thumb_func_end nullsub_69 - - thumb_func_start sub_8104EA8 -sub_8104EA8: @ 8104EA8 - push {r4-r7,lr} - movs r6, 0 - movs r0, 0x30 -_08104EAE: - movs r4, 0 - lsls r5, r0, 16 - lsls r7, r6, 16 -_08104EB4: - ldr r0, _08104F0C @ =gSpriteTemplate_83ED414 - asrs r1, r5, 16 - movs r2, 0 - movs r3, 0xE - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08104F10 @ =gSprites - adds r1, r0 - ldrb r0, [r1, 0x5] - movs r2, 0xC - orrs r0, r2 - strb r0, [r1, 0x5] - strh r6, [r1, 0x2E] - strh r4, [r1, 0x30] - ldr r0, _08104F14 @ =0x0000ffff - strh r0, [r1, 0x34] - lsls r0, r4, 16 - movs r1, 0xC0 - lsls r1, 13 - adds r0, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0x77 - ble _08104EB4 - movs r2, 0x80 - lsls r2, 9 - adds r1, r7, r2 - movs r2, 0xA0 - lsls r2, 14 - adds r0, r5, r2 - lsrs r0, 16 - lsrs r6, r1, 16 - asrs r1, 16 - cmp r1, 0x2 - ble _08104EAE - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08104F0C: .4byte gSpriteTemplate_83ED414 -_08104F10: .4byte gSprites -_08104F14: .4byte 0x0000ffff - thumb_func_end sub_8104EA8 - - thumb_func_start sub_8104F18 -sub_8104F18: @ 8104F18 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, _08104F88 @ =gSharedMem - movs r0, 0x2E - ldrsh r1, [r5, r0] - lsls r1, 1 - adds r0, r4, 0 - adds r0, 0x1C - adds r1, r0 - ldrh r0, [r5, 0x30] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r5, 0x32] - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0x78 - bl __modsi3 - strh r0, [r5, 0x32] - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r1, 1 - adds r4, 0x22 - adds r1, r4 - ldrh r1, [r1] - adds r1, 0x1C - adds r0, r1 - strh r0, [r5, 0x22] - ldrh r4, [r5, 0x2E] - lsls r4, 24 - lsrs r4, 24 - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0x18 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_8102BA4 - lsls r0, 24 - lsrs r0, 24 - bl GetSpriteTileStartByTag - adds r1, r5, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r5, 0 - bl SetSpriteSheetFrameTileNum - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08104F88: .4byte gSharedMem - thumb_func_end sub_8104F18 - - thumb_func_start sub_8104F8C -sub_8104F8C: @ 8104F8C - push {r4-r6,lr} - movs r4, 0xCB - movs r5, 0x1 - ldr r6, _08104FF0 @ =0x0000270f -_08104F94: - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - movs r1, 0x17 - movs r2, 0 - adds r3, r5, 0 - bl sub_8104FF4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 17 - subs r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r6 - ble _08104F94 - movs r4, 0xEB - movs r5, 0x1 - ldr r6, _08104FF0 @ =0x0000270f -_08104FC2: - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r0, r4, 0 - movs r1, 0x17 - movs r2, 0x1 - adds r3, r5, 0 - bl sub_8104FF4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 17 - subs r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - lsrs r5, r0, 16 - asrs r0, 16 - cmp r0, r6 - ble _08104FC2 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08104FF0: .4byte 0x0000270f - thumb_func_end sub_8104F8C - - thumb_func_start sub_8104FF4 -sub_8104FF4: @ 8104FF4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - adds r4, r3, 0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08105060 @ =gSpriteTemplate_83ED42C - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0xD - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08105064 @ =gSprites - adds r2, r0 - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2, 0x5] - mov r0, r8 - strh r0, [r2, 0x2E] - strh r4, [r2, 0x30] - lsls r4, 16 - asrs r4, 16 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 1 - strh r0, [r2, 0x32] - ldr r0, _08105068 @ =0x0000ffff - strh r0, [r2, 0x34] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08105060: .4byte gSpriteTemplate_83ED42C -_08105064: .4byte gSprites -_08105068: .4byte 0x0000ffff - thumb_func_end sub_8104FF4 - - thumb_func_start sub_810506C -sub_810506C: @ 810506C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _081050C0 @ =gSharedMem - ldrh r2, [r1, 0xC] - movs r3, 0x2E - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _0810507E - ldrh r2, [r1, 0xE] -_0810507E: - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, r2 - beq _081050B8 - strh r2, [r4, 0x34] - ldrh r1, [r4, 0x32] - adds r0, r2, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r1, [r4, 0x30] - adds r0, r2, 0 - bl __udivsi3 - lsls r0, 16 - movs r3, 0xE0 - lsls r3, 11 - adds r0, r3 - lsrs r2, r0, 16 - adds r0, r2, 0 - bl GetSpriteTileStartByTag - adds r1, r4, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r4, 0 - bl SetSpriteSheetFrameTileNum -_081050B8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081050C0: .4byte gSharedMem - thumb_func_end sub_810506C - - thumb_func_start sub_81050C4 -sub_81050C4: @ 81050C4 - push {lr} - ldr r0, _081050F4 @ =gSpriteTemplate_83ED444 - movs r1, 0x58 - movs r2, 0x48 - movs r3, 0xF - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _081050F8 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, _081050FC @ =gSubspriteTables_83ED704 - bl SetSubspriteTables - pop {r0} - bx r0 - .align 2, 0 -_081050F4: .4byte gSpriteTemplate_83ED444 -_081050F8: .4byte gSprites -_081050FC: .4byte gSubspriteTables_83ED704 - thumb_func_end sub_81050C4 - - thumb_func_start sub_8105100 -sub_8105100: @ 8105100 - push {lr} - ldr r0, _08105140 @ =gSpriteTemplate_83ED45C - movs r1, 0x8C - lsls r1, 1 - movs r2, 0x50 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08105144 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - ldr r1, _08105148 @ =gSharedMem - adds r1, 0x3F - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08105140: .4byte gSpriteTemplate_83ED45C -_08105144: .4byte gSprites -_08105148: .4byte gSharedMem - thumb_func_end sub_8105100 - - thumb_func_start sub_810514C -sub_810514C: @ 810514C - push {lr} - ldr r0, _08105168 @ =gSharedMem - adds r0, 0x3F - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810516C @ =gSprites - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_08105168: .4byte gSharedMem -_0810516C: .4byte gSprites - thumb_func_end sub_810514C - - thumb_func_start sub_8105170 -sub_8105170: @ 8105170 - push {lr} - adds r2, r0, 0 - movs r0, 0 - strh r0, [r2, 0x24] - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0x4 - bne _081051B6 - movs r0, 0x8 - strh r0, [r2, 0x24] - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - beq _081051A4 - adds r0, r2, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _081051B2 - b _081051B6 -_081051A4: - adds r0, r2, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - bne _081051B6 -_081051B2: - ldr r0, _081051BC @ =0x0000fff8 - strh r0, [r2, 0x26] -_081051B6: - pop {r0} - bx r0 - .align 2, 0 -_081051BC: .4byte 0x0000fff8 - thumb_func_end sub_8105170 - - thumb_func_start sub_81051C0 -sub_81051C0: @ 81051C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0810526C @ =gSpriteTemplate_83ED474 - movs r7, 0xB8 - lsls r7, 1 - adds r1, r7, 0 - movs r2, 0x34 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08105270 @ =gSprites - mov r10, r1 - adds r2, r0, r1 - ldrb r1, [r2, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - movs r3, 0x4 - mov r9, r3 - mov r1, r9 - orrs r0, r1 - strb r0, [r2, 0x5] - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x2 - mov r8, r3 - mov r3, r8 - orrs r0, r3 - strb r0, [r1] - ldr r1, _08105274 @ =gSubspriteTables_83ED73C - adds r0, r2, 0 - bl SetSubspriteTables - ldr r6, _08105278 @ =gSharedMem - adds r0, r6, 0 - adds r0, 0x49 - strb r4, [r0] - ldr r0, _0810527C @ =gSpriteTemplate_83ED48C - adds r1, r7, 0 - movs r2, 0x54 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - mov r1, r10 - adds r2, r0, r1 - ldrb r0, [r2, 0x5] - ands r5, r0 - mov r3, r9 - orrs r5, r3 - strb r5, [r2, 0x5] - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r8 - orrs r0, r3 - strb r0, [r1] - ldr r1, _08105280 @ =gSubspriteTables_83ED75C - adds r0, r2, 0 - bl SetSubspriteTables - adds r6, 0x4A - strb r4, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810526C: .4byte gSpriteTemplate_83ED474 -_08105270: .4byte gSprites -_08105274: .4byte gSubspriteTables_83ED73C -_08105278: .4byte gSharedMem -_0810527C: .4byte gSpriteTemplate_83ED48C -_08105280: .4byte gSubspriteTables_83ED75C - thumb_func_end sub_81051C0 - - thumb_func_start sub_8105284 -sub_8105284: @ 8105284 - push {r4,lr} - ldr r0, _081052D8 @ =gSpriteTemplate_83ED4A4 - ldr r1, _081052DC @ =gSpriteCoordOffsetX - ldrh r2, [r1] - movs r1, 0xA8 - subs r1, r2 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x50 - movs r3, 0x7 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _081052E0 @ =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldr r1, _081052E4 @ =gSubspriteTables_83ED78C - bl SetSubspriteTables - ldr r0, _081052E8 @ =gSharedMem - adds r0, 0x42 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081052D8: .4byte gSpriteTemplate_83ED4A4 -_081052DC: .4byte gSpriteCoordOffsetX -_081052E0: .4byte gSprites -_081052E4: .4byte gSubspriteTables_83ED78C -_081052E8: .4byte gSharedMem - thumb_func_end sub_8105284 - - thumb_func_start sub_81052EC -sub_81052EC: @ 81052EC - push {r4-r7,lr} - movs r4, 0 - movs r5, 0 - ldr r6, _08105350 @ =gSharedMem + 0x4B -_081052F4: - ldr r0, _08105354 @ =gSpriteTemplate_83ED4BC - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - ldr r1, _08105358 @ =gSprites - adds r3, r1 - ldrb r2, [r3, 0x5] - movs r7, 0xD - negs r7, r7 - adds r1, r7, 0 - ands r2, r1 - movs r1, 0x4 - orrs r2, r1 - strb r2, [r3, 0x5] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - strh r5, [r3, 0x3C] - adds r1, r4, r6 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r5, 16 - movs r7, 0xA0 - lsls r7, 13 - adds r0, r7 - lsrs r5, r0, 16 - cmp r4, 0x2 - bls _081052F4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08105350: .4byte gSharedMem + 0x4B -_08105354: .4byte gSpriteTemplate_83ED4BC -_08105358: .4byte gSprites - thumb_func_end sub_81052EC - - thumb_func_start sub_810535C -sub_810535C: @ 810535C - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0810539C @ =gSharedMem - ldrh r0, [r4, 0x3C] - ldrh r1, [r1, 0x14] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - movs r1, 0x28 - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - adds r1, r0, 0 - adds r1, 0x3B - strh r1, [r4, 0x22] - movs r1, 0x14 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - bl sub_8102C48 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnimIfDifferent - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810539C: .4byte gSharedMem - thumb_func_end sub_810535C - - thumb_func_start sub_81053A0 -sub_81053A0: @ 81053A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r1, 0xB8 - lsls r1, 1 - ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4 - movs r2, 0x64 - movs r3, 0x9 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r7, _08105450 @ =gSprites - adds r2, r0, r7 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - movs r3, 0x2 - mov r10, r3 - mov r3, r10 - orrs r0, r3 - strb r0, [r1] - ldrb r1, [r2, 0x5] - movs r5, 0xD - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - movs r1, 0x4 - mov r8, r1 - mov r3, r8 - orrs r0, r3 - strb r0, [r2, 0x5] - ldr r0, _08105454 @ =gSubspriteTables_83ED7B4 - mov r9, r0 - adds r0, r2, 0 - mov r1, r9 - bl SetSubspriteTables - ldr r6, _08105458 @ =gSharedMem - adds r0, r6, 0 - adds r0, 0x4E - strb r4, [r0] - movs r1, 0x90 - lsls r1, 1 - ldr r0, _0810544C @ =gSpriteTemplate_83ED4D4 - movs r2, 0x68 - movs r3, 0x4 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r2, r0, r7 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r0, [r1] - mov r3, r10 - orrs r0, r3 - strb r0, [r1] - ldrb r0, [r2, 0x5] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r2, 0x5] - adds r0, r2, 0 - mov r1, r9 - bl SetSubspriteTables - adds r6, 0x4F - strb r4, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810544C: .4byte gSpriteTemplate_83ED4D4 -_08105450: .4byte gSprites -_08105454: .4byte gSubspriteTables_83ED7B4 -_08105458: .4byte gSharedMem - thumb_func_end sub_81053A0 - - thumb_func_start sub_810545C -sub_810545C: @ 810545C - push {r4,lr} - ldr r0, _081054A8 @ =gSpriteTemplate_83ED4EC - movs r1, 0xB8 - lsls r1, 1 - movs r2, 0x4C - movs r3, 0xB - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _081054AC @ =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, _081054B0 @ =gSubspriteTables_83ED7D4 - bl SetSubspriteTables - ldr r0, _081054B4 @ =gSharedMem - adds r0, 0x40 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081054A8: .4byte gSpriteTemplate_83ED4EC -_081054AC: .4byte gSprites -_081054B0: .4byte gSubspriteTables_83ED7D4 -_081054B4: .4byte gSharedMem - thumb_func_end sub_810545C - - thumb_func_start sub_81054B8 -sub_81054B8: @ 81054B8 - push {r4,r5,lr} - ldr r4, _08105518 @ =gSharedMem - adds r0, r4, 0 - adds r0, 0x40 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810551C @ =gSprites - adds r0, r1 - bl DestroySprite - movs r5, 0 - adds r4, 0x49 -_081054D4: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810551C @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _081054D4 - movs r5, 0 - ldr r4, _08105520 @ =gSharedMem + 0x4B -_081054F4: - adds r0, r5, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0810551C @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081054F4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08105518: .4byte gSharedMem -_0810551C: .4byte gSprites -_08105520: .4byte gSharedMem + 0x4B - thumb_func_end sub_81054B8 - - thumb_func_start sub_8105524 -sub_8105524: @ 8105524 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0810554C @ =gSharedMem + 0x4E -_0810552A: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08105550 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0810552A - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810554C: .4byte gSharedMem + 0x4E -_08105550: .4byte gSprites - thumb_func_end sub_8105524 - - thumb_func_start sub_8105554 -sub_8105554: @ 8105554 - push {lr} - ldr r0, _08105570 @ =gSharedMem - adds r0, 0x42 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08105574 @ =gSprites - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_08105570: .4byte gSharedMem -_08105574: .4byte gSprites - thumb_func_end sub_8105554 - - thumb_func_start sub_8105578 -sub_8105578: @ 8105578 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r0, _0810561C @ =gSpriteTemplate_83ED504 - mov r10, r0 - movs r1, 0x98 - movs r2, 0x20 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, _08105620 @ =gSprites - mov r9, r2 - adds r3, r1, r2 - ldrb r2, [r3, 0x5] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r1, r2 - movs r2, 0x4 - mov r8, r2 - mov r2, r8 - orrs r1, r2 - strb r1, [r3, 0x5] - adds r5, r3, 0 - adds r5, 0x3F - ldrb r1, [r5] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r5] - ldr r5, _08105624 @ =gSharedMem - adds r1, r5, 0 - adds r1, 0x50 - strb r0, [r1] - movs r0, 0x8 - strh r0, [r3, 0x2E] - ldr r0, _08105628 @ =0x0000ffff - strh r0, [r3, 0x30] - movs r0, 0x1 - negs r0, r0 - strh r0, [r3, 0x32] - movs r6, 0x20 - strh r6, [r3, 0x3C] - mov r0, r10 - movs r1, 0xB8 - movs r2, 0x20 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - mov r2, r9 - adds r3, r1, r2 - ldrb r1, [r3, 0x5] - ands r4, r1 - mov r1, r8 - orrs r4, r1 - strb r4, [r3, 0x5] - adds r5, 0x51 - strb r0, [r5] - movs r0, 0x1 - strh r0, [r3, 0x30] - subs r0, 0x2 - strh r0, [r3, 0x32] - strh r6, [r3, 0x3C] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810561C: .4byte gSpriteTemplate_83ED504 -_08105620: .4byte gSprites -_08105624: .4byte gSharedMem -_08105628: .4byte 0x0000ffff - thumb_func_end sub_8105578 - - thumb_func_start sub_810562C -sub_810562C: @ 810562C - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - movs r1, 0x2E - ldrsh r4, [r2, r1] - cmp r4, 0 - beq _08105650 - subs r0, 0x1 - movs r1, 0 - strh r0, [r2, 0x2E] - strh r1, [r2, 0x24] - strh r1, [r2, 0x26] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - b _08105682 -_08105650: - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _08105682 - ldrh r0, [r2, 0x3C] - strh r0, [r2, 0x2E] - strh r4, [r2, 0x34] -_08105682: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810562C - - thumb_func_start sub_8105688 -sub_8105688: @ 8105688 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _081056B8 @ =gSprites - ldr r3, _081056BC @ =gSharedMem - adds r1, r3, 0 - adds r1, 0x50 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x3C] - adds r3, 0x51 - ldrb r2, [r3] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - strh r0, [r1, 0x3C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081056B8: .4byte gSprites -_081056BC: .4byte gSharedMem - thumb_func_end sub_8105688 - - thumb_func_start sub_81056C0 -sub_81056C0: @ 81056C0 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _081056E8 @ =gSharedMem + 0x50 -_081056C6: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081056EC @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _081056C6 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081056E8: .4byte gSharedMem + 0x50 -_081056EC: .4byte gSprites - thumb_func_end sub_81056C0 - - thumb_func_start sub_81056F0 -sub_81056F0: @ 81056F0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r0, _08105778 @ =gSpriteTemplate_83ED51C - mov r8, r0 - movs r1, 0x48 - movs r2, 0x50 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810577C @ =gSprites - mov r9, r1 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - add r2, r9 - ldrb r3, [r2, 0x5] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r1, r3 - movs r6, 0x4 - orrs r1, r6 - strb r1, [r2, 0x5] - movs r3, 0 - movs r1, 0x1 - strh r1, [r2, 0x2E] - strh r3, [r2, 0x38] - movs r1, 0x10 - strh r1, [r2, 0x3A] - movs r1, 0x8 - strh r1, [r2, 0x3C] - ldr r5, _08105780 @ =gSharedMem - adds r1, r5, 0 - adds r1, 0x52 - strb r0, [r1] - mov r0, r8 - movs r1, 0x68 - movs r2, 0x50 - movs r3, 0x3 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r2, [r1, 0x5] - ands r4, r2 - orrs r4, r6 - strb r4, [r1, 0x5] - adds r1, 0x3F - ldrb r2, [r1] - movs r3, 0x1 - orrs r2, r3 - strb r2, [r1] - adds r5, 0x53 - strb r0, [r5] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08105778: .4byte gSpriteTemplate_83ED51C -_0810577C: .4byte gSprites -_08105780: .4byte gSharedMem - thumb_func_end sub_81056F0 - - thumb_func_start sub_8105784 -sub_8105784: @ 8105784 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldr r1, _081057E0 @ =gUnknown_083ECC58 - mov r0, sp - movs r2, 0x2 - bl memcpy - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _081057D6 - ldrh r0, [r4, 0x3A] - subs r0, 0x1 - strh r0, [r4, 0x3A] - lsls r0, 16 - cmp r0, 0 - bgt _081057D6 - movs r0, 0x7 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r2, _081057E4 @ =0x01030000 - adds r0, r2 - lsrs r0, 16 - movs r2, 0x38 - ldrsh r1, [r4, r2] - add r1, sp - ldrb r3, [r1] - adds r1, r3, 0 - adds r2, r3, 0 - bl MultiplyInvertedPaletteRGBComponents - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3C] - strh r0, [r4, 0x3A] -_081057D6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081057E0: .4byte gUnknown_083ECC58 -_081057E4: .4byte 0x01030000 - thumb_func_end sub_8105784 - - thumb_func_start sub_81057E8 -sub_81057E8: @ 81057E8 - ldr r3, _081057FC @ =gSprites - ldr r1, _08105800 @ =gSharedMem - adds r1, 0x52 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - strh r0, [r1, 0x3C] - bx lr - .align 2, 0 -_081057FC: .4byte gSprites -_08105800: .4byte gSharedMem - thumb_func_end sub_81057E8 - - thumb_func_start sub_8105804 -sub_8105804: @ 8105804 - push {r4,r5,lr} - movs r0, 0x7 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, _08105848 @ =0x01030000 - adds r0, r1 - lsrs r0, 16 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl MultiplyInvertedPaletteRGBComponents - movs r4, 0 - ldr r5, _0810584C @ =gSharedMem + 0x52 -_08105824: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08105850 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _08105824 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08105848: .4byte 0x01030000 -_0810584C: .4byte gSharedMem + 0x52 -_08105850: .4byte gSprites - thumb_func_end sub_8105804 - - thumb_func_start sub_8105854 -sub_8105854: @ 8105854 - push {lr} - ldr r0, _08105888 @ =gSpriteTemplate_83ED534 - movs r1, 0xA8 - movs r2, 0x50 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810588C @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x5] - movs r2, 0xD - negs r2, r2 - ands r2, r3 - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1, 0x5] - ldr r1, _08105890 @ =gSharedMem - adds r1, 0x41 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08105888: .4byte gSpriteTemplate_83ED534 -_0810588C: .4byte gSprites -_08105890: .4byte gSharedMem - thumb_func_end sub_8105854 - - thumb_func_start sub_8105894 -sub_8105894: @ 8105894 - ldr r1, _0810589C @ =gSpriteCoordOffsetY - ldrh r1, [r1] - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_0810589C: .4byte gSpriteCoordOffsetY - thumb_func_end sub_8105894 - - thumb_func_start sub_81058A0 -sub_81058A0: @ 81058A0 - push {lr} - ldr r0, _081058BC @ =gSharedMem - adds r0, 0x41 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081058C0 @ =gSprites - adds r0, r1 - bl DestroySprite - pop {r0} - bx r0 - .align 2, 0 -_081058BC: .4byte gSharedMem -_081058C0: .4byte gSprites - thumb_func_end sub_81058A0 - - thumb_func_start sub_81058C4 -sub_81058C4: @ 81058C4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, _08105938 @ =gUnknown_083ECC5A - mov r0, sp - movs r2, 0x8 - bl memcpy - movs r4, 0 - ldr r5, _0810593C @ =gSharedMem + 0x54 -_081058D6: - ldr r0, _08105940 @ =gSpriteCoordOffsetX - ldrh r0, [r0] - movs r1, 0x50 - subs r1, r0 - lsls r1, 16 - asrs r1, 16 - ldr r0, _08105944 @ =gSpriteTemplate_83ED54C - movs r2, 0x44 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - ldr r1, _08105948 @ =gSprites - adds r3, r1 - ldrb r2, [r3, 0x5] - movs r6, 0xD - negs r6, r6 - adds r1, r6, 0 - ands r2, r1 - movs r1, 0x4 - orrs r2, r1 - strb r2, [r3, 0x5] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - lsls r1, r4, 1 - add r1, sp - ldrh r1, [r1] - strh r1, [r3, 0x2E] - adds r1, r4, r5 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081058D6 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08105938: .4byte gUnknown_083ECC5A -_0810593C: .4byte gSharedMem + 0x54 -_08105940: .4byte gSpriteCoordOffsetX -_08105944: .4byte gSpriteTemplate_83ED54C -_08105948: .4byte gSprites - thumb_func_end sub_81058C4 - - thumb_func_start sub_810594C -sub_810594C: @ 810594C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - subs r0, 0x2 - movs r4, 0 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r1, 0x14 - bl Cos - strh r0, [r5, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r1, 0x6 - bl Sin - strh r0, [r5, 0x26] - adds r1, r5, 0 - adds r1, 0x43 - strb r4, [r1] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x7F - ble _08105986 - movs r0, 0x2 - strb r0, [r1] -_08105986: - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _081059B0 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r0, r2, 31 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0 - strh r0, [r5, 0x30] -_081059B0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810594C - - thumb_func_start sub_81059B8 -sub_81059B8: @ 81059B8 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _081059E0 @ =gSharedMem + 0x54 -_081059BE: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081059E4 @ =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081059BE - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081059E0: .4byte gSharedMem + 0x54 -_081059E4: .4byte gSprites - thumb_func_end sub_81059B8 - - thumb_func_start sub_81059E8 -sub_81059E8: @ 81059E8 - push {r4,lr} - ldr r0, _08105A2C @ =gSpriteTemplate_83ED564 - movs r1, 0xA8 - movs r2, 0x3C - movs r3, 0x8 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08105A30 @ =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - bl InitSpriteAffineAnim - ldr r0, _08105A34 @ =gSharedMem - adds r0, 0x43 - strb r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105A2C: .4byte gSpriteTemplate_83ED564 -_08105A30: .4byte gSprites -_08105A34: .4byte gSharedMem - thumb_func_end sub_81059E8 - - thumb_func_start sub_8105A38 -sub_8105A38: @ 8105A38 - push {lr} - adds r3, r0, 0 - ldrh r2, [r3, 0x2E] - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0 - bne _08105A5A - adds r0, r3, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08105AB4 - adds r0, r2, 0x1 - strh r0, [r3, 0x2E] - b _08105AB4 -_08105A5A: - cmp r0, 0x1 - bne _08105A96 - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - 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 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x17 - ble _08105AB4 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - movs r0, 0 - strh r0, [r3, 0x32] - b _08105AB4 -_08105A96: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _08105AB4 - movs r0, 0x1 - strh r0, [r3, 0x3C] -_08105AB4: - ldrh r0, [r3, 0x30] - movs r1, 0xFF - ands r1, r0 - adds r1, 0x10 - strh r1, [r3, 0x30] - lsrs r1, 8 - ldrh r0, [r3, 0x26] - subs r0, r1 - strh r0, [r3, 0x26] - pop {r0} - bx r0 - thumb_func_end sub_8105A38 - - thumb_func_start sub_8105ACC -sub_8105ACC: @ 8105ACC - ldr r2, _08105AE4 @ =gSprites - ldr r0, _08105AE8 @ =gSharedMem - adds r0, 0x43 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_08105AE4: .4byte gSprites -_08105AE8: .4byte gSharedMem - thumb_func_end sub_8105ACC - - thumb_func_start sub_8105AEC -sub_8105AEC: @ 8105AEC - push {r4,lr} - ldr r0, _08105B14 @ =gSharedMem - adds r0, 0x43 - ldrb r0, [r0] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08105B18 @ =gSprites - adds r4, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105B14: .4byte gSharedMem -_08105B18: .4byte gSprites - thumb_func_end sub_8105AEC - - thumb_func_start sub_8105B1C -sub_8105B1C: @ 8105B1C - push {r4,lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _08105B68 @ =gSpriteTemplate_83ED6CC - lsls r3, 16 - asrs r3, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r3, 0 - movs r3, 0xC - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _08105B6C @ =gSprites - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0, 0x5] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - bl InitSpriteAffineAnim - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08105B68: .4byte gSpriteTemplate_83ED6CC -_08105B6C: .4byte gSprites - thumb_func_end sub_8105B1C - - thumb_func_start sub_8105B70 -sub_8105B70: @ 8105B70 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08105B84 - movs r0, 0x1 - strh r0, [r2, 0x3C] -_08105B84: - pop {r0} - bx r0 - thumb_func_end sub_8105B70 - - thumb_func_start sub_8105B88 -sub_8105B88: @ 8105B88 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08105BB0 @ =gSprites - adds r4, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08105BB0: .4byte gSprites - thumb_func_end sub_8105B88 - - thumb_func_start sub_8105BB4 -sub_8105BB4: @ 8105BB4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _08105BF0 @ =gUnknown_083ECF0C - lsrs r1, 22 - adds r3, r1, r3 - ldr r5, [r3] - ldr r3, _08105BF4 @ =gUnknown_083ECE7E - adds r4, r1, r3 - movs r6, 0 - ldrsh r4, [r4, r6] - adds r3, 0x2 - adds r1, r3 - movs r6, 0 - ldrsh r3, [r1, r6] - lsls r2, 16 - asrs r2, 16 - str r2, [sp] - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_8105BF8 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08105BF0: .4byte gUnknown_083ECF0C -_08105BF4: .4byte gUnknown_083ECE7E - thumb_func_end sub_8105BB4 - - thumb_func_start sub_8105BF8 -sub_8105BF8: @ 8105BF8 - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r1, r2, 0 - adds r2, r3, 0 - ldr r5, [sp, 0x14] - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _08105C58 @ =gUnknown_083EDB5C - lsrs r4, 22 - adds r0, r4, r0 - ldr r0, [r0] - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - adds r7, r0, 0 - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _08105C5C @ =gSprites - adds r2, r0, r1 - ldrb r0, [r2, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r2, 0x5] - str r6, [r2, 0x1C] - strh r5, [r2, 0x3A] - movs r0, 0x1 - strh r0, [r2, 0x3C] - ldr r0, _08105C60 @ =gUnknown_083EDBC4 - adds r4, r0 - ldr r1, [r4] - cmp r1, 0 - beq _08105C50 - adds r0, r2, 0 - bl SetSubspriteTables -_08105C50: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08105C58: .4byte gUnknown_083EDB5C -_08105C5C: .4byte gSprites -_08105C60: .4byte gUnknown_083EDBC4 - thumb_func_end sub_8105BF8 - - thumb_func_start sub_8105C64 -sub_8105C64: @ 8105C64 - movs r1, 0 - strh r1, [r0, 0x3C] - bx lr - thumb_func_end sub_8105C64 - - thumb_func_start sub_8105C6C -sub_8105C6C: @ 8105C6C - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r1, _08105CE8 @ =gUnknown_083ECC62 - mov r0, sp - movs r2, 0x8 - bl memcpy - add r5, sp, 0x8 - ldr r1, _08105CEC @ =gUnknown_083ECC6A - adds r0, r5, 0 - movs r2, 0x8 - bl memcpy - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _08105CB2 - adds r3, r4, 0 - adds r3, 0x42 - ldrb r2, [r3] - lsls r0, r2, 26 - lsrs r0, 26 - movs r1, 0x1 - eors r1, r0 - movs r0, 0x40 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0 - strh r0, [r4, 0x30] -_08105CB2: - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x42 - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - beq _08105CDE - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, 0x26] -_08105CDE: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08105CE8: .4byte gUnknown_083ECC62 -_08105CEC: .4byte gUnknown_083ECC6A - thumb_func_end sub_8105C6C - - thumb_func_start sub_8105CF0 -sub_8105CF0: @ 8105CF0 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r3] - bl sub_8105C6C - pop {r0} - bx r0 - thumb_func_end sub_8105CF0 - - thumb_func_start sub_8105D08 -sub_8105D08: @ 8105D08 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - bl sub_8105C6C - pop {r0} - bx r0 - thumb_func_end sub_8105D08 - - thumb_func_start sub_8105D20 -sub_8105D20: @ 8105D20 - push {lr} - adds r3, r0, 0 - adds r3, 0x3F - ldrb r1, [r3] - movs r2, 0x1 - orrs r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - bl sub_8105C6C - pop {r0} - bx r0 - thumb_func_end sub_8105D20 - - thumb_func_start sub_8105D3C -sub_8105D3C: @ 8105D3C - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _08105D70 - cmp r0, 0x1 - bgt _08105D52 - cmp r0, 0 - beq _08105D5C - b _08105DA0 -_08105D52: - cmp r0, 0x2 - beq _08105D80 - cmp r0, 0x3 - beq _08105D9C - b _08105DA0 -_08105D5C: - ldrh r0, [r2, 0x20] - adds r0, 0x4 - strh r0, [r2, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xCF - ble _08105DA0 - movs r0, 0xD0 - strh r0, [r2, 0x20] - b _08105D8E -_08105D70: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _08105DA0 - b _08105D8E -_08105D80: - ldrh r0, [r2, 0x20] - adds r0, 0x4 - strh r0, [r2, 0x20] - lsls r0, 16 - ldr r1, _08105D98 @ =0x010f0000 - cmp r0, r1 - ble _08105DA0 -_08105D8E: - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - b _08105DA0 - .align 2, 0 -_08105D98: .4byte 0x010f0000 -_08105D9C: - movs r0, 0 - strh r0, [r2, 0x3C] -_08105DA0: - pop {r0} - bx r0 - thumb_func_end sub_8105D3C - - thumb_func_start sub_8105DA4 -sub_8105DA4: @ 8105DA4 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _08105DD8 - cmp r0, 0x1 - bgt _08105DBA - cmp r0, 0 - beq _08105DC4 - b _08105E02 -_08105DBA: - cmp r0, 0x2 - beq _08105DE8 - cmp r0, 0x3 - beq _08105DFE - b _08105E02 -_08105DC4: - ldrh r0, [r1, 0x20] - subs r0, 0x4 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - bgt _08105E02 - movs r0, 0xD0 - strh r0, [r1, 0x20] - b _08105DF6 -_08105DD8: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _08105E02 - b _08105DF6 -_08105DE8: - ldrh r0, [r1, 0x20] - subs r0, 0x4 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x90 - bgt _08105E02 -_08105DF6: - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _08105E02 -_08105DFE: - movs r0, 0 - strh r0, [r1, 0x3C] -_08105E02: - pop {r0} - bx r0 - thumb_func_end sub_8105DA4 - - thumb_func_start sub_8105E08 -sub_8105E08: @ 8105E08 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bhi _08105EAE - lsls r0, 2 - ldr r1, _08105E20 @ =_08105E24 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08105E20: .4byte _08105E24 - .align 2, 0 -_08105E24: - .4byte _08105E3C - .4byte _08105E52 - .4byte _08105E70 - .4byte _08105E84 - .4byte _08105E94 - .4byte _08105EAA -_08105E3C: - ldr r0, _08105E6C @ =gSharedMem - ldrb r1, [r0, 0xA] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08105E52: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _08105EAE - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x30] - b _08105EAE - .align 2, 0 -_08105E6C: .4byte gSharedMem -_08105E70: - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xCF - ble _08105EAE - movs r0, 0xD0 - strh r0, [r4, 0x20] - b _08105EA2 -_08105E84: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5A - ble _08105EAE - b _08105EA2 -_08105E94: - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF7 - ble _08105EAE -_08105EA2: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _08105EAE -_08105EAA: - movs r0, 0 - strh r0, [r4, 0x3C] -_08105EAE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8105E08 - - thumb_func_start sub_8105EB4 -sub_8105EB4: @ 8105EB4 - push {lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x1 - beq _08105EE2 - cmp r0, 0x1 - bgt _08105ECA - cmp r0, 0 - beq _08105ED0 - b _08105F50 -_08105ECA: - cmp r0, 0x2 - beq _08105F00 - b _08105F50 -_08105ED0: - adds r2, r3, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] -_08105EE2: - ldrh r0, [r3, 0x22] - adds r0, 0x8 - strh r0, [r3, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6F - ble _08105F50 - movs r0, 0x70 - strh r0, [r3, 0x22] - movs r0, 0x10 - strh r0, [r3, 0x30] - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - b _08105F50 -_08105F00: - movs r0, 0x32 - ldrsh r2, [r3, r0] - cmp r2, 0 - bne _08105F46 - ldrh r0, [r3, 0x22] - ldrh r1, [r3, 0x30] - subs r0, r1 - strh r0, [r3, 0x22] - negs r1, r1 - strh r1, [r3, 0x30] - ldrh r0, [r3, 0x34] - adds r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _08105F46 - lsls r0, r1, 16 - asrs r0, 18 - strh r0, [r3, 0x30] - strh r2, [r3, 0x34] - adds r1, r0, 0 - cmp r1, 0 - bne _08105F46 - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - strh r1, [r3, 0x3C] - adds r2, r3, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_08105F46: - ldrh r0, [r3, 0x32] - adds r0, 0x1 - movs r1, 0x7 - ands r0, r1 - strh r0, [r3, 0x32] -_08105F50: - pop {r0} - bx r0 - thumb_func_end sub_8105EB4 - - thumb_func_start sub_8105F54 -sub_8105F54: @ 8105F54 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08105F66 - cmp r0, 0x1 - beq _08105F7C - b _08105F98 -_08105F66: - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _08105F98 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - b _08105F98 -_08105F7C: - ldrh r0, [r1, 0x22] - adds r0, 0x2 - strh r0, [r1, 0x22] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2F - ble _08105F98 - movs r0, 0x30 - strh r0, [r1, 0x22] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - movs r0, 0 - strh r0, [r1, 0x3C] -_08105F98: - pop {r0} - bx r0 - thumb_func_end sub_8105F54 - - thumb_func_start sub_8105F9C -sub_8105F9C: @ 8105F9C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08105FAE - cmp r0, 0x1 - beq _08106000 - b _0810604E -_08105FAE: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x20 - ble _0810604E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x5 - strh r0, [r4, 0x30] - ldrb r0, [r4, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r2, _08105FFC @ =REG_MOSAIC - ldrh r1, [r4, 0x30] - lsls r0, r1, 4 - orrs r0, r1 - lsls r0, 8 - strh r0, [r2] - b _0810604E - .align 2, 0 -_08105FFC: .4byte REG_MOSAIC -_08106000: - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r4, 0x30] - subs r0, r1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bge _08106016 - movs r0, 0 - strh r0, [r4, 0x30] -_08106016: - ldr r2, _08106054 @ =REG_MOSAIC - ldrh r1, [r4, 0x30] - lsls r0, r1, 4 - orrs r0, r1 - lsls r0, 8 - strh r0, [r2] - ldrh r1, [r4, 0x32] - movs r0, 0xFF - ands r0, r1 - adds r0, 0x80 - strh r0, [r4, 0x32] - movs r0, 0x30 - ldrsh r1, [r4, r0] - cmp r1, 0 - bne _0810604E - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_0810604E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106054: .4byte REG_MOSAIC - thumb_func_end sub_8105F9C - - thumb_func_start sub_8106058 -sub_8106058: @ 8106058 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x2 - bgt _081060A8 - ldr r1, _081060A4 @ =gUnknown_083EDE10 - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _081060E4 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - movs r0, 0 - strh r0, [r5, 0x32] - b _081060E4 - .align 2, 0 -_081060A4: .4byte gUnknown_083EDE10 -_081060A8: - ldr r1, _081060F8 @ =gUnknown_083EDE10 - movs r2, 0x30 - ldrsh r0, [r5, r2] - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - ldrh r0, [r5, 0x32] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _081060E4 - strh r1, [r5, 0x30] - strh r1, [r5, 0x32] -_081060E4: - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnimIfDifferent - movs r0, 0 - strh r0, [r5, 0x3C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081060F8: .4byte gUnknown_083EDE10 - thumb_func_end sub_8106058 - - thumb_func_start sub_81060FC -sub_81060FC: @ 81060FC - push {r4-r6,lr} - sub sp, 0x30 - adds r4, r0, 0 - ldr r1, _08106138 @ =gUnknown_083ECC72 - mov r0, sp - movs r2, 0x10 - bl memcpy - add r6, sp, 0x10 - ldr r1, _0810613C @ =gUnknown_083ECC82 - adds r0, r6, 0 - movs r2, 0x10 - bl memcpy - add r5, sp, 0x20 - ldr r1, _08106140 @ =gUnknown_083ECC92 - adds r0, r5, 0 - movs r2, 0x10 - bl memcpy - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08106174 - cmp r0, 0x1 - bgt _08106144 - cmp r0, 0 - beq _0810614A - b _081061C0 - .align 2, 0 -_08106138: .4byte gUnknown_083ECC72 -_0810613C: .4byte gUnknown_083ECC82 -_08106140: .4byte gUnknown_083ECC92 -_08106144: - cmp r0, 0x2 - beq _08106188 - b _081061C0 -_0810614A: - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - adds r0, r6, r0 - ldrh r0, [r0] - strh r0, [r4, 0x26] - movs r2, 0x3A - ldrsh r0, [r4, r2] - lsls r0, 1 - adds r0, r5, r0 - ldrh r0, [r0] - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08106174: - ldrh r0, [r4, 0x30] - subs r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _081061C0 - b _081061BA -_08106188: - ldrh r0, [r4, 0x24] - movs r2, 0x24 - ldrsh r1, [r4, r2] - cmp r1, 0 - ble _08106196 - subs r0, 0x4 - b _0810619C -_08106196: - cmp r1, 0 - bge _0810619E - adds r0, 0x4 -_0810619C: - strh r0, [r4, 0x24] -_0810619E: - ldrh r0, [r4, 0x26] - movs r2, 0x26 - ldrsh r1, [r4, r2] - cmp r1, 0 - ble _081061AC - subs r0, 0x4 - b _081061B2 -_081061AC: - cmp r1, 0 - bge _081061B4 - adds r0, 0x4 -_081061B2: - strh r0, [r4, 0x26] -_081061B4: - ldr r0, [r4, 0x24] - cmp r0, 0 - bne _081061C0 -_081061BA: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_081061C0: - add sp, 0x30 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_81060FC - - thumb_func_start sub_81061C8 -sub_81061C8: @ 81061C8 - push {r4,lr} - sub sp, 0x10 - adds r4, r0, 0 - ldr r1, _0810622C @ =gUnknown_083ECCA2 - mov r0, sp - movs r2, 0x10 - bl memcpy - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _081061EA - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0xC - strh r0, [r4, 0x30] -_081061EA: - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3A - ldrsh r0, [r4, r1] - lsls r0, 1 - add r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08106224 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] -_08106224: - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810622C: .4byte gUnknown_083ECCA2 - thumb_func_end sub_81061C8 - - thumb_func_start sub_8106230 -sub_8106230: @ 8106230 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0810627A - cmp r0, 0x1 - bgt _08106248 - cmp r0, 0 - beq _08106252 - b _0810634A -_08106248: - cmp r0, 0x2 - beq _081062C4 - cmp r0, 0x3 - beq _081062FC - b _0810634A -_08106252: - ldr r2, _081062BC @ =gSharedMem - adds r1, r2, 0 - adds r1, 0x5C - movs r0, 0x2F - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x3F - strh r0, [r1] - subs r1, 0x4 - ldr r0, _081062C0 @ =0x00002088 - strh r0, [r1] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_0810627A: - ldrh r0, [r5, 0x30] - adds r2, r0, 0x2 - strh r2, [r5, 0x30] - adds r0, 0xB2 - strh r0, [r5, 0x32] - movs r1, 0xF0 - subs r1, r2 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - ble _08106296 - movs r0, 0xD0 - strh r0, [r5, 0x32] -_08106296: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xCF - bgt _081062A2 - movs r0, 0xD0 - strh r0, [r5, 0x34] -_081062A2: - ldr r2, _081062BC @ =gSharedMem - ldrh r0, [r5, 0x32] - lsls r0, 8 - ldrh r1, [r5, 0x34] - orrs r0, r1 - adds r1, r2, 0 - adds r1, 0x58 - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x33 - ble _0810634A - b _0810633C - .align 2, 0 -_081062BC: .4byte gSharedMem -_081062C0: .4byte 0x00002088 -_081062C4: - ldr r6, _08106354 @ =gSharedMem - movs r1, 0x12 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _0810634A - ldr r1, _08106358 @ =SpriteCallbackDummy - movs r4, 0 - str r4, [sp] - movs r0, 0x5 - movs r2, 0xD0 - movs r3, 0x74 - bl sub_8104D30 - adds r1, r6, 0 - adds r1, 0x58 - ldr r0, _0810635C @ =0x0000c0e0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xD1 - lsls r0, 7 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x2F - strh r0, [r1] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - strh r4, [r5, 0x30] -_081062FC: - ldrh r0, [r5, 0x30] - adds r2, r0, 0x2 - strh r2, [r5, 0x30] - adds r0, 0xC2 - strh r0, [r5, 0x32] - movs r1, 0xE0 - subs r1, r2 - strh r1, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD0 - ble _08106318 - movs r0, 0xD0 - strh r0, [r5, 0x32] -_08106318: - movs r1, 0x34 - ldrsh r0, [r5, r1] - cmp r0, 0xCF - bgt _08106324 - movs r0, 0xD0 - strh r0, [r5, 0x34] -_08106324: - ldr r2, _08106354 @ =gSharedMem - ldrh r0, [r5, 0x32] - lsls r0, 8 - ldrh r1, [r5, 0x34] - orrs r0, r1 - adds r1, r2, 0 - adds r1, 0x58 - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0xF - ble _0810634A -_0810633C: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - adds r1, r2, 0 - adds r1, 0x5C - movs r0, 0x3F - strh r0, [r1] -_0810634A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08106354: .4byte gSharedMem -_08106358: .4byte SpriteCallbackDummy -_0810635C: .4byte 0x0000c0e0 - thumb_func_end sub_8106230 - - thumb_func_start nullsub_70 -nullsub_70: @ 8106360 - bx lr - thumb_func_end nullsub_70 - - thumb_func_start sub_8106364 -sub_8106364: @ 8106364 - ldr r1, _0810636C @ =REG_MOSAIC - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_0810636C: .4byte REG_MOSAIC - thumb_func_end sub_8106364 - - thumb_func_start sub_8106370 -sub_8106370: @ 8106370 - push {r4,lr} - ldr r0, _08106398 @ =gUnknown_083EDE20 - ldr r4, [r0] - movs r0, 0x6 - bl IndexOfSpritePaletteTag - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 17 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08106398: .4byte gUnknown_083EDE20 - thumb_func_end sub_8106370 - - thumb_func_start sub_810639C -sub_810639C: @ 810639C - ldr r2, _081063BC @ =gSharedMem - adds r1, r2, 0 - adds r1, 0x58 - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0xA0 - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0x5C - movs r1, 0x3F - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - .align 2, 0 -_081063BC: .4byte gSharedMem - thumb_func_end sub_810639C - - thumb_func_start sub_81063C0 -sub_81063C0: @ 81063C0 - push {r4,lr} - bl sub_8106404 - ldr r0, _081063F0 @ =gSlotMachineReelTimeLights_Gfx - ldr r4, _081063F4 @ =gSharedMem + 0x10000 - adds r1, r4, 0 - bl LZDecompressWram - ldr r0, _081063F8 @ =gUnknown_083EDE8C - movs r1, 0xC8 - lsls r1, 6 - adds r4, r1 - adds r1, r4, 0 - bl LZDecompressWram - ldr r0, _081063FC @ =gUnknown_083EDC2C - bl LoadSpriteSheets - ldr r0, _08106400 @ =gSlotMachineSpritePalettes - bl LoadSpritePalettes - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081063F0: .4byte gSlotMachineReelTimeLights_Gfx -_081063F4: .4byte gSharedMem + 0x10000 -_081063F8: .4byte gUnknown_083EDE8C -_081063FC: .4byte gUnknown_083EDC2C -_08106400: .4byte gSlotMachineSpritePalettes - thumb_func_end sub_81063C0 - - thumb_func_start sub_8106404 -sub_8106404: @ 8106404 - push {r4,r5,lr} - ldr r3, _0810643C @ =gSharedMem + 0x10000 - movs r2, 0 - ldr r5, _08106440 @ =gUnknown_083EDCDC - ldr r0, _08106444 @ =gUnknown_083EDCE4 - ldr r4, [r0] -_08106410: - movs r1, 0 - adds r2, 0x1 -_08106414: - adds r0, r4, r1 - ldrb r0, [r0] - strb r0, [r3] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - adds r3, 0x1 - cmp r1, 0x1F - bls _08106414 - lsls r0, r2, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _08106410 - adds r0, r5, 0 - bl LoadSpriteSheet - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810643C: .4byte gSharedMem + 0x10000 -_08106440: .4byte gUnknown_083EDCDC -_08106444: .4byte gUnknown_083EDCE4 - thumb_func_end sub_8106404 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/taya_debug_window.s b/asm/taya_debug_window.s new file mode 100644 index 000000000..68d27390d --- /dev/null +++ b/asm/taya_debug_window.s @@ -0,0 +1,2054 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start TayaDebugMenu_Trend +TayaDebugMenu_Trend: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xffffffd8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1e + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r5, ._3 @ gSaveBlock1 + mov r7, #0x0 + mov r0, #0x1 + add r0, r0, sp + mov sl, r0 + mov r9, sp + mov r0, #0x0 + mov r8, r0 + add r6, sp, #0x20 +._2: + ldrb r1, [r5, #0x1] + mov r0, #0x40 + and r0, r0, r1 + mov r1, #0xa1 + cmp r0, #0 + beq ._1 @cond_branch + mov r1, #0xa2 +._1: + mov r0, r9 + strb r1, [r0] + ldrh r1, [r5, #0x4] + add r0, r6, #0 + bl EasyChat_GetWordText + mov r0, sl + add r1, r6, #0 + mov r2, #0x0 + mov r3, #0x7 + bl StringCopyPadded + add r4, r0, #0 + ldrh r1, [r5, #0x6] + add r0, r6, #0 + bl EasyChat_GetWordText + add r0, r4, #0 + add r1, r6, #0 + mov r2, #0x0 + mov r3, #0x8 + bl StringCopyPadded + add r4, r0, #0 + ldrb r1, [r5] + lsl r1, r1, #0x19 + lsr r1, r1, #0x19 + mov r2, #0x1 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r4, r0, #0 + mov r0, r8 + strb r0, [r4] + add r4, r4, #0x1 + ldrh r1, [r5] + lsl r1, r1, #0x12 + lsr r1, r1, #0x19 + add r0, r4, #0 + mov r2, #0x1 + mov r3, #0x3 + bl ConvertIntToDecimalStringN + add r4, r0, #0 + mov r0, r8 + strb r0, [r4] + add r4, r4, #0x1 + ldrh r1, [r5, #0x2] + add r0, r4, #0 + mov r2, #0x1 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + lsl r2, r7, #0x1 + add r2, r2, #0x1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x1 + bl Menu_PrintText + add r5, r5, #0x8 + add r0, r7, #1 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + cmp r7, #0x4 + bls ._2 @cond_branch + ldr r1, ._3 + 4 @ gMenuCallback + ldr r0, ._3 + 8 @ debug_sub_8090808 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._4: + .align 2, 0 +._3: + .word gSaveBlock1+0x2dd4 + .word gMenuCallback + .word debug_sub_8090808+1 + + thumb_func_end TayaDebugMenu_Trend + + thumb_func_start debug_sub_8090808 +debug_sub_8090808: + push {lr} + ldr r0, ._7 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x3 + and r0, r0, r1 + cmp r0, #0 + bne ._5 @cond_branch + mov r0, #0x0 + b ._6 +._8: + .align 2, 0 +._7: + .word gMain +._5: + bl Menu_EraseScreen + bl CloseMenu + mov r0, #0x1 +._6: + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090808 + + thumb_func_start TayaDebugMenu_TrendR +TayaDebugMenu_TrendR: + push {r4, r5, r6, r7, lr} + mov r0, #0x0 + ldr r7, ._11 @ gSaveBlock1 +._10: + mov r4, #0x0 + lsl r5, r0, #0x3 + add r6, r0, #1 +._9: + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x16 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl sub_80EB72C + lsl r1, r4, #0x1 + add r1, r1, r5 + add r1, r1, r7 + strh r0, [r1] + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x1 + bls ._9 @cond_branch + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x4 + bls ._10 @cond_branch + bl Menu_EraseScreen + bl CloseMenu + mov r0, #0x1 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._12: + .align 2, 0 +._11: + .word gSaveBlock1+0x2dd8 + + thumb_func_end TayaDebugMenu_TrendR + + thumb_func_start debug_sub_8090880 +debug_sub_8090880: + push {lr} + bl UpdatePaletteFade + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._13 @cond_branch + mov r0, #0x0 + b ._14 +._13: + bl sub_80E60D8 + mov r0, #0x1 +._14: + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090880 + + thumb_func_start debug_sub_809089C +debug_sub_809089C: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._15 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + bne ._16 @cond_branch + bl CloseMenu + mov r0, #0x1 + b ._17 +._16: + ldr r2, ._19 @ gSpecialVar_0x8004 + ldr r0, ._19 + 4 @ gUnknown_Debug_083C4EC0 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + strh r0, [r2] + ldrh r0, [r2] + sub r0, r0, #0x5 + cmp r0, #0x7 + bhi ._27 @cond_branch + lsl r0, r0, #0x2 + ldr r1, ._19 + 8 @ + add r0, r0, r1 + ldr r0, [r0] + mov pc, r0 +._20: + .align 2, 0 +._19: + .word gSpecialVar_0x8004 + .word gUnknown_Debug_083C4EC0 + .word ._21 +._21: + .word ._29 + .word ._27 + .word ._29 + .word ._29 + .word ._27 + .word ._27 + .word ._29 + .word ._29 +._29: + ldr r0, ._30 @ gSpecialVar_0x8005 + mov r1, #0x0 + strh r1, [r0] + ldr r0, ._30 + 4 @ gSpecialVar_0x8006 + strh r1, [r0] +._27: + mov r0, #0x1 + mov r1, #0x0 + bl FadeScreen + ldr r1, ._30 + 8 @ gMenuCallback + ldr r0, ._30 + 12 @ debug_sub_8090880 + str r0, [r1] +._15: + mov r0, #0x0 +._17: + pop {r1} + bx r1 +._31: + .align 2, 0 +._30: + .word gSpecialVar_0x8005 + .word gSpecialVar_0x8006 + .word gMenuCallback + .word debug_sub_8090880+1 + + thumb_func_end debug_sub_809089C + + thumb_func_start TayaDebugMenu_SimpleText +TayaDebugMenu_SimpleText: + push {lr} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xc + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._32 @ gUnknown_Debug_083C4EC0 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._32 + 4 @ gMenuCallback + ldr r0, ._32 + 8 @ debug_sub_809089C + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._33: + .align 2, 0 +._32: + .word gUnknown_Debug_083C4EC0 + .word gMenuCallback + .word debug_sub_809089C+1 + + thumb_func_end TayaDebugMenu_SimpleText + + thumb_func_start debug_sub_8090984 +debug_sub_8090984: + push {r4, r5, r6, r7, lr} + bl Menu_ProcessInput + lsl r2, r0, #0x18 + asr r1, r2, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._34 @cond_branch + add r0, r0, #0x1 + cmp r1, r0 + beq ._46 @cond_branch + cmp r1, #0x4 + bgt ._36 @cond_branch + lsr r0, r2, #0x18 + bl debug_sub_810B32C + b ._46 +._34: + mov r0, #0x0 + b ._38 +._36: + cmp r1, #0x5 + bne ._39 @cond_branch + bl sub_80F7F30 + b ._46 +._39: + cmp r1, #0x6 + bne ._41 @cond_branch + mov r4, #0x0 + ldr r0, ._44 @ gSaveBlock1 + add r1, r0, #2 + mov ip, r1 + ldr r7, ._44 + 4 @ gUnknown_Debug_083C4F08 + ldr r1, ._44 + 8 @ 0xfffffd94 + add r6, r0, r1 + add r5, r0, #0 + add r5, r5, #0xe +._42: + lsl r1, r4, #0x1 + mov r0, ip + add r3, r1, r0 + add r0, r1, r7 + ldrh r2, [r0] + strh r2, [r3] + add r0, r1, r5 + strh r2, [r0] + add r1, r6, r1 + strh r2, [r1] + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x2 + bls ._42 @cond_branch + b ._46 +._45: + .align 2, 0 +._44: + .word gSaveBlock1+0x2d94 + .word gUnknown_Debug_083C4F08 + .word 0xfffffd94 +._41: + cmp r1, #0x7 + bne ._46 @cond_branch + mov r4, #0x0 +._47: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + bl sub_80EB890 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x20 + bls ._47 @cond_branch +._46: + bl CloseMenu + mov r0, #0x1 +._38: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + + thumb_func_end debug_sub_8090984 + + thumb_func_start TayaDebugMenu_OldMan +TayaDebugMenu_OldMan: + push {lr} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xa + mov r3, #0x11 + bl Menu_DrawStdWindowFrame + ldr r3, ._48 @ gUnknown_Debug_083C4F54 + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x8 + bl Menu_PrintItems + bl GetCurrentMauvilleOldMan + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x9 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x8 + bl InitMenu + ldr r1, ._48 + 4 @ gMenuCallback + ldr r0, ._48 + 8 @ debug_sub_8090984 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._49: + .align 2, 0 +._48: + .word gUnknown_Debug_083C4F54 + .word gMenuCallback + .word debug_sub_8090984+1 + + thumb_func_end TayaDebugMenu_OldMan + + thumb_func_start TayaDebugMenu_LanettesPC +TayaDebugMenu_LanettesPC: + push {lr} + bl Menu_EraseScreen + bl ShowPokemonStorageSystem + mov r0, #0x1 + pop {r1} + bx r1 + + thumb_func_end TayaDebugMenu_LanettesPC + + thumb_func_start TayaDebugMenu_TownFlags +TayaDebugMenu_TownFlags: + push {lr} + ldr r0, ._50 @ 0x80f + bl FlagSet + mov r0, #0x81 + lsl r0, r0, #0x4 + bl FlagSet + ldr r0, ._50 + 4 @ 0x811 + bl FlagSet + ldr r0, ._50 + 8 @ 0x812 + bl FlagSet + ldr r0, ._50 + 12 @ 0x813 + bl FlagSet + ldr r0, ._50 + 16 @ 0x814 + bl FlagSet + ldr r0, ._50 + 20 @ 0x815 + bl FlagSet + ldr r0, ._50 + 24 @ 0x816 + bl FlagSet + ldr r0, ._50 + 28 @ 0x817 + bl FlagSet + ldr r0, ._50 + 32 @ 0x818 + bl FlagSet + ldr r0, ._50 + 36 @ 0x819 + bl FlagSet + ldr r0, ._50 + 40 @ 0x81a + bl FlagSet + ldr r0, ._50 + 44 @ 0x81b + bl FlagSet + ldr r0, ._50 + 48 @ 0x81c + bl FlagSet + ldr r0, ._50 + 52 @ 0x81d + bl FlagSet + ldr r0, ._50 + 56 @ 0x81e + bl FlagSet + ldr r0, ._50 + 60 @ 0x848 + bl FlagSet + ldr r0, ._50 + 64 @ 0x849 + bl FlagSet + ldr r0, ._50 + 68 @ 0x84a + bl FlagSet + ldr r0, ._50 + 72 @ 0x854 + bl FlagSet + ldr r0, ._50 + 76 @ 0x855 + bl FlagSet + ldr r0, ._50 + 80 @ 0x856 + bl FlagSet + ldr r0, ._50 + 84 @ 0x857 + bl FlagSet + ldr r0, ._50 + 88 @ 0x858 + bl FlagSet + ldr r0, ._50 + 92 @ 0x859 + bl FlagSet + ldr r0, ._50 + 96 @ 0x85a + bl FlagSet + ldr r0, ._50 + 100 @ 0x85b + bl FlagSet + ldr r0, ._50 + 104 @ 0x85c + bl FlagSet + ldr r0, ._50 + 108 @ 0x83c + bl FlagSet + ldr r0, ._50 + 112 @ 0x83d + bl FlagSet + ldr r0, ._50 + 116 @ 0x83e + bl FlagSet + ldr r0, ._50 + 120 @ 0x83f + bl FlagSet + mov r0, #0x84 + lsl r0, r0, #0x4 + bl FlagSet + ldr r0, ._50 + 124 @ 0x841 + bl FlagSet + ldr r0, ._50 + 128 @ 0x842 + bl FlagSet + ldr r0, ._50 + 132 @ 0x843 + bl FlagSet + ldr r0, ._50 + 136 @ 0x844 + bl FlagSet + ldr r0, ._50 + 140 @ 0x845 + bl FlagSet + ldr r0, ._50 + 144 @ 0x846 + bl FlagSet + ldr r0, ._50 + 148 @ 0x847 + bl FlagSet + ldr r0, ._50 + 152 @ 0x83b + bl FlagSet + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._51: + .align 2, 0 +._50: + .word 0x80f + .word 0x811 + .word 0x812 + .word 0x813 + .word 0x814 + .word 0x815 + .word 0x816 + .word 0x817 + .word 0x818 + .word 0x819 + .word 0x81a + .word 0x81b + .word 0x81c + .word 0x81d + .word 0x81e + .word 0x848 + .word 0x849 + .word 0x84a + .word 0x854 + .word 0x855 + .word 0x856 + .word 0x857 + .word 0x858 + .word 0x859 + .word 0x85a + .word 0x85b + .word 0x85c + .word 0x83c + .word 0x83d + .word 0x83e + .word 0x83f + .word 0x841 + .word 0x842 + .word 0x843 + .word 0x844 + .word 0x845 + .word 0x846 + .word 0x847 + .word 0x83b + + thumb_func_end TayaDebugMenu_TownFlags + + thumb_func_start TayaDebugMenu_AwardARibbon +TayaDebugMenu_AwardARibbon: + push {lr} + mov r0, #0x1 + neg r0, r0 + mov r1, #0x10 + mov r2, #0x0 + bl BlendPalettes + ldr r0, ._52 @ debug_sub_80915BC + bl SetMainCallback2 + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._53: + .align 2, 0 +._52: + .word debug_sub_80915BC+1 + + thumb_func_end TayaDebugMenu_AwardARibbon + + thumb_func_start debug_sub_8090C44 +debug_sub_8090C44: + push {r4, r5, lr} + ldr r4, ._54 @ gSharedMem + sub r5, r4, #1 + ldrh r1, [r5, #0x8] + add r0, r4, #0 + mov r2, #0x2 + mov r3, #0x5 + bl ConvertIntToDecimalStringN + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0x0 + mov r2, #0x5 + bl StringFill + ldrb r0, [r5] + add r0, r0, r4 + mov r1, #0x79 + strb r1, [r0] + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x3 + bl Menu_PrintText + pop {r4, r5} + pop {r0} + bx r0 +._55: + .align 2, 0 +._54: + .word gSharedMem+1 + + thumb_func_end debug_sub_8090C44 + + thumb_func_start debug_sub_8090C88 +debug_sub_8090C88: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffffc + mov r0, #0x1 + mov r8, r0 + ldr r2, ._59 @ gMain + ldrh r1, [r2, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + add r3, r2, #0 + cmp r0, #0 + beq ._57 @cond_branch + ldr r1, ._59 + 4 @ gSharedMem + ldrb r0, [r1] + cmp r0, #0 + beq ._57 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + b ._62 +._60: + .align 2, 0 +._59: + .word gMain + .word gSharedMem +._67: + add r0, r0, #0x1 + strb r0, [r1] + b ._62 +._77: + strh r1, [r7, #0x8] + b ._62 +._79: + ldr r0, ._64 @ gSharedMem + ldrh r0, [r0, #0x8] + bl SetLotteryNumber16_Unused +._78: + bl CloseMenu + mov r0, #0x1 + b ._63 +._65: + .align 2, 0 +._64: + .word gSharedMem +._57: + ldrh r1, [r3, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._66 @cond_branch + ldr r1, ._81 @ gSharedMem + ldrb r0, [r1] + cmp r0, #0x3 + bls ._67 @cond_branch +._66: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._68 @cond_branch + ldr r0, ._81 @ gSharedMem + ldrh r1, [r0, #0x8] + str r1, [r0, #0xc] + ldr r1, ._81 + 4 @ 0x2710 + strh r1, [r0, #0x10] + mov r4, #0x0 + ldrb r1, [r0] + add r7, r0, #0 + cmp r4, r1 + bcs ._69 @cond_branch + add r5, r7, #0 + add r6, r1, #0 +._70: + ldrh r0, [r5, #0x10] + mov r1, #0xa + str r3, [sp] + bl __udivsi3 + strh r0, [r5, #0x10] + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r3, [sp] + cmp r4, r6 + bcc ._70 @cond_branch +._69: + ldrh r1, [r7, #0x10] + ldr r0, [r7, #0xc] + add r0, r0, r1 + str r0, [r7, #0xc] + ldr r1, ._81 + 8 @ 0xffff + cmp r0, r1 + ble ._71 @cond_branch + str r1, [r7, #0xc] +._71: + ldrh r0, [r7, #0x8] + ldr r1, [r7, #0xc] + cmp r0, r1 + bne ._77 @cond_branch +._68: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._73 @cond_branch + ldr r0, ._81 @ gSharedMem + ldrh r1, [r0, #0x8] + str r1, [r0, #0xc] + ldr r1, ._81 + 4 @ 0x2710 + strh r1, [r0, #0x10] + mov r4, #0x0 + ldrb r1, [r0] + add r7, r0, #0 + cmp r4, r1 + bcs ._74 @cond_branch + add r5, r7, #0 + add r6, r1, #0 +._75: + ldrh r0, [r5, #0x10] + mov r1, #0xa + str r3, [sp] + bl __udivsi3 + strh r0, [r5, #0x10] + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r3, [sp] + cmp r4, r6 + bcc ._75 @cond_branch +._74: + add r2, r7, #0 + ldrh r1, [r2, #0x10] + ldr r0, [r2, #0xc] + sub r0, r0, r1 + str r0, [r2, #0xc] + cmp r0, #0 + bge ._76 @cond_branch + mov r0, #0x0 + str r0, [r2, #0xc] +._76: + ldrh r0, [r2, #0x8] + ldr r1, [r2, #0xc] + cmp r0, r1 + bne ._77 @cond_branch +._73: + ldrh r2, [r3, #0x2e] + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + bne ._78 @cond_branch + mov r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + bne ._79 @cond_branch + mov r0, #0x0 + mov r8, r0 +._62: + mov r0, r8 + cmp r0, #0 + beq ._80 @cond_branch + bl debug_sub_8090C44 +._80: + mov r0, #0x0 +._63: + add sp, sp, #0x4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._82: + .align 2, 0 +._81: + .word gSharedMem + .word 0x2710 + .word 0xffff + + thumb_func_end debug_sub_8090C88 + + thumb_func_start TayaDebugMenu_PKMNLottery +TayaDebugMenu_PKMNLottery: + push {lr} + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x6 + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + bl RetrieveLotteryNumber + ldr r2, ._83 @ gSharedMem + ldr r0, ._83 + 4 @ gSpecialVar_Result + ldrh r0, [r0] + mov r1, #0x0 + strh r0, [r2, #0x8] + strb r1, [r2] + bl debug_sub_8090C44 + ldr r1, ._83 + 8 @ gMenuCallback + ldr r0, ._83 + 12 @ debug_sub_8090C88 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._84: + .align 2, 0 +._83: + .word gSharedMem + .word gSpecialVar_Result + .word gMenuCallback + .word debug_sub_8090C88+1 + + thumb_func_end TayaDebugMenu_PKMNLottery + + thumb_func_start TayaDebugMenu_Trainer +TayaDebugMenu_Trainer: + push {r4, r5, lr} + mov r4, #0x0 + ldr r5, ._86 @ gTrainerEyeTrainers +._85: + lsl r0, r4, #0x4 + add r0, r0, r5 + ldrh r0, [r0] + bl SetTrainerFlag + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x37 + bls ._85 @cond_branch + ldr r0, ._86 + 4 @ 0x109 + bl SetTrainerFlag + mov r0, #0x85 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 8 @ 0x10b + bl SetTrainerFlag + mov r0, #0x86 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 12 @ 0x10d + bl SetTrainerFlag + mov r0, #0x87 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 16 @ 0x10f + bl SetTrainerFlag + mov r0, #0x88 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 20 @ 0x105 + bl SetTrainerFlag + mov r0, #0x83 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 24 @ 0x107 + bl SetTrainerFlag + mov r0, #0x84 + lsl r0, r0, #0x1 + bl SetTrainerFlag + ldr r0, ._86 + 28 @ 0x14f + bl SetTrainerFlag + bl CloseMenu + mov r0, #0x1 + pop {r4, r5} + pop {r1} + bx r1 +._87: + .align 2, 0 +._86: + .word gTrainerEyeTrainers + .word 0x109 + .word 0x10b + .word 0x10d + .word 0x10f + .word 0x105 + .word 0x107 + .word 0x14f + + thumb_func_end TayaDebugMenu_Trainer + + thumb_func_start TayaDebugMenu_PokenavD +TayaDebugMenu_PokenavD: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xffffffe4 + bl Menu_DisplayDialogueFrame + mov r0, #0x0 + mov sl, r0 + mov r6, #0x1 + mov r7, #0xff + mov r1, #0x3 + mov r9, r1 +._93: + ldr r4, ._94 @ gSharedMem + add r0, r4, #0 + ldr r1, ._94 + 4 @ gUnknown_Debug_083C4F94 + bl StringCopy + mov r5, sl + add r5, r5, #0x1 + add r1, r5, r4 + mov r0, #0xff + strb r0, [r1] + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0xf + bl Menu_PrintText + mov r0, #0x0 + mov r8, r0 + str r5, [sp, #0x14] + mov r1, sl + lsl r1, r1, #0x2 + str r1, [sp, #0x18] +._91: + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r0, r0, #0x1 + str r0, [sp, #0x10] + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x64 + bl __umodsi3 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + bl Random + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xc1 + lsl r1, r1, #0x1 + bl __umodsi3 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0xfb + bls ._89 @cond_branch + add r0, r3, #0 + add r0, r0, #0x19 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + ldr r0, ._94 + 8 @ 0x19b + cmp r3, r0 + bls ._89 @cond_branch + mov r3, #0x1 +._89: + ldr r0, [sp, #0x18] + add r0, r0, sl + lsl r4, r0, #0x4 + sub r4, r4, r0 + lsl r4, r4, #0x5 + mov r1, r8 + lsl r0, r1, #0x2 + add r0, r0, r8 + lsl r0, r0, #0x4 + ldr r1, ._94 + 12 @ gPokemonStorage + add r0, r0, r1 + add r4, r4, r0 + lsl r2, r5, #0x18 + lsr r2, r2, #0x18 + mov r0, #0x0 + str r0, [sp] + str r0, [sp, #0x4] + str r6, [sp, #0x8] + ldr r0, [sp, #0x10] + str r0, [sp, #0xc] + add r0, r4, #0 + add r1, r3, #0 + mov r3, #0x20 + bl CreateBoxMon + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x16 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x17 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x18 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x21 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x2f + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r7, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x30 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x32 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x33 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x34 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x36 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + mov r1, r9 + and r1, r1, r0 + add r1, r1, #0x1 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x35 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x43 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x44 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x45 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x46 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x47 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x48 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x49 + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4a + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4b + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4c + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4d + add r2, sp, #0x10 + bl SetBoxMonData + bl Random + add r1, r6, #0 + and r1, r1, r0 + str r1, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x4e + add r2, sp, #0x10 + bl SetBoxMonData + mov r0, r8 + add r0, r0, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r8, r0 + cmp r0, #0x1d + bhi ._90 @cond_branch + b ._91 +._90: + ldr r1, [sp, #0x14] + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + mov sl, r0 + cmp r0, #0xd + bhi ._92 @cond_branch + b ._93 +._92: + bl TayaDebugMenu_TownFlags + bl TayaDebugMenu_Trainer + bl CloseMenu + mov r0, #0x1 + add sp, sp, #0x1c + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._95: + .align 2, 0 +._94: + .word gSharedMem + .word gUnknown_Debug_083C4F94 + .word 0x19b + .word gPokemonStorage+0x4 + + thumb_func_end TayaDebugMenu_PokenavD + + thumb_func_start TayaDebugMenu_8091190 +TayaDebugMenu_8091190: + push {r4, r5, lr} + add sp, sp, #0xfffffff8 + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r3, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r3, r0 + beq ._96 @cond_branch + add r0, r0, #0x1 + cmp r3, r0 + beq ._97 @cond_branch + ldr r2, ._99 @ gMenuCallback + ldr r1, ._99 + 4 @ gUnknown_Debug_83C5068 + ldr r0, ._99 + 8 @ unk_2030224 + ldrb r0, [r0] + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, [r0] + lsl r0, r3, #0x3 + add r0, r0, r1 + ldr r0, [r0, #0x4] + str r0, [r2] +._106: + mov r0, #0x0 + b ._98 +._100: + .align 2, 0 +._99: + .word gMenuCallback + .word gUnknown_Debug_83C5068 + .word unk_2030224 +._96: + ldr r3, ._107 @ unk_2030224 + ldrb r4, [r3] + ldr r2, ._107 + 4 @ gMain + ldrh r1, [r2, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + add r5, r3, #0 + cmp r0, #0 + beq ._102 @cond_branch + sub r0, r4, #1 + strb r0, [r5] + lsl r0, r0, #0x18 + cmp r0, #0 + bge ._102 @cond_branch + mov r0, #0x1 + strb r0, [r5] +._102: + ldrh r1, [r2, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._104 @cond_branch + ldrb r0, [r5] + add r0, r0, #0x1 + strb r0, [r5] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bls ._104 @cond_branch + mov r0, #0x0 + strb r0, [r5] +._104: + lsl r0, r4, #0x18 + asr r0, r0, #0x18 + mov r1, #0x0 + ldrsb r1, [r5, r1] + cmp r0, r1 + beq ._106 @cond_branch + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r4, ._107 + 8 @ gUnknown_Debug_83C5068 + mov r0, #0x0 + ldrsb r0, [r5, r0] + lsl r0, r0, #0x3 + add r0, r0, r4 + ldrb r2, [r0, #0x4] + ldr r3, [r0] + mov r0, #0x1 + mov r1, #0x1 + bl Menu_PrintItems + mov r0, #0x0 + ldrsb r0, [r5, r0] + lsl r0, r0, #0x3 + add r0, r0, r4 + ldrb r3, [r0, #0x4] + mov r0, #0x0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + bl InitMenu + b ._106 +._108: + .align 2, 0 +._107: + .word unk_2030224 + .word gMain + .word gUnknown_Debug_83C5068 +._97: + bl CloseMenu + mov r0, #0x1 +._98: + add sp, sp, #0x8 + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end TayaDebugMenu_8091190 + + thumb_func_start InitTayaDebugWindow +InitTayaDebugWindow: + push {lr} + add sp, sp, #0xfffffff8 + ldr r1, ._109 @ unk_2030224 + mov r0, #0x0 + strb r0, [r1] + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xb + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._109 + 4 @ gUnknown_Debug_83C5068 + ldr r3, [r0] + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._109 + 8 @ gMenuCallback + ldr r0, ._109 + 12 @ TayaDebugMenu_8091190 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._110: + .align 2, 0 +._109: + .word unk_2030224 + .word gUnknown_Debug_83C5068 + .word gMenuCallback + .word TayaDebugMenu_8091190+1 + + thumb_func_end InitTayaDebugWindow + + thumb_func_start debug_sub_80912D8 +debug_sub_80912D8: + push {lr} + ldr r0, ._113 @ gPaletteFade + ldrb r1, [r0, #0x7] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._111 @cond_branch + mov r0, #0x0 + b ._112 +._114: + .align 2, 0 +._113: + .word gPaletteFade +._111: + ldr r0, ._115 @ debug_sub_8110F28 + bl SetMainCallback2 + mov r0, #0x1 +._112: + pop {r1} + bx r1 +._116: + .align 2, 0 +._115: + .word debug_sub_8110F28+1 + + thumb_func_end debug_sub_80912D8 + + thumb_func_start debug_sub_8091300 +debug_sub_8091300: + push {lr} + mov r0, #0x1 + mov r1, #0x0 + bl FadeScreen + ldr r1, ._117 @ gMenuCallback + ldr r0, ._117 + 4 @ debug_sub_80912D8 + str r0, [r1] + mov r0, #0x0 + pop {r1} + bx r1 +._118: + .align 2, 0 +._117: + .word gMenuCallback + .word debug_sub_80912D8+1 + + thumb_func_end debug_sub_8091300 + + thumb_func_start debug_sub_8091320 +debug_sub_8091320: + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + + thumb_func_end debug_sub_8091320 + + thumb_func_start debug_sub_8091334 +debug_sub_8091334: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + bl AnimateSprites + bl BuildOamBuffer + ldr r3, ._123 @ gSharedMem + add r0, r3, #0 + add r0, r0, #0x52 + ldrb r4, [r0] + cmp r4, #0 + beq ._119 @cond_branch + cmp r4, #0x1 + bne ._120 @cond_branch + b ._121 +._120: + b ._162 +._124: + .align 2, 0 +._123: + .word gSharedMem +._119: + add r5, r3, #0 + add r5, r5, #0x55 + strb r4, [r5] + ldr r2, ._131 @ gMain + ldrh r1, [r2, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + mov r9, r2 + cmp r0, #0 + beq ._126 @cond_branch + add r1, r3, #0 + add r1, r1, #0x54 + ldrb r0, [r1] + cmp r0, #0 + beq ._126 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + mov r0, #0x1 + strb r0, [r5] +._126: + mov r0, r9 + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + ldr r5, ._131 + 4 @ gSharedMem + cmp r0, #0 + beq ._133 @cond_branch + add r0, r5, #0 + add r0, r0, #0x53 + ldrb r0, [r0] + cmp r0, #0x2 + beq ._128 @cond_branch + add r1, r5, #0 + add r1, r1, #0x54 + ldrb r0, [r1] + cmp r0, #0x4 + bhi ._133 @cond_branch + b ._130 +._132: + .align 2, 0 +._131: + .word gMain + .word gSharedMem +._128: + add r1, r5, #0 + add r1, r1, #0x54 + ldrb r0, [r1] + cmp r0, #0x3 + bhi ._133 @cond_branch +._130: + add r0, r0, #0x1 + strb r0, [r1] + add r1, r1, #0x1 + mov r0, #0x1 + strb r0, [r1] +._133: + mov r2, r9 + ldrh r1, [r2, #0x2e] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._135 @cond_branch + add r1, r5, #0 + add r1, r1, #0x53 + ldrb r0, [r1] + cmp r0, #0 + beq ._135 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1 + strb r0, [r1] +._135: + mov r3, r9 + ldrh r1, [r3, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._140 @cond_branch + add r0, r5, #0 + add r0, r0, #0x54 + ldrb r0, [r0] + cmp r0, #0x5 + beq ._137 @cond_branch + add r1, r5, #0 + add r1, r1, #0x53 + ldrb r0, [r1] + cmp r0, #0x1 + bhi ._140 @cond_branch + b ._139 +._137: + add r1, r5, #0 + add r1, r1, #0x53 + ldrb r0, [r1] + cmp r0, #0 + bne ._140 @cond_branch +._139: + add r0, r0, #0x1 + strb r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1 + strb r0, [r1] +._140: + add r0, r5, #0 + add r0, r0, #0x55 + ldrb r0, [r0] + cmp r0, #0 + bne ._141 @cond_branch + mov r0, r9 + ldrh r2, [r0, #0x2e] + mov r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + beq ._142 @cond_branch + ldr r2, ._145 @ gUnknown_Debug_083C50EC + add r3, r5, #0 + add r3, r3, #0x53 + add r0, r5, #0 + add r0, r0, #0x54 + ldrb r1, [r0] + lsl r0, r1, #0x1 + add r0, r0, r1 + ldrb r3, [r3] + add r0, r0, r3 + lsl r0, r0, #0x3 + add r0, r0, r2 + ldrh r0, [r0, #0x4] + sub r0, r0, #0x32 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #0x4 + bhi ._143 @cond_branch + add r1, r5, #0 + add r1, r1, #0x56 + mov r0, #0x4 + b ._144 +._146: + .align 2, 0 +._145: + .word gUnknown_Debug_083C50EC +._143: + add r1, r5, #0 + add r1, r1, #0x56 + mov r0, #0x1 +._144: + strb r0, [r1] + add r1, r5, #0 + add r1, r1, #0x52 + mov r0, #0x1 + strb r0, [r1] + b ._162 +._142: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + bne ._148 @cond_branch + b ._162 +._148: + mov r0, #0x1 + neg r0, r0 + mov r1, #0x10 + mov r2, #0x0 + bl BlendPalettes + ldr r0, ._151 @ sub_80546F0 + bl SetMainCallback2 + b ._162 +._152: + .align 2, 0 +._151: + .word sub_80546F0+1 +._121: + add r5, r3, #0 + add r5, r5, #0x55 + mov r0, #0x0 + strb r0, [r5] + ldr r2, ._159 @ gMain + ldrh r1, [r2, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + mov r9, r2 + cmp r0, #0 + beq ._154 @cond_branch + add r2, r3, #0 + add r2, r2, #0x53 + add r0, r3, #0 + add r0, r0, #0x54 + ldrb r1, [r0] + lsl r0, r1, #0x1 + add r0, r0, r1 + ldrb r2, [r2] + add r0, r0, r2 + add r2, r0, r3 + add r0, r3, #0 + add r0, r0, #0x56 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bcs ._154 @cond_branch + add r0, r1, #1 + strb r0, [r2] + strb r4, [r5] +._154: + mov r2, r9 + ldrh r1, [r2, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + ldr r5, ._159 + 4 @ gSharedMem + cmp r0, #0 + beq ._156 @cond_branch + add r2, r5, #0 + add r2, r2, #0x53 + add r0, r5, #0 + add r0, r0, #0x54 + ldrb r1, [r0] + lsl r0, r1, #0x1 + add r0, r0, r1 + ldrb r2, [r2] + add r0, r0, r2 + add r1, r0, r5 + ldrb r0, [r1] + cmp r0, #0 + beq ._156 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + add r1, r5, #0 + add r1, r1, #0x55 + mov r0, #0x1 + strb r0, [r1] +._156: + add r6, r5, #0 + add r0, r6, #0 + add r0, r0, #0x55 + ldrb r7, [r0] + cmp r7, #0 + beq ._157 @cond_branch +._141: + bl debug_sub_80916AC + b ._162 +._160: + .align 2, 0 +._159: + .word gMain + .word gSharedMem +._157: + mov r3, r9 + ldrh r1, [r3, #0x2e] + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._161 @cond_branch + ldr r0, ._164 @ gPlayerParty + ldr r1, ._164 + 4 @ gUnknown_Debug_083C50EC + mov ip, r1 + mov r2, #0x53 + add r2, r2, r6 + mov r8, r2 + add r4, r6, #0 + add r4, r4, #0x54 + ldrb r2, [r4] + lsl r1, r2, #0x1 + add r1, r1, r2 + mov r3, r8 + ldrb r3, [r3] + add r1, r1, r3 + lsl r1, r1, #0x3 + add r1, r1, ip + ldrh r1, [r1, #0x4] + bl GetMonData + ldrb r2, [r4] + lsl r1, r2, #0x1 + add r1, r1, r2 + mov r2, r8 + ldrb r2, [r2] + add r1, r1, r2 + add r1, r1, r6 + strb r0, [r1] + bl debug_sub_80916AC + add r0, r6, #0 + add r0, r0, #0x52 + strb r7, [r0] +._161: + mov r3, r9 + ldrh r1, [r3, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._162 @cond_branch + ldr r2, ._164 + 4 @ gUnknown_Debug_083C50EC + add r0, r6, #0 + add r0, r0, #0x53 + ldrb r4, [r0] + add r0, r0, #0x1 + ldrb r1, [r0] + lsl r0, r1, #0x1 + add r3, r0, r1 + add r0, r3, r4 + lsl r0, r0, #0x3 + add r1, r0, r2 + ldrh r0, [r1, #0x4] + cmp r0, #0 + beq ._163 @cond_branch + ldr r0, ._164 @ gPlayerParty + ldrh r1, [r1, #0x4] + add r2, r4, r6 + add r2, r3, r2 + bl SetMonData +._163: + add r0, r5, #0 + add r0, r0, #0x52 + strb r7, [r0] +._162: + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._165: + .align 2, 0 +._164: + .word gPlayerParty + .word gUnknown_Debug_083C50EC + + thumb_func_end debug_sub_8091334 + + thumb_func_start debug_sub_80915BC +debug_sub_80915BC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + ldr r0, ._168 @ 0x4000010 + mov r1, #0x0 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + mov r1, #0x0 + ldr r0, ._168 + 4 @ gUnknown_Debug_083C50EC + mov r8, r0 + ldr r7, ._168 + 8 @ gSharedMem +._171: + mov r4, #0x0 + lsl r0, r1, #0x1 + add r6, r1, #1 + add r5, r0, r1 +._170: + add r0, r5, r4 + lsl r0, r0, #0x3 + add r0, r0, r8 + ldrh r1, [r0, #0x4] + cmp r1, #0 + beq ._166 @cond_branch + ldr r0, ._168 + 12 @ gPlayerParty + bl GetMonData + add r1, r4, r5 + add r1, r1, r7 + strb r0, [r1] + b ._167 +._169: + .align 2, 0 +._168: + .word 0x4000010 + .word gUnknown_Debug_083C50EC + .word gSharedMem + .word gPlayerParty +._166: + add r0, r4, r5 + add r0, r0, r7 + strb r1, [r0] +._167: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x2 + bls ._170 @cond_branch + lsl r0, r6, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x5 + bls ._171 @cond_branch + ldr r4, ._172 @ gWindowTemplate_81E7224 + add r0, r4, #0 + bl Text_LoadWindowTemplate + add r0, r4, #0 + bl InitMenuWindow + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x3 + bl Menu_DrawStdWindowFrame + ldr r0, ._172 + 4 @ gUnknown_Debug_083C517C + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0x4 + mov r2, #0x1d + mov r3, #0x11 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0x12 + mov r2, #0x1d + mov r3, #0x15 + bl Menu_DrawStdWindowFrame + mov r1, #0x80 + lsl r1, r1, #0x13 + mov r2, #0x8a + lsl r2, r2, #0x5 + add r0, r2, #0 + strh r0, [r1] + ldr r2, ._172 + 8 @ gSharedMem + add r0, r2, #0 + add r0, r0, #0x53 + mov r1, #0x0 + strb r1, [r0] + add r0, r0, #0x1 + strb r1, [r0] + sub r0, r0, #0x2 + strb r1, [r0] + bl debug_sub_80916AC + ldr r0, ._172 + 12 @ debug_sub_8091320 + bl SetVBlankCallback + ldr r0, ._172 + 16 @ debug_sub_8091334 + bl SetMainCallback2 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._173: + .align 2, 0 +._172: + .word gWindowTemplate_81E7224 + .word gUnknown_Debug_083C517C + .word gSharedMem + .word debug_sub_8091320+1 + .word debug_sub_8091334+1 + + thumb_func_end debug_sub_80915BC + + thumb_func_start debug_sub_80916AC +debug_sub_80916AC: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xfffffffc + mov r6, #0x0 + ldr r0, ._177 @ gSharedMem + mov sl, r0 + mov r1, #0x0 + mov r8, r1 +._182: + ldr r2, ._177 + 4 @ gSharedMem + mov r5, #0x0 + lsl r0, r6, #0x1 + mov r9, r0 + add r1, r6, #1 + str r1, [sp] +._181: + mov r0, sl + add r0, r0, #0x53 + ldrb r0, [r0] + cmp r0, r5 + bne ._175 @cond_branch + ldr r1, ._177 + 8 @ gSharedMem + ldrb r0, [r1] + cmp r0, r6 + bne ._175 @cond_branch + mov r0, #0xef + b ._176 +._178: + .align 2, 0 +._177: + .word gSharedMem + .word gSharedMem+0x12 + .word gSharedMem+0x54 +._175: + mov r0, r8 + strb r0, [r2] + add r2, r2, #0x1 +._176: + strb r0, [r2] + add r2, r2, #0x1 + mov r1, r9 + add r4, r1, r6 + add r0, r4, r5 + lsl r0, r0, #0x3 + ldr r1, ._183 @ gUnknown_Debug_083C50EC + add r0, r0, r1 + ldr r1, [r0] + add r0, r2, #0 + bl StringCopy + add r2, r0, #0 + mov r0, r8 + strb r0, [r2] + add r2, r2, #0x1 + ldr r7, ._183 + 4 @ gSharedMem + add r4, r5, r4 + add r4, r4, r7 + ldrb r1, [r4] + add r0, r2, #0 + mov r2, #0x0 + mov r3, #0x1 + bl ConvertIntToDecimalStringN + add r2, r0, #0 + mov r1, r8 + strb r1, [r2] + add r2, r2, #0x1 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x2 + bhi ._179 @cond_branch + cmp r6, #0x5 + bne ._181 @cond_branch + cmp r5, #0x2 + bne ._181 @cond_branch +._179: + sub r1, r2, #1 + mov r0, #0xff + strb r0, [r1] + mov r2, r9 + add r2, r2, #0x5 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + add r0, r7, #0 + add r0, r0, #0x12 + mov r1, #0x1 + bl Menu_PrintText + ldr r1, [sp] + lsl r0, r1, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x5 + bls ._182 @cond_branch + add sp, sp, #0x4 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._184: + .align 2, 0 +._183: + .word gUnknown_Debug_083C50EC + .word gSharedMem + + thumb_func_end debug_sub_80916AC + + .align 2, 0 + +.endif diff --git a/asm/tomomichi_debug_menu.s b/asm/tomomichi_debug_menu.s new file mode 100644 index 000000000..c0dfe38e0 --- /dev/null +++ b/asm/tomomichi_debug_menu.s @@ -0,0 +1,8100 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + thumb_func_start InitTomomichiDebugWindow +InitTomomichiDebugWindow: + push {lr} + bl debug_sub_808B874 + mov r0, #0x0 + pop {r1} + bx r1 + + thumb_func_end InitTomomichiDebugWindow + + thumb_func_start debug_sub_808B868 +debug_sub_808B868: + push {lr} + bl c2_exit_to_overworld_1_continue_scripts_restart_music + pop {r0} + bx r0 + + thumb_func_end debug_sub_808B868 + + thumb_func_start debug_sub_808B874 +debug_sub_808B874: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xd + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r3, ._1 @ gUnknown_Debug_083C0CBA + mov r0, #0x1 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintItems + ldr r0, ._1 + 4 @ gDebug_0300071D + ldrb r0, [r0] + str r0, [sp] + mov r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x7 + bl InitMenu + ldr r1, ._1 + 8 @ gMenuCallback + ldr r0, ._1 + 12 @ debug_sub_808B8C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._2: + .align 2, 0 +._1: + .word gUnknown_Debug_083C0CBA + .word gDebug_0300071D + .word gMenuCallback + .word debug_sub_808B8C8+1 + + thumb_func_end debug_sub_808B874 + + thumb_func_start debug_sub_808B8C8 +debug_sub_808B8C8: + push {r4, lr} + ldr r4, ._7 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._3 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + bl Menu_MoveCursor + ldr r1, ._7 + 4 @ gDebug_0300071D + strb r0, [r1] +._3: + ldrh r1, [r4, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._4 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + bl Menu_MoveCursor + ldr r1, ._7 + 4 @ gDebug_0300071D + strb r0, [r1] +._4: + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._5 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r1, ._7 + 8 @ gUnknown_Debug_083C0CBA + ldr r0, ._7 + 4 @ gDebug_0300071D + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r1, r1, #0x4 + add r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._10 +._8: + .align 2, 0 +._7: + .word gMain + .word gDebug_0300071D + .word gUnknown_Debug_083C0CBA +._5: + mov r0, #0xa + and r0, r0, r1 + cmp r0, #0 + bne ._9 @cond_branch + mov r0, #0x0 + b ._10 +._9: + bl CloseMenu + mov r0, #0x1 +._10: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808B8C8 + + thumb_func_start TomomichiDebugMenu_ContestGraphics +TomomichiDebugMenu_ContestGraphics: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x14 + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r0, ._11 @ gUnknown_Debug_083C0CF4 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r3, ._11 + 4 @ gUnknown_Debug_083C0D2C + mov r0, #0x2 + mov r1, #0x3 + mov r2, #0x4 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x13 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x4 + bl InitMenu + ldr r1, ._11 + 8 @ gMenuCallback + ldr r0, ._11 + 12 @ debug_sub_808BC48 + str r0, [r1] + ldr r0, ._11 + 16 @ gDebug_03000700 + mov r2, #0x1 + strh r2, [r0] + ldr r1, ._11 + 20 @ gDebug_03000704 + ldr r0, ._11 + 24 @ 0x6f33 + str r0, [r1] + ldr r0, ._11 + 28 @ gDebug_03000708 + str r4, [r0] + ldr r0, ._11 + 32 @ gDebug_0300070C + strb r2, [r0] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._12: + .align 2, 0 +._11: + .word gUnknown_Debug_083C0CF4 + .word gUnknown_Debug_083C0D2C + .word gMenuCallback + .word debug_sub_808BC48+1 + .word gDebug_03000700 + .word gDebug_03000704 + .word 0x6f33 + .word gDebug_03000708 + .word gDebug_0300070C + + thumb_func_end TomomichiDebugMenu_ContestGraphics + + thumb_func_start TomomichiDebugMenu_ArtMusGraphics +TomomichiDebugMenu_ArtMusGraphics: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x14 + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r0, ._13 @ gUnknown_Debug_083C0D4C + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r3, ._13 + 4 @ gUnknown_Debug_083C0D83 + mov r0, #0x2 + mov r1, #0x3 + mov r2, #0x4 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x13 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x4 + bl InitMenu + ldr r1, ._13 + 8 @ gMenuCallback + ldr r0, ._13 + 12 @ debug_sub_808BCBC + str r0, [r1] + ldr r0, ._13 + 16 @ gDebug_03000700 + mov r2, #0x1 + strh r2, [r0] + ldr r1, ._13 + 20 @ gDebug_03000704 + ldr r0, ._13 + 24 @ 0x6f33 + str r0, [r1] + ldr r0, ._13 + 28 @ gDebug_03000708 + str r4, [r0] + ldr r0, ._13 + 32 @ gDebug_0300070D + strb r2, [r0] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._14: + .align 2, 0 +._13: + .word gUnknown_Debug_083C0D4C + .word gUnknown_Debug_083C0D83 + .word gMenuCallback + .word debug_sub_808BCBC+1 + .word gDebug_03000700 + .word gDebug_03000704 + .word 0x6f33 + .word gDebug_03000708 + .word gDebug_0300070D + + thumb_func_end TomomichiDebugMenu_ArtMusGraphics + + thumb_func_start TomomichiDebugMenu_PreviewData +TomomichiDebugMenu_PreviewData: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x14 + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r0, ._15 @ gUnknown_Debug_083C0DA4 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r3, ._15 + 4 @ gUnknown_Debug_083C0DD4 + mov r0, #0x2 + mov r1, #0x3 + mov r2, #0x4 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x13 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x4 + bl InitMenu + ldr r1, ._15 + 8 @ gMenuCallback + ldr r0, ._15 + 12 @ debug_sub_808BD30 + str r0, [r1] + ldr r0, ._15 + 16 @ gDebug_03000700 + mov r2, #0x1 + strh r2, [r0] + ldr r1, ._15 + 20 @ gDebug_03000704 + ldr r0, ._15 + 24 @ 0x6f33 + str r0, [r1] + ldr r0, ._15 + 28 @ gDebug_03000708 + str r4, [r0] + ldr r0, ._15 + 32 @ gDebug_0300070E + strb r2, [r0] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._16: + .align 2, 0 +._15: + .word gUnknown_Debug_083C0DA4 + .word gUnknown_Debug_083C0DD4 + .word gMenuCallback + .word debug_sub_808BD30+1 + .word gDebug_03000700 + .word gDebug_03000704 + .word 0x6f33 + .word gDebug_03000708 + .word gDebug_0300070E + + thumb_func_end TomomichiDebugMenu_PreviewData + + thumb_func_start TomomichiDebugMenu_TrickHouse +TomomichiDebugMenu_TrickHouse: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + ldr r0, ._17 @ gUnknown_Debug_083C0DF4 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r3, ._17 + 4 @ gUnknown_Debug_083C0E15 + mov r0, #0x2 + mov r1, #0x3 + mov r2, #0x2 + bl Menu_PrintItems + ldr r0, ._17 + 8 @ gDebug_0300071E + ldrb r0, [r0] + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x2 + bl InitMenu + ldr r1, ._17 + 12 @ gMenuCallback + ldr r0, ._17 + 16 @ debug_sub_808BDA4 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._18: + .align 2, 0 +._17: + .word gUnknown_Debug_083C0DF4 + .word gUnknown_Debug_083C0E15 + .word gDebug_0300071E + .word gMenuCallback + .word debug_sub_808BDA4+1 + + thumb_func_end TomomichiDebugMenu_TrickHouse + + thumb_func_start TomomichiDebugMenu_ControlEvents +TomomichiDebugMenu_ControlEvents: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + ldr r3, ._19 @ gUnknown_Debug_083C0E32 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x2 + bl Menu_PrintItems + ldr r0, ._19 + 4 @ gDebug_0300071F + ldrb r0, [r0] + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x2 + bl InitMenu + ldr r1, ._19 + 8 @ gMenuCallback + ldr r0, ._19 + 12 @ debug_sub_808BE2C + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._20: + .align 2, 0 +._19: + .word gUnknown_Debug_083C0E32 + .word gDebug_0300071F + .word gMenuCallback + .word debug_sub_808BE2C+1 + + thumb_func_end TomomichiDebugMenu_ControlEvents + + thumb_func_start TomomichiDebugMenu_ControlFlags +TomomichiDebugMenu_ControlFlags: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r3, ._21 @ gUnknown_Debug_083C0E7F + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintItems + ldr r0, ._21 + 4 @ gDebug_03000720 + ldrb r0, [r0] + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x7 + bl InitMenu + ldr r1, ._21 + 8 @ gMenuCallback + ldr r0, ._21 + 12 @ debug_sub_808BEB4 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._22: + .align 2, 0 +._21: + .word gUnknown_Debug_083C0E7F + .word gDebug_03000720 + .word gMenuCallback + .word debug_sub_808BEB4+1 + + thumb_func_end TomomichiDebugMenu_ControlFlags + + thumb_func_start TomomichiDebugMenu_ControlWorks +TomomichiDebugMenu_ControlWorks: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + mov r3, #0xd + bl Menu_DrawStdWindowFrame + ldr r3, ._23 @ gUnknown_Debug_083C0EF1 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x6 + bl Menu_PrintItems + ldr r0, ._23 + 4 @ gDebug_03000721 + ldrb r0, [r0] + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x6 + bl InitMenu + ldr r1, ._23 + 8 @ gMenuCallback + ldr r0, ._23 + 12 @ debug_sub_808BF3C + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._24: + .align 2, 0 +._23: + .word gUnknown_Debug_083C0EF1 + .word gDebug_03000721 + .word gMenuCallback + .word debug_sub_808BF3C+1 + + thumb_func_end TomomichiDebugMenu_ControlWorks + + thumb_func_start debug_sub_808BC48 +debug_sub_808BC48: + push {r4, lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, #0x1 + beq ._25 @cond_branch + cmp r0, #0x1 + bgt ._26 @cond_branch + cmp r0, #0 + beq ._27 @cond_branch + b ._32 +._26: + cmp r0, #0x2 + beq ._29 @cond_branch + b ._32 +._27: + bl debug_sub_808ED0C + b ._32 +._25: + bl debug_sub_808ED9C + b ._32 +._29: + bl debug_sub_808EE3C +._32: + mov r0, #0x0 + bl debug_sub_808EF8C + lsl r0, r4, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._36 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + bne ._34 @cond_branch + bl CloseMenu + mov r0, #0x1 + b ._35 +._34: + cmp r1, #0x3 + bne ._36 @cond_branch + ldr r0, ._37 @ gMenuCallback + ldr r1, ._37 + 4 @ gUnknown_Debug_083C0D2C + ldr r1, [r1, #0x1c] + str r1, [r0] +._36: + mov r0, #0x0 +._35: + pop {r4} + pop {r1} + bx r1 +._38: + .align 2, 0 +._37: + .word gMenuCallback + .word gUnknown_Debug_083C0D2C + + thumb_func_end debug_sub_808BC48 + + thumb_func_start debug_sub_808BCBC +debug_sub_808BCBC: + push {r4, lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, #0x1 + beq ._39 @cond_branch + cmp r0, #0x1 + bgt ._40 @cond_branch + cmp r0, #0 + beq ._41 @cond_branch + b ._46 +._40: + cmp r0, #0x2 + beq ._43 @cond_branch + b ._46 +._41: + bl debug_sub_808ED0C + b ._46 +._39: + bl debug_sub_808ED9C + b ._46 +._43: + bl debug_sub_808EE9C +._46: + mov r0, #0x1 + bl debug_sub_808EF8C + lsl r0, r4, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._50 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + bne ._48 @cond_branch + bl CloseMenu + mov r0, #0x1 + b ._49 +._48: + cmp r1, #0x3 + bne ._50 @cond_branch + ldr r0, ._51 @ gMenuCallback + ldr r1, ._51 + 4 @ gUnknown_Debug_083C0D83 + ldr r1, [r1, #0x1c] + str r1, [r0] +._50: + mov r0, #0x0 +._49: + pop {r4} + pop {r1} + bx r1 +._52: + .align 2, 0 +._51: + .word gMenuCallback + .word gUnknown_Debug_083C0D83 + + thumb_func_end debug_sub_808BCBC + + thumb_func_start debug_sub_808BD30 +debug_sub_808BD30: + push {r4, lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + asr r0, r0, #0x18 + cmp r0, #0x1 + beq ._53 @cond_branch + cmp r0, #0x1 + bgt ._54 @cond_branch + cmp r0, #0 + beq ._55 @cond_branch + b ._60 +._54: + cmp r0, #0x2 + beq ._57 @cond_branch + b ._60 +._55: + bl debug_sub_808ED0C + b ._60 +._53: + bl debug_sub_808ED9C + b ._60 +._57: + bl debug_sub_808EF14 +._60: + mov r0, #0x2 + bl debug_sub_808EF8C + lsl r0, r4, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + beq ._64 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + bne ._62 @cond_branch + bl CloseMenu + mov r0, #0x1 + b ._63 +._62: + cmp r1, #0x3 + bne ._64 @cond_branch + ldr r0, ._65 @ gMenuCallback + ldr r1, ._65 + 4 @ gUnknown_Debug_083C0DD4 + ldr r1, [r1, #0x1c] + str r1, [r0] +._64: + mov r0, #0x0 +._63: + pop {r4} + pop {r1} + bx r1 +._66: + .align 2, 0 +._65: + .word gMenuCallback + .word gUnknown_Debug_083C0DD4 + + thumb_func_end debug_sub_808BD30 + + thumb_func_start debug_sub_808BDA4 +debug_sub_808BDA4: + push {r4, lr} + ldr r4, ._71 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._67 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + bl Menu_MoveCursor + ldr r1, ._71 + 4 @ gDebug_0300071E + strb r0, [r1] +._67: + ldrh r1, [r4, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._68 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + bl Menu_MoveCursor + ldr r1, ._71 + 4 @ gDebug_0300071E + strb r0, [r1] +._68: + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._69 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r1, ._71 + 8 @ gUnknown_Debug_083C0E15 + ldr r0, ._71 + 4 @ gDebug_0300071E + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r1, r1, #0x4 + add r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._74 +._72: + .align 2, 0 +._71: + .word gMain + .word gDebug_0300071E + .word gUnknown_Debug_083C0E15 +._69: + mov r0, #0xa + and r0, r0, r1 + cmp r0, #0 + bne ._73 @cond_branch + mov r0, #0x0 + b ._74 +._73: + bl CloseMenu + mov r0, #0x1 +._74: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808BDA4 + + thumb_func_start debug_sub_808BE2C +debug_sub_808BE2C: + push {r4, lr} + ldr r4, ._79 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._75 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + bl Menu_MoveCursor + ldr r1, ._79 + 4 @ gDebug_0300071F + strb r0, [r1] +._75: + ldrh r1, [r4, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._76 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + bl Menu_MoveCursor + ldr r1, ._79 + 4 @ gDebug_0300071F + strb r0, [r1] +._76: + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._77 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r1, ._79 + 8 @ gUnknown_Debug_083C0E32 + ldr r0, ._79 + 4 @ gDebug_0300071F + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r1, r1, #0x4 + add r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._82 +._80: + .align 2, 0 +._79: + .word gMain + .word gDebug_0300071F + .word gUnknown_Debug_083C0E32 +._77: + mov r0, #0xa + and r0, r0, r1 + cmp r0, #0 + bne ._81 @cond_branch + mov r0, #0x0 + b ._82 +._81: + bl CloseMenu + mov r0, #0x1 +._82: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808BE2C + + thumb_func_start debug_sub_808BEB4 +debug_sub_808BEB4: + push {r4, lr} + ldr r4, ._87 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._83 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + bl Menu_MoveCursor + ldr r1, ._87 + 4 @ gDebug_03000720 + strb r0, [r1] +._83: + ldrh r1, [r4, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._84 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + bl Menu_MoveCursor + ldr r1, ._87 + 4 @ gDebug_03000720 + strb r0, [r1] +._84: + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._85 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r1, ._87 + 8 @ gUnknown_Debug_083C0E7F + ldr r0, ._87 + 4 @ gDebug_03000720 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r1, r1, #0x4 + add r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._90 +._88: + .align 2, 0 +._87: + .word gMain + .word gDebug_03000720 + .word gUnknown_Debug_083C0E7F +._85: + mov r0, #0xa + and r0, r0, r1 + cmp r0, #0 + bne ._89 @cond_branch + mov r0, #0x0 + b ._90 +._89: + bl CloseMenu + mov r0, #0x1 +._90: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808BEB4 + + thumb_func_start debug_sub_808BF3C +debug_sub_808BF3C: + push {r4, lr} + ldr r4, ._95 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._91 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + bl Menu_MoveCursor + ldr r1, ._95 + 4 @ gDebug_03000721 + strb r0, [r1] +._91: + ldrh r1, [r4, #0x2e] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._92 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + bl Menu_MoveCursor + ldr r1, ._95 + 4 @ gDebug_03000721 + strb r0, [r1] +._92: + ldrh r1, [r4, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._93 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r1, ._95 + 8 @ gUnknown_Debug_083C0EF1 + ldr r0, ._95 + 4 @ gDebug_03000721 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r1, r1, #0x4 + add r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + b ._98 +._96: + .align 2, 0 +._95: + .word gMain + .word gDebug_03000721 + .word gUnknown_Debug_083C0EF1 +._93: + mov r0, #0xa + and r0, r0, r1 + cmp r0, #0 + bne ._97 @cond_branch + mov r0, #0x0 + b ._98 +._97: + bl CloseMenu + mov r0, #0x1 +._98: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808BF3C + + thumb_func_start debug_sub_808BFC4 +debug_sub_808BFC4: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._99 @ gUnknown_Debug_083C0F79 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._99 + 4 @ gMenuCallback + ldr r0, ._99 + 8 @ debug_sub_808C064 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._100: + .align 2, 0 +._99: + .word gUnknown_Debug_083C0F79 + .word gMenuCallback + .word debug_sub_808C064+1 + + thumb_func_end debug_sub_808BFC4 + + thumb_func_start debug_sub_808C014 +debug_sub_808C014: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + mov r3, #0xd + bl Menu_DrawStdWindowFrame + ldr r3, ._101 @ gUnknown_Debug_083C0FFC + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x6 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x6 + bl InitMenu + ldr r1, ._101 + 4 @ gMenuCallback + ldr r0, ._101 + 8 @ debug_sub_808C0A8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._102: + .align 2, 0 +._101: + .word gUnknown_Debug_083C0FFC + .word gMenuCallback + .word debug_sub_808C0A8+1 + + thumb_func_end debug_sub_808C014 + + thumb_func_start debug_sub_808C064 +debug_sub_808C064: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._103 @cond_branch + mov r0, #0x0 + b ._106 +._103: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._105 @cond_branch + ldr r2, ._107 @ gMenuCallback + ldr r0, ._107 + 4 @ gUnknown_Debug_083C0F79 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._106 +._108: + .align 2, 0 +._107: + .word gMenuCallback + .word gUnknown_Debug_083C0F79 +._105: + bl CloseMenu + mov r0, #0x1 +._106: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808C064 + + thumb_func_start debug_sub_808C0A8 +debug_sub_808C0A8: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._109 @cond_branch + mov r0, #0x0 + b ._112 +._109: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._111 @cond_branch + ldr r2, ._113 @ gMenuCallback + ldr r0, ._113 + 4 @ gUnknown_Debug_083C0FFC + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._112 +._114: + .align 2, 0 +._113: + .word gMenuCallback + .word gUnknown_Debug_083C0FFC +._111: + bl CloseMenu + mov r0, #0x1 +._112: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808C0A8 + + thumb_func_start debug_sub_808C0EC +debug_sub_808C0EC: + push {lr} + ldr r0, ._115 @ DebugScript_081C1CFE + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._116: + .align 2, 0 +._115: + .word DebugScript_081C1CFE + + thumb_func_end debug_sub_808C0EC + + thumb_func_start debug_sub_808C104 +debug_sub_808C104: + push {lr} + ldr r0, ._117 @ DebugScript_081C1D07 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._118: + .align 2, 0 +._117: + .word DebugScript_081C1D07 + + thumb_func_end debug_sub_808C104 + + thumb_func_start debug_sub_808C11C +debug_sub_808C11C: + push {lr} + ldr r0, ._119 @ DebugScript_081C1D1E + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._120: + .align 2, 0 +._119: + .word DebugScript_081C1D1E + + thumb_func_end debug_sub_808C11C + + thumb_func_start debug_sub_808C134 +debug_sub_808C134: + push {lr} + ldr r0, ._121 @ DebugScript_081C1D24 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._122: + .align 2, 0 +._121: + .word DebugScript_081C1D24 + + thumb_func_end debug_sub_808C134 + + thumb_func_start debug_sub_808C14C +debug_sub_808C14C: + push {lr} + ldr r0, ._123 @ DebugScript_081C1D2A + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._124: + .align 2, 0 +._123: + .word DebugScript_081C1D2A + + thumb_func_end debug_sub_808C14C + + thumb_func_start debug_sub_808C164 +debug_sub_808C164: + push {lr} + ldr r0, ._125 @ DebugScript_081C1D35 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._126: + .align 2, 0 +._125: + .word DebugScript_081C1D35 + + thumb_func_end debug_sub_808C164 + + thumb_func_start debug_sub_808C17C +debug_sub_808C17C: + push {lr} + ldr r0, ._127 @ DebugScript_081C1D46 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._128: + .align 2, 0 +._127: + .word DebugScript_081C1D46 + + thumb_func_end debug_sub_808C17C + + thumb_func_start debug_sub_808C194 +debug_sub_808C194: + push {lr} + ldr r0, ._129 @ DebugScript_081C221F + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._130: + .align 2, 0 +._129: + .word DebugScript_081C221F + + thumb_func_end debug_sub_808C194 + + thumb_func_start debug_sub_808C1AC +debug_sub_808C1AC: + push {lr} + ldr r0, ._131 @ DebugScript_081C23E2 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._132: + .align 2, 0 +._131: + .word DebugScript_081C23E2 + + thumb_func_end debug_sub_808C1AC + + thumb_func_start debug_sub_808C1C4 +debug_sub_808C1C4: + push {lr} + ldr r0, ._133 @ DebugScript_081C23E6 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._134: + .align 2, 0 +._133: + .word DebugScript_081C23E6 + + thumb_func_end debug_sub_808C1C4 + + thumb_func_start debug_sub_808C1DC +debug_sub_808C1DC: + push {lr} + ldr r0, ._135 @ DebugScript_081C23F6 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._136: + .align 2, 0 +._135: + .word DebugScript_081C23F6 + + thumb_func_end debug_sub_808C1DC + + thumb_func_start debug_sub_808C1F4 +debug_sub_808C1F4: + push {lr} + ldr r0, ._137 @ DebugScript_081C2482 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._138: + .align 2, 0 +._137: + .word DebugScript_081C2482 + + thumb_func_end debug_sub_808C1F4 + + thumb_func_start debug_sub_808C20C +debug_sub_808C20C: + push {lr} + ldr r0, ._139 @ DebugScript_081C23FD + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._140: + .align 2, 0 +._139: + .word DebugScript_081C23FD + + thumb_func_end debug_sub_808C20C + + thumb_func_start debug_sub_808C224 +debug_sub_808C224: + push {lr} + ldr r0, ._141 @ DebugScript_081C2518 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._142: + .align 2, 0 +._141: + .word DebugScript_081C2518 + + thumb_func_end debug_sub_808C224 + + thumb_func_start debug_sub_808C23C +debug_sub_808C23C: + push {lr} + ldr r0, ._143 @ DebugScript_081C2507 + bl ScriptContext1_SetupScript + bl CloseMenu + mov r0, #0x1 + pop {r1} + bx r1 +._144: + .align 2, 0 +._143: + .word DebugScript_081C2507 + + thumb_func_end debug_sub_808C23C + + thumb_func_start TomomichiDebugMenu_ContestGraphics_Show +TomomichiDebugMenu_ContestGraphics_Show: + push {lr} + add sp, sp, #0xfffffffc + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, ._145 @ gMenuCallback + ldr r0, ._145 + 4 @ debug_sub_808C280 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x4 + pop {r1} + bx r1 +._146: + .align 2, 0 +._145: + .word gMenuCallback + .word debug_sub_808C280+1 + + thumb_func_end TomomichiDebugMenu_ContestGraphics_Show + + thumb_func_start debug_sub_808C280 +debug_sub_808C280: + push {lr} + bl UpdatePaletteFade + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._147 @cond_branch + mov r0, #0x0 + b ._148 +._147: + bl CloseMenu + mov r0, #0x0 + bl debug_sub_808F168 + ldr r0, ._149 @ CB2_ContestPainting + bl SetMainCallback2 + ldr r1, ._149 + 4 @ gMain + ldr r0, ._149 + 8 @ debug_sub_808B868 + str r0, [r1, #0x8] + mov r0, #0x1 +._148: + pop {r1} + bx r1 +._150: + .align 2, 0 +._149: + .word CB2_ContestPainting+1 + .word gMain + .word debug_sub_808B868+1 + + thumb_func_end debug_sub_808C280 + + thumb_func_start TomomichiDebugMenu_MuseumGraphics_Show +TomomichiDebugMenu_MuseumGraphics_Show: + push {lr} + add sp, sp, #0xfffffffc + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, ._151 @ gMenuCallback + ldr r0, ._151 + 4 @ debug_sub_808C2E4 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x4 + pop {r1} + bx r1 +._152: + .align 2, 0 +._151: + .word gMenuCallback + .word debug_sub_808C2E4+1 + + thumb_func_end TomomichiDebugMenu_MuseumGraphics_Show + + thumb_func_start debug_sub_808C2E4 +debug_sub_808C2E4: + push {lr} + bl UpdatePaletteFade + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._153 @cond_branch + mov r0, #0x0 + b ._154 +._153: + bl CloseMenu + mov r0, #0x1 + bl debug_sub_808F168 + ldr r0, ._155 @ CB2_ContestPainting + bl SetMainCallback2 + ldr r1, ._155 + 4 @ gMain + ldr r0, ._155 + 8 @ debug_sub_808B868 + str r0, [r1, #0x8] + mov r0, #0x1 +._154: + pop {r1} + bx r1 +._156: + .align 2, 0 +._155: + .word CB2_ContestPainting+1 + .word gMain + .word debug_sub_808B868+1 + + thumb_func_end debug_sub_808C2E4 + + thumb_func_start debug_sub_808C31C +debug_sub_808C31C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._157 @ gUnknown_Debug_083C2828 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._157 + 4 @ gMenuCallback + ldr r0, ._157 + 8 @ debug_sub_808C36C + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._158: + .align 2, 0 +._157: + .word gUnknown_Debug_083C2828 + .word gMenuCallback + .word debug_sub_808C36C+1 + + thumb_func_end debug_sub_808C31C + + thumb_func_start debug_sub_808C36C +debug_sub_808C36C: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._159 @cond_branch + mov r0, #0x0 + b ._162 +._159: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._161 @cond_branch + ldr r2, ._163 @ gMenuCallback + ldr r0, ._163 + 4 @ gUnknown_Debug_083C2828 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._162 +._164: + .align 2, 0 +._163: + .word gMenuCallback + .word gUnknown_Debug_083C2828 +._161: + bl CloseMenu + mov r0, #0x1 +._162: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808C36C + + thumb_func_start debug_sub_808C3B0 +debug_sub_808C3B0: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._165 @ gUnknown_Debug_083C2938 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r0, ._165 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._165 + 8 @ gMenuCallback + ldr r0, ._165 + 12 @ debug_sub_808C6C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._166: + .align 2, 0 +._165: + .word gUnknown_Debug_083C2938 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808C6C8+1 + + thumb_func_end debug_sub_808C3B0 + + thumb_func_start debug_sub_808C408 +debug_sub_808C408: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._167 @ gUnknown_Debug_083C2A48 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._167 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._167 + 8 @ gMenuCallback + ldr r0, ._167 + 12 @ debug_sub_808C6C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._168: + .align 2, 0 +._167: + .word gUnknown_Debug_083C2A48 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808C6C8+1 + + thumb_func_end debug_sub_808C408 + + thumb_func_start debug_sub_808C460 +debug_sub_808C460: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._169 @ gUnknown_Debug_083C2B4C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._169 + 4 @ gDebug_0300070F + mov r0, #0x2 + strb r0, [r1] + ldr r1, ._169 + 8 @ gMenuCallback + ldr r0, ._169 + 12 @ debug_sub_808C6C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._170: + .align 2, 0 +._169: + .word gUnknown_Debug_083C2B4C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808C6C8+1 + + thumb_func_end debug_sub_808C460 + + thumb_func_start debug_sub_808C4B8 +debug_sub_808C4B8: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._171 @ gUnknown_Debug_083C2C80 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._171 + 4 @ gDebug_0300070F + mov r0, #0x3 + strb r0, [r1] + ldr r1, ._171 + 8 @ gMenuCallback + ldr r0, ._171 + 12 @ debug_sub_808C6C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._172: + .align 2, 0 +._171: + .word gUnknown_Debug_083C2C80 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808C6C8+1 + + thumb_func_end debug_sub_808C4B8 + + thumb_func_start debug_sub_808C510 +debug_sub_808C510: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._173 @ gUnknown_Debug_083C2D8C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._173 + 4 @ gDebug_0300070F + mov r0, #0x4 + strb r0, [r1] + ldr r1, ._173 + 8 @ gMenuCallback + ldr r0, ._173 + 12 @ debug_sub_808C6C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._174: + .align 2, 0 +._173: + .word gUnknown_Debug_083C2D8C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808C6C8+1 + + thumb_func_end debug_sub_808C510 + + thumb_func_start debug_sub_808C568 +debug_sub_808C568: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._175 @ gUnknown_Debug_083C2EB0 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._175 + 4 @ gDebug_0300070F + mov r0, #0x5 + strb r0, [r1] + ldr r1, ._175 + 8 @ gMenuCallback + ldr r0, ._175 + 12 @ debug_sub_808C6C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._176: + .align 2, 0 +._175: + .word gUnknown_Debug_083C2EB0 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808C6C8+1 + + thumb_func_end debug_sub_808C568 + + thumb_func_start debug_sub_808C5C0 +debug_sub_808C5C0: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._177 @ gUnknown_Debug_083C2FE0 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._177 + 4 @ gDebug_0300070F + mov r0, #0x6 + strb r0, [r1] + ldr r1, ._177 + 8 @ gMenuCallback + ldr r0, ._177 + 12 @ debug_sub_808C6C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._178: + .align 2, 0 +._177: + .word gUnknown_Debug_083C2FE0 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808C6C8+1 + + thumb_func_end debug_sub_808C5C0 + + thumb_func_start debug_sub_808C618 +debug_sub_808C618: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._179 @ gUnknown_Debug_083C3100 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._179 + 4 @ gDebug_0300070F + mov r0, #0x7 + strb r0, [r1] + ldr r1, ._179 + 8 @ gMenuCallback + ldr r0, ._179 + 12 @ debug_sub_808C6C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._180: + .align 2, 0 +._179: + .word gUnknown_Debug_083C3100 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808C6C8+1 + + thumb_func_end debug_sub_808C618 + + thumb_func_start debug_sub_808C670 +debug_sub_808C670: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + ldr r3, ._181 @ gUnknown_Debug_083C3194 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x3 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x3 + bl InitMenu + ldr r1, ._181 + 4 @ gDebug_0300070F + mov r0, #0x8 + strb r0, [r1] + ldr r1, ._181 + 8 @ gMenuCallback + ldr r0, ._181 + 12 @ debug_sub_808C6C8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._182: + .align 2, 0 +._181: + .word gUnknown_Debug_083C3194 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808C6C8+1 + + thumb_func_end debug_sub_808C670 + + thumb_func_start debug_sub_808C6C8 +debug_sub_808C6C8: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._186 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808C714 + ldrb r0, [r5] + bl debug_sub_808C764 + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._183 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._184 @cond_branch +._183: + mov r0, #0x0 + b ._185 +._187: + .align 2, 0 +._186: + .word gDebug_0300070F +._184: + bl CloseMenu + mov r0, #0x1 +._185: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808C6C8 + + thumb_func_start debug_sub_808C714 +debug_sub_808C714: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._191 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._190 @cond_branch + ldr r0, ._191 + 4 @ gUnknown_Debug_83C31E6 + lsl r1, r2, #0x3 + add r1, r1, r2 + add r1, r1, r3 + lsl r1, r1, #0x1 + add r1, r1, r0 + ldrh r4, [r1] + add r0, r4, #0 + bl FlagGet + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._189 @cond_branch + add r0, r4, #0 + bl FlagSet + b ._190 +._192: + .align 2, 0 +._191: + .word gMain + .word gUnknown_Debug_83C31E6 +._189: + add r0, r4, #0 + bl FlagClear +._190: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808C714 + + thumb_func_start debug_sub_808C764 +debug_sub_808C764: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._195 @ gUnknown_Debug_083C31DC + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._193 @cond_branch + ldr r0, ._195 + 4 @ gUnknown_Debug_83C31E6 + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._194: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl FlagGet + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + neg r2, r0 + orr r2, r2, r0 + lsr r2, r2, #0x1f + mov r0, #0x1c + add r1, r4, #0 + bl debug_sub_808F2E0 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._194 @cond_branch +._193: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._196: + .align 2, 0 +._195: + .word gUnknown_Debug_083C31DC + .word gUnknown_Debug_83C31E6 + + thumb_func_end debug_sub_808C764 + + thumb_func_start debug_sub_808C7C8 +debug_sub_808C7C8: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._197 @ gUnknown_Debug_083C1CE8 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._197 + 4 @ gMenuCallback + ldr r0, ._197 + 8 @ debug_sub_808C818 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._198: + .align 2, 0 +._197: + .word gUnknown_Debug_083C1CE8 + .word gMenuCallback + .word debug_sub_808C818+1 + + thumb_func_end debug_sub_808C7C8 + + thumb_func_start debug_sub_808C818 +debug_sub_808C818: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._199 @cond_branch + mov r0, #0x0 + b ._202 +._199: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._201 @cond_branch + ldr r2, ._203 @ gMenuCallback + ldr r0, ._203 + 4 @ gUnknown_Debug_083C1CE8 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._202 +._204: + .align 2, 0 +._203: + .word gMenuCallback + .word gUnknown_Debug_083C1CE8 +._201: + bl CloseMenu + mov r0, #0x1 +._202: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808C818 + + thumb_func_start debug_sub_808C85C +debug_sub_808C85C: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._205 @ gUnknown_Debug_083C1E0C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r0, ._205 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._205 + 8 @ gMenuCallback + ldr r0, ._205 + 12 @ debug_sub_808CB74 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._206: + .align 2, 0 +._205: + .word gUnknown_Debug_083C1E0C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CB74+1 + + thumb_func_end debug_sub_808C85C + + thumb_func_start debug_sub_808C8B4 +debug_sub_808C8B4: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._207 @ gUnknown_Debug_083C1F38 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._207 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._207 + 8 @ gMenuCallback + ldr r0, ._207 + 12 @ debug_sub_808CB74 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._208: + .align 2, 0 +._207: + .word gUnknown_Debug_083C1F38 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CB74+1 + + thumb_func_end debug_sub_808C8B4 + + thumb_func_start debug_sub_808C90C +debug_sub_808C90C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._209 @ gUnknown_Debug_083C206C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._209 + 4 @ gDebug_0300070F + mov r0, #0x2 + strb r0, [r1] + ldr r1, ._209 + 8 @ gMenuCallback + ldr r0, ._209 + 12 @ debug_sub_808CB74 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._210: + .align 2, 0 +._209: + .word gUnknown_Debug_083C206C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CB74+1 + + thumb_func_end debug_sub_808C90C + + thumb_func_start debug_sub_808C964 +debug_sub_808C964: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._211 @ gUnknown_Debug_083C2190 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._211 + 4 @ gDebug_0300070F + mov r0, #0x3 + strb r0, [r1] + ldr r1, ._211 + 8 @ gMenuCallback + ldr r0, ._211 + 12 @ debug_sub_808CB74 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._212: + .align 2, 0 +._211: + .word gUnknown_Debug_083C2190 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CB74+1 + + thumb_func_end debug_sub_808C964 + + thumb_func_start debug_sub_808C9BC +debug_sub_808C9BC: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xd + bl Menu_DrawStdWindowFrame + ldr r3, ._213 @ gUnknown_Debug_083C2264 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x6 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x6 + bl InitMenu + ldr r1, ._213 + 4 @ gDebug_0300070F + mov r0, #0x4 + strb r0, [r1] + ldr r1, ._213 + 8 @ gMenuCallback + ldr r0, ._213 + 12 @ debug_sub_808CB74 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._214: + .align 2, 0 +._213: + .word gUnknown_Debug_083C2264 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CB74+1 + + thumb_func_end debug_sub_808C9BC + + thumb_func_start debug_sub_808CA14 +debug_sub_808CA14: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._215 @ gUnknown_Debug_083C2370 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._215 + 4 @ gDebug_0300070F + mov r0, #0x5 + strb r0, [r1] + ldr r1, ._215 + 8 @ gMenuCallback + ldr r0, ._215 + 12 @ debug_sub_808CB74 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._216: + .align 2, 0 +._215: + .word gUnknown_Debug_083C2370 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CB74+1 + + thumb_func_end debug_sub_808CA14 + + thumb_func_start debug_sub_808CA6C +debug_sub_808CA6C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._217 @ gUnknown_Debug_083C248C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._217 + 4 @ gDebug_0300070F + mov r0, #0x6 + strb r0, [r1] + ldr r1, ._217 + 8 @ gMenuCallback + ldr r0, ._217 + 12 @ debug_sub_808CB74 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._218: + .align 2, 0 +._217: + .word gUnknown_Debug_083C248C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CB74+1 + + thumb_func_end debug_sub_808CA6C + + thumb_func_start debug_sub_808CAC4 +debug_sub_808CAC4: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._219 @ gUnknown_Debug_083C259C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._219 + 4 @ gDebug_0300070F + mov r0, #0x7 + strb r0, [r1] + ldr r1, ._219 + 8 @ gMenuCallback + ldr r0, ._219 + 12 @ debug_sub_808CB74 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._220: + .align 2, 0 +._219: + .word gUnknown_Debug_083C259C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CB74+1 + + thumb_func_end debug_sub_808CAC4 + + thumb_func_start debug_sub_808CB1C +debug_sub_808CB1C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._221 @ gUnknown_Debug_083C26C8 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._221 + 4 @ gDebug_0300070F + mov r0, #0x8 + strb r0, [r1] + ldr r1, ._221 + 8 @ gMenuCallback + ldr r0, ._221 + 12 @ debug_sub_808CB74 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._222: + .align 2, 0 +._221: + .word gUnknown_Debug_083C26C8 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CB74+1 + + thumb_func_end debug_sub_808CB1C + + thumb_func_start debug_sub_808CB74 +debug_sub_808CB74: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._226 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808CBC0 + ldrb r0, [r5] + bl debug_sub_808CC10 + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._223 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._224 @cond_branch +._223: + mov r0, #0x0 + b ._225 +._227: + .align 2, 0 +._226: + .word gDebug_0300070F +._224: + bl CloseMenu + mov r0, #0x1 +._225: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808CB74 + + thumb_func_start debug_sub_808CBC0 +debug_sub_808CBC0: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._231 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._230 @cond_branch + ldr r0, ._231 + 4 @ gUnknown_Debug_083C271A + lsl r1, r2, #0x3 + add r1, r1, r2 + add r1, r1, r3 + lsl r1, r1, #0x1 + add r1, r1, r0 + ldrh r4, [r1] + add r0, r4, #0 + bl FlagGet + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._229 @cond_branch + add r0, r4, #0 + bl FlagSet + b ._230 +._232: + .align 2, 0 +._231: + .word gMain + .word gUnknown_Debug_083C271A +._229: + add r0, r4, #0 + bl FlagClear +._230: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808CBC0 + + thumb_func_start debug_sub_808CC10 +debug_sub_808CC10: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._235 @ gUnknown_Debug_083C2710 + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._233 @cond_branch + ldr r0, ._235 + 4 @ gUnknown_Debug_083C271A + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._234: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl FlagGet + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + neg r2, r0 + orr r2, r2, r0 + lsr r2, r2, #0x1f + mov r0, #0x1c + add r1, r4, #0 + bl debug_sub_808F2E0 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._234 @cond_branch +._233: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._236: + .align 2, 0 +._235: + .word gUnknown_Debug_083C2710 + .word gUnknown_Debug_083C271A + + thumb_func_end debug_sub_808CC10 + + thumb_func_start debug_sub_808CC74 +debug_sub_808CC74: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + ldr r3, ._237 @ gUnknown_Debug_083C1ADC + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x3 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x3 + bl InitMenu + ldr r1, ._237 + 4 @ gMenuCallback + ldr r0, ._237 + 8 @ debug_sub_808CCC4 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._238: + .align 2, 0 +._237: + .word gUnknown_Debug_083C1ADC + .word gMenuCallback + .word debug_sub_808CCC4+1 + + thumb_func_end debug_sub_808CC74 + + thumb_func_start debug_sub_808CCC4 +debug_sub_808CCC4: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._239 @cond_branch + mov r0, #0x0 + b ._242 +._239: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._241 @cond_branch + ldr r2, ._243 @ gMenuCallback + ldr r0, ._243 + 4 @ gUnknown_Debug_083C1ADC + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._242 +._244: + .align 2, 0 +._243: + .word gMenuCallback + .word gUnknown_Debug_083C1ADC +._241: + bl CloseMenu + mov r0, #0x1 +._242: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808CCC4 + + thumb_func_start debug_sub_808CD08 +debug_sub_808CD08: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x11 + bl Menu_DrawStdWindowFrame + ldr r3, ._245 @ gUnknown_Debug_083C1B7C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x8 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x8 + bl InitMenu + ldr r0, ._245 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._245 + 8 @ gMenuCallback + ldr r0, ._245 + 12 @ debug_sub_808CE10 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._246: + .align 2, 0 +._245: + .word gUnknown_Debug_083C1B7C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CE10+1 + + thumb_func_end debug_sub_808CD08 + + thumb_func_start debug_sub_808CD60 +debug_sub_808CD60: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + ldr r3, ._247 @ gUnknown_Debug_083C1BF0 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x4 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x4 + bl InitMenu + ldr r1, ._247 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._247 + 8 @ gMenuCallback + ldr r0, ._247 + 12 @ debug_sub_808CE10 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._248: + .align 2, 0 +._247: + .word gUnknown_Debug_083C1BF0 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CE10+1 + + thumb_func_end debug_sub_808CD60 + + thumb_func_start debug_sub_808CDB8 +debug_sub_808CDB8: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x3 + bl Menu_DrawStdWindowFrame + ldr r3, ._249 @ gUnknown_Debug_083C1C2C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x1 + bl InitMenu + ldr r1, ._249 + 4 @ gDebug_0300070F + mov r0, #0x2 + strb r0, [r1] + ldr r1, ._249 + 8 @ gMenuCallback + ldr r0, ._249 + 12 @ debug_sub_808CE10 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._250: + .align 2, 0 +._249: + .word gUnknown_Debug_083C1C2C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808CE10+1 + + thumb_func_end debug_sub_808CDB8 + + thumb_func_start debug_sub_808CE10 +debug_sub_808CE10: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._254 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808CE5C + ldrb r0, [r5] + bl debug_sub_808CEAC + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._251 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._252 @cond_branch +._251: + mov r0, #0x0 + b ._253 +._255: + .align 2, 0 +._254: + .word gDebug_0300070F +._252: + bl CloseMenu + mov r0, #0x1 +._253: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808CE10 + + thumb_func_start debug_sub_808CE5C +debug_sub_808CE5C: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._259 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._258 @cond_branch + ldr r0, ._259 + 4 @ gUnknown_Debug_083C1C38 + lsl r1, r2, #0x3 + add r1, r1, r2 + add r1, r1, r3 + lsl r1, r1, #0x1 + add r1, r1, r0 + ldrh r4, [r1] + add r0, r4, #0 + bl FlagGet + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._257 @cond_branch + add r0, r4, #0 + bl FlagSet + b ._258 +._260: + .align 2, 0 +._259: + .word gMain + .word gUnknown_Debug_083C1C38 +._257: + add r0, r4, #0 + bl FlagClear +._258: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808CE5C + + thumb_func_start debug_sub_808CEAC +debug_sub_808CEAC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._263 @ gUnknown_Debug_083C1C34 + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._261 @cond_branch + ldr r0, ._263 + 4 @ gUnknown_Debug_083C1C38 + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._262: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl FlagGet + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + neg r2, r0 + orr r2, r2, r0 + lsr r2, r2, #0x1f + mov r0, #0x1c + add r1, r4, #0 + bl debug_sub_808F2E0 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._262 @cond_branch +._261: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._264: + .align 2, 0 +._263: + .word gUnknown_Debug_083C1C34 + .word gUnknown_Debug_083C1C38 + + thumb_func_end debug_sub_808CEAC + + thumb_func_start debug_sub_808CF10 +debug_sub_808CF10: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._265 @ gUnknown_Debug_083C1330 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._265 + 4 @ gMenuCallback + ldr r0, ._265 + 8 @ debug_sub_808CF60 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._266: + .align 2, 0 +._265: + .word gUnknown_Debug_083C1330 + .word gMenuCallback + .word debug_sub_808CF60+1 + + thumb_func_end debug_sub_808CF10 + + thumb_func_start debug_sub_808CF60 +debug_sub_808CF60: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._267 @cond_branch + mov r0, #0x0 + b ._270 +._267: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._269 @cond_branch + ldr r2, ._271 @ gMenuCallback + ldr r0, ._271 + 4 @ gUnknown_Debug_083C1330 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._270 +._272: + .align 2, 0 +._271: + .word gMenuCallback + .word gUnknown_Debug_083C1330 +._269: + bl CloseMenu + mov r0, #0x1 +._270: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808CF60 + + thumb_func_start debug_sub_808CFA4 +debug_sub_808CFA4: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x11 + bl Menu_DrawStdWindowFrame + ldr r3, ._273 @ gUnknown_Debug_083C13D8 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x8 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x8 + bl InitMenu + ldr r0, ._273 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._273 + 8 @ gMenuCallback + ldr r0, ._273 + 12 @ debug_sub_808D2BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._274: + .align 2, 0 +._273: + .word gUnknown_Debug_083C13D8 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D2BC+1 + + thumb_func_end debug_sub_808CFA4 + + thumb_func_start debug_sub_808CFFC +debug_sub_808CFFC: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r3, ._275 @ gUnknown_Debug_083C1465 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x7 + bl InitMenu + ldr r1, ._275 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._275 + 8 @ gMenuCallback + ldr r0, ._275 + 12 @ debug_sub_808D2BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._276: + .align 2, 0 +._275: + .word gUnknown_Debug_083C1465 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D2BC+1 + + thumb_func_end debug_sub_808CFFC + + thumb_func_start debug_sub_808D054 +debug_sub_808D054: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._277 @ gUnknown_Debug_083C1503 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._277 + 4 @ gDebug_0300070F + mov r0, #0x2 + strb r0, [r1] + ldr r1, ._277 + 8 @ gMenuCallback + ldr r0, ._277 + 12 @ debug_sub_808D2BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._278: + .align 2, 0 +._277: + .word gUnknown_Debug_083C1503 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D2BC+1 + + thumb_func_end debug_sub_808D054 + + thumb_func_start debug_sub_808D0AC +debug_sub_808D0AC: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + ldr r3, ._279 @ gUnknown_Debug_083C158A + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x4 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x4 + bl InitMenu + ldr r1, ._279 + 4 @ gDebug_0300070F + mov r0, #0x3 + strb r0, [r1] + ldr r1, ._279 + 8 @ gMenuCallback + ldr r0, ._279 + 12 @ debug_sub_808D2BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._280: + .align 2, 0 +._279: + .word gUnknown_Debug_083C158A + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D2BC+1 + + thumb_func_end debug_sub_808D0AC + + thumb_func_start debug_sub_808D104 +debug_sub_808D104: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._281 @ gUnknown_Debug_083C1647 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._281 + 4 @ gDebug_0300070F + mov r0, #0x4 + strb r0, [r1] + ldr r1, ._281 + 8 @ gMenuCallback + ldr r0, ._281 + 12 @ debug_sub_808D2BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._282: + .align 2, 0 +._281: + .word gUnknown_Debug_083C1647 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D2BC+1 + + thumb_func_end debug_sub_808D104 + + thumb_func_start debug_sub_808D15C +debug_sub_808D15C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._283 @ gUnknown_Debug_083C1712 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._283 + 4 @ gDebug_0300070F + mov r0, #0x5 + strb r0, [r1] + ldr r1, ._283 + 8 @ gMenuCallback + ldr r0, ._283 + 12 @ debug_sub_808D2BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._284: + .align 2, 0 +._283: + .word gUnknown_Debug_083C1712 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D2BC+1 + + thumb_func_end debug_sub_808D15C + + thumb_func_start debug_sub_808D1B4 +debug_sub_808D1B4: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._285 @ gUnknown_Debug_083C17F8 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._285 + 4 @ gDebug_0300070F + mov r0, #0x6 + strb r0, [r1] + ldr r1, ._285 + 8 @ gMenuCallback + ldr r0, ._285 + 12 @ debug_sub_808D2BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._286: + .align 2, 0 +._285: + .word gUnknown_Debug_083C17F8 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D2BC+1 + + thumb_func_end debug_sub_808D1B4 + + thumb_func_start debug_sub_808D20C +debug_sub_808D20C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r3, ._287 @ gUnknown_Debug_083C18B8 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x7 + bl InitMenu + ldr r1, ._287 + 4 @ gDebug_0300070F + mov r0, #0x7 + strb r0, [r1] + ldr r1, ._287 + 8 @ gMenuCallback + ldr r0, ._287 + 12 @ debug_sub_808D2BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._288: + .align 2, 0 +._287: + .word gUnknown_Debug_083C18B8 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D2BC+1 + + thumb_func_end debug_sub_808D20C + + thumb_func_start debug_sub_808D264 +debug_sub_808D264: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r3, ._289 @ gDebug_0x83C1974 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x5 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x5 + bl InitMenu + ldr r1, ._289 + 4 @ gDebug_0300070F + mov r0, #0x8 + strb r0, [r1] + ldr r1, ._289 + 8 @ gMenuCallback + ldr r0, ._289 + 12 @ debug_sub_808D2BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._290: + .align 2, 0 +._289: + .word gDebug_0x83C1974 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D2BC+1 + + thumb_func_end debug_sub_808D264 + + thumb_func_start debug_sub_808D2BC +debug_sub_808D2BC: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._294 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808D308 + ldrb r0, [r5] + bl debug_sub_808D358 + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._291 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._292 @cond_branch +._291: + mov r0, #0x0 + b ._293 +._295: + .align 2, 0 +._294: + .word gDebug_0300070F +._292: + bl CloseMenu + mov r0, #0x1 +._293: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808D2BC + + thumb_func_start debug_sub_808D308 +debug_sub_808D308: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._299 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._298 @cond_branch + ldr r0, ._299 + 4 @ gUnknown_Debug_083C19C6 + lsl r1, r2, #0x3 + add r1, r1, r2 + add r1, r1, r3 + lsl r1, r1, #0x1 + add r1, r1, r0 + ldrh r4, [r1] + add r0, r4, #0 + bl FlagGet + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._297 @cond_branch + add r0, r4, #0 + bl FlagSet + b ._298 +._300: + .align 2, 0 +._299: + .word gMain + .word gUnknown_Debug_083C19C6 +._297: + add r0, r4, #0 + bl FlagClear +._298: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808D308 + + thumb_func_start debug_sub_808D358 +debug_sub_808D358: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._303 @ gUnknown_Debug_083C19BC + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._301 @cond_branch + ldr r0, ._303 + 4 @ gUnknown_Debug_083C19C6 + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._302: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl FlagGet + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + neg r2, r0 + orr r2, r2, r0 + lsr r2, r2, #0x1f + mov r0, #0x1c + add r1, r4, #0 + bl debug_sub_808F2E0 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._302 @cond_branch +._301: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._304: + .align 2, 0 +._303: + .word gUnknown_Debug_083C19BC + .word gUnknown_Debug_083C19C6 + + thumb_func_end debug_sub_808D358 + + thumb_func_start debug_sub_808D3BC +debug_sub_808D3BC: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + ldr r3, ._305 @ gUnknown_Debug_083C105C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x2 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x2 + bl InitMenu + ldr r1, ._305 + 4 @ gMenuCallback + ldr r0, ._305 + 8 @ debug_sub_808D40C + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._306: + .align 2, 0 +._305: + .word gUnknown_Debug_083C105C + .word gMenuCallback + .word debug_sub_808D40C+1 + + thumb_func_end debug_sub_808D3BC + + thumb_func_start debug_sub_808D40C +debug_sub_808D40C: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._307 @cond_branch + mov r0, #0x0 + b ._310 +._307: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._309 @cond_branch + ldr r2, ._311 @ gMenuCallback + ldr r0, ._311 + 4 @ gUnknown_Debug_083C105C + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._310 +._312: + .align 2, 0 +._311: + .word gMenuCallback + .word gUnknown_Debug_083C105C +._309: + bl CloseMenu + mov r0, #0x1 +._310: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808D40C + + thumb_func_start debug_sub_808D450 +debug_sub_808D450: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._313 @ gUnknown_Debug_083C10BD + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r0, ._313 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._313 + 8 @ gMenuCallback + ldr r0, ._313 + 12 @ debug_sub_808D500 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._314: + .align 2, 0 +._313: + .word gUnknown_Debug_083C10BD + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D500+1 + + thumb_func_end debug_sub_808D450 + + thumb_func_start debug_sub_808D4A8 +debug_sub_808D4A8: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r3, ._315 @ gUnknown_Debug_083C1149 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x7 + bl InitMenu + ldr r1, ._315 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._315 + 8 @ gMenuCallback + ldr r0, ._315 + 12 @ debug_sub_808D500 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._316: + .align 2, 0 +._315: + .word gUnknown_Debug_083C1149 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D500+1 + + thumb_func_end debug_sub_808D4A8 + + thumb_func_start debug_sub_808D500 +debug_sub_808D500: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._320 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808D54C + ldrb r0, [r5] + bl debug_sub_808D59C + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._317 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._318 @cond_branch +._317: + mov r0, #0x0 + b ._319 +._321: + .align 2, 0 +._320: + .word gDebug_0300070F +._318: + bl CloseMenu + mov r0, #0x1 +._319: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808D500 + + thumb_func_start debug_sub_808D54C +debug_sub_808D54C: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._325 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._324 @cond_branch + ldr r0, ._325 + 4 @ gUnknown_Debug_083C1196 + lsl r1, r2, #0x3 + add r1, r1, r2 + add r1, r1, r3 + lsl r1, r1, #0x1 + add r1, r1, r0 + ldrh r4, [r1] + add r0, r4, #0 + bl FlagGet + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._323 @cond_branch + add r0, r4, #0 + bl FlagSet + b ._324 +._326: + .align 2, 0 +._325: + .word gMain + .word gUnknown_Debug_083C1196 +._323: + add r0, r4, #0 + bl FlagClear +._324: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808D54C + + thumb_func_start debug_sub_808D59C +debug_sub_808D59C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._329 @ gUnknown_Debug_083C1194 + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._327 @cond_branch + ldr r0, ._329 + 4 @ gUnknown_Debug_083C1196 + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._328: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl FlagGet + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + neg r2, r0 + orr r2, r2, r0 + lsr r2, r2, #0x1f + mov r0, #0x1c + add r1, r4, #0 + bl debug_sub_808F2E0 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._328 @cond_branch +._327: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._330: + .align 2, 0 +._329: + .word gUnknown_Debug_083C1194 + .word gUnknown_Debug_083C1196 + + thumb_func_end debug_sub_808D59C + + thumb_func_start debug_sub_808D600 +debug_sub_808D600: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + ldr r3, ._331 @ gUnknown_Debug_083C11CC + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x2 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x2 + bl InitMenu + ldr r1, ._331 + 4 @ gMenuCallback + ldr r0, ._331 + 8 @ debug_sub_808D650 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._332: + .align 2, 0 +._331: + .word gUnknown_Debug_083C11CC + .word gMenuCallback + .word debug_sub_808D650+1 + + thumb_func_end debug_sub_808D600 + + thumb_func_start debug_sub_808D650 +debug_sub_808D650: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._333 @cond_branch + mov r0, #0x0 + b ._336 +._333: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._335 @cond_branch + ldr r2, ._337 @ gMenuCallback + ldr r0, ._337 + 4 @ gUnknown_Debug_083C11CC + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._336 +._338: + .align 2, 0 +._337: + .word gMenuCallback + .word gUnknown_Debug_083C11CC +._335: + bl CloseMenu + mov r0, #0x1 +._336: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808D650 + + thumb_func_start debug_sub_808D694 +debug_sub_808D694: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._339 @ gUnknown_Debug_083C1212 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r0, ._339 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._339 + 8 @ gMenuCallback + ldr r0, ._339 + 12 @ debug_sub_808D744 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._340: + .align 2, 0 +._339: + .word gUnknown_Debug_083C1212 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D744+1 + + thumb_func_end debug_sub_808D694 + + thumb_func_start debug_sub_808D6EC +debug_sub_808D6EC: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r3, ._341 @ gUnknown_Debug_083C1288 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x7 + bl InitMenu + ldr r1, ._341 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._341 + 8 @ gMenuCallback + ldr r0, ._341 + 12 @ debug_sub_808D744 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._342: + .align 2, 0 +._341: + .word gUnknown_Debug_083C1288 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D744+1 + + thumb_func_end debug_sub_808D6EC + + thumb_func_start debug_sub_808D744 +debug_sub_808D744: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._346 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808D790 + ldrb r0, [r5] + bl debug_sub_808D7E0 + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._343 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._344 @cond_branch +._343: + mov r0, #0x0 + b ._345 +._347: + .align 2, 0 +._346: + .word gDebug_0300070F +._344: + bl CloseMenu + mov r0, #0x1 +._345: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808D744 + + thumb_func_start debug_sub_808D790 +debug_sub_808D790: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._351 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._350 @cond_branch + ldr r0, ._351 + 4 @ gUnknown_Debug_083C12D2 + lsl r1, r2, #0x3 + add r1, r1, r2 + add r1, r1, r3 + lsl r1, r1, #0x1 + add r1, r1, r0 + ldrh r4, [r1] + add r0, r4, #0 + bl FlagGet + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._349 @cond_branch + add r0, r4, #0 + bl FlagSet + b ._350 +._352: + .align 2, 0 +._351: + .word gMain + .word gUnknown_Debug_083C12D2 +._349: + add r0, r4, #0 + bl FlagClear +._350: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808D790 + + thumb_func_start debug_sub_808D7E0 +debug_sub_808D7E0: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._355 @ gUnknown_Debug_083C12D0 + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._353 @cond_branch + ldr r0, ._355 + 4 @ gUnknown_Debug_083C12D2 + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._354: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl FlagGet + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + neg r2, r0 + orr r2, r2, r0 + lsr r2, r2, #0x1f + mov r0, #0x1c + add r1, r4, #0 + bl debug_sub_808F2E0 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._354 @cond_branch +._353: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._356: + .align 2, 0 +._355: + .word gUnknown_Debug_083C12D0 + .word gUnknown_Debug_083C12D2 + + thumb_func_end debug_sub_808D7E0 + + thumb_func_start debug_sub_808D844 +debug_sub_808D844: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1c + mov r3, #0x3 + bl Menu_DrawStdWindowFrame + ldr r3, ._357 @ gUnknown_Debug_083C1A78 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x1 + bl InitMenu + ldr r1, ._357 + 4 @ gMenuCallback + ldr r0, ._357 + 8 @ debug_sub_808D894 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._358: + .align 2, 0 +._357: + .word gUnknown_Debug_083C1A78 + .word gMenuCallback + .word debug_sub_808D894+1 + + thumb_func_end debug_sub_808D844 + + thumb_func_start debug_sub_808D894 +debug_sub_808D894: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r3, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r3, r0 + bne ._359 @cond_branch + mov r0, #0x0 + b ._362 +._359: + mov r0, #0x1 + neg r0, r0 + cmp r3, r0 + beq ._361 @cond_branch + ldr r2, ._363 @ gMenuCallback + ldr r1, ._363 + 4 @ gUnknown_Debug_083C1A78 + lsl r0, r3, #0x3 + add r0, r0, r1 + ldr r0, [r0, #0x4] + str r0, [r2] + mov r0, #0x0 + b ._362 +._364: + .align 2, 0 +._363: + .word gMenuCallback + .word gUnknown_Debug_083C1A78 +._361: + bl CloseMenu + mov r0, #0x1 +._362: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808D894 + + thumb_func_start debug_sub_808D8D8 +debug_sub_808D8D8: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + ldr r3, ._365 @ gUnknown_Debug_083C1A9C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x2 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x2 + bl InitMenu + ldr r0, ._365 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._365 + 8 @ gMenuCallback + ldr r0, ._365 + 12 @ debug_sub_808D930 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._366: + .align 2, 0 +._365: + .word gUnknown_Debug_083C1A9C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808D930+1 + + thumb_func_end debug_sub_808D8D8 + + thumb_func_start debug_sub_808D930 +debug_sub_808D930: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._370 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808D97C + ldrb r0, [r5] + bl debug_sub_808D9CC + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._367 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._368 @cond_branch +._367: + mov r0, #0x0 + b ._369 +._371: + .align 2, 0 +._370: + .word gDebug_0300070F +._368: + bl CloseMenu + mov r0, #0x1 +._369: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808D930 + + thumb_func_start debug_sub_808D97C +debug_sub_808D97C: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._375 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._374 @cond_branch + ldr r0, ._375 + 4 @ gUnknown_Debug_083C1AAE + lsl r1, r2, #0x3 + add r1, r1, r2 + add r1, r1, r3 + lsl r1, r1, #0x1 + add r1, r1, r0 + ldrh r4, [r1] + add r0, r4, #0 + bl FlagGet + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._373 @cond_branch + add r0, r4, #0 + bl FlagSet + b ._374 +._376: + .align 2, 0 +._375: + .word gMain + .word gUnknown_Debug_083C1AAE +._373: + add r0, r4, #0 + bl FlagClear +._374: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_sub_808D97C + + thumb_func_start debug_sub_808D9CC +debug_sub_808D9CC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._379 @ gUnknown_Debug_083C1AAC + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._377 @cond_branch + ldr r0, ._379 + 4 @ gUnknown_Debug_083C1AAE + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._378: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl FlagGet + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + neg r2, r0 + orr r2, r2, r0 + lsr r2, r2, #0x1f + mov r0, #0x1c + add r1, r4, #0 + bl debug_sub_808F2E0 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._378 @cond_branch +._377: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._380: + .align 2, 0 +._379: + .word gUnknown_Debug_083C1AAC + .word gUnknown_Debug_083C1AAE + + thumb_func_end debug_sub_808D9CC + + thumb_func_start debug_sub_808DA30 +debug_sub_808DA30: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x3 + bl Menu_DrawStdWindowFrame + ldr r3, ._381 @ gUnknown_Debug_083C103A + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x1 + bl InitMenu + ldr r1, ._381 + 4 @ gMenuCallback + ldr r0, ._381 + 8 @ debug_sub_808DA80 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._382: + .align 2, 0 +._381: + .word gUnknown_Debug_083C103A + .word gMenuCallback + .word debug_sub_808DA80+1 + + thumb_func_end debug_sub_808DA30 + + thumb_func_start debug_sub_808DA80 +debug_sub_808DA80: + push {r4, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + bl debug_sub_808DAD4 + bl debug_sub_808DABC + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._383 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._384 @cond_branch +._383: + mov r0, #0x0 + b ._385 +._384: + bl CloseMenu + mov r0, #0x1 +._385: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808DA80 + + thumb_func_start debug_sub_808DABC +debug_sub_808DABC: + push {lr} + ldr r0, ._386 @ gSpecialVar_Result + ldrh r2, [r0] + mov r0, #0x18 + mov r1, #0x1 + bl debug_sub_808F31C + pop {r0} + bx r0 +._387: + .align 2, 0 +._386: + .word gSpecialVar_Result + + thumb_func_end debug_sub_808DABC + + thumb_func_start debug_sub_808DAD4 +debug_sub_808DAD4: + push {lr} + ldr r0, ._390 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._388 @cond_branch + mov r2, #0x1 + b ._389 +._391: + .align 2, 0 +._390: + .word gMain +._388: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._392 @cond_branch + ldr r2, ._393 @ 0xffff +._389: + ldr r1, ._393 + 4 @ gSpecialVar_Result + ldrh r0, [r1] + add r0, r2, r0 + strh r0, [r1] +._392: + pop {r0} + bx r0 +._394: + .align 2, 0 +._393: + .word 0xffff + .word gSpecialVar_Result + + thumb_func_end debug_sub_808DAD4 + + thumb_func_start debug_sub_808DB0C +debug_sub_808DB0C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._395 @ gUnknown_Debug_083C3D08 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._395 + 4 @ gMenuCallback + ldr r0, ._395 + 8 @ debug_sub_808DB5C + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._396: + .align 2, 0 +._395: + .word gUnknown_Debug_083C3D08 + .word gMenuCallback + .word debug_sub_808DB5C+1 + + thumb_func_end debug_sub_808DB0C + + thumb_func_start debug_sub_808DB5C +debug_sub_808DB5C: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._397 @cond_branch + mov r0, #0x0 + b ._400 +._397: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._399 @cond_branch + ldr r2, ._401 @ gMenuCallback + ldr r0, ._401 + 4 @ gUnknown_Debug_083C3D08 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._400 +._402: + .align 2, 0 +._401: + .word gMenuCallback + .word gUnknown_Debug_083C3D08 +._399: + bl CloseMenu + mov r0, #0x1 +._400: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808DB5C + + thumb_func_start debug_sub_808DBA0 +debug_sub_808DBA0: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x11 + bl Menu_DrawStdWindowFrame + ldr r3, ._403 @ gUnknown_Debug_083C432C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x8 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x8 + bl InitMenu + ldr r0, ._403 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._403 + 8 @ gMenuCallback + ldr r0, ._403 + 12 @ debug_sub_808DEB8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._404: + .align 2, 0 +._403: + .word gUnknown_Debug_083C432C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808DEB8+1 + + thumb_func_end debug_sub_808DBA0 + + thumb_func_start debug_sub_808DBF8 +debug_sub_808DBF8: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._405 @ gUnknown_Debug_083C436C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._405 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._405 + 8 @ gMenuCallback + ldr r0, ._405 + 12 @ debug_sub_808DEB8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._406: + .align 2, 0 +._405: + .word gUnknown_Debug_083C436C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808DEB8+1 + + thumb_func_end debug_sub_808DBF8 + + thumb_func_start debug_sub_808DC50 +debug_sub_808DC50: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._407 @ gUnknown_Debug_083C43B4 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._407 + 4 @ gDebug_0300070F + mov r0, #0x2 + strb r0, [r1] + ldr r1, ._407 + 8 @ gMenuCallback + ldr r0, ._407 + 12 @ debug_sub_808DEB8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._408: + .align 2, 0 +._407: + .word gUnknown_Debug_083C43B4 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808DEB8+1 + + thumb_func_end debug_sub_808DC50 + + thumb_func_start debug_sub_808DCA8 +debug_sub_808DCA8: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._409 @ gUnknown_Debug_083C43FC + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._409 + 4 @ gDebug_0300070F + mov r0, #0x3 + strb r0, [r1] + ldr r1, ._409 + 8 @ gMenuCallback + ldr r0, ._409 + 12 @ debug_sub_808DEB8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._410: + .align 2, 0 +._409: + .word gUnknown_Debug_083C43FC + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808DEB8+1 + + thumb_func_end debug_sub_808DCA8 + + thumb_func_start debug_sub_808DD00 +debug_sub_808DD00: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._411 @ gUnknown_Debug_083C4444 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._411 + 4 @ gDebug_0300070F + mov r0, #0x4 + strb r0, [r1] + ldr r1, ._411 + 8 @ gMenuCallback + ldr r0, ._411 + 12 @ debug_sub_808DEB8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._412: + .align 2, 0 +._411: + .word gUnknown_Debug_083C4444 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808DEB8+1 + + thumb_func_end debug_sub_808DD00 + + thumb_func_start debug_sub_808DD58 +debug_sub_808DD58: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r3, ._413 @ gUnknown_Debug_083C448C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x7 + bl InitMenu + ldr r1, ._413 + 4 @ gDebug_0300070F + mov r0, #0x5 + strb r0, [r1] + ldr r1, ._413 + 8 @ gMenuCallback + ldr r0, ._413 + 12 @ debug_sub_808DEB8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._414: + .align 2, 0 +._413: + .word gUnknown_Debug_083C448C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808DEB8+1 + + thumb_func_end debug_sub_808DD58 + + thumb_func_start debug_sub_808DDB0 +debug_sub_808DDB0: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xd + bl Menu_DrawStdWindowFrame + ldr r3, ._415 @ gUnknown_Debug_83C44C4 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x6 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x6 + bl InitMenu + ldr r1, ._415 + 4 @ gDebug_0300070F + mov r0, #0x6 + strb r0, [r1] + ldr r1, ._415 + 8 @ gMenuCallback + ldr r0, ._415 + 12 @ debug_sub_808DEB8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._416: + .align 2, 0 +._415: + .word gUnknown_Debug_83C44C4 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808DEB8+1 + + thumb_func_end debug_sub_808DDB0 + + thumb_func_start debug_sub_808DE08 +debug_sub_808DE08: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._417 @ gUnknown_Debug_83C44EC + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._417 + 4 @ gDebug_0300070F + mov r0, #0x7 + strb r0, [r1] + ldr r1, ._417 + 8 @ gMenuCallback + ldr r0, ._417 + 12 @ debug_sub_808DEB8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._418: + .align 2, 0 +._417: + .word gUnknown_Debug_83C44EC + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808DEB8+1 + + thumb_func_end debug_sub_808DE08 + + thumb_func_start debug_sub_808DE60 +debug_sub_808DE60: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._419 @ gUnknown_Debug_083C4534 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._419 + 4 @ gDebug_0300070F + mov r0, #0x8 + strb r0, [r1] + ldr r1, ._419 + 8 @ gMenuCallback + ldr r0, ._419 + 12 @ debug_sub_808DEB8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._420: + .align 2, 0 +._419: + .word gUnknown_Debug_083C4534 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808DEB8+1 + + thumb_func_end debug_sub_808DE60 + + thumb_func_start debug_sub_808DEB8 +debug_sub_808DEB8: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._424 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808DF64 + ldrb r0, [r5] + bl debug_sub_808DF04 + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._421 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._422 @cond_branch +._421: + mov r0, #0x0 + b ._423 +._425: + .align 2, 0 +._424: + .word gDebug_0300070F +._422: + bl CloseMenu + mov r0, #0x1 +._423: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808DEB8 + + thumb_func_start debug_sub_808DF04 +debug_sub_808DF04: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._428 @ gUnknown_Debug_083C457C + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._426 @cond_branch + ldr r0, ._428 + 4 @ gUnknown_Debug_083C4586 + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._427: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl VarGet + add r2, r0, #0 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + mov r0, #0x18 + add r1, r4, #0 + bl debug_sub_808F31C + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._427 @cond_branch +._426: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._429: + .align 2, 0 +._428: + .word gUnknown_Debug_083C457C + .word gUnknown_Debug_083C4586 + + thumb_func_end debug_sub_808DF04 + + thumb_func_start debug_sub_808DF64 +debug_sub_808DF64: + push {r4, r5, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._432 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._430 @cond_branch + mov r5, #0x1 + b ._431 +._433: + .align 2, 0 +._432: + .word gMain +._430: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._434 @cond_branch + ldr r5, ._435 @ 0xffff +._431: + ldr r1, ._435 + 4 @ gUnknown_Debug_083C4586 + lsl r0, r2, #0x3 + add r0, r0, r2 + add r0, r0, r3 + lsl r0, r0, #0x1 + add r0, r0, r1 + ldrh r4, [r0] + add r0, r4, #0 + bl VarGet + add r1, r0, #0 + add r1, r5, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r4, #0 + bl VarSet +._434: + pop {r4, r5} + pop {r0} + bx r0 +._436: + .align 2, 0 +._435: + .word 0xffff + .word gUnknown_Debug_083C4586 + + thumb_func_end debug_sub_808DF64 + + thumb_func_start debug_sub_808DFC0 +debug_sub_808DFC0: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + mov r3, #0xd + bl Menu_DrawStdWindowFrame + ldr r3, ._437 @ gUnknown_Debug_083C377C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x6 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x6 + bl InitMenu + ldr r1, ._437 + 4 @ gMenuCallback + ldr r0, ._437 + 8 @ debug_sub_808E010 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._438: + .align 2, 0 +._437: + .word gUnknown_Debug_083C377C + .word gMenuCallback + .word debug_sub_808E010+1 + + thumb_func_end debug_sub_808DFC0 + + thumb_func_start debug_sub_808E010 +debug_sub_808E010: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._439 @cond_branch + mov r0, #0x0 + b ._442 +._439: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._441 @cond_branch + ldr r2, ._443 @ gMenuCallback + ldr r0, ._443 + 4 @ gUnknown_Debug_083C377C + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._442 +._444: + .align 2, 0 +._443: + .word gMenuCallback + .word gUnknown_Debug_083C377C +._441: + bl CloseMenu + mov r0, #0x1 +._442: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808E010 + + thumb_func_start debug_sub_808E054 +debug_sub_808E054: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xd + bl Menu_DrawStdWindowFrame + ldr r3, ._445 @ gUnknown_Debug_083C3AA0 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x6 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x6 + bl InitMenu + ldr r0, ._445 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._445 + 8 @ gMenuCallback + ldr r0, ._445 + 12 @ debug_sub_808E264 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._446: + .align 2, 0 +._445: + .word gUnknown_Debug_083C3AA0 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E264+1 + + thumb_func_end debug_sub_808E054 + + thumb_func_start debug_sub_808E0AC +debug_sub_808E0AC: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r3, ._447 @ gUnknown_Debug_83C3AE0 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x5 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x5 + bl InitMenu + ldr r1, ._447 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._447 + 8 @ gMenuCallback + ldr r0, ._447 + 12 @ debug_sub_808E264 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._448: + .align 2, 0 +._447: + .word gUnknown_Debug_83C3AE0 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E264+1 + + thumb_func_end debug_sub_808E0AC + + thumb_func_start debug_sub_808E104 +debug_sub_808E104: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._449 @ gUnknown_Debug_83C3B28 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._449 + 4 @ gDebug_0300070F + mov r0, #0x2 + strb r0, [r1] + ldr r1, ._449 + 8 @ gMenuCallback + ldr r0, ._449 + 12 @ debug_sub_808E264 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._450: + .align 2, 0 +._449: + .word gUnknown_Debug_83C3B28 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E264+1 + + thumb_func_end debug_sub_808E104 + + thumb_func_start debug_sub_808E15C +debug_sub_808E15C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + ldr r3, ._451 @ gUnknown_Debug_83C3B70 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x2 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x2 + bl InitMenu + ldr r1, ._451 + 4 @ gDebug_0300070F + mov r0, #0x3 + strb r0, [r1] + ldr r1, ._451 + 8 @ gMenuCallback + ldr r0, ._451 + 12 @ debug_sub_808E264 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._452: + .align 2, 0 +._451: + .word gUnknown_Debug_83C3B70 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E264+1 + + thumb_func_end debug_sub_808E15C + + thumb_func_start debug_sub_808E1B4 +debug_sub_808E1B4: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._453 @ gUnknown_Debug_83C3BB8 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._453 + 4 @ gDebug_0300070F + mov r0, #0x4 + strb r0, [r1] + ldr r1, ._453 + 8 @ gMenuCallback + ldr r0, ._453 + 12 @ debug_sub_808E264 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._454: + .align 2, 0 +._453: + .word gUnknown_Debug_83C3BB8 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E264+1 + + thumb_func_end debug_sub_808E1B4 + + thumb_func_start debug_sub_808E20C +debug_sub_808E20C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xd + bl Menu_DrawStdWindowFrame + ldr r3, ._455 @ gUnknown_Debug_83C3C00 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x6 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x6 + bl InitMenu + ldr r1, ._455 + 4 @ gDebug_0300070F + mov r0, #0x5 + strb r0, [r1] + ldr r1, ._455 + 8 @ gMenuCallback + ldr r0, ._455 + 12 @ debug_sub_808E264 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._456: + .align 2, 0 +._455: + .word gUnknown_Debug_83C3C00 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E264+1 + + thumb_func_end debug_sub_808E20C + + thumb_func_start debug_sub_808E264 +debug_sub_808E264: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._460 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808E310 + ldrb r0, [r5] + bl debug_sub_808E2B0 + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._457 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._458 @cond_branch +._457: + mov r0, #0x0 + b ._459 +._461: + .align 2, 0 +._460: + .word gDebug_0300070F +._458: + bl CloseMenu + mov r0, #0x1 +._459: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808E264 + + thumb_func_start debug_sub_808E2B0 +debug_sub_808E2B0: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._464 @ gUnknown_Debug_083C3C48 + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._462 @cond_branch + ldr r0, ._464 + 4 @ gUnknown_Debug_83C3C4E + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._463: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl VarGet + add r2, r0, #0 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + mov r0, #0x18 + add r1, r4, #0 + bl debug_sub_808F31C + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._463 @cond_branch +._462: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._465: + .align 2, 0 +._464: + .word gUnknown_Debug_083C3C48 + .word gUnknown_Debug_83C3C4E + + thumb_func_end debug_sub_808E2B0 + + thumb_func_start debug_sub_808E310 +debug_sub_808E310: + push {r4, r5, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._468 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._466 @cond_branch + mov r5, #0x1 + b ._467 +._469: + .align 2, 0 +._468: + .word gMain +._466: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._470 @cond_branch + ldr r5, ._471 @ 0xffff +._467: + ldr r1, ._471 + 4 @ gUnknown_Debug_83C3C4E + lsl r0, r2, #0x3 + add r0, r0, r2 + add r0, r0, r3 + lsl r0, r0, #0x1 + add r0, r0, r1 + ldrh r4, [r0] + add r0, r4, #0 + bl VarGet + add r1, r0, #0 + add r1, r5, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r4, #0 + bl VarSet +._470: + pop {r4, r5} + pop {r0} + bx r0 +._472: + .align 2, 0 +._471: + .word 0xffff + .word gUnknown_Debug_83C3C4E + + thumb_func_end debug_sub_808E310 + + thumb_func_start debug_sub_808E36C +debug_sub_808E36C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r3, ._473 @ gUnknown_Debug_083C32AC + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x5 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x5 + bl InitMenu + ldr r1, ._473 + 4 @ gMenuCallback + ldr r0, ._473 + 8 @ debug_sub_808E3BC + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._474: + .align 2, 0 +._473: + .word gUnknown_Debug_083C32AC + .word gMenuCallback + .word debug_sub_808E3BC+1 + + thumb_func_end debug_sub_808E36C + + thumb_func_start debug_sub_808E3BC +debug_sub_808E3BC: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._475 @cond_branch + mov r0, #0x0 + b ._478 +._475: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._477 @cond_branch + ldr r2, ._479 @ gMenuCallback + ldr r0, ._479 + 4 @ gUnknown_Debug_083C32AC + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._478 +._480: + .align 2, 0 +._479: + .word gMenuCallback + .word gUnknown_Debug_083C32AC +._477: + bl CloseMenu + mov r0, #0x1 +._478: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808E3BC + + thumb_func_start debug_sub_808E400 +debug_sub_808E400: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + ldr r3, ._481 @ gUnknown_Debug_083C347C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x3 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x3 + bl InitMenu + ldr r0, ._481 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._481 + 8 @ gMenuCallback + ldr r0, ._481 + 12 @ debug_sub_808E5B8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._482: + .align 2, 0 +._481: + .word gUnknown_Debug_083C347C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E5B8+1 + + thumb_func_end debug_sub_808E400 + + thumb_func_start debug_sub_808E458 +debug_sub_808E458: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + ldr r3, ._483 @ gUnknown_Debug_083C3494 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x2 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x2 + bl InitMenu + ldr r1, ._483 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._483 + 8 @ gMenuCallback + ldr r0, ._483 + 12 @ debug_sub_808E5B8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._484: + .align 2, 0 +._483: + .word gUnknown_Debug_083C3494 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E5B8+1 + + thumb_func_end debug_sub_808E458 + + thumb_func_start debug_sub_808E4B0 +debug_sub_808E4B0: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xd + bl Menu_DrawStdWindowFrame + ldr r3, ._485 @ gUnknown_Debug_083C34A4 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x6 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x6 + bl InitMenu + ldr r1, ._485 + 4 @ gDebug_0300070F + mov r0, #0x2 + strb r0, [r1] + ldr r1, ._485 + 8 @ gMenuCallback + ldr r0, ._485 + 12 @ debug_sub_808E5B8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._486: + .align 2, 0 +._485: + .word gUnknown_Debug_083C34A4 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E5B8+1 + + thumb_func_end debug_sub_808E4B0 + + thumb_func_start debug_sub_808E508 +debug_sub_808E508: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._487 @ gUnknown_Debug_083C34D4 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r1, ._487 + 4 @ gDebug_0300070F + mov r0, #0x3 + strb r0, [r1] + ldr r1, ._487 + 8 @ gMenuCallback + ldr r0, ._487 + 12 @ debug_sub_808E5B8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._488: + .align 2, 0 +._487: + .word gUnknown_Debug_083C34D4 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E5B8+1 + + thumb_func_end debug_sub_808E508 + + thumb_func_start debug_sub_808E560 +debug_sub_808E560: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xb + bl Menu_DrawStdWindowFrame + ldr r3, ._489 @ gUnknown_Debug_083C351C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x5 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x5 + bl InitMenu + ldr r1, ._489 + 4 @ gDebug_0300070F + mov r0, #0x4 + strb r0, [r1] + ldr r1, ._489 + 8 @ gMenuCallback + ldr r0, ._489 + 12 @ debug_sub_808E5B8 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._490: + .align 2, 0 +._489: + .word gUnknown_Debug_083C351C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E5B8+1 + + thumb_func_end debug_sub_808E560 + + thumb_func_start debug_sub_808E5B8 +debug_sub_808E5B8: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._494 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808E604 + ldrb r0, [r5] + bl debug_sub_808E660 + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._491 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._492 @cond_branch +._491: + mov r0, #0x0 + b ._493 +._495: + .align 2, 0 +._494: + .word gDebug_0300070F +._492: + bl CloseMenu + mov r0, #0x1 +._493: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808E5B8 + + thumb_func_start debug_sub_808E604 +debug_sub_808E604: + push {r4, r5, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._498 @ gMain + ldrh r1, [r0, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._496 @cond_branch + mov r5, #0x1 + b ._497 +._499: + .align 2, 0 +._498: + .word gMain +._496: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._500 @cond_branch + ldr r5, ._501 @ 0xffff +._497: + ldr r1, ._501 + 4 @ gUnknown_Debug_083C354A + lsl r0, r2, #0x3 + add r0, r0, r2 + add r0, r0, r3 + lsl r0, r0, #0x1 + add r0, r0, r1 + ldrh r4, [r0] + add r0, r4, #0 + bl VarGet + add r1, r0, #0 + add r1, r5, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r4, #0 + bl VarSet +._500: + pop {r4, r5} + pop {r0} + bx r0 +._502: + .align 2, 0 +._501: + .word 0xffff + .word gUnknown_Debug_083C354A + + thumb_func_end debug_sub_808E604 + + thumb_func_start debug_sub_808E660 +debug_sub_808E660: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._505 @ gUnknown_Debug_083C3544 + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._503 @cond_branch + ldr r0, ._505 + 4 @ gUnknown_Debug_083C354A + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._504: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl VarGet + add r2, r0, #0 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + mov r0, #0x18 + add r1, r4, #0 + bl debug_sub_808F31C + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._504 @cond_branch +._503: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._506: + .align 2, 0 +._505: + .word gUnknown_Debug_083C3544 + .word gUnknown_Debug_083C354A + + thumb_func_end debug_sub_808E660 + + thumb_func_start debug_sub_808E6C0 +debug_sub_808E6C0: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + ldr r3, ._507 @ gUnknown_Debug_083C4644 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x2 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x2 + bl InitMenu + ldr r1, ._507 + 4 @ gMenuCallback + ldr r0, ._507 + 8 @ debug_sub_808E710 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._508: + .align 2, 0 +._507: + .word gUnknown_Debug_083C4644 + .word gMenuCallback + .word debug_sub_808E710+1 + + thumb_func_end debug_sub_808E6C0 + + thumb_func_start debug_sub_808E710 +debug_sub_808E710: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._509 @cond_branch + mov r0, #0x0 + b ._512 +._509: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._511 @cond_branch + ldr r2, ._513 @ gMenuCallback + ldr r0, ._513 + 4 @ gUnknown_Debug_083C4644 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._512 +._514: + .align 2, 0 +._513: + .word gMenuCallback + .word gUnknown_Debug_083C4644 +._511: + bl CloseMenu + mov r0, #0x1 +._512: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808E710 + + thumb_func_start debug_sub_808E754 +debug_sub_808E754: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._515 @ gUnknown_Debug_083C470C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r0, ._515 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._515 + 8 @ gMenuCallback + ldr r0, ._515 + 12 @ debug_sub_808E804 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._516: + .align 2, 0 +._515: + .word gUnknown_Debug_083C470C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E804+1 + + thumb_func_end debug_sub_808E754 + + thumb_func_start debug_sub_808E7AC +debug_sub_808E7AC: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r3, ._517 @ gUnknown_Debug_083C4754C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x7 + bl InitMenu + ldr r1, ._517 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._517 + 8 @ gMenuCallback + ldr r0, ._517 + 12 @ debug_sub_808E804 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._518: + .align 2, 0 +._517: + .word gUnknown_Debug_083C4754C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808E804+1 + + thumb_func_end debug_sub_808E7AC + + thumb_func_start debug_sub_808E804 +debug_sub_808E804: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._522 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808E850 + ldrb r0, [r5] + bl debug_sub_808E8AC + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._519 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._520 @cond_branch +._519: + mov r0, #0x0 + b ._521 +._523: + .align 2, 0 +._522: + .word gDebug_0300070F +._520: + bl CloseMenu + mov r0, #0x1 +._521: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808E804 + + thumb_func_start debug_sub_808E850 +debug_sub_808E850: + push {r4, r5, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._526 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._524 @cond_branch + mov r5, #0x1 + b ._525 +._527: + .align 2, 0 +._526: + .word gMain +._524: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._528 @cond_branch + ldr r5, ._529 @ 0xffff +._525: + ldr r1, ._529 + 4 @ gUnknown_Debug_083C478E + lsl r0, r2, #0x3 + add r0, r0, r2 + add r0, r0, r3 + lsl r0, r0, #0x1 + add r0, r0, r1 + ldrh r4, [r0] + add r0, r4, #0 + bl VarGet + add r1, r0, #0 + add r1, r5, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r4, #0 + bl VarSet +._528: + pop {r4, r5} + pop {r0} + bx r0 +._530: + .align 2, 0 +._529: + .word 0xffff + .word gUnknown_Debug_083C478E + + thumb_func_end debug_sub_808E850 + + thumb_func_start debug_sub_808E8AC +debug_sub_808E8AC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._533 @ gUnknown_Debug_083C478C + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._531 @cond_branch + ldr r0, ._533 + 4 @ gUnknown_Debug_083C478E + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._532: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl VarGet + add r2, r0, #0 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + mov r0, #0x18 + add r1, r4, #0 + bl debug_sub_808F31C + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._532 @cond_branch +._531: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._534: + .align 2, 0 +._533: + .word gUnknown_Debug_083C478C + .word gUnknown_Debug_083C478E + + thumb_func_end debug_sub_808E8AC + + thumb_func_start debug_sub_808E90C +debug_sub_808E90C: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x18 + mov r3, #0x5 + bl Menu_DrawStdWindowFrame + ldr r3, ._535 @ gUnknown_Debug_083C35C4 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x2 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x2 + bl InitMenu + ldr r1, ._535 + 4 @ gMenuCallback + ldr r0, ._535 + 8 @ debug_sub_808E95C + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._536: + .align 2, 0 +._535: + .word gUnknown_Debug_083C35C4 + .word gMenuCallback + .word debug_sub_808E95C+1 + + thumb_func_end debug_sub_808E90C + + thumb_func_start debug_sub_808E95C +debug_sub_808E95C: + push {lr} + bl Menu_ProcessInput + lsl r0, r0, #0x18 + asr r1, r0, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r1, r0 + bne ._537 @cond_branch + mov r0, #0x0 + b ._540 +._537: + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._539 @cond_branch + ldr r2, ._541 @ gMenuCallback + ldr r0, ._541 + 4 @ gUnknown_Debug_083C35C4 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r0, [r1] + str r0, [r2] + mov r0, #0x0 + b ._540 +._542: + .align 2, 0 +._541: + .word gMenuCallback + .word gUnknown_Debug_083C35C4 +._539: + bl CloseMenu + mov r0, #0x1 +._540: + pop {r1} + bx r1 + + thumb_func_end debug_sub_808E95C + + thumb_func_start debug_sub_808E9A0 +debug_sub_808E9A0: + push {r4, lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r3, ._543 @ gUnknown_Debug_083C369C + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x9 + bl Menu_PrintItems + mov r4, #0x0 + str r4, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x9 + bl InitMenu + ldr r0, ._543 + 4 @ gDebug_0300070F + strb r4, [r0] + ldr r1, ._543 + 8 @ gMenuCallback + ldr r0, ._543 + 12 @ debug_sub_808EA50 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r4} + pop {r1} + bx r1 +._544: + .align 2, 0 +._543: + .word gUnknown_Debug_083C369C + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808EA50+1 + + thumb_func_end debug_sub_808E9A0 + + thumb_func_start debug_sub_808E9F8 +debug_sub_808E9F8: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r3, ._545 @ gUnknown_Debug_083C36E4 + mov r0, #0x2 + mov r1, #0x1 + mov r2, #0x7 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0x7 + bl InitMenu + ldr r1, ._545 + 4 @ gDebug_0300070F + mov r0, #0x1 + strb r0, [r1] + ldr r1, ._545 + 8 @ gMenuCallback + ldr r0, ._545 + 12 @ debug_sub_808EA50 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._546: + .align 2, 0 +._545: + .word gUnknown_Debug_083C36E4 + .word gDebug_0300070F + .word gMenuCallback + .word debug_sub_808EA50+1 + + thumb_func_end debug_sub_808E9F8 + + thumb_func_start debug_sub_808EA50 +debug_sub_808EA50: + push {r4, r5, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + add r1, r0, #0 + ldr r5, ._550 @ gDebug_0300070F + ldrb r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl debug_sub_808EAFC + ldrb r0, [r5] + bl debug_sub_808EA9C + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._547 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._548 @cond_branch +._547: + mov r0, #0x0 + b ._549 +._551: + .align 2, 0 +._550: + .word gDebug_0300070F +._548: + bl CloseMenu + mov r0, #0x1 +._549: + pop {r4, r5} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808EA50 + + thumb_func_start debug_sub_808EA9C +debug_sub_808EA9C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r5, #0x0 + ldr r0, ._554 @ gUnknown_Debug_083C371C + add r0, r1, r0 + ldrb r2, [r0] + cmp r5, r2 + bcs ._552 @cond_branch + ldr r0, ._554 + 4 @ gUnknown_Debug_083C371E + mov r8, r0 + lsl r0, r1, #0x3 + add r0, r0, r1 + lsl r7, r0, #0x1 + add r6, r2, #0 +._553: + lsl r0, r5, #0x1 + add r4, r0, #1 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + add r0, r0, r7 + add r0, r0, r8 + ldrh r0, [r0] + bl VarGet + add r2, r0, #0 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + mov r0, #0x18 + add r1, r4, #0 + bl debug_sub_808F31C + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + bcc ._553 @cond_branch +._552: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._555: + .align 2, 0 +._554: + .word gUnknown_Debug_083C371C + .word gUnknown_Debug_083C371E + + thumb_func_end debug_sub_808EA9C + + thumb_func_start debug_sub_808EAFC +debug_sub_808EAFC: + push {r4, r5, lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + ldr r0, ._558 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._556 @cond_branch + mov r5, #0x1 + b ._557 +._559: + .align 2, 0 +._558: + .word gMain +._556: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._560 @cond_branch + ldr r5, ._561 @ 0xffff +._557: + ldr r1, ._561 + 4 @ gUnknown_Debug_083C371E + lsl r0, r2, #0x3 + add r0, r0, r2 + add r0, r0, r3 + lsl r0, r0, #0x1 + add r0, r0, r1 + ldrh r4, [r0] + add r0, r4, #0 + bl VarGet + add r1, r0, #0 + add r1, r5, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r4, #0 + bl VarSet +._560: + pop {r4, r5} + pop {r0} + bx r0 +._562: + .align 2, 0 +._561: + .word 0xffff + .word gUnknown_Debug_083C371E + + thumb_func_end debug_sub_808EAFC + + thumb_func_start debug_sub_808EB58 +debug_sub_808EB58: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xc + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._563 @ gUnknown_Debug_083C47B2 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r3, ._563 + 4 @ gUnknown_Debug_083C47F0 + mov r0, #0x2 + mov r1, #0x3 + mov r2, #0x8 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x8 + bl InitMenu + ldr r1, ._563 + 8 @ gMenuCallback + ldr r0, ._563 + 12 @ debug_sub_808EC10 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._564: + .align 2, 0 +._563: + .word gUnknown_Debug_083C47B2 + .word gUnknown_Debug_083C47F0 + .word gMenuCallback + .word debug_sub_808EC10+1 + + thumb_func_end debug_sub_808EB58 + + thumb_func_start debug_sub_808EBB4 +debug_sub_808EBB4: + push {lr} + add sp, sp, #0xfffffff8 + bl Menu_EraseScreen + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xd + mov r3, #0xd + bl Menu_DrawStdWindowFrame + ldr r0, ._565 @ gUnknown_Debug_083C4830 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r3, ._565 + 4 @ gUnknown_Debug_083C4888 + mov r0, #0x2 + mov r1, #0x3 + mov r2, #0x5 + bl Menu_PrintItems + mov r0, #0x0 + str r0, [sp] + mov r0, #0xc + str r0, [sp, #0x4] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x5 + bl InitMenu + ldr r1, ._565 + 8 @ gMenuCallback + ldr r0, ._565 + 12 @ debug_sub_808EC5C + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x8 + pop {r1} + bx r1 +._566: + .align 2, 0 +._565: + .word gUnknown_Debug_083C4830 + .word gUnknown_Debug_083C4888 + .word gMenuCallback + .word debug_sub_808EC5C+1 + + thumb_func_end debug_sub_808EBB4 + + thumb_func_start debug_sub_808EC10 +debug_sub_808EC10: + push {r4, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._568 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._568 @cond_branch + ldr r1, ._570 @ gSaveBlock1 + lsl r0, r2, #0x18 + asr r0, r0, #0x18 + ldr r2, ._570 + 4 @ 0x13c8 + add r1, r1, r2 + strh r0, [r1] + bl CloseMenu + mov r0, #0x1 + b ._569 +._571: + .align 2, 0 +._570: + .word gSaveBlock1 + .word 0x13c8 +._568: + mov r0, #0x0 +._569: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808EC10 + + thumb_func_start debug_sub_808EC5C +debug_sub_808EC5C: + push {r4, lr} + bl Menu_ProcessInput + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl Menu_GetCursorPos + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + lsl r4, r4, #0x18 + asr r4, r4, #0x18 + mov r0, #0x2 + neg r0, r0 + cmp r4, r0 + beq ._573 @cond_branch + mov r0, #0x1 + neg r0, r0 + cmp r4, r0 + beq ._573 @cond_branch + ldr r0, ._575 @ 0x40a7 + lsl r1, r1, #0x18 + asr r1, r1, #0x8 + lsr r1, r1, #0x10 + bl VarSet + bl CloseMenu + mov r0, #0x1 + b ._574 +._576: + .align 2, 0 +._575: + .word 0x40a7 +._573: + mov r0, #0x0 +._574: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_sub_808EC5C + + thumb_func_start debug_sub_808ECA4 +debug_sub_808ECA4: + push {lr} + add sp, sp, #0xfffffffc + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r1, ._577 @ gMenuCallback + ldr r0, ._577 + 4 @ debug_sub_808ECD0 + str r0, [r1] + mov r0, #0x0 + add sp, sp, #0x4 + pop {r1} + bx r1 +._578: + .align 2, 0 +._577: + .word gMenuCallback + .word debug_sub_808ECD0+1 + + thumb_func_end debug_sub_808ECA4 + + thumb_func_start debug_sub_808ECD0 +debug_sub_808ECD0: + push {lr} + bl UpdatePaletteFade + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._579 @cond_branch + mov r0, #0x0 + b ._580 +._579: + bl CloseMenu + mov r0, #0x2 + bl debug_sub_808F168 + ldr r0, ._581 @ CB2_ContestPainting + bl SetMainCallback2 + ldr r1, ._581 + 4 @ gMain + ldr r0, ._581 + 8 @ debug_sub_808B868 + str r0, [r1, #0x8] + mov r0, #0x1 +._580: + pop {r1} + bx r1 +._582: + .align 2, 0 +._581: + .word CB2_ContestPainting+1 + .word gMain + .word debug_sub_808B868+1 + + thumb_func_end debug_sub_808ECD0 + + thumb_func_start TomomichiDebugMenu_Config +TomomichiDebugMenu_Config: + mov r0, #0x0 + bx lr + + thumb_func_end TomomichiDebugMenu_Config + + thumb_func_start debug_sub_808ED0C +debug_sub_808ED0C: + push {lr} + ldr r2, ._590 @ gMain + ldrh r1, [r2, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._584 @cond_branch + ldr r1, ._590 + 4 @ gDebug_03000700 + ldrh r0, [r1] + cmp r0, #0x1 + beq ._584 @cond_branch + sub r0, r0, #0x1 + strh r0, [r1] +._584: + ldrh r1, [r2, #0x30] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._586 @cond_branch + ldr r3, ._590 + 4 @ gDebug_03000700 + ldrh r1, [r3] + ldr r0, ._590 + 8 @ 0x19b + cmp r1, r0 + beq ._586 @cond_branch + add r0, r1, #1 + strh r0, [r3] +._586: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._587 @cond_branch + ldr r1, ._590 + 4 @ gDebug_03000700 + ldrh r0, [r1] + cmp r0, #0xa + bls ._588 @cond_branch + sub r0, r0, #0xa + b ._589 +._591: + .align 2, 0 +._590: + .word gMain + .word gDebug_03000700 + .word 0x19b +._588: + mov r0, #0x1 +._589: + strh r0, [r1] +._587: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._592 @cond_branch + ldr r2, ._595 @ gDebug_03000700 + ldrh r1, [r2] + ldr r0, ._595 + 4 @ 0x191 + cmp r1, r0 + bhi ._593 @cond_branch + add r0, r1, #0 + add r0, r0, #0xa + b ._594 +._596: + .align 2, 0 +._595: + .word gDebug_03000700 + .word 0x191 +._593: + ldr r1, ._597 @ 0x19b + add r0, r1, #0 +._594: + strh r0, [r2] +._592: + pop {r0} + bx r0 +._598: + .align 2, 0 +._597: + .word 0x19b + + thumb_func_end debug_sub_808ED0C + + thumb_func_start debug_sub_808ED9C +debug_sub_808ED9C: + push {lr} + ldr r2, ._606 @ gMain + ldrh r1, [r2, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._600 @cond_branch + ldr r1, ._606 + 4 @ gDebug_03000708 + ldr r0, [r1] + cmp r0, #0 + beq ._600 @cond_branch + sub r0, r0, #0x1 + str r0, [r1] +._600: + ldrh r1, [r2, #0x30] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._602 @cond_branch + ldr r3, ._606 + 4 @ gDebug_03000708 + ldr r1, [r3] + mov r0, #0x1 + neg r0, r0 + cmp r1, r0 + beq ._602 @cond_branch + add r0, r1, #1 + str r0, [r3] +._602: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._603 @cond_branch + ldr r1, ._606 + 4 @ gDebug_03000708 + ldr r0, [r1] + cmp r0, #0xf + bls ._604 @cond_branch + sub r0, r0, #0x10 + b ._605 +._607: + .align 2, 0 +._606: + .word gMain + .word gDebug_03000708 +._604: + mov r0, #0x0 +._605: + str r0, [r1] +._603: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._608 @cond_branch + ldr r3, ._611 @ gDebug_03000708 + ldr r1, [r3] + mov r0, #0x11 + neg r0, r0 + cmp r1, r0 + bhi ._609 @cond_branch + add r0, r1, #0 + add r0, r0, #0x10 + b ._610 +._612: + .align 2, 0 +._611: + .word gDebug_03000708 +._609: + mov r0, #0x1 + neg r0, r0 +._610: + str r0, [r3] +._608: + ldrh r2, [r2, #0x2e] + mov r1, #0xc0 + lsl r1, r1, #0x2 + add r0, r1, #0 + and r0, r0, r2 + cmp r0, r1 + bne ._613 @cond_branch + ldr r1, ._614 @ gDebug_03000708 + mov r0, #0x1 + neg r0, r0 + str r0, [r1] +._613: + pop {r0} + bx r0 +._615: + .align 2, 0 +._614: + .word gDebug_03000708 + + thumb_func_end debug_sub_808ED9C + + thumb_func_start debug_sub_808EE3C +debug_sub_808EE3C: + push {lr} + ldr r2, ._622 @ gMain + ldrh r1, [r2, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._617 @cond_branch + ldr r1, ._622 + 4 @ gDebug_0300070C + ldrb r0, [r1] + cmp r0, #0x1 + beq ._617 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] +._617: + ldrh r1, [r2, #0x30] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._619 @cond_branch + ldr r1, ._622 + 4 @ gDebug_0300070C + ldrb r0, [r1] + cmp r0, #0x5 + beq ._619 @cond_branch + add r0, r0, #0x1 + strb r0, [r1] +._619: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._620 @cond_branch + ldr r1, ._622 + 4 @ gDebug_0300070C + mov r0, #0x1 + strb r0, [r1] +._620: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._621 @cond_branch + ldr r1, ._622 + 4 @ gDebug_0300070C + mov r0, #0x5 + strb r0, [r1] +._621: + pop {r0} + bx r0 +._623: + .align 2, 0 +._622: + .word gMain + .word gDebug_0300070C + + thumb_func_end debug_sub_808EE3C + + thumb_func_start debug_sub_808EE9C +debug_sub_808EE9C: + push {lr} + ldr r2, ._631 @ gMain + ldrh r1, [r2, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._625 @cond_branch + ldr r1, ._631 + 4 @ gDebug_0300070D + ldrb r0, [r1] + cmp r0, #0x1 + beq ._625 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] +._625: + ldrh r1, [r2, #0x30] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._627 @cond_branch + ldr r1, ._631 + 4 @ gDebug_0300070D + ldrb r0, [r1] + cmp r0, #0xf + beq ._627 @cond_branch + add r0, r0, #0x1 + strb r0, [r1] +._627: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._628 @cond_branch + ldr r1, ._631 + 4 @ gDebug_0300070D + ldrb r0, [r1] + cmp r0, #0xa + bls ._629 @cond_branch + sub r0, r0, #0xa + b ._630 +._632: + .align 2, 0 +._631: + .word gMain + .word gDebug_0300070D +._629: + mov r0, #0x0 +._630: + strb r0, [r1] +._628: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._633 @cond_branch + ldr r1, ._636 @ gDebug_0300070D + ldrb r0, [r1] + cmp r0, #0x5 + bhi ._634 @cond_branch + add r0, r0, #0xa + b ._635 +._637: + .align 2, 0 +._636: + .word gDebug_0300070D +._634: + mov r0, #0xf +._635: + strb r0, [r1] +._633: + pop {r0} + bx r0 + + thumb_func_end debug_sub_808EE9C + + thumb_func_start debug_sub_808EF14 +debug_sub_808EF14: + push {lr} + ldr r2, ._645 @ gMain + ldrh r1, [r2, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._639 @cond_branch + ldr r1, ._645 + 4 @ gDebug_0300070E + ldrb r0, [r1] + cmp r0, #0x1 + beq ._639 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] +._639: + ldrh r1, [r2, #0x30] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._641 @cond_branch + ldr r1, ._645 + 4 @ gDebug_0300070E + ldrb r0, [r1] + cmp r0, #0xf + beq ._641 @cond_branch + add r0, r0, #0x1 + strb r0, [r1] +._641: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._642 @cond_branch + ldr r1, ._645 + 4 @ gDebug_0300070E + ldrb r0, [r1] + cmp r0, #0xa + bls ._643 @cond_branch + sub r0, r0, #0xa + b ._644 +._646: + .align 2, 0 +._645: + .word gMain + .word gDebug_0300070E +._643: + mov r0, #0x0 +._644: + strb r0, [r1] +._642: + ldrh r1, [r2, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._647 @cond_branch + ldr r1, ._650 @ gDebug_0300070E + ldrb r0, [r1] + cmp r0, #0x5 + bhi ._648 @cond_branch + add r0, r0, #0xa + b ._649 +._651: + .align 2, 0 +._650: + .word gDebug_0300070E +._648: + mov r0, #0xf +._649: + strb r0, [r1] +._647: + pop {r0} + bx r0 + + thumb_func_end debug_sub_808EF14 + + thumb_func_start debug_sub_808EF8C +debug_sub_808EF8C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #0x2 + bgt ._653 @cond_branch + cmp r6, #0 + blt ._653 @cond_branch + mov r3, #0x0 + ldr r0, ._656 @ gDebug_03000708 + mov r8, r0 + ldr r4, ._656 + 4 @ gDebug_03000710 + mov r7, #0x7 + mov r5, #0xf +._658: + sub r0, r7, r3 + lsl r0, r0, #0x2 + mov r1, r8 + ldr r2, [r1] + LSR r2, r0 + and r2, r2, r5 + cmp r2, #0x9 + bhi ._654 @cond_branch + add r1, r3, r4 + add r0, r2, #0 + add r0, r0, #0xa1 + b ._655 +._657: + .align 2, 0 +._656: + .word gDebug_03000708 + .word gDebug_03000710 +._654: + add r1, r3, r4 + add r0, r2, #0 + sub r0, r0, #0x4f +._655: + strb r0, [r1] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0x7 + bls ._658 @cond_branch + ldr r0, ._666 @ gDebug_03000710 + mov r1, #0xff + strb r1, [r0, #0x8] + mov r1, #0xc + mov r2, #0x5 + bl Menu_PrintText +._653: + mov r3, #0x0 + ldr r7, ._666 @ gDebug_03000710 + ldr r5, ._666 + 4 @ gDebug_03000700 + ldr r2, ._666 + 8 @ gSpeciesNames + mov r8, r2 + add r4, r7, #0 + mov r2, #0x0 +._659: + add r1, r3, #1 + add r0, r1, r4 + strb r2, [r0] + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + cmp r3, #0x9 + bls ._659 @cond_branch + mov r3, #0x0 + ldrh r2, [r5] + mov r0, #0xb + add r1, r2, #0 + mul r1, r1, r0 + mov r2, r8 + add r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq ._661 @cond_branch + ldr r0, ._666 @ gDebug_03000710 + mov ip, r0 + mov r5, r8 + add r4, r1, #0 +._662: + add r1, r3, #1 + mov r0, ip + add r2, r1, r0 + add r0, r3, r4 + add r0, r0, r5 + ldrb r0, [r0] + strb r0, [r2] + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + add r0, r3, r4 + add r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0xff + beq ._661 @cond_branch + cmp r3, #0x9 + bls ._662 @cond_branch +._661: + mov r0, #0xb1 + strb r0, [r7] + mov r0, #0xb2 + strb r0, [r7, #0xb] + mov r0, #0xff + strb r0, [r7, #0xc] + cmp r6, #0x2 + bgt ._664 @cond_branch + cmp r6, #0 + blt ._664 @cond_branch + add r0, r7, #0 + mov r1, #0x8 + mov r2, #0x1 + bl Menu_PrintText + b ._665 +._667: + .align 2, 0 +._666: + .word gDebug_03000710 + .word gDebug_03000700 + .word gSpeciesNames +._664: + ldr r0, ._672 @ gDebug_03000710 + mov r1, #0xc + mov r2, #0x1 + bl Menu_PrintText +._665: + ldr r5, ._672 @ gDebug_03000710 + mov r0, #0xff + strb r0, [r5, #0x3] + ldr r4, ._672 + 4 @ gDebug_03000700 + ldrh r0, [r4] + mov r1, #0x64 + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5] + ldrh r0, [r4] + mov r1, #0x64 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xa + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x1] + ldrh r0, [r4] + mov r1, #0xa + bl __umodsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x2] + add r0, r5, #0 + mov r1, #0xc + mov r2, #0x3 + bl Menu_PrintText + cmp r6, #0x1 + beq ._668 @cond_branch + cmp r6, #0x1 + bgt ._669 @cond_branch + cmp r6, #0 + beq ._670 @cond_branch + b ._679 +._673: + .align 2, 0 +._672: + .word gDebug_03000710 + .word gDebug_03000700 +._669: + cmp r6, #0x2 + beq ._674 @cond_branch + b ._679 +._670: + ldr r4, ._677 @ gDebug_0300070C + b ._676 +._678: + .align 2, 0 +._677: + .word gDebug_0300070C +._668: + ldr r4, ._680 @ gDebug_0300070D +._676: + ldrb r0, [r4] + mov r1, #0x64 + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5] + ldrb r0, [r4] + mov r1, #0x64 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0xa + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x1] + ldrb r0, [r4] + mov r1, #0xa + bl __umodsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x2] + add r0, r5, #0 + mov r1, #0xc + mov r2, #0x7 + bl Menu_PrintText + b ._679 +._681: + .align 2, 0 +._680: + .word gDebug_0300070D +._674: + ldr r4, ._682 @ gDebug_0300070E + ldrb r0, [r4] + mov r1, #0x64 + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5] + ldrb r0, [r4] + mov r1, #0x64 + bl __umodsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0xa + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x1] + ldrb r0, [r4] + mov r1, #0xa + bl __umodsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x2] + add r0, r5, #0 + mov r1, #0xc + mov r2, #0x7 + bl Menu_PrintText +._679: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._683: + .align 2, 0 +._682: + .word gDebug_0300070E + + thumb_func_end debug_sub_808EF8C + + thumb_func_start debug_sub_808F168 +debug_sub_808F168: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r4, ._686 @ 0x2015de0 + ldr r0, ._686 + 4 @ gDebug_03000700 + ldrh r0, [r0] + strh r0, [r4, #0x8] + ldr r0, ._686 + 8 @ gDebug_03000704 + ldr r0, [r0] + str r0, [r4, #0x4] + ldr r0, ._686 + 12 @ gDebug_03000708 + ldr r0, [r0] + str r0, [r4] + cmp r1, #0x5 + bls ._684 @cond_branch + b ._707 +._684: + lsl r0, r1, #0x2 + ldr r1, ._686 + 16 @ + add r0, r0, r1 + ldr r0, [r0] + mov pc, r0 +._687: + .align 2, 0 +._686: + .word 0x2015de0 + .word gDebug_03000700 + .word gDebug_03000704 + .word gDebug_03000708 + .word ._688 +._688: + .word ._689 + .word ._690 + .word ._691 + .word ._692 + .word ._693 + .word ._694 +._689: + ldr r0, ._696 @ 0x2000000 + ldr r2, ._696 + 4 @ 0x15ddf + add r1, r0, r2 + mov r2, #0x0 + strb r2, [r1] + ldr r1, ._696 + 8 @ 0x15dde + add r0, r0, r1 + strb r2, [r0] + ldr r0, ._696 + 12 @ gDebug_0300070C + ldrb r0, [r0] + sub r0, r0, #0x1 + strb r0, [r4, #0xa] + add r0, r4, #0 + add r0, r0, #0x16 + ldr r1, ._696 + 16 @ gUnknown_Debug_083C48BB + bl StringCopy + b ._704 +._697: + .align 2, 0 +._696: + .word 0x2000000 + .word 0x15ddf + .word 0x15dde + .word gDebug_0300070C + .word gUnknown_Debug_083C48BB +._690: + ldr r1, ._699 @ 0x2000000 + ldr r0, ._699 + 4 @ 0x15ddf + add r2, r1, r0 + mov r0, #0x0 + strb r0, [r2] + ldr r2, ._699 + 8 @ 0x15dde + add r1, r1, r2 + mov r0, #0x8 + strb r0, [r1] + ldr r0, ._699 + 12 @ gDebug_0300070D + ldrb r0, [r0] + sub r0, r0, #0x1 + b ._698 +._700: + .align 2, 0 +._699: + .word 0x2000000 + .word 0x15ddf + .word 0x15dde + .word gDebug_0300070D +._691: + ldr r1, ._702 @ 0x2000000 + ldr r0, ._702 + 4 @ 0x15ddf + add r2, r1, r0 + mov r0, #0x1 + strb r0, [r2] + ldr r2, ._702 + 8 @ 0x15dde + add r1, r1, r2 + mov r0, #0x8 + strb r0, [r1] + ldr r0, ._702 + 12 @ gDebug_0300070E + ldrb r0, [r0] + sub r0, r0, #0x1 + strb r0, [r4, #0xa] + b ._707 +._703: + .align 2, 0 +._702: + .word 0x2000000 + .word 0x15ddf + .word 0x15dde + .word gDebug_0300070E +._692: + ldr r1, ._705 @ 0x2000000 + ldr r2, ._705 + 4 @ 0x15ddf + add r0, r1, r2 + mov r2, #0x0 + strb r2, [r0] + ldr r0, ._705 + 8 @ 0x15dde + add r1, r1, r0 + mov r0, #0x8 + strb r0, [r1] + strb r2, [r4, #0xa] + b ._704 +._706: + .align 2, 0 +._705: + .word 0x2000000 + .word 0x15ddf + .word 0x15dde +._693: + ldr r1, ._708 @ 0x2000000 + ldr r0, ._708 + 4 @ 0x15ddf + add r2, r1, r0 + mov r0, #0x0 + strb r0, [r2] + ldr r2, ._708 + 8 @ 0x15dde + add r1, r1, r2 + mov r0, #0x8 + strb r0, [r1] + mov r0, #0x3 +._698: + strb r0, [r4, #0xa] +._704: + add r0, r4, #0 + add r0, r0, #0xb + ldr r1, ._708 + 12 @ gUnknown_Debug_083C48B0 + bl StringCopy + b ._707 +._709: + .align 2, 0 +._708: + .word 0x2000000 + .word 0x15ddf + .word 0x15dde + .word gUnknown_Debug_083C48B0 +._694: + ldr r1, ._710 @ 0x2000000 + ldr r0, ._710 + 4 @ 0x15ddf + add r2, r1, r0 + mov r0, #0x0 + strb r0, [r2] + ldr r2, ._710 + 8 @ 0x15dde + add r1, r1, r2 + mov r0, #0x8 + strb r0, [r1] + mov r0, #0x9 + strb r0, [r4, #0xa] + add r0, r4, #0 + add r0, r0, #0xb + ldr r1, ._710 + 12 @ gUnknown_Debug_083C48B0 + bl StringCopy +._707: + pop {r4} + pop {r0} + bx r0 +._711: + .align 2, 0 +._710: + .word 0x2000000 + .word 0x15ddf + .word 0x15dde + .word gUnknown_Debug_083C48B0 + + thumb_func_end debug_sub_808F168 + + thumb_func_start debug_sub_808F2E0 +debug_sub_808F2E0: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + lsl r1, r1, #0x18 + lsr r3, r1, #0x18 + lsl r2, r2, #0x18 + cmp r2, #0 + bne ._712 @cond_branch + ldr r1, ._714 @ gDebug_03000710 + mov r0, #0xa1 + b ._713 +._715: + .align 2, 0 +._714: + .word gDebug_03000710 +._712: + ldr r1, ._716 @ gDebug_03000710 + mov r0, #0xa2 +._713: + strb r0, [r1] + mov r0, #0xff + strb r0, [r1, #0x1] + add r0, r1, #0 + add r1, r4, #0 + add r2, r3, #0 + bl Menu_PrintText + pop {r4} + pop {r0} + bx r0 +._717: + .align 2, 0 +._716: + .word gDebug_03000710 + + thumb_func_end debug_sub_808F2E0 + + thumb_func_start debug_sub_808F31C +debug_sub_808F31C: + push {r4, r5, r6, lr} + mov r6, r9 + mov r5, r8 + push {r5, r6} + mov r8, r0 + mov r9, r1 + add r4, r2, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r8, r0 + mov r0, r9 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r9, r0 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + ldr r5, ._718 @ gDebug_03000710 + ldr r6, ._718 + 4 @ 0x2710 + add r0, r4, #0 + add r1, r6, #0 + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5] + add r0, r4, #0 + add r1, r6, #0 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r6, #0xfa + lsl r6, r6, #0x2 + add r1, r6, #0 + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x1] + add r0, r4, #0 + add r1, r6, #0 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0x64 + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x2] + add r0, r4, #0 + mov r1, #0x64 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xa + bl __udivsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x3] + add r0, r4, #0 + mov r1, #0xa + bl __umodsi3 + add r0, r0, #0xa1 + strb r0, [r5, #0x4] + mov r0, #0xff + strb r0, [r5, #0x5] + add r0, r5, #0 + mov r1, r8 + mov r2, r9 + bl Menu_PrintText + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._719: + .align 2, 0 +._718: + .word gDebug_03000710 + .word 0x2710 + + thumb_func_end debug_sub_808F31C + + thumb_func_start debug_nullsub_66 +debug_nullsub_66: + bx lr + + thumb_func_end debug_nullsub_66 + + .align 2, 0 + +.endif diff --git a/asm/unk_debug_menu_3.s b/asm/unk_debug_menu_3.s new file mode 100644 index 000000000..2e4bef06c --- /dev/null +++ b/asm/unk_debug_menu_3.s @@ -0,0 +1,747 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start debug_sub_813C404 +debug_sub_813C404: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._1 @ gUnknown_Debug_845DDB2 + ldr r4, ._1 + 4 @ gUnknown_Debug_845DAE1 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._2: + .align 2, 0 +._1: + .word gUnknown_Debug_845DDB2 + .word gUnknown_Debug_845DAE1 + + thumb_func_end debug_sub_813C404 + + thumb_func_start debug_sub_813C430 +debug_sub_813C430: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._3 @ gUnknown_Debug_845E402 + ldr r4, ._3 + 4 @ gUnknown_Debug_845E3E0 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._4: + .align 2, 0 +._3: + .word gUnknown_Debug_845E402 + .word gUnknown_Debug_845E3E0 + + thumb_func_end debug_sub_813C430 + + thumb_func_start debug_sub_813C45C +debug_sub_813C45C: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._5 @ gUnknown_Debug_845E443 + ldr r4, ._5 + 4 @ gUnknown_Debug_845E422 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._6: + .align 2, 0 +._5: + .word gUnknown_Debug_845E443 + .word gUnknown_Debug_845E422 + + thumb_func_end debug_sub_813C45C + + thumb_func_start debug_sub_813C488 +debug_sub_813C488: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._7 @ gUnknown_Debug_845E422 + ldr r4, ._7 + 4 @ gUnknown_Debug_845E402 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._8: + .align 2, 0 +._7: + .word gUnknown_Debug_845E422 + .word gUnknown_Debug_845E402 + + thumb_func_end debug_sub_813C488 + + thumb_func_start debug_sub_813C4B4 +debug_sub_813C4B4: + push {r4, lr} + ldr r4, ._9 @ gUnknown_Debug_845E619 + ldr r1, ._9 + 4 @ gUnknown_Debug_845E606 + sub r4, r4, r1 + add r2, r4, #0 + bl memcpy + add r0, r4, #0 + pop {r4} + pop {r1} + bx r1 +._10: + .align 2, 0 +._9: + .word gUnknown_Debug_845E619 + .word gUnknown_Debug_845E606 + + thumb_func_end debug_sub_813C4B4 + + thumb_func_start debug_sub_813C4D4 +debug_sub_813C4D4: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._11 @ gUnknown_Debug_845E712 + ldr r4, ._11 + 4 @ gUnknown_Debug_845E619 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_81261B4 + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._12: + .align 2, 0 +._11: + .word gUnknown_Debug_845E712 + .word gUnknown_Debug_845E619 + + thumb_func_end debug_sub_813C4D4 + + thumb_func_start debug_sub_813C500 +debug_sub_813C500: + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r5, ._13 @ gUnknown_Debug_845E797 + ldr r4, ._13 + 4 @ gUnknown_Debug_845E712 + sub r5, r5, r4 + add r1, r4, #0 + add r2, r5, #0 + bl memcpy + add r0, r6, #0 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r5, #0 + pop {r4, r5, r6} + pop {r1} + bx r1 +._14: + .align 2, 0 +._13: + .word gUnknown_Debug_845E797 + .word gUnknown_Debug_845E712 + + thumb_func_end debug_sub_813C500 + + thumb_func_start debug_sub_813C52C +debug_sub_813C52C: + push {r4, r5, r6, lr} + mov r6, r9 + mov r5, r8 + push {r5, r6} + mov r8, r0 + lsl r5, r1, #0x10 + lsr r0, r5, #0x10 + mov r9, r0 + ldr r6, ._15 @ gUnknown_Debug_845E7BB + ldr r4, ._15 + 4 @ gUnknown_Debug_845E797 + sub r6, r6, r4 + mov r0, r8 + add r1, r4, #0 + add r2, r6, #0 + bl memcpy + ldr r0, ._15 + 8 @ gUnknown_Debug_845E7B5 + sub r0, r0, r4 + add r0, r0, r8 + add r0, r0, #0x3 + mov r1, r9 + strb r1, [r0] + lsr r5, r5, #0x18 + strb r5, [r0, #0x1] + mov r0, r8 + add r1, r4, #0 + bl unref_sub_812620C + add r0, r6, #0 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6} + pop {r1} + bx r1 +._16: + .align 2, 0 +._15: + .word gUnknown_Debug_845E7BB + .word gUnknown_Debug_845E797 + .word gUnknown_Debug_845E7B5 + + thumb_func_end debug_sub_813C52C + + thumb_func_start debug_sub_813C580 +debug_sub_813C580: + push {lr} + mov r1, #0xd + bl debug_sub_813C52C + pop {r1} + bx r1 + + thumb_func_end debug_sub_813C580 + + thumb_func_start debug_sub_813C58C +debug_sub_813C58C: + push {lr} + mov r1, #0x4 + bl debug_sub_813C52C + pop {r1} + bx r1 + + thumb_func_end debug_sub_813C58C + + thumb_func_start debug_sub_813C598 +debug_sub_813C598: + push {lr} + mov r1, #0x85 + bl debug_sub_813C52C + pop {r1} + bx r1 + + thumb_func_end debug_sub_813C598 + + thumb_func_start debug_sub_813C5A4 +debug_sub_813C5A4: + push {lr} + ldr r1, ._17 @ 0x121 + bl debug_sub_813C52C + pop {r1} + bx r1 +._18: + .align 2, 0 +._17: + .word 0x121 + + thumb_func_end debug_sub_813C5A4 + + thumb_func_start debug_sub_813C5B4 +debug_sub_813C5B4: + push {r4, r5, r6, r7, lr} + add r4, r0, #0 + ldr r7, ._23 @ gSaveBlock1 + ldr r0, ._23 + 4 @ gUnknown_Debug_845DDD6 + ldr r1, ._23 + 8 @ gUnknown_Debug_845DDB2 + sub r0, r0, r1 + add r6, r0, r4 + ldr r0, ._23 + 12 @ gUnknown_Debug_845E306 + sub r5, r0, r1 + ldr r0, ._23 + 16 @ Str_842E23C + mov r1, #0x0 + mov r2, #0x0 + bl GetEnigmaBerryChecksum + mov r2, #0x0 + ldr r3, ._23 + 20 @ 0xfff + mov r1, #0x0 +._19: + add r0, r4, r2 + strb r1, [r0] + add r2, r2, #0x1 + cmp r2, r3 + ble ._19 @cond_branch + mov r2, #0x0 + cmp r2, r5 + bcs ._20 @cond_branch + ldr r3, ._23 + 8 @ gUnknown_Debug_845DDB2 +._21: + add r0, r4, r2 + add r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + add r2, r2, #0x1 + cmp r2, r5 + bcc ._21 @cond_branch +._20: + mov r2, #0x0 + ldr r3, ._23 + 24 @ 0x52f +._22: + add r0, r6, r2 + add r1, r7, r2 + ldrb r1, [r1] + strb r1, [r0] + add r2, r2, #0x1 + cmp r2, r3 + bls ._22 @cond_branch + bl ClearEnigmaBerries + ldr r1, ._23 + 8 @ gUnknown_Debug_845DDB2 + add r0, r4, #0 + bl unref_sub_81261B4 + add r0, r5, #0 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._24: + .align 2, 0 +._23: + .word gSaveBlock1+0x3160 + .word gUnknown_Debug_845DDD6 + .word gUnknown_Debug_845DDB2 + .word gUnknown_Debug_845E306 + .word Str_842E23C + .word 0xfff + .word 0x52f + + thumb_func_end debug_sub_813C5B4 + + thumb_func_start debug_sub_813C638 +debug_sub_813C638: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add sp, sp, #0xffffffec + mov r8, r0 + add r4, r1, #0 + add r5, r2, #0 + add r6, r3, #0 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + lsl r6, r6, #0x10 + lsr r6, r6, #0x10 + bl ZeroMonData + mov r0, #0x0 + str r0, [sp] + str r0, [sp, #0x4] + mov r0, #0x1 + str r0, [sp, #0x8] + ldr r0, ._25 @ 0x270f + str r0, [sp, #0xc] + mov r0, r8 + add r1, r4, #0 + add r2, r5, #0 + mov r3, #0x20 + bl CreateMon + ldr r2, ._25 + 4 @ Str_842E240 + mov r0, r8 + mov r1, #0x7 + bl SetMonData + ldr r2, ._25 + 8 @ Str_842E248 + mov r0, r8 + mov r1, #0x2 + bl SetMonData + str r6, [sp, #0x10] + mov r0, r8 + mov r1, #0xc + add r2, sp, #0x10 + bl SetMonData + add sp, sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 +._26: + .align 2, 0 +._25: + .word 0x270f + .word Str_842E240 + .word Str_842E248 + + thumb_func_end debug_sub_813C638 + + thumb_func_start debug_sub_813C6AC +debug_sub_813C6AC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffff8 + add r6, r0, #0 + add r5, r1, #0 + add r0, r5, #0 + bl ClearMailStruct + add r0, r6, #0 + mov r1, #0xc + bl GetMonData + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r8, r0 + bl ItemIsMail + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._27 @cond_branch + add r4, r5, #0 + add r4, r4, #0x12 + add r7, r5, #0 + add r7, r7, #0x1a + mov r1, #0x9 + add r0, r5, #0 + add r0, r0, #0x10 +._28: + strh r1, [r0] + sub r1, r1, #0x1 + sub r0, r0, #0x2 + cmp r0, r5 + bge ._28 @cond_branch + add r0, r6, #0 + mov r1, #0x7 + mov r2, sp + bl GetMonData + add r0, r4, #0 + mov r1, sp + mov r2, #0x8 + bl StringCopyN + add r0, r6, #0 + mov r1, #0x1 + bl GetMonData + add r1, r7, #0 + bl write_word_to_mem + add r0, r6, #0 + mov r1, #0xb + bl GetMonData + add r4, r0, #0 + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r6, #0 + mov r1, #0x0 + bl GetMonData + add r1, r0, #0 + add r0, r4, #0 + bl SpeciesToMailSpecies + strh r0, [r5, #0x1e] + mov r0, r8 + strh r0, [r5, #0x20] +._27: + add sp, sp, #0x8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_sub_813C6AC + + thumb_func_start debug_sub_813C740 +debug_sub_813C740: + push {r4, r5, r6, lr} + mov r6, sl + mov r5, r9 + mov r4, r8 + push {r4, r5, r6} + add sp, sp, #0xffffffd0 + add r6, r0, #0 + ldr r0, ._29 @ gUnknown_Debug_845E443 + mov r8, r0 + ldr r1, ._29 + 4 @ gUnknown_Debug_845E4EF + ldr r5, ._29 + 8 @ gEnemyParty + sub r1, r1, r0 + mov r9, r1 + add r0, r6, #0 + mov r1, r8 + mov r2, r9 + bl memcpy + add r0, r5, #0 + mov r1, #0x19 + mov r2, #0x5 + mov r3, #0x0 + bl debug_sub_813C638 + add r4, sp, #0x24 + mov r0, #0x1 + mov sl, r0 + mov r1, sl + strb r1, [r4] + add r0, r5, #0 + mov r1, #0x2d + add r2, r4, #0 + bl SetMonData + mov r0, #0x3 + strb r0, [r4] + add r0, r5, #0 + mov r1, #0x20 + add r2, r4, #0 + bl SetMonData + mov r0, #0xff + strb r0, [r4] + add r0, r5, #0 + mov r1, #0x23 + add r2, r4, #0 + bl SetMonData + ldr r1, ._29 + 12 @ Str_842E238 + add r0, r4, #0 + mov r2, #0xb + bl StringCopyN + add r0, r5, #0 + mov r1, #0x2 + add r2, r4, #0 + bl SetMonData + mov r0, sl + strb r0, [r4] + add r0, r5, #0 + mov r1, #0x3 + add r2, r4, #0 + bl SetMonData + ldr r0, ._29 + 16 @ gUnknown_Debug_845E467 + add r0, r6, r0 + mov r1, r8 + sub r0, r0, r1 + add r1, r5, #0 + mov r2, #0x64 + bl memcpy + ldr r0, ._29 + 20 @ gUnknown_Debug_845E4CB + add r6, r6, r0 + mov r0, r8 + sub r6, r6, r0 + add r0, r6, #0 + mov r1, sp + mov r2, #0x24 + bl memcpy + mov r0, r9 + add sp, sp, #0x30 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6} + pop {r1} + bx r1 +._30: + .align 2, 0 +._29: + .word gUnknown_Debug_845E443 + .word gUnknown_Debug_845E4EF + .word gEnemyParty + .word Str_842E238 + .word gUnknown_Debug_845E467 + .word gUnknown_Debug_845E4CB + + thumb_func_end debug_sub_813C740 + + thumb_func_start debug_sub_813C810 +debug_sub_813C810: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add sp, sp, #0xffffffdc + add r6, r0, #0 + ldr r5, ._31 @ gUnknown_Debug_845E443 + ldr r0, ._31 + 4 @ gUnknown_Debug_845E4EF + ldr r4, ._31 + 8 @ gEnemyParty + sub r0, r0, r5 + mov r8, r0 + add r0, r6, #0 + add r1, r5, #0 + mov r2, r8 + bl memcpy + add r0, r4, #0 + mov r1, #0xc9 + mov r2, #0x15 + mov r3, #0x82 + bl debug_sub_813C638 + add r0, r4, #0 + mov r1, sp + bl debug_sub_813C6AC + ldr r0, ._31 + 12 @ gUnknown_Debug_845E467 + add r0, r6, r0 + sub r0, r0, r5 + add r1, r4, #0 + mov r2, #0x64 + bl memcpy + ldr r0, ._31 + 16 @ gUnknown_Debug_845E4CB + add r0, r6, r0 + sub r0, r0, r5 + mov r1, sp + mov r2, #0x24 + bl memcpy + add r0, r6, #0 + add r1, r5, #0 + bl unref_sub_812620C + mov r0, r8 + add sp, sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 +._32: + .align 2, 0 +._31: + .word gUnknown_Debug_845E443 + .word gUnknown_Debug_845E4EF + .word gEnemyParty + .word gUnknown_Debug_845E467 + .word gUnknown_Debug_845E4CB + + thumb_func_end debug_sub_813C810 + + thumb_func_start debug_sub_813C888 +debug_sub_813C888: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add sp, sp, #0xffffffdc + add r6, r0, #0 + ldr r5, ._33 @ gUnknown_Debug_845E443 + ldr r0, ._33 + 4 @ gUnknown_Debug_845E4EF + ldr r4, ._33 + 8 @ gEnemyParty + sub r0, r0, r5 + mov r8, r0 + add r0, r6, #0 + add r1, r5, #0 + mov r2, r8 + bl memcpy + add r0, r4, #0 + mov r1, #0xc9 + mov r2, #0x15 + mov r3, #0x82 + bl debug_sub_813C638 + add r0, r4, #0 + mov r1, sp + bl debug_sub_813C6AC + mov r0, #0x0 + strh r0, [r4, #0x1c] + ldr r0, ._33 + 12 @ gUnknown_Debug_845E467 + add r0, r6, r0 + sub r0, r0, r5 + add r1, r4, #0 + mov r2, #0x64 + bl memcpy + ldr r0, ._33 + 16 @ gUnknown_Debug_845E4CB + add r0, r6, r0 + sub r0, r0, r5 + mov r1, sp + mov r2, #0x24 + bl memcpy + add r0, r6, #0 + add r1, r5, #0 + bl unref_sub_812620C + mov r0, r8 + add sp, sp, #0x24 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r1} + bx r1 +._34: + .align 2, 0 +._33: + .word gUnknown_Debug_845E443 + .word gUnknown_Debug_845E4EF + .word gEnemyParty + .word gUnknown_Debug_845E467 + .word gUnknown_Debug_845E4CB + + thumb_func_end debug_sub_813C888 + + thumb_func_start debug_sub_813C904 +debug_sub_813C904: + push {r4, lr} + ldr r4, ._35 @ gPlayerParty + add r0, r4, #0 + mov r1, #0x5 + mov r2, #0x32 + mov r3, #0xb7 + bl debug_sub_813C638 + add r0, r4, #0 + add r0, r0, #0x64 + mov r1, #0x8 + mov r2, #0x32 + mov r3, #0xc4 + bl debug_sub_813C638 + add r4, r4, #0xc8 + add r0, r4, #0 + mov r1, #0x2 + mov r2, #0x32 + mov r3, #0x8d + bl debug_sub_813C638 + pop {r4} + pop {r0} + bx r0 +._36: + .align 2, 0 +._35: + .word gPlayerParty + + thumb_func_end debug_sub_813C904 + + thumb_func_start debug_sub_813C93C +debug_sub_813C93C: + push {r4, r5, r6, lr} + add sp, sp, #0xffffff44 + add r4, r0, #0 + ldr r6, ._37 @ gUnknown_Debug_845E4EF + ldr r5, ._37 + 4 @ gUnknown_Debug_845E606 + sub r5, r5, r6 + add r1, r6, #0 + add r2, r5, #0 + bl memcpy + bl SavePlayerParty + bl debug_sub_813C904 + ldr r1, ._37 + 8 @ Str_842E253 + ldr r2, ._37 + 12 @ 0x270f + mov r0, sp + bl debug_sub_8075DB4 + bl LoadPlayerParty + ldr r0, ._37 + 16 @ gUnknown_Debug_845E506 + add r4, r4, r0 + sub r4, r4, r6 + add r0, r4, #0 + mov r1, sp + mov r2, #0xbc + bl memcpy + add r0, r5, #0 + add sp, sp, #0xbc + pop {r4, r5, r6} + pop {r1} + bx r1 +._38: + .align 2, 0 +._37: + .word gUnknown_Debug_845E4EF + .word gUnknown_Debug_845E606 + .word Str_842E253+5 @ weird... + .word 0x270f + .word gUnknown_Debug_845E506 + + thumb_func_end debug_sub_813C93C + + .align 2, 0 + +.endif diff --git a/asm/watanabe_debug_menu.s b/asm/watanabe_debug_menu.s new file mode 100644 index 000000000..7f613b7a3 --- /dev/null +++ b/asm/watanabe_debug_menu.s @@ -0,0 +1,9578 @@ +.if DEBUG + + .include "constants/gba_constants.inc" + .include "include/macros.inc" + + .text + + thumb_func_start debug_69 +debug_69: + bx lr + + thumb_func_end debug_69 + + thumb_func_start debug_80C35DC +debug_80C35DC: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffff8 + mov r0, #0x0 + bl SetVBlankCallback + mov r0, #0x80 + lsl r0, r0, #0x13 + mov r1, #0x0 + strh r1, [r0] + add r0, r0, #0xe + strh r1, [r0] + sub r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x2 + strh r1, [r0] + add r0, r0, #0x14 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x6 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x6 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + sub r0, r0, #0x6 + strh r1, [r0] + add r0, r0, #0x2 + strh r1, [r0] + mov r3, #0xc0 + lsl r3, r3, #0x13 + mov r4, #0xc0 + lsl r4, r4, #0x9 + add r0, sp, #0x4 + mov r8, r0 + mov r2, sp + mov r6, #0x0 + ldr r1, ._2 @ 0x40000d4 + mov r5, #0x80 + lsl r5, r5, #0x5 + ldr r7, ._2 + 4 @ 0x81000800 + mov r0, #0x81 + lsl r0, r0, #0x18 + mov ip, r0 +._1: + strh r6, [r2] + mov r0, sp + str r0, [r1] + str r3, [r1, #0x4] + str r7, [r1, #0x8] + ldr r0, [r1, #0x8] + add r3, r3, r5 + sub r4, r4, r5 + cmp r4, r5 + bhi ._1 @cond_branch + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, #0x4] + lsr r0, r4, #0x1 + mov r2, ip + orr r0, r0, r2 + str r0, [r1, #0x8] + ldr r0, [r1, #0x8] + mov r0, #0xe0 + lsl r0, r0, #0x13 + mov r3, #0x80 + lsl r3, r3, #0x3 + mov r4, #0x0 + str r4, [sp, #0x4] + ldr r2, ._2 @ 0x40000d4 + mov r1, r8 + str r1, [r2] + str r0, [r2, #0x4] + lsr r0, r3, #0x2 + mov r1, #0x85 + lsl r1, r1, #0x18 + orr r0, r0, r1 + str r0, [r2, #0x8] + ldr r0, [r2, #0x8] + mov r1, #0xa0 + lsl r1, r1, #0x13 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, #0x4] + lsr r3, r3, #0x1 + mov r0, #0x81 + lsl r0, r0, #0x18 + orr r3, r3, r0 + str r3, [r2, #0x8] + ldr r0, [r2, #0x8] + bl ResetPaletteFade + bl ScanlineEffect_Stop + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + bl FreeAllSpritePalettes + ldr r0, ._2 + 8 @ stru_83F8828 + bl LoadSpriteSheet + ldr r0, ._2 + 12 @ stru_83F8838 + bl LoadSpritePalette + ldr r0, ._2 + 16 @ gWindowTemplate_81E6C3C + bl Text_LoadWindowTemplate + ldr r0, ._2 + 20 @ gWindowTemplate_81E6CE4 + bl InitMenuWindow + add sp, sp, #0x8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._3: + .align 2, 0 +._2: + .word 0x40000d4 + .word 0x81000800 + .word stru_83F8828 + .word stru_83F8838 + .word gWindowTemplate_81E6C3C + .word gWindowTemplate_81E6CE4 + + thumb_func_end debug_80C35DC + + thumb_func_start debug_80C36F4 +debug_80C36F4: + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + + thumb_func_end debug_80C36F4 + + thumb_func_start debug_80C370C +debug_80C370C: + push {lr} + ldr r0, ._6 @ gPaletteFade + ldrb r1, [r0, #0x7] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + bne ._4 @cond_branch + ldr r0, ._6 + 4 @ debug_80C36F4 + bl SetMainCallback2 + b ._5 +._7: + .align 2, 0 +._6: + .word gPaletteFade + .word debug_80C36F4+1 +._4: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade +._5: + pop {r0} + bx r0 + + thumb_func_end debug_80C370C + + thumb_func_start debug_80C373C +debug_80C373C: + push {lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl DestroyTask + bl ScriptContext2_Disable + ldr r0, ._8 @ sub_80546F0 + bl SetMainCallback2 + pop {r0} + bx r0 +._9: + .align 2, 0 +._8: + .word sub_80546F0+1 + + thumb_func_end debug_80C373C + + thumb_func_start debug_80C3758 +debug_80C3758: + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + + thumb_func_end debug_80C3758 + + thumb_func_start debug_80C376C +debug_80C376C: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + lsl r1, r1, #0x18 + lsr r7, r1, #0x18 + lsl r2, r2, #0x18 + lsr r6, r2, #0x18 + mov r1, #0x0 + mov r2, #0x0 +._10: + mov r3, sp + add r0, r3, r1 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #0x2 + bls ._10 @cond_branch + mov r1, sp + mov r0, #0xff + strb r0, [r1, #0x3] + mov r4, #0x0 + add r0, r5, #0 + mov r1, #0x64 + bl __udivsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0 + beq ._11 @cond_branch + mov r1, sp + add r0, r0, #0xa1 + strb r0, [r1] + mov r4, #0x1 +._11: + add r0, r5, #0 + mov r1, #0x64 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xa + bl __udivsi3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0 + bne ._12 @cond_branch + cmp r4, #0 + beq ._13 @cond_branch +._12: + mov r1, sp + add r0, r0, #0xa1 + strb r0, [r1, #0x1] +._13: + mov r4, sp + add r0, r5, #0 + mov r1, #0x64 + bl __umodsi3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xa + bl __umodsi3 + add r0, r0, #0xa1 + strb r0, [r4, #0x2] + mov r0, sp + add r1, r7, #0 + add r2, r6, #0 + bl Menu_PrintText + add sp, sp, #0x4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_80C376C + + thumb_func_start debug_80C3800 +debug_80C3800: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffff4 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + lsl r1, r1, #0x18 + lsr r6, r1, #0x18 + lsl r2, r2, #0x18 + lsr r5, r2, #0x18 + mov r3, #0x0 + ldr r2, ._18 @ gSpeciesNames + mov r1, #0x0 +._14: + mov r7, sp + add r0, r7, r3 + strb r1, [r0] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0x9 + bls ._14 @cond_branch + add r1, r7, r3 + mov r0, #0xff + strb r0, [r1] + mov r3, #0x0 + mov r0, #0xb + add r1, r4, #0 + mul r1, r1, r0 + add r0, r1, r2 + ldrb r0, [r0] + cmp r0, #0xff + beq ._16 @cond_branch + add r4, r2, #0 + add r2, r1, #0 +._17: + mov r0, sp + add r1, r0, r3 + add r0, r3, r2 + add r0, r0, r4 + ldrb r0, [r0] + strb r0, [r1] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + add r0, r3, r2 + add r0, r0, r4 + ldrb r0, [r0] + cmp r0, #0xff + beq ._16 @cond_branch + cmp r3, #0x9 + bls ._17 @cond_branch +._16: + mov r0, sp + add r1, r6, #0 + add r2, r5, #0 + bl Menu_PrintText + add sp, sp, #0xc + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._19: + .align 2, 0 +._18: + .word gSpeciesNames + + thumb_func_end debug_80C3800 + + thumb_func_start debug_80C3878 +debug_80C3878: + push {lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r0, #0 + beq ._20 @cond_branch + cmp r0, #0x1 + beq ._21 @cond_branch +._20: + cmp r1, #0x1 + bls ._22 @cond_branch + sub r0, r1, #1 + b ._23 +._22: + ldr r1, ._25 @ 0x19b + b ._28 +._26: + .align 2, 0 +._25: + .word 0x19b +._21: + mov r0, #0xcd + lsl r0, r0, #0x1 + cmp r1, r0 + bhi ._27 @cond_branch + add r0, r1, #1 +._23: + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + b ._28 +._27: + mov r1, #0x1 +._28: + add r0, r1, #0 + pop {r1} + bx r1 + + thumb_func_end debug_80C3878 + + thumb_func_start debug_80C38B4 +debug_80C38B4: + push {lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + lsl r1, r1, #0x10 + lsr r0, r1, #0x10 + cmp r2, #0 + beq ._29 @cond_branch + cmp r2, #0x1 + beq ._30 @cond_branch +._29: + cmp r0, #0 + beq ._31 @cond_branch + sub r0, r0, #0x1 + b ._32 +._31: + mov r0, #0x52 + b ._35 +._30: + cmp r0, #0x51 + bhi ._34 @cond_branch + add r0, r0, #0x1 +._32: + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + b ._35 +._34: + mov r0, #0x0 +._35: + pop {r1} + bx r1 + + thumb_func_end debug_80C38B4 + + thumb_func_start debug_80C38E4 +debug_80C38E4: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffffc + add r4, r2, #0 + add r5, r3, #0 + ldr r6, [sp, #0x1c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r8, r0 + lsl r1, r1, #0x18 + lsr r7, r1, #0x18 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + lsl r6, r6, #0x18 + lsr r6, r6, #0x18 + ldr r1, ._37 @ gUnknown_Debug_083F7FD4 + mov r0, sp + mov r2, #0x2 + bl memcpy + add r0, r7, #0 + add r1, r4, #0 + add r2, r7, #0 + add r3, r5, #0 + bl Menu_BlankWindowRect + cmp r6, #0 + beq ._36 @cond_branch + mov r0, sp + add r1, r7, #0 + mov r2, r8 + bl Menu_PrintText +._36: + add sp, sp, #0x4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._38: + .align 2, 0 +._37: + .word gUnknown_Debug_083F7FD4 + + thumb_func_end debug_80C38E4 + + thumb_func_start debug_80C393C +debug_80C393C: + push {lr} + ldr r1, ._39 @ gUnknown_Debug_083F7FD6 + mov r0, #0x1e + bl ProgramFlashSectorAndVerify + pop {r0} + bx r0 +._40: + .align 2, 0 +._39: + .word gUnknown_Debug_083F7FD6 + + thumb_func_end debug_80C393C + + thumb_func_start InitWatanabeDebugMenu +InitWatanabeDebugMenu: + push {r4, lr} + ldr r0, ._46 @ gMain + ldr r1, ._46 + 4 @ 0x43c + add r4, r0, r1 + ldrb r0, [r4] + cmp r0, #0x1 + beq ._41 @cond_branch + cmp r0, #0x1 + ble ._42 @cond_branch + cmp r0, #0x2 + beq ._43 @cond_branch + cmp r0, #0x3 + beq ._44 @cond_branch +._42: + bl save_serialize_map + bl sub_8125E2C + mov r0, #0x1 + strb r0, [r4] + b ._51 +._47: + .align 2, 0 +._46: + .word gMain + .word 0x43c +._41: + bl sub_8125E6C + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._51 @cond_branch + b ._49 +._43: + mov r0, #0x37 + bl PlaySE +._49: + ldrb r0, [r4] + add r0, r0, #0x1 + strb r0, [r4] + b ._51 +._44: + bl IsSEPlaying + lsl r0, r0, #0x18 + cmp r0, #0 + bne ._51 @cond_branch + bl ScriptContext2_Disable + ldr r0, ._52 @ sub_80546F0 + bl SetMainCallback2 +._51: + pop {r4} + pop {r0} + bx r0 +._53: + .align 2, 0 +._52: + .word sub_80546F0+1 + + thumb_func_end InitWatanabeDebugMenu + + thumb_func_start InitSizeComparison +InitSizeComparison: + push {r4, lr} + add sp, sp, #0xfffffffc + bl debug_80C35DC + ldr r1, ._54 @ gReservedSpritePaletteCount + mov r0, #0x1 + strb r0, [r1] + ldr r0, ._54 + 4 @ gUnknown_Debug_20389EC + mov r1, #0x80 + lsl r1, r1, #0x1 + mov r2, #0x20 + bl LoadPalette + ldr r3, ._54 + 8 @ 0x4000208 + ldrh r2, [r3] + mov r0, #0x0 + strh r0, [r3] + ldr r4, ._54 + 12 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x10 + mov r3, #0x0 + bl BeginNormalPaletteFade + ldr r0, ._54 + 16 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._54 + 20 @ debug_80C370C + bl SetMainCallback2 + mov r1, #0x80 + lsl r1, r1, #0x13 + mov r2, #0x8a + lsl r2, r2, #0x5 + add r0, r2, #0 + strh r0, [r1] + ldr r0, ._54 + 24 @ debug_80C3A50 + mov r1, #0x0 + bl CreateTask + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._54 + 28 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + mov r0, #0xfc + strh r0, [r1, #0x8] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._55: + .align 2, 0 +._54: + .word gReservedSpritePaletteCount + .word gUnknown_Debug_20389EC + .word 0x4000208 + .word 0x4000200 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word debug_80C3A50+1 + .word gTasks + + thumb_func_end InitSizeComparison + + thumb_func_start debug_80C3A50 +debug_80C3A50: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xffffffd8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r1, ._56 @ gTasks + lsl r2, r0, #0x2 + add r0, r2, r0 + lsl r0, r0, #0x3 + add r7, r0, r1 + ldrh r0, [r7, #0x8] + str r0, [sp, #0x4] + bl NationalPokedexNumToSpecies + mov r1, sp + strh r0, [r1, #0x8] + add r2, r0, #0 + lsl r2, r2, #0x10 + str r2, [sp, #0xc] + lsr r2, r2, #0x10 + mov r9, r2 + ldr r3, ._56 + 4 @ gSaveBlock2 + mov r8, r3 + mov r0, #0x6 + mov r1, #0x0 + mov r2, #0x17 + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x5 + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + ldr r5, ._56 + 8 @ gUnknown_Debug_083F7FD6 + add r0, r5, #0 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + ldr r4, ._56 + 12 @ gUnknown_Debug_083F7FDE + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0x18 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + add r0, r5, #0 + mov r1, #0x19 + mov r2, #0x1 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0x19 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0xa + mov r2, #0xb + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._56 + 16 @ gUnknown_Debug_083F7FE2 + mov r1, #0x1 + mov r2, #0xb + bl Menu_PrintText + ldr r0, ._56 + 20 @ gUnknown_Debug_083F7FED + mov r1, #0x1 + mov r2, #0xd + bl Menu_PrintText + ldr r0, ._56 + 24 @ gUnknown_Debug_083F7FF6 + mov r1, #0x1 + mov r2, #0xf + bl Menu_PrintText + ldr r0, ._56 + 28 @ gUnknown_Debug_083F8001 + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + mov r0, #0xc + mov r1, #0xa + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r0, ._56 + 32 @ gUnknown_Debug_083F800C + mov r1, #0xd + mov r2, #0xb + bl Menu_PrintText + ldr r0, ._56 + 36 @ gUnknown_Debug_083F8019 + mov r1, #0xd + mov r2, #0xd + bl Menu_PrintText + mov r0, #0xc + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + ldr r0, ._56 + 40 @ gUnknown_Debug_083F8022 + mov r1, #0xd + mov r2, #0x11 + bl Menu_PrintText + ldr r0, ._56 + 44 @ gUnknown_Debug_083F8028 + mov r1, #0x18 + mov r2, #0x11 + bl Menu_PrintText + mov r0, r9 + mov r1, #0x12 + mov r2, #0x11 + bl debug_80C3800 + mov r1, r8 + ldrb r0, [r1, #0x8] + mov r1, #0x98 + mov r2, #0x28 + mov r3, #0x0 + bl sub_8091A4C + mov r2, sp + strh r0, [r2, #0x10] + add r3, r0, #0 + lsl r3, r3, #0x10 + str r3, [sp, #0x18] + lsr r0, r3, #0x10 + str r0, [sp, #0x14] + lsl r4, r0, #0x4 + add r4, r4, r0 + lsl r4, r4, #0x2 + ldr r1, ._56 + 48 @ gSprites + add r4, r4, r1 + ldrb r1, [r4, #0x1] + mov r2, #0x4 + neg r2, r2 + mov sl, r2 + mov r0, sl + and r0, r0, r1 + mov r3, #0x1 + orr r0, r0, r3 + strb r0, [r4, #0x1] + ldrb r1, [r4, #0x3] + mov r0, #0x3f + neg r0, r0 + mov r9, r0 + and r0, r0, r1 + mov r1, #0x4 + orr r0, r0, r1 + strb r0, [r4, #0x3] + ldrb r1, [r4, #0x5] + sub r2, r2, #0x9 + mov r8, r2 + mov r0, r8 + and r0, r0, r1 + mov r3, #0xf + and r0, r0, r3 + strb r0, [r4, #0x5] + mov r0, #0x0 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, ._56 + 52 @ gPokedexEntries + ldr r1, [sp, #0x4] + lsl r5, r1, #0x3 + add r5, r5, r1 + lsl r5, r5, #0x2 + add r5, r5, r0 + ldrh r6, [r5, #0x20] + strh r6, [r4, #0x26] + ldrh r4, [r5, #0x1e] + str r4, [sp] + mov r0, #0x2 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x0 + bl SetOamMatrix + mov r2, sp + ldrh r2, [r2, #0x14] + strh r2, [r7, #0xe] + strh r6, [r7, #0x10] + strh r4, [r7, #0x14] + ldr r0, [sp, #0x4] + mov r1, #0x58 + mov r2, #0x28 + mov r3, #0x1 + bl sub_80918EC + mov r3, sp + strh r0, [r3, #0x1c] + lsl r0, r0, #0x10 + str r0, [sp, #0x24] + lsr r1, r0, #0x10 + str r1, [sp, #0x20] + lsl r4, r1, #0x4 + add r4, r4, r1 + lsl r4, r4, #0x2 + ldr r2, ._56 + 48 @ gSprites + add r4, r4, r2 + ldrb r0, [r4, #0x1] + mov r3, sl + and r3, r3, r0 + mov r0, #0x1 + orr r3, r3, r0 + strb r3, [r4, #0x1] + ldrb r0, [r4, #0x3] + mov r1, r9 + and r1, r1, r0 + mov r0, #0x2 + orr r1, r1, r0 + strb r1, [r4, #0x3] + ldrb r0, [r4, #0x5] + mov r2, r8 + and r2, r2, r0 + mov r3, #0xf + and r2, r2, r3 + strb r2, [r4, #0x5] + mov r0, #0x0 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldrh r0, [r5, #0x1c] + mov r8, r0 + strh r0, [r4, #0x26] + ldrh r4, [r5, #0x1a] + str r4, [sp] + mov r0, #0x1 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x0 + bl SetOamMatrix + mov r1, sp + ldrh r1, [r1, #0x20] + strh r1, [r7, #0xc] + mov r2, r8 + strh r2, [r7, #0x12] + strh r4, [r7, #0x16] + mov r3, #0x0 + strh r3, [r7, #0x18] + strh r3, [r7, #0x1a] + ldr r1, ._56 + 56 @ 0x4000048 + ldr r2, ._56 + 60 @ 0x3f1f + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1f + strh r0, [r1] + ldr r2, ._56 + 64 @ 0x4000040 + mov r3, #0x18 + ldsh r1, [r7, r3] + lsl r1, r1, #0x6 + add r0, r1, #0 + add r0, r0, #0x38 + lsl r0, r0, #0x8 + add r1, r1, #0x78 + add r0, r0, r1 + strh r0, [r2] + ldr r1, ._56 + 68 @ 0x4000044 + ldr r2, ._56 + 72 @ 0x848 + add r0, r2, #0 + strh r0, [r1] + sub r1, r1, #0x2 + ldr r3, ._56 + 76 @ 0x31bf + add r0, r3, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._56 + 80 @ 0x14f + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0xa + mov r0, #0xe1 + strh r0, [r1] + ldr r0, ._56 + 84 @ 0x4000052 + mov r3, #0x0 + strh r3, [r0] + add r1, r1, #0x4 + mov r0, #0x7 + strh r0, [r1] + mov r2, #0x80 + lsl r2, r2, #0x13 + ldrh r0, [r2] + mov r3, #0xc0 + lsl r3, r3, #0x7 + add r1, r3, #0 + orr r0, r0, r1 + strh r0, [r2] + ldr r0, ._56 + 88 @ debug_80C3D2C + str r0, [r7] + add sp, sp, #0x28 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._57: + .align 2, 0 +._56: + .word gTasks + .word gSaveBlock2 + .word gUnknown_Debug_083F7FD6+0x4 + .word gUnknown_Debug_083F7FDE + .word gUnknown_Debug_083F7FE2 + .word gUnknown_Debug_083F7FED + .word gUnknown_Debug_083F7FF6 + .word gUnknown_Debug_083F8001 + .word gUnknown_Debug_083F800C + .word gUnknown_Debug_083F8019 + .word gUnknown_Debug_083F8022 + .word gUnknown_Debug_083F8028 + .word gSprites + .word gPokedexEntries + .word 0x4000048 + .word 0x3f1f + .word 0x4000040 + .word 0x4000044 + .word 0x848 + .word 0x31bf + .word 0x14f + .word 0x4000052 + .word debug_80C3D2C+1 + + thumb_func_end debug_80C3A50 + + thumb_func_start debug_80C3D2C +debug_80C3D2C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + add r7, r6, #0 + ldr r4, ._60 @ gMain + ldrh r1, [r4, #0x2e] + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._58 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._60 + 4 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._60 + 8 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._60 + 12 @ debug_80C373C + str r1, [r0] + b ._117 +._61: + .align 2, 0 +._60: + .word gMain + .word debug_80C370C+1 + .word gTasks + .word debug_80C373C+1 +._58: + mov r5, #0x1 + add r0, r5, #0 + and r0, r0, r1 + cmp r0, #0 + beq ._62 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r1, ._64 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldrh r1, [r0, #0x18] + mov r2, #0x1 + eor r1, r1, r2 + strh r1, [r0, #0x18] + b ._117 +._65: + .align 2, 0 +._64: + .word gTasks +._62: + ldrh r1, [r4, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._66 @cond_branch + ldr r1, ._70 @ gTasks + lsl r2, r6, #0x2 + add r0, r2, r6 + lsl r0, r0, #0x3 + add r3, r0, r1 + mov r5, #0x18 + ldsh r0, [r3, r5] + mov r8, r1 + cmp r0, #0 + beq ._67 @cond_branch + ldrh r1, [r4, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._68 @cond_branch + ldrh r0, [r3, #0x14] + add r0, r0, #0x10 + b ._69 +._71: + .align 2, 0 +._70: + .word gTasks +._68: + ldrh r0, [r3, #0x14] + add r0, r0, #0x1 +._69: + strh r0, [r3, #0x14] + add r0, r2, r7 + lsl r0, r0, #0x3 + mov r2, r8 + add r1, r0, r2 + ldrh r0, [r1, #0x14] + mov r6, #0x80 + lsl r6, r6, #0x8 + cmp r0, r6 + bhi ._72 @cond_branch + b ._117 +._72: + strh r6, [r1, #0x14] + b ._117 +._67: + ldrh r1, [r4, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._75 @cond_branch + ldrh r0, [r3, #0x16] + add r0, r0, #0x10 + b ._76 +._75: + ldrh r0, [r3, #0x16] + add r0, r0, #0x1 +._76: + strh r0, [r3, #0x16] + add r0, r2, r7 + lsl r0, r0, #0x3 + mov r4, r8 + add r1, r0, r4 + ldrh r0, [r1, #0x16] + mov r6, #0x80 + lsl r6, r6, #0x8 + cmp r0, r6 + bhi ._77 @cond_branch + b ._117 +._77: + strh r6, [r1, #0x16] + b ._117 +._66: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._80 @cond_branch + ldr r1, ._84 @ gTasks + lsl r2, r6, #0x2 + add r0, r2, r6 + lsl r0, r0, #0x3 + add r3, r0, r1 + mov r5, #0x18 + ldsh r0, [r3, r5] + mov r8, r1 + cmp r0, #0 + beq ._81 @cond_branch + ldrh r1, [r4, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._82 @cond_branch + ldrh r0, [r3, #0x14] + sub r0, r0, #0x10 + b ._83 +._85: + .align 2, 0 +._84: + .word gTasks +._82: + ldrh r0, [r3, #0x14] + sub r0, r0, #0x1 +._83: + strh r0, [r3, #0x14] + add r0, r2, r7 + lsl r0, r0, #0x3 + mov r2, r8 + add r1, r0, r2 + mov r4, #0x14 + ldsh r0, [r1, r4] + cmp r0, #0xff + ble ._86 @cond_branch + b ._117 +._86: + mov r0, #0x80 + lsl r0, r0, #0x1 + strh r0, [r1, #0x14] + b ._117 +._81: + ldrh r1, [r4, #0x2c] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._89 @cond_branch + ldrh r0, [r3, #0x16] + sub r0, r0, #0x10 + b ._90 +._89: + ldrh r0, [r3, #0x16] + sub r0, r0, #0x1 +._90: + strh r0, [r3, #0x16] + add r0, r2, r7 + lsl r0, r0, #0x3 + mov r5, r8 + add r1, r0, r5 + mov r2, #0x16 + ldsh r0, [r1, r2] + cmp r0, #0xff + ble ._91 @cond_branch + b ._117 +._91: + mov r0, #0x80 + lsl r0, r0, #0x1 + strh r0, [r1, #0x16] + b ._117 +._80: + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._94 @cond_branch + ldr r0, ._97 @ gTasks + lsl r1, r6, #0x2 + add r1, r1, r6 + lsl r1, r1, #0x3 + add r1, r1, r0 + mov r4, #0x18 + ldsh r0, [r1, r4] + cmp r0, #0 + beq ._95 @cond_branch + ldrh r0, [r1, #0x10] + sub r0, r0, #0x1 + strh r0, [r1, #0x10] + b ._117 +._98: + .align 2, 0 +._97: + .word gTasks +._95: + ldrh r0, [r1, #0x12] + sub r0, r0, #0x1 + strh r0, [r1, #0x12] + b ._117 +._94: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._100 @cond_branch + ldr r0, ._103 @ gTasks + lsl r1, r6, #0x2 + add r1, r1, r6 + lsl r1, r1, #0x3 + add r1, r1, r0 + mov r5, #0x18 + ldsh r0, [r1, r5] + cmp r0, #0 + beq ._101 @cond_branch + ldrh r0, [r1, #0x10] + add r0, r0, #0x1 + strh r0, [r1, #0x10] + b ._117 +._104: + .align 2, 0 +._103: + .word gTasks +._101: + ldrh r0, [r1, #0x12] + add r0, r0, #0x1 + strh r0, [r1, #0x12] + b ._117 +._100: + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + beq ._106 @cond_branch + ldr r2, ._109 @ gTasks + lsl r3, r6, #0x2 + add r0, r3, r6 + lsl r0, r0, #0x3 + add r6, r0, r2 + ldrh r4, [r6, #0x8] + mov r0, #0x8 + ldsh r1, [r6, r0] + ldr r0, ._109 + 4 @ 0x181 + mov r8, r2 + add r2, r3, #0 + cmp r1, r0 + bgt ._107 @cond_branch + add r0, r4, #1 + strh r0, [r6, #0x8] + b ._108 +._110: + .align 2, 0 +._109: + .word gTasks + .word 0x181 +._107: + strh r5, [r6, #0x8] +._108: + add r4, r2, r7 + lsl r4, r4, #0x3 + add r4, r4, r8 + mov r2, #0xc + ldsh r1, [r4, r2] + b ._111 +._106: + mov r0, #0x4 + and r0, r0, r1 + cmp r0, #0 + beq ._112 @cond_branch + ldr r1, ._115 @ gTasks + lsl r2, r6, #0x2 + add r0, r2, r6 + lsl r0, r0, #0x3 + add r3, r0, r1 + ldrh r6, [r3, #0x8] + mov r4, #0x8 + ldsh r0, [r3, r4] + mov r8, r1 + cmp r0, #0x1 + ble ._113 @cond_branch + sub r0, r6, #1 + b ._114 +._116: + .align 2, 0 +._115: + .word gTasks +._113: + mov r0, #0xc1 + lsl r0, r0, #0x1 +._114: + strh r0, [r3, #0x8] + add r4, r2, r7 + lsl r4, r4, #0x3 + add r4, r4, r8 + mov r5, #0xc + ldsh r1, [r4, r5] +._111: + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r5, ._118 @ gSprites + add r0, r0, r5 + bl DestroySprite + mov r0, #0xe + ldsh r1, [r4, r0] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r5 + bl DestroySprite + ldr r0, ._118 + 4 @ debug_80C3A50 + str r0, [r4] + b ._117 +._119: + .align 2, 0 +._118: + .word gSprites + .word debug_80C3A50+1 +._112: + ldr r0, ._120 @ gTasks + lsl r5, r7, #0x2 + add r5, r5, r7 + lsl r5, r5, #0x3 + add r5, r5, r0 + ldrh r4, [r5, #0x16] + ldrh r6, [r5, #0x12] + str r4, [sp] + mov r0, #0x1 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x0 + bl SetOamMatrix + add r0, r4, #0 + mov r1, #0x1 + mov r2, #0x3 + mov r3, #0x4 + bl debug_80C68CC + add r0, r6, #0 + mov r1, #0x1 + mov r2, #0x7 + mov r3, #0x4 + bl debug_80C68CC + ldr r2, ._120 + 4 @ gSprites + mov r8, r2 + mov r4, #0xc + ldsh r1, [r5, r4] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r8 + strh r6, [r0, #0x26] + ldrh r4, [r5, #0x14] + ldrh r6, [r5, #0x10] + str r4, [sp] + mov r0, #0x2 + add r1, r4, #0 + mov r2, #0x0 + mov r3, #0x0 + bl SetOamMatrix + add r0, r4, #0 + mov r1, #0x19 + mov r2, #0x3 + mov r3, #0x4 + bl debug_80C68CC + add r0, r6, #0 + mov r1, #0x19 + mov r2, #0x7 + mov r3, #0x4 + bl debug_80C68CC + mov r0, #0xe + ldsh r1, [r5, r0] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r8 + strh r6, [r0, #0x26] + ldr r2, ._120 + 8 @ 0x4000040 + mov r4, #0x18 + ldsh r1, [r5, r4] + lsl r1, r1, #0x6 + add r0, r1, #0 + add r0, r0, #0x38 + lsl r0, r0, #0x8 + add r1, r1, #0x78 + add r0, r0, r1 + strh r0, [r2] +._117: + add sp, sp, #0x4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._121: + .align 2, 0 +._120: + .word gTasks + .word gSprites + .word 0x4000040 + + thumb_func_end debug_80C3D2C + + thumb_func_start debug_80C405C +debug_80C405C: + push {r4, r5, lr} + add r4, r0, #0 + lsl r1, r1, #0x10 + lsr r5, r1, #0x10 + mov r2, #0x0 + mov r1, #0x0 +._122: + add r0, r4, r2 + strb r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x9 + bls ._122 @cond_branch + add r0, r4, r2 + mov r1, #0xff + strb r1, [r0] + mov r0, #0xae + strb r0, [r4] + cmp r5, #0 + beq ._125 @cond_branch + mov r2, #0x0 + ldr r3, ._127 @ gSpeciesNames + mov r0, #0xb + add r1, r5, #0 + mul r1, r1, r0 + add r0, r1, r3 + ldrb r0, [r0] + cmp r0, #0xff + beq ._125 @cond_branch + add r5, r3, #0 + add r3, r1, #0 +._126: + add r1, r4, r2 + add r0, r2, r3 + add r0, r0, r5 + ldrb r0, [r0] + strb r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + add r0, r2, r3 + add r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0xff + beq ._125 @cond_branch + cmp r2, #0x9 + bls ._126 @cond_branch +._125: + pop {r4, r5} + pop {r0} + bx r0 +._128: + .align 2, 0 +._127: + .word gSpeciesNames + + thumb_func_end debug_80C405C + + thumb_func_start debug_80C40C4 +debug_80C40C4: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + mov r5, #0x0 + mov r6, sp +._135: + cmp r7, #0 + beq ._129 @cond_branch + mov r0, #0x64 + add r1, r5, #0 + mul r1, r1, r0 + ldr r0, ._132 @ gEnemyParty + add r4, r1, r0 + add r0, r4, #0 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._134 @cond_branch + add r0, r4, #0 + bl CalculateMonStats + add r0, r4, #0 + mov r1, #0x3a + bl GetMonData + strh r0, [r6] + add r0, r4, #0 + mov r1, #0x39 + mov r2, sp + bl SetMonData + b ._134 +._133: + .align 2, 0 +._132: + .word gEnemyParty +._129: + mov r0, #0x64 + add r1, r5, #0 + mul r1, r1, r0 + ldr r0, ._136 @ gPlayerParty + add r4, r1, r0 + add r0, r4, #0 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._134 @cond_branch + add r0, r4, #0 + bl CalculateMonStats + add r0, r4, #0 + mov r1, #0x3a + bl GetMonData + strh r0, [r6] + add r0, r4, #0 + mov r1, #0x39 + mov r2, sp + bl SetMonData +._134: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._135 @cond_branch + add sp, sp, #0x4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._137: + .align 2, 0 +._136: + .word gPlayerParty + + thumb_func_end debug_80C40C4 + + thumb_func_start InitBattleForDebug +InitBattleForDebug: + push {lr} + bl SavePlayerParty + ldr r1, ._138 @ gUnknown_Debug_2038A0C + ldr r0, ._138 + 4 @ gSaveBlock2 + ldrb r2, [r0, #0x8] + mov r0, #0x0 + strb r2, [r1, #0xd] + strb r0, [r1] + strb r0, [r1, #0x1] + strb r0, [r1, #0x2] + strb r0, [r1, #0x3] + strb r0, [r1, #0x4] + strb r0, [r1, #0x5] + strb r0, [r1, #0x6] + strb r0, [r1, #0x7] + strb r0, [r1, #0x8] + strb r0, [r1, #0xc] + ldr r1, ._138 + 8 @ byte_3005E30 + str r0, [r1] + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + mov r0, #0x0 + bl debug_80C4214 + ldr r0, ._138 + 12 @ debug_80C47BC + mov r1, #0x0 + bl CreateTask + pop {r0} + bx r0 +._139: + .align 2, 0 +._138: + .word gUnknown_Debug_2038A0C + .word gSaveBlock2 + .word byte_3005E30 + .word debug_80C47BC+1 + + thumb_func_end InitBattleForDebug + + thumb_func_start debug_80C41A8 +debug_80C41A8: + push {lr} + ldr r1, ._140 @ gUnknown_Debug_2038A0C + mov r0, #0x0 + strb r0, [r1, #0x1] + strb r0, [r1, #0x2] + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + mov r0, #0x0 + bl debug_80C4214 + ldr r0, ._140 + 4 @ debug_80C47BC + mov r1, #0x0 + bl CreateTask + pop {r0} + bx r0 +._141: + .align 2, 0 +._140: + .word gUnknown_Debug_2038A0C + .word debug_80C47BC+1 + + thumb_func_end debug_80C41A8 + + thumb_func_start debug_80C41D4 +debug_80C41D4: + push {lr} + mov r0, #0x0 + bl debug_80C40C4 + mov r0, #0x0 + bl debug_80C4214 + ldr r0, ._142 @ debug_80C42B8 + mov r1, #0x0 + bl CreateTask + pop {r0} + bx r0 +._143: + .align 2, 0 +._142: + .word debug_80C42B8+1 + + thumb_func_end debug_80C41D4 + + thumb_func_start debug_80C41F4 +debug_80C41F4: + push {lr} + mov r0, #0x1 + bl debug_80C40C4 + mov r0, #0x1 + bl debug_80C4214 + ldr r0, ._144 @ debug_80C42B8 + mov r1, #0x0 + bl CreateTask + pop {r0} + bx r0 +._145: + .align 2, 0 +._144: + .word debug_80C42B8+1 + + thumb_func_end debug_80C41F4 + + thumb_func_start debug_80C4214 +debug_80C4214: + push {r4, r5, r6, lr} + bl debug_80C35DC + ldr r6, ._146 @ 0x4000040 + mov r4, #0x0 + strh r4, [r6] + ldr r5, ._146 + 4 @ 0x4000044 + strh r4, [r5] + ldr r0, ._146 + 8 @ 0x4000042 + strh r4, [r0] + add r0, r0, #0x4 + strh r4, [r0] + ldr r1, ._146 + 12 @ 0x4000048 + ldr r2, ._146 + 16 @ 0x1111 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x2 + mov r0, #0x31 + strh r0, [r1] + add r1, r1, #0x6 + mov r0, #0xe1 + strh r0, [r1] + ldr r0, ._146 + 20 @ 0x4000052 + strh r4, [r0] + add r1, r1, #0x4 + mov r0, #0x7 + strh r0, [r1] + ldr r3, ._146 + 24 @ 0x4000208 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, ._146 + 28 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, ._146 + 32 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._146 + 36 @ debug_80C370C + bl SetMainCallback2 + mov r1, #0x80 + lsl r1, r1, #0x13 + ldr r2, ._146 + 40 @ 0x7140 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._146 + 44 @ 0x1ef + add r0, r1, #0 + strh r0, [r6] + ldr r2, ._146 + 48 @ 0x819f + add r0, r2, #0 + strh r0, [r5] + pop {r4, r5, r6} + pop {r0} + bx r0 +._147: + .align 2, 0 +._146: + .word 0x4000040 + .word 0x4000044 + .word 0x4000042 + .word 0x4000048 + .word 0x1111 + .word 0x4000052 + .word 0x4000208 + .word 0x4000200 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word 0x7140 + .word 0x1ef + .word 0x819f + + thumb_func_end debug_80C4214 + + thumb_func_start debug_80C42B8 +debug_80C42B8: + push {r4, r5, lr} + add sp, sp, #0xffffffe4 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r1, ._150 @ gUnknown_Debug_083F8194 + mov r0, sp + mov r2, #0xc + bl memcpy + add r4, sp, #0xc + ldr r1, ._150 + 4 @ gUnknown_Debug_083F81A0 + add r0, r4, #0 + mov r2, #0xd + bl memcpy + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x11 + bl Menu_PrintText + bl debug_80C4694 + bl debug_80C4704 + ldr r0, ._150 + 8 @ gUnknown_Debug_2038A0C + ldrb r0, [r0] + cmp r0, #0 + beq ._148 @cond_branch + ldr r0, ._150 + 12 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._150 + 16 @ debug_80C44EC + b ._149 +._151: + .align 2, 0 +._150: + .word gUnknown_Debug_083F8194 + .word gUnknown_Debug_083F81A0 + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C44EC+1 +._148: + ldr r0, ._152 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._152 + 4 @ debug_80C4348 +._149: + str r0, [r1] + add sp, sp, #0x1c + pop {r4, r5} + pop {r0} + bx r0 +._153: + .align 2, 0 +._152: + .word gTasks + .word debug_80C4348+1 + + thumb_func_end debug_80C42B8 + + thumb_func_start debug_80C4348 +debug_80C4348: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._154 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x1] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._154 + 4 @ 0x4000042 + ldr r2, ._154 + 8 @ 0x177 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + add r2, r2, #0x8 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._154 + 12 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._154 + 16 @ debug_80C43A8 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._155: + .align 2, 0 +._154: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x177 + .word gTasks + .word debug_80C43A8+1 + + thumb_func_end debug_80C4348 + + thumb_func_start debug_80C43A8 +debug_80C43A8: + push {r4, r5, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r1, ._158 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x1 + and r0, r0, r2 + add r3, r1, #0 + cmp r0, #0 + beq ._156 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r0, ._158 + 4 @ gUnknown_Debug_2038A0C + ldrb r1, [r0, #0x1] + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._158 + 8 @ gPlayerParty + add r0, r0, r1 + ldr r1, ._158 + 12 @ debug_80C41D4 + bl debug_sub_80A433C + add r0, r4, #0 + bl DestroyTask + b ._180 +._159: + .align 2, 0 +._158: + .word gMain + .word gUnknown_Debug_2038A0C + .word gPlayerParty + .word debug_80C41D4+1 +._156: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._160 @cond_branch + ldr r0, ._162 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._162 + 4 @ debug_80C4F48 + str r0, [r1] + b ._180 +._163: + .align 2, 0 +._162: + .word gTasks + .word debug_80C4F48+1 +._160: + mov r0, #0x8 + and r0, r0, r2 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0 + beq ._164 @cond_branch + bl debug_80C4774 + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._180 @cond_branch + mov r0, #0x5 + bl PlaySE + bl CalculatePlayerPartyCount + bl CalculateEnemyPartyCount + ldr r0, ._167 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._167 + 4 @ debug_80C4D14 + str r0, [r1] + b ._180 +._168: + .align 2, 0 +._167: + .word gTasks + .word debug_80C4D14+1 +._164: + mov r0, #0x88 + lsl r0, r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + beq ._169 @cond_branch + str r1, [sp] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r0, ._171 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._171 + 4 @ debug_80C44EC + str r0, [r1] + b ._180 +._172: + .align 2, 0 +._171: + .word gTasks + .word debug_80C44EC+1 +._169: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._174 @cond_branch + ldr r1, ._176 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x1] + cmp r0, #0 + beq ._174 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1, #0x1] + b ._175 +._177: + .align 2, 0 +._176: + .word gUnknown_Debug_2038A0C +._174: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._180 @cond_branch + ldr r5, ._181 @ gUnknown_Debug_2038A0C + ldrb r0, [r5, #0x1] + cmp r0, #0x4 + bhi ._180 @cond_branch + add r1, r0, #0 + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._181 + 4 @ gPlayerParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._180 @cond_branch + ldrb r0, [r5, #0x1] + add r0, r0, #0x1 + strb r0, [r5, #0x1] +._175: + ldr r1, ._181 + 8 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._181 + 12 @ debug_80C4348 + str r1, [r0] +._180: + add sp, sp, #0x4 + pop {r4, r5} + pop {r0} + bx r0 +._182: + .align 2, 0 +._181: + .word gUnknown_Debug_2038A0C + .word gPlayerParty + .word gTasks + .word debug_80C4348+1 + + thumb_func_end debug_80C43A8 + + thumb_func_start debug_80C44EC +debug_80C44EC: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._183 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x2] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r1, #0x10 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._183 + 4 @ 0x4000042 + ldr r2, ._183 + 8 @ 0x79ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._183 + 12 @ 0x17f + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._183 + 16 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._183 + 20 @ debug_80C4550 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._184: + .align 2, 0 +._183: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x79ef + .word 0x17f + .word gTasks + .word debug_80C4550+1 + + thumb_func_end debug_80C44EC + + thumb_func_start debug_80C4550 +debug_80C4550: + push {r4, r5, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r1, ._187 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x1 + and r0, r0, r2 + add r3, r1, #0 + cmp r0, #0 + beq ._185 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r0, ._187 + 4 @ gUnknown_Debug_2038A0C + ldrb r1, [r0, #0x2] + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._187 + 8 @ gEnemyParty + add r0, r0, r1 + ldr r1, ._187 + 12 @ debug_80C41F4 + bl debug_sub_80A433C + add r0, r4, #0 + bl DestroyTask + b ._209 +._188: + .align 2, 0 +._187: + .word gMain + .word gUnknown_Debug_2038A0C + .word gEnemyParty + .word debug_80C41F4+1 +._185: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._189 @cond_branch + ldr r0, ._191 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._191 + 4 @ debug_80C4F48 + str r0, [r1] + b ._209 +._192: + .align 2, 0 +._191: + .word gTasks + .word debug_80C4F48+1 +._189: + mov r0, #0x8 + and r0, r0, r2 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0 + beq ._193 @cond_branch + bl debug_80C4774 + lsl r0, r0, #0x18 + cmp r0, #0 + beq ._209 @cond_branch + mov r0, #0x5 + bl PlaySE + bl CalculatePlayerPartyCount + bl CalculateEnemyPartyCount + ldr r0, ._196 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._196 + 4 @ debug_80C4D14 + str r0, [r1] + b ._209 +._197: + .align 2, 0 +._196: + .word gTasks + .word debug_80C4D14+1 +._193: + mov r0, #0x88 + lsl r0, r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._198 @cond_branch + str r1, [sp] + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r0, ._200 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._200 + 4 @ debug_80C4348 + str r0, [r1] + b ._209 +._201: + .align 2, 0 +._200: + .word gTasks + .word debug_80C4348+1 +._198: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._203 @cond_branch + ldr r1, ._205 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x2] + cmp r0, #0 + beq ._203 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1, #0x2] + b ._204 +._206: + .align 2, 0 +._205: + .word gUnknown_Debug_2038A0C +._203: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._209 @cond_branch + ldr r5, ._210 @ gUnknown_Debug_2038A0C + ldrb r0, [r5, #0x2] + cmp r0, #0x4 + bhi ._209 @cond_branch + add r1, r0, #0 + mov r0, #0x64 + mul r0, r0, r1 + ldr r1, ._210 + 4 @ gEnemyParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._209 @cond_branch + ldrb r0, [r5, #0x2] + add r0, r0, #0x1 + strb r0, [r5, #0x2] +._204: + ldr r1, ._210 + 8 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._210 + 12 @ debug_80C44EC + str r1, [r0] +._209: + add sp, sp, #0x4 + pop {r4, r5} + pop {r0} + bx r0 +._211: + .align 2, 0 +._210: + .word gUnknown_Debug_2038A0C + .word gEnemyParty + .word gTasks + .word debug_80C44EC+1 + + thumb_func_end debug_80C4550 + + thumb_func_start debug_80C4694 +debug_80C4694: + push {r4, r5, lr} + add sp, sp, #0xffffffe4 + ldr r1, ._213 @ gUnknown_Debug_083F81AD + mov r0, sp + mov r2, #0xd + bl memcpy + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xf + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + mov r4, #0x0 + add r5, sp, #0x10 +._212: + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._213 + 4 @ gPlayerParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r5, #0 + bl debug_80C405C + lsl r2, r4, #0x19 + mov r0, #0xc0 + lsl r0, r0, #0x12 + add r2, r2, r0 + lsr r2, r2, #0x18 + add r0, r5, #0 + mov r1, #0x2 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._212 @cond_branch + add sp, sp, #0x1c + pop {r4, r5} + pop {r0} + bx r0 +._214: + .align 2, 0 +._213: + .word gUnknown_Debug_083F81AD + .word gPlayerParty + + thumb_func_end debug_80C4694 + + thumb_func_start debug_80C4704 +debug_80C4704: + push {r4, r5, lr} + add sp, sp, #0xffffffe4 + ldr r1, ._216 @ gUnknown_Debug_083F81BA + mov r0, sp + mov r2, #0xd + bl memcpy + mov r0, #0xf + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x11 + mov r2, #0x1 + bl Menu_PrintText + mov r4, #0x0 + add r5, sp, #0x10 +._215: + mov r0, #0x64 + mul r0, r0, r4 + ldr r1, ._216 + 4 @ gEnemyParty + add r0, r0, r1 + mov r1, #0xb + bl GetMonData + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + add r0, r5, #0 + bl debug_80C405C + lsl r2, r4, #0x19 + mov r0, #0xc0 + lsl r0, r0, #0x12 + add r2, r2, r0 + lsr r2, r2, #0x18 + add r0, r5, #0 + mov r1, #0x11 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._215 @cond_branch + add sp, sp, #0x1c + pop {r4, r5} + pop {r0} + bx r0 +._217: + .align 2, 0 +._216: + .word gUnknown_Debug_083F81BA + .word gEnemyParty + + thumb_func_end debug_80C4704 + + thumb_func_start debug_80C4774 +debug_80C4774: + push {r4, lr} + ldr r0, ._221 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0xc] + sub r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0x64 + add r4, r0, #0 + mul r4, r4, r1 + ldr r0, ._221 + 4 @ gPlayerParty + add r0, r4, r0 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._219 @cond_branch + ldr r0, ._221 + 8 @ gEnemyParty + add r0, r4, r0 + mov r1, #0xb + bl GetMonData + cmp r0, #0 + beq ._219 @cond_branch + mov r0, #0x1 + b ._220 +._222: + .align 2, 0 +._221: + .word gUnknown_Debug_2038A0C + .word gPlayerParty + .word gEnemyParty +._219: + mov r0, #0x0 +._220: + pop {r4} + pop {r1} + bx r1 + + thumb_func_end debug_80C4774 + + thumb_func_start debug_80C47BC +debug_80C47BC: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xffffffc0 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r1, ._224 @ gUnknown_Debug_083F81C7 + mov r0, sp + mov r2, #0xf + bl memcpy + add r4, sp, #0x10 + ldr r1, ._224 + 4 @ gUnknown_Debug_083F81A0 + add r0, r4, #0 + mov r2, #0xd + bl memcpy + add r6, sp, #0x20 + ldr r1, ._224 + 8 @ gUnknown_Debug_083F81D6 + add r0, r6, #0 + mov r2, #0xf + bl memcpy + add r5, sp, #0x30 + ldr r1, ._224 + 12 @ gUnknown_Debug_083F81E5 + add r0, r5, #0 + mov r2, #0x10 + bl memcpy + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x11 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xf + bl Menu_DrawStdWindowFrame + add r0, r6, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + mov r4, #0x0 + ldr r6, ._224 + 16 @ gUnknown_Debug_083F8068 +._223: + lsl r0, r4, #0x3 + add r0, r0, r6 + ldr r0, [r0] + lsl r2, r4, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r2, r2, r1 + lsr r2, r2, #0x18 + mov r1, #0x2 + bl Menu_PrintText + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + bls ._223 @cond_branch + mov r0, #0xf + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + add r0, r5, #0 + mov r1, #0x11 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._224 + 20 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x4] + bl debug_80C4C44 + ldr r1, ._224 + 24 @ gTasks + lsl r0, r7, #0x2 + add r0, r0, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._224 + 28 @ debug_80C48A0 + str r1, [r0] + add sp, sp, #0x40 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._225: + .align 2, 0 +._224: + .word gUnknown_Debug_083F81C7 + .word gUnknown_Debug_083F81A0 + .word gUnknown_Debug_083F81D6 + .word gUnknown_Debug_083F81E5 + .word gUnknown_Debug_083F8068 + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C48A0+1 + + thumb_func_end debug_80C47BC + + thumb_func_start debug_80C48A0 +debug_80C48A0: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._226 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x3] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._226 + 4 @ 0x4000042 + ldr r2, ._226 + 8 @ 0x177 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + add r2, r2, #0x8 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._226 + 12 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._226 + 16 @ debug_80C4900 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._227: + .align 2, 0 +._226: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x177 + .word gTasks + .word debug_80C4900+1 + + thumb_func_end debug_80C48A0 + + thumb_func_start debug_80C4900 +debug_80C4900: + push {r4, r5, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r1, ._230 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x2 + and r0, r0, r2 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r3, r1, #0 + cmp r4, #0 + beq ._228 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + mov r4, #0x0 + str r4, [sp] + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._230 + 4 @ debug_80C370C + bl SetMainCallback2 + bl LoadPlayerParty + ldr r1, ._230 + 8 @ gSaveBlock2 + ldr r0, ._230 + 12 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0xd] + strb r0, [r1, #0x8] + ldr r0, ._230 + 16 @ gBattleTypeFlags + mov r1, #0x0 + strh r4, [r0] + ldr r0, ._230 + 20 @ gUnknown_02023A14_50 + strb r1, [r0] + ldr r1, ._230 + 24 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._230 + 28 @ debug_80C373C + b ._229 +._231: + .align 2, 0 +._230: + .word gMain + .word debug_80C370C+1 + .word gSaveBlock2 + .word gUnknown_Debug_2038A0C + .word gBattleTypeFlags + .word gUnknown_02023A14_50 + .word gTasks + .word debug_80C373C+1 +._228: + mov r0, #0x8 + and r0, r0, r2 + cmp r0, #0 + bne ._232 @cond_branch + mov r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + beq ._233 @cond_branch +._232: + mov r0, #0x5 + bl PlaySE + ldr r1, ._236 @ gBattleTypeFlags + ldr r3, ._236 + 4 @ gUnknown_Debug_083F8068 + ldr r2, ._236 + 8 @ gUnknown_Debug_2038A0C + ldrb r0, [r2, #0x3] + lsl r0, r0, #0x3 + add r0, r0, r3 + ldrb r0, [r0, #0x4] + strh r0, [r1] + ldr r1, ._236 + 12 @ gUnknown_02023A14_50 + mov r0, #0x8 + strb r0, [r1] + ldrb r0, [r2, #0x3] + lsl r0, r0, #0x3 + add r0, r0, r3 + ldrb r0, [r0, #0x5] + strb r0, [r2, #0xc] + ldrb r0, [r2, #0x3] + sub r0, r0, #0x1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x1 + bhi ._234 @cond_branch + str r4, [sp] + mov r0, #0x0 + mov r1, #0x1 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r0, ._236 + 16 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._236 + 20 @ debug_80C4A60 + str r0, [r1] + b ._247 +._237: + .align 2, 0 +._236: + .word gBattleTypeFlags + .word gUnknown_Debug_083F8068 + .word gUnknown_Debug_2038A0C + .word gUnknown_02023A14_50 + .word gTasks + .word debug_80C4A60+1 +._234: + ldr r0, ._239 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._239 + 4 @ debug_80C4F48 + str r0, [r1] + b ._247 +._240: + .align 2, 0 +._239: + .word gTasks + .word debug_80C4F48+1 +._233: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._242 @cond_branch + ldr r1, ._244 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x3] + cmp r0, #0 + beq ._242 @cond_branch + sub r0, r0, #0x1 + b ._243 +._245: + .align 2, 0 +._244: + .word gUnknown_Debug_2038A0C +._242: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._247 @cond_branch + ldr r1, ._248 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x3] + cmp r0, #0x1 + bhi ._247 @cond_branch + add r0, r0, #0x1 +._243: + strb r0, [r1, #0x3] + ldr r1, ._248 + 4 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._248 + 8 @ debug_80C48A0 +._229: + str r1, [r0] +._247: + add sp, sp, #0x4 + pop {r4, r5} + pop {r0} + bx r0 +._249: + .align 2, 0 +._248: + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C48A0+1 + + thumb_func_end debug_80C4900 + + thumb_func_start debug_80C4A60 +debug_80C4A60: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._250 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x5] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r1, #0x10 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._250 + 4 @ 0x4000042 + ldr r2, ._250 + 8 @ 0x79ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._250 + 12 @ 0x17f + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._250 + 16 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._250 + 20 @ debug_80C4AC4 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._251: + .align 2, 0 +._250: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x79ef + .word 0x17f + .word gTasks + .word debug_80C4AC4+1 + + thumb_func_end debug_80C4A60 + + thumb_func_start debug_80C4AC4 +debug_80C4AC4: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r7, ._255 @ gUnknown_Debug_2038A0C + ldrb r0, [r7, #0x4] + mov ip, r0 + ldrb r5, [r7, #0x5] + mov r1, ip + add r0, r1, r5 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r2, ._255 + 4 @ gMain + mov r8, r2 + ldrh r2, [r2, #0x2e] + mov r3, #0x1 + and r3, r3, r2 + add r4, r7, #0 + cmp r3, #0 + beq ._252 @cond_branch + ldr r0, ._255 + 8 @ gUnknown_Debug_083F80D8 + lsl r1, r1, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r1, [r1] + ldr r3, ._255 + 12 @ byte_3005E30 + ldr r2, [r3] + add r0, r2, #0 + and r0, r0, r1 + cmp r0, #0 + beq ._253 @cond_branch + ldr r0, ._255 + 16 @ 0xffff + eor r1, r1, r0 + and r2, r2, r1 + b ._254 +._256: + .align 2, 0 +._255: + .word gUnknown_Debug_2038A0C + .word gMain + .word gUnknown_Debug_083F80D8 + .word byte_3005E30 + .word 0xffff +._253: + orr r2, r2, r1 +._254: + str r2, [r3] + ldrb r0, [r4, #0x4] + bl debug_80C4C44 + ldr r1, ._258 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._258 + 4 @ debug_80C4A60 + str r1, [r0] + b ._274 +._259: + .align 2, 0 +._258: + .word gTasks + .word debug_80C4A60+1 +._252: + mov r0, #0x2 + and r0, r0, r2 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0 + beq ._260 @cond_branch + str r3, [sp] + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r0, ._262 @ gTasks + lsl r1, r6, #0x2 + add r1, r1, r6 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._262 + 4 @ debug_80C48A0 + b ._261 +._263: + .align 2, 0 +._262: + .word gTasks + .word debug_80C48A0+1 +._260: + mov r0, #0x8 + and r0, r0, r2 + cmp r0, #0 + beq ._264 @cond_branch + mov r0, #0x5 + bl PlaySE + ldr r1, ._266 @ gTrainerBattleOpponent + mov r2, #0x80 + lsl r2, r2, #0x3 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._266 + 4 @ 0x2017000 + ldrb r2, [r1, #0x1] + mov r0, #0x11 + neg r0, r0 + and r0, r0, r2 + strb r0, [r1, #0x1] + mov r0, #0xac + strb r0, [r1, #0x2] + mov r0, #0xff + strb r0, [r1, #0x3] + strb r4, [r1, #0x9] + strb r4, [r1, #0xa] + strb r4, [r1, #0xb] + strb r4, [r1, #0xc] + ldr r1, ._266 + 8 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._266 + 12 @ debug_80C4F48 + str r1, [r0] + b ._274 +._267: + .align 2, 0 +._266: + .word gTrainerBattleOpponent + .word 0x2017000 + .word gTasks + .word debug_80C4F48+1 +._264: + mov r0, r8 + ldrh r1, [r0, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._268 @cond_branch + lsl r0, r5, #0x18 + cmp r0, #0 + beq ._269 @cond_branch + sub r0, r5, #1 + strb r0, [r7, #0x5] + b ._277 +._269: + mov r1, ip + lsl r0, r1, #0x18 + cmp r0, #0 + beq ._277 @cond_branch + mov r0, ip + sub r0, r0, #0x1 + b ._272 +._268: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._274 @cond_branch + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x8 + bhi ._274 @cond_branch + cmp r0, #0x4 + bhi ._275 @cond_branch + add r0, r5, #1 + strb r0, [r7, #0x5] + b ._277 +._275: + mov r2, ip + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x3 + bhi ._277 @cond_branch + mov r0, ip + add r0, r0, #0x1 +._272: + strb r0, [r7, #0x4] + ldrb r0, [r7, #0x4] + bl debug_80C4C44 +._277: + ldr r0, ._278 @ gTasks + lsl r1, r6, #0x2 + add r1, r1, r6 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._278 + 4 @ debug_80C4A60 +._261: + str r0, [r1] +._274: + add sp, sp, #0x4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._279: + .align 2, 0 +._278: + .word gTasks + .word debug_80C4A60+1 + + thumb_func_end debug_80C4AC4 + + thumb_func_start debug_80C4C44 +debug_80C4C44: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xfffffff0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov sl, r0 + mov r2, #0x0 + mov r5, sp +._290: + mov r0, sl + add r6, r2, r0 + add r4, r6, #0 + add r1, r2, #1 + mov r8, r1 + cmp r4, #0x9 + bgt ._280 @cond_branch + mov r3, #0x0 + ldr r1, ._288 @ gUnknown_Debug_083F80D8 + lsl r0, r4, #0x3 + add r0, r0, r1 + ldr r0, [r0] + ldrb r0, [r0] + ldr r7, ._288 + 4 @ byte_3005E30 + mov r9, r7 + lsl r2, r2, #0x1 + mov ip, r2 + cmp r0, #0xff + beq ._282 @cond_branch + add r7, r1, #0 +._283: + add r0, r3, #3 + mov r1, sp + add r2, r1, r0 + lsl r1, r6, #0x3 + add r1, r1, r7 + ldr r0, [r1] + add r0, r0, r3 + ldrb r0, [r0] + strb r0, [r2] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + ldr r0, [r1] + add r0, r0, r3 + ldrb r0, [r0] + cmp r0, #0xff + beq ._282 @cond_branch + cmp r3, #0xb + bls ._283 @cond_branch +._282: + cmp r3, #0xb + bhi ._284 @cond_branch + mov r1, #0x0 +._285: + add r0, r3, #3 + add r0, r0, sp + strb r1, [r0] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0xb + bls ._285 @cond_branch +._284: + mov r0, #0xff + strb r0, [r5, #0xe] + mov r0, #0xfc + strb r0, [r5] + mov r2, #0x1 + strb r2, [r5, #0x1] + add r1, r2, #0 + LSL r1, r4 + mov r3, r9 + ldr r0, [r3] + and r0, r0, r1 + cmp r0, #0 + beq ._286 @cond_branch + mov r0, #0x3 + strb r0, [r5, #0x2] + b ._287 +._289: + .align 2, 0 +._288: + .word gUnknown_Debug_083F80D8 + .word byte_3005E30 +._286: + strb r2, [r5, #0x2] +._287: + mov r2, ip + add r2, r2, #0x3 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x11 + bl Menu_PrintText +._280: + mov r7, r8 + lsl r0, r7, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x5 + bls ._290 @cond_branch + add sp, sp, #0x10 + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_80C4C44 + + thumb_func_start debug_80C4D14 +debug_80C4D14: + push {r4, r5, r6, lr} + add sp, sp, #0xffffffd0 + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r1, ._291 @ gUnknown_Debug_083F81C7 + mov r0, sp + mov r2, #0xf + bl memcpy + add r5, sp, #0x10 + ldr r1, ._291 + 4 @ gUnknown_Debug_083F81F5 + add r0, r5, #0 + mov r2, #0xd + bl memcpy + add r6, sp, #0x20 + ldr r1, ._291 + 8 @ gUnknown_Debug_083F8202 + add r0, r6, #0 + mov r2, #0xf + bl memcpy + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + add r0, r5, #0 + mov r1, #0x14 + mov r2, #0x11 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xf + bl Menu_DrawStdWindowFrame + add r0, r6, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._291 + 12 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x6] + bl debug_80C4F00 + mov r0, #0xf + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r1, ._291 + 16 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._291 + 20 @ debug_80C4DB8 + str r1, [r0] + add sp, sp, #0x30 + pop {r4, r5, r6} + pop {r0} + bx r0 +._292: + .align 2, 0 +._291: + .word gUnknown_Debug_083F81C7 + .word gUnknown_Debug_083F81F5 + .word gUnknown_Debug_083F8202 + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C4DB8+1 + + thumb_func_end debug_80C4D14 + + thumb_func_start debug_80C4DB8 +debug_80C4DB8: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._293 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x7] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._293 + 4 @ 0x4000042 + ldr r2, ._293 + 8 @ 0x177 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + add r2, r2, #0x8 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._293 + 12 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._293 + 16 @ debug_80C4E18 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._294: + .align 2, 0 +._293: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x177 + .word gTasks + .word debug_80C4E18+1 + + thumb_func_end debug_80C4DB8 + + thumb_func_start debug_80C4E18 +debug_80C4E18: + push {r4, r5, r6, r7, lr} + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r5, ._297 @ gUnknown_Debug_2038A0C + ldrb r3, [r5, #0x6] + ldrb r2, [r5, #0x7] + add r0, r3, r2 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r7, ._297 + 4 @ gMain + ldrh r1, [r7, #0x2e] + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._295 @cond_branch + ldr r0, ._297 + 8 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._297 + 12 @ debug_80C42B8 + b ._296 +._298: + .align 2, 0 +._297: + .word gUnknown_Debug_2038A0C + .word gMain + .word gTasks + .word debug_80C42B8+1 +._295: + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + bne ._299 @cond_branch + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._300 @cond_branch +._299: + mov r0, #0x5 + bl PlaySE + ldr r2, ._302 @ gBattleTerrain + ldr r1, ._302 + 4 @ gUnknown_Debug_083F814C + lsl r0, r6, #0x3 + add r0, r0, r1 + ldrb r0, [r0, #0x4] + strb r0, [r2] + ldr r1, ._302 + 8 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._302 + 12 @ debug_80C5158 + str r1, [r0] + b ._310 +._303: + .align 2, 0 +._302: + .word gBattleTerrain + .word gUnknown_Debug_083F814C + .word gTasks + .word debug_80C5158+1 +._300: + ldrh r1, [r7, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._304 @cond_branch + lsl r0, r2, #0x18 + cmp r0, #0 + beq ._305 @cond_branch + sub r0, r2, #1 + strb r0, [r5, #0x7] + b ._313 +._305: + lsl r0, r3, #0x18 + cmp r0, #0 + beq ._313 @cond_branch + sub r0, r3, #1 + b ._308 +._304: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._310 @cond_branch + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x7 + bhi ._310 @cond_branch + cmp r0, #0x4 + bhi ._311 @cond_branch + add r0, r2, #1 + strb r0, [r5, #0x7] + b ._313 +._311: + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0x2 + bhi ._313 @cond_branch + add r0, r3, #1 +._308: + strb r0, [r5, #0x6] + ldrb r0, [r5, #0x6] + bl debug_80C4F00 +._313: + ldr r0, ._314 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._314 + 4 @ debug_80C4DB8 +._296: + str r0, [r1] +._310: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._315: + .align 2, 0 +._314: + .word gTasks + .word debug_80C4DB8+1 + + thumb_func_end debug_80C4E18 + + thumb_func_start debug_80C4F00 +debug_80C4F00: + push {r4, r5, r6, lr} + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + mov r0, #0x1 + mov r1, #0x3 + mov r2, #0xd + mov r3, #0xe + bl Menu_BlankWindowRect + mov r4, #0x0 + ldr r6, ._318 @ gUnknown_Debug_083F814C +._317: + cmp r4, #0x8 + bhi ._316 @cond_branch + add r0, r4, r5 + lsl r0, r0, #0x3 + add r0, r0, r6 + ldr r0, [r0] + lsl r2, r4, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r2, r2, r1 + lsr r2, r2, #0x18 + mov r1, #0x2 + bl Menu_PrintText +._316: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x5 + bls ._317 @cond_branch + pop {r4, r5, r6} + pop {r0} + bx r0 +._319: + .align 2, 0 +._318: + .word gUnknown_Debug_083F814C + + thumb_func_end debug_80C4F00 + + thumb_func_start debug_80C4F48 +debug_80C4F48: + push {r4, r5, r6, lr} + mov r6, r9 + mov r5, r8 + push {r5, r6} + add sp, sp, #0xffffffc4 + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r1, ._320 @ gUnknown_Debug_083F8211 + mov r0, sp + mov r2, #0x11 + bl memcpy + add r6, sp, #0x14 + ldr r1, ._320 + 4 @ gUnknown_Debug_083F81A0 + add r0, r6, #0 + mov r2, #0xd + bl memcpy + add r5, sp, #0x24 + ldr r1, ._320 + 8 @ gUnknown_Debug_083F8222 + add r0, r5, #0 + mov r2, #0xd + bl memcpy + add r0, sp, #0x34 + mov r9, r0 + ldr r1, ._320 + 12 @ gUnknown_Debug_083F822F + mov r2, #0x4 + bl memcpy + add r0, sp, #0x38 + mov r8, r0 + ldr r1, ._320 + 16 @ gUnknown_Debug_083F8233 + mov r2, #0x4 + bl memcpy + mov r0, #0x0 + mov r1, #0x10 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, sp + mov r1, #0x1 + mov r2, #0x11 + bl Menu_PrintText + add r0, r6, #0 + mov r1, #0x14 + mov r2, #0x11 + bl Menu_PrintText + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0xf + bl Menu_DrawStdWindowFrame + add r0, r5, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + mov r0, #0x1 + mov r1, #0x3 + mov r2, #0xd + mov r3, #0xe + bl Menu_BlankWindowRect + add r0, r5, #0 + mov r1, #0x2 + mov r2, #0x1 + bl Menu_PrintText + mov r0, r9 + mov r1, #0x2 + mov r2, #0x3 + bl Menu_PrintText + mov r0, r8 + mov r1, #0x2 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0xf + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0xf + bl Menu_DrawStdWindowFrame + ldr r1, ._320 + 20 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._320 + 24 @ debug_80C5038 + str r1, [r0] + add sp, sp, #0x3c + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._321: + .align 2, 0 +._320: + .word gUnknown_Debug_083F8211 + .word gUnknown_Debug_083F81A0 + .word gUnknown_Debug_083F8222 + .word gUnknown_Debug_083F822F + .word gUnknown_Debug_083F8233 + .word gTasks + .word debug_80C5038+1 + + thumb_func_end debug_80C4F48 + + thumb_func_start debug_80C5038 +debug_80C5038: + push {r4, lr} + add sp, sp, #0xfffffffc + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + ldr r0, ._322 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x8] + lsl r0, r0, #0x19 + mov r1, #0xc0 + lsl r1, r1, #0x12 + add r0, r0, r1 + lsr r0, r0, #0x18 + mov r1, #0x1 + str r1, [sp] + mov r2, #0x1 + mov r3, #0xe + bl debug_80C38E4 + ldr r1, ._322 + 4 @ 0x4000042 + ldr r2, ._322 + 8 @ 0x177 + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + add r2, r2, #0x8 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._322 + 12 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._322 + 16 @ debug_80C5098 + str r1, [r0] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._323: + .align 2, 0 +._322: + .word gUnknown_Debug_2038A0C + .word 0x4000042 + .word 0x177 + .word gTasks + .word debug_80C5098+1 + + thumb_func_end debug_80C5038 + + thumb_func_start debug_80C5098 +debug_80C5098: + push {r4, lr} + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r1, ._326 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x2 + and r0, r0, r2 + add r3, r1, #0 + cmp r0, #0 + beq ._324 @cond_branch + ldr r0, ._326 + 4 @ gTasks + lsl r1, r4, #0x2 + add r1, r1, r4 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._326 + 8 @ debug_80C47BC + str r0, [r1] + b ._339 +._327: + .align 2, 0 +._326: + .word gMain + .word gTasks + .word debug_80C47BC+1 +._324: + mov r0, #0x8 + and r0, r0, r2 + cmp r0, #0 + bne ._328 @cond_branch + mov r0, #0x1 + and r0, r0, r2 + cmp r0, #0 + beq ._329 @cond_branch +._328: + mov r0, #0x5 + bl PlaySE + ldr r1, ._331 @ gSaveBlock2 + ldr r0, ._331 + 4 @ gUnknown_Debug_2038A0C + ldrb r0, [r0, #0x8] + strb r0, [r1, #0x8] + ldr r1, ._331 + 8 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._331 + 12 @ debug_80C42B8 + b ._330 +._332: + .align 2, 0 +._331: + .word gSaveBlock2 + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C42B8+1 +._329: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._334 @cond_branch + ldr r1, ._336 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x8] + cmp r0, #0 + beq ._334 @cond_branch + sub r0, r0, #0x1 + b ._335 +._337: + .align 2, 0 +._336: + .word gUnknown_Debug_2038A0C +._334: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._339 @cond_branch + ldr r1, ._340 @ gUnknown_Debug_2038A0C + ldrb r0, [r1, #0x8] + cmp r0, #0 + bne ._339 @cond_branch + add r0, r0, #0x1 +._335: + strb r0, [r1, #0x8] + ldr r1, ._340 + 4 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._340 + 8 @ debug_80C5038 +._330: + str r1, [r0] +._339: + pop {r4} + pop {r0} + bx r0 +._341: + .align 2, 0 +._340: + .word gUnknown_Debug_2038A0C + .word gTasks + .word debug_80C5038+1 + + thumb_func_end debug_80C5098 + + thumb_func_start debug_80C5158 +debug_80C5158: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._342 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._342 + 4 @ debug_80C5174 + str r0, [r1] + bx lr +._343: + .align 2, 0 +._342: + .word gTasks + .word debug_80C5174+1 + + thumb_func_end debug_80C5158 + + thumb_func_start debug_80C5174 +debug_80C5174: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._344 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._344 + 4 @ debug_80C5190 + str r0, [r1] + bx lr +._345: + .align 2, 0 +._344: + .word gTasks + .word debug_80C5190+1 + + thumb_func_end debug_80C5174 + + thumb_func_start debug_80C5190 +debug_80C5190: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._346 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._346 + 4 @ debug_80C51AC + str r0, [r1] + bx lr +._347: + .align 2, 0 +._346: + .word gTasks + .word debug_80C51AC+1 + + thumb_func_end debug_80C5190 + + thumb_func_start debug_80C51AC +debug_80C51AC: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._348 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._348 + 4 @ debug_80C51C8 + str r0, [r1] + bx lr +._349: + .align 2, 0 +._348: + .word gTasks + .word debug_80C51C8+1 + + thumb_func_end debug_80C51AC + + thumb_func_start debug_80C51C8 +debug_80C51C8: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._350 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._350 + 4 @ debug_80C51E4 + str r0, [r1] + bx lr +._351: + .align 2, 0 +._350: + .word gTasks + .word debug_80C51E4+1 + + thumb_func_end debug_80C51C8 + + thumb_func_start debug_80C51E4 +debug_80C51E4: + push {lr} + bl sub_80408BC + ldr r0, ._352 @ gMain + ldr r1, ._352 + 4 @ debug_80C41A8 + str r1, [r0, #0x8] + ldr r0, ._352 + 8 @ unref_sub_800D684 + bl SetMainCallback2 + pop {r0} + bx r0 +._353: + .align 2, 0 +._352: + .word gMain + .word debug_80C41A8+1 + .word unref_sub_800D684+1 + + thumb_func_end debug_80C51E4 + + thumb_func_start debug_80C5208 +debug_80C5208: + push {r4, r5, r6, lr} + ldr r1, ._355 @ gUnknown_Debug_2038A1C + ldr r0, ._355 + 4 @ 0x2018000 + str r0, [r1] + mov r3, #0x0 + add r6, r1, #0 + ldr r4, ._355 + 8 @ gSaveBlock2 + add r5, r6, #0 + mov r2, #0x0 +._354: + ldr r0, [r5] + lsl r1, r3, #0x2 + add r0, r0, #0x64 + add r0, r0, r1 + str r2, [r0] + add r0, r3, #1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0x3f + bls ._354 @cond_branch + ldr r2, [r6] + mov r0, #0xfc + str r0, [r2, #0x64] + ldrb r1, [r4, #0xa] + ldrb r0, [r4, #0xb] + lsl r0, r0, #0x8 + orr r1, r1, r0 + ldrb r0, [r4, #0xc] + lsl r0, r0, #0x10 + orr r1, r1, r0 + ldrb r0, [r4, #0xd] + lsl r0, r0, #0x18 + orr r1, r1, r0 + str r1, [r2, #0x70] + bl Random + add r4, r0, #0 + bl Random + ldr r1, [r6] + lsl r4, r4, #0x10 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + orr r4, r4, r0 + str r4, [r1, #0x74] + mov r0, #0x1 + str r0, [r1, #0x68] + str r0, [r1, #0x6c] + bl debug_80C5C94 + pop {r4, r5, r6} + pop {r0} + bx r0 +._356: + .align 2, 0 +._355: + .word gUnknown_Debug_2038A1C + .word 0x2018000 + .word gSaveBlock2 + + thumb_func_end debug_80C5208 + + thumb_func_start debug_80C527C +debug_80C527C: + push {r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r5, #0x0 + ldr r7, ._359 @ gPlayerPartyCount +._361: + mov r0, #0x64 + add r1, r5, #0 + mul r1, r1, r0 + ldr r0, ._359 + 4 @ gPlayerParty + add r4, r1, r0 + add r0, r4, #0 + mov r1, #0xb + mov r2, #0x0 + bl GetMonData + cmp r0, #0 + bne ._357 @cond_branch + add r0, r4, #0 + add r1, r6, #0 + mov r2, #0x64 + bl memcpy + add r0, r5, #1 + strb r0, [r7] + mov r0, #0x0 + b ._358 +._360: + .align 2, 0 +._359: + .word gPlayerPartyCount + .word gPlayerParty +._357: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #0x5 + bls ._361 @cond_branch + ldr r0, ._362 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + bl SendMonToPC + mov r0, #0x1 +._358: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._363: + .align 2, 0 +._362: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C527C + + thumb_func_start InitCreatePokemon +InitCreatePokemon: + push {r4, r5, lr} + add sp, sp, #0xffffffd4 + ldr r1, ._364 @ gUnknown_Debug_083F8733 + add r0, sp, #0x4 + mov r2, #0x25 + bl memcpy + bl debug_80C35DC + mov r0, #0x1 + neg r0, r0 + mov r4, #0x0 + str r4, [sp] + mov r1, #0x0 + mov r2, #0x10 + mov r3, #0x0 + bl BeginNormalPaletteFade + ldr r0, ._364 + 4 @ 0x4000050 + mov r5, #0x0 + strh r4, [r0] + add r0, r0, #0x2 + strh r4, [r0] + add r0, r0, #0x2 + strh r4, [r0] + ldr r3, ._364 + 8 @ 0x4000208 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, ._364 + 12 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, ._364 + 16 @ 0x4000004 + ldrh r0, [r2] + mov r1, #0x8 + orr r0, r0, r1 + strh r0, [r2] + ldr r0, ._364 + 20 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._364 + 24 @ debug_80C370C + bl SetMainCallback2 + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x3 + bl Menu_DrawStdWindowFrame + add r0, sp, #0x4 + mov r1, #0x1 + mov r2, #0x1 + bl Menu_PrintText + mov r1, #0x80 + lsl r1, r1, #0x13 + mov r2, #0x8a + lsl r2, r2, #0x5 + add r0, r2, #0 + strh r0, [r1] + ldr r0, ._364 + 28 @ debug_80C53A4 + mov r1, #0x0 + bl CreateTask + bl debug_80C5208 + ldr r1, ._364 + 32 @ gUnknown_Debug_2038A1C + ldr r0, [r1] + mov r2, #0xb4 + lsl r2, r2, #0x1 + add r0, r0, r2 + strb r5, [r0] + ldr r0, [r1] + ldr r1, ._364 + 36 @ 0x169 + add r0, r0, r1 + strb r5, [r0] + add sp, sp, #0x2c + pop {r4, r5} + pop {r0} + bx r0 +._365: + .align 2, 0 +._364: + .word gUnknown_Debug_083F8733 + .word 0x4000050 + .word 0x4000208 + .word 0x4000200 + .word 0x4000004 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word debug_80C53A4+1 + .word gUnknown_Debug_2038A1C + .word 0x169 + + thumb_func_end InitCreatePokemon + + thumb_func_start debug_80C53A4 +debug_80C53A4: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + ldr r2, ._366 @ gTasks + lsl r1, r0, #0x2 + add r1, r1, r0 + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r0, ._366 + 4 @ debug_80C53C0 + str r0, [r1] + bx lr +._367: + .align 2, 0 +._366: + .word gTasks + .word debug_80C53C0+1 + + thumb_func_end debug_80C53A4 + + thumb_func_start debug_80C53C0 +debug_80C53C0: + push {r4, lr} + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + bl debug_80C6384 + mov r0, #0x0 + bl debug_80C627C + ldr r1, ._368 @ gTasks + lsl r0, r4, #0x2 + add r0, r0, r4 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._368 + 4 @ debug_80C53F0 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 +._369: + .align 2, 0 +._368: + .word gTasks + .word debug_80C53F0+1 + + thumb_func_end debug_80C53C0 + + thumb_func_start debug_80C53F0 +debug_80C53F0: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + ldr r0, ._372 @ gMain + ldrh r1, [r0, #0x2e] + mov r2, #0x1 + and r2, r2, r1 + add r4, r0, #0 + cmp r2, #0 + beq ._370 @cond_branch + ldr r0, ._372 + 4 @ gUnknown_Debug_2038A1C + ldr r3, [r0] + mov r0, #0xb2 + lsl r0, r0, #0x1 + add r2, r3, r0 + ldr r1, ._372 + 8 @ gUnknown_Debug_083F8698 + mov r4, #0xb4 + lsl r4, r4, #0x1 + add r0, r3, r4 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r6, ._372 + 12 @ 0x169 + add r1, r3, r6 + ldrb r1, [r1] + ldr r0, [r0] + add r0, r0, r1 + ldrb r1, [r0] + lsl r1, r1, #0x2 + add r0, r3, #0 + add r0, r0, #0x64 + add r0, r0, r1 + ldr r0, [r0] + str r0, [r2] + mov r0, #0xb5 + lsl r0, r0, #0x1 + add r1, r3, r0 + mov r0, #0x0 + strb r0, [r1] + bl debug_80C643C + ldr r1, ._372 + 16 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._372 + 20 @ debug_80C55E4 + b ._375 +._373: + .align 2, 0 +._372: + .word gMain + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F8698 + .word 0x169 + .word gTasks + .word debug_80C55E4+1 +._370: + mov r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._374 @cond_branch + mov r0, #0x1 + neg r0, r0 + str r2, [sp] + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._376 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._376 + 4 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._376 + 8 @ debug_80C373C + b ._375 +._377: + .align 2, 0 +._376: + .word debug_80C370C+1 + .word gTasks + .word debug_80C373C+1 +._374: + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + beq ._378 @cond_branch + mov r0, #0x5 + bl PlaySE + bl debug_80C5FFC + ldr r0, ._381 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + bl debug_80C527C + add r4, r0, #0 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov r0, #0x3 + mov r1, #0x8 + mov r2, #0x1a + mov r3, #0xb + bl Menu_DrawStdWindowFrame + cmp r4, #0 + beq ._379 @cond_branch + ldr r0, ._381 + 4 @ gUnknown_Debug_083F872A + mov r1, #0x4 + mov r2, #0x9 + bl Menu_PrintText + b ._380 +._382: + .align 2, 0 +._381: + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F872A +._379: + ldr r0, ._384 @ gUnknown_Debug_083F8720 + mov r1, #0x4 + mov r2, #0x9 + bl Menu_PrintText +._380: + ldr r0, ._384 + 4 @ gTasks + lsl r1, r5, #0x2 + add r1, r1, r5 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._384 + 8 @ debug_80C5708 + str r0, [r1] + b ._400 +._385: + .align 2, 0 +._384: + .word gUnknown_Debug_083F8720 + .word gTasks + .word debug_80C5708+1 +._378: + mov r0, #0x4 + and r0, r0, r1 + cmp r0, #0 + beq ._386 @cond_branch + ldr r0, ._388 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + ldr r4, [r0, #0x64] + lsl r4, r4, #0x10 + lsr r4, r4, #0x10 + add r0, r4, #0 + mov r1, #0x2 + bl GetSetPokedexFlag + add r0, r4, #0 + mov r1, #0x3 + bl GetSetPokedexFlag + mov r0, #0x5 + bl PlaySE + b ._400 +._389: + .align 2, 0 +._388: + .word gUnknown_Debug_2038A1C +._386: + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._390 @cond_branch + mov r0, #0x2 + bl debug_80C627C + b ._400 +._390: + mov r0, #0x80 + and r0, r0, r1 + lsl r0, r0, #0x10 + lsr r3, r0, #0x10 + cmp r3, #0 + beq ._392 @cond_branch + mov r0, #0x1 + bl debug_80C627C + b ._400 +._392: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._395 @cond_branch + ldr r2, ._397 @ gUnknown_Debug_2038A1C + ldr r0, [r2] + mov r6, #0xb4 + lsl r6, r6, #0x1 + add r1, r0, r6 + ldrb r0, [r1] + cmp r0, #0 + beq ._395 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + ldr r0, [r2] + ldr r1, ._397 + 4 @ 0x169 + add r0, r0, r1 + strb r3, [r0] + b ._396 +._398: + .align 2, 0 +._397: + .word gUnknown_Debug_2038A1C + .word 0x169 +._395: + ldrh r1, [r4, #0x2e] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._400 @cond_branch + ldr r3, ._401 @ gUnknown_Debug_2038A1C + ldr r0, [r3] + mov r4, #0xb4 + lsl r4, r4, #0x1 + add r2, r0, r4 + ldrb r0, [r2] + cmp r0, #0x4 + bhi ._400 @cond_branch + add r0, r0, #0x1 + mov r1, #0x0 + strb r0, [r2] + ldr r0, [r3] + ldr r6, ._401 + 4 @ 0x169 + add r0, r0, r6 + strb r1, [r0] +._396: + ldr r1, ._401 + 8 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._401 + 12 @ debug_80C53C0 +._375: + str r1, [r0] +._400: + add sp, sp, #0x4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._402: + .align 2, 0 +._401: + .word gUnknown_Debug_2038A1C + .word 0x169 + .word gTasks + .word debug_80C53C0+1 + + thumb_func_end debug_80C53F0 + + thumb_func_start debug_80C55E4 +debug_80C55E4: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + add r6, r3, #0 + ldr r1, ._405 @ gUnknown_Debug_083F8698 + ldr r2, ._405 + 4 @ gUnknown_Debug_2038A1C + ldr r0, [r2] + mov ip, r0 + mov r0, #0xb4 + lsl r0, r0, #0x1 + add r0, r0, ip + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._405 + 8 @ 0x169 + add r1, r1, ip + ldrb r1, [r1] + ldr r0, [r0] + add r0, r0, r1 + ldrb r5, [r0] + add r7, r5, #0 + ldr r1, ._405 + 12 @ gMain + ldrh r4, [r1, #0x2e] + mov r0, #0x1 + and r0, r0, r4 + mov r8, r2 + add r2, r1, #0 + cmp r0, #0 + beq ._403 @cond_branch + ldr r0, ._405 + 16 @ gTasks + lsl r1, r3, #0x2 + add r1, r1, r3 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._405 + 20 @ debug_80C53C0 + str r0, [r1] + b ._422 +._406: + .align 2, 0 +._405: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x169 + .word gMain + .word gTasks + .word debug_80C53C0+1 +._403: + mov r0, #0x2 + and r0, r0, r4 + cmp r0, #0 + beq ._407 @cond_branch + lsl r1, r5, #0x2 + mov r0, ip + add r0, r0, #0x64 + add r0, r0, r1 + mov r1, #0xb2 + lsl r1, r1, #0x1 + add r1, r1, ip + ldr r1, [r1] + str r1, [r0] + ldr r1, ._409 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._409 + 4 @ debug_80C53C0 + str r1, [r0] + b ._422 +._410: + .align 2, 0 +._409: + .word gTasks + .word debug_80C53C0+1 +._407: + ldrh r1, [r2, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._411 @cond_branch + mov r0, #0x1 + b ._412 +._411: + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._413 @cond_branch + mov r0, #0x2 +._412: + bl debug_80C6544 + bl debug_80C643C + b ._422 +._413: + ldr r0, ._419 @ gUnknown_Debug_083F8554 + lsl r1, r7, #0x3 + add r0, r0, #0x4 + add r1, r1, r0 + ldr r1, [r1] + ldrb r0, [r1, #0x9] + cmp r0, #0xff + beq ._422 @cond_branch + mov r0, #0x20 + and r0, r0, r4 + cmp r0, #0 + beq ._417 @cond_branch + mov r0, #0xb5 + lsl r0, r0, #0x1 + add ip, ip, r0 + mov r0, ip + ldrb r3, [r0] + ldrb r0, [r1, #0x9] + sub r0, r0, #0x1 + cmp r3, r0 + bge ._417 @cond_branch + add r0, r3, #1 + mov r1, ip + strb r0, [r1] + bl debug_80C643C + b ._422 +._420: + .align 2, 0 +._419: + .word gUnknown_Debug_083F8554 +._417: + ldrh r1, [r2, #0x2e] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._422 @cond_branch + mov r2, r8 + ldr r0, [r2] + mov r2, #0xb5 + lsl r2, r2, #0x1 + add r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq ._422 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1] + bl debug_80C643C +._422: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_80C55E4 + + thumb_func_start debug_80C5708 +debug_80C5708: + push {lr} + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + ldr r0, ._424 @ gMain + ldrh r1, [r0, #0x2e] + mov r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._423 @cond_branch + ldr r0, ._424 + 4 @ gTasks + lsl r1, r2, #0x2 + add r1, r1, r2 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._424 + 8 @ debug_80C53C0 + str r0, [r1] +._423: + pop {r0} + bx r0 +._425: + .align 2, 0 +._424: + .word gMain + .word gTasks + .word debug_80C53C0+1 + + thumb_func_end debug_80C5708 + + thumb_func_start debug_80C5738 +debug_80C5738: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + add r6, r0, #0 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r8, r2 + cmp r4, #0xfe + bne ._426 @cond_branch + ldr r1, ._428 @ gUnknown_Debug_083F850A + mov r2, #0x7 + bl debug_80C689C + add r0, r6, #7 + ldr r7, ._428 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r7] + add r1, r1, #0xf0 + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + mov r4, #0x0 + strb r4, [r6, #0x13] + strb r4, [r6, #0x14] + add r0, r6, #0 + add r0, r0, #0x15 + ldr r1, ._428 + 8 @ gUnknown_Debug_083F8514 + mov r2, #0x7 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x1c + ldr r1, [r7] + add r1, r1, #0xf4 + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + add r0, r6, #0 + add r0, r0, #0x28 + strb r4, [r0] + add r0, r0, #0x1 + strb r4, [r0] + add r0, r0, #0x1 + ldr r1, ._428 + 12 @ gUnknown_Debug_083F851C + mov r2, #0x9 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x31 + ldr r1, [r7] + add r1, r1, #0xf8 +._431: + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + b ._517 +._429: + .align 2, 0 +._428: + .word gUnknown_Debug_083F850A + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F8514 + .word gUnknown_Debug_083F851C +._426: + cmp r4, #0xfd + bne ._430 @cond_branch + ldr r1, ._432 @ gUnknown_Debug_083F8524 + add r0, r6, #0 + mov r2, #0x9 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x9 + ldr r7, ._432 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r7] + add r1, r1, #0xfc + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + mov r4, #0x0 + strb r4, [r6, #0x15] + strb r4, [r6, #0x16] + add r0, r6, #0 + add r0, r0, #0x17 + ldr r1, ._432 + 8 @ gUnknown_Debug_083F852D + mov r2, #0x9 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x20 + ldr r1, [r7] + mov r2, #0x80 + lsl r2, r2, #0x1 + add r1, r1, r2 + ldr r1, [r1] + mov r2, #0x3 + mov r3, #0x1 + bl debug_80C6678 + add r0, r6, #0 + add r0, r0, #0x2c + strb r4, [r0] + add r0, r0, #0x1 + strb r4, [r0] + add r0, r0, #0x1 + ldr r1, ._432 + 12 @ gUnknown_Debug_083F8537 + mov r2, #0x9 + bl debug_80C689C + add r0, r6, #0 + add r0, r0, #0x37 + ldr r1, [r7] + mov r3, #0x82 + lsl r3, r3, #0x1 + add r1, r1, r3 + b ._431 +._433: + .align 2, 0 +._432: + .word gUnknown_Debug_083F8524 + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F852D + .word gUnknown_Debug_083F8537 +._430: + mov r1, #0x0 + lsl r5, r4, #0x3 + mov r2, #0x0 +._434: + add r0, r6, r1 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0xb + bls ._434 @cond_branch + ldr r0, ._437 @ gUnknown_Debug_083F8554 + add r0, r5, r0 + ldr r1, [r0] + add r0, r6, #0 + mov r2, #0xb + bl debug_80C689C + mov r1, #0xc + mov r2, #0xff +._435: + add r0, r6, r1 + strb r2, [r0] + add r0, r1, #1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, #0xff + bls ._435 @cond_branch + ldr r0, ._437 @ gUnknown_Debug_083F8554 + add r0, r0, #0x4 + add r0, r5, r0 + ldr r0, [r0] + ldrb r2, [r0, #0x9] + lsl r0, r2, #0x1a + lsr r5, r0, #0x18 + cmp r4, #0x22 + bhi ._436 @cond_branch + lsl r0, r4, #0x2 + ldr r1, ._437 + 4 @ + add r1, r0, r1 + ldr r1, [r1] + add r7, r0, #0 + mov pc, r1 +._438: + .align 2, 0 +._437: + .word gUnknown_Debug_083F8554 + .word ._439 +._439: + .word ._440 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._445 + .word ._446 + .word ._450 + .word ._450 + .word ._450 + .word ._450 + .word ._451 + .word ._452 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._472 + .word ._473 + .word ._474 +._436: + mov r0, #0xff + strb r0, [r6] + b ._517 +._440: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._477 @ gUnknown_Debug_2038A1C + mov r9, r1 + ldr r1, [r1] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + mov r3, r8 + bl debug_80C6678 + add r1, r5, r6 + mov r0, #0x0 + strb r0, [r1, #0xa] + mov r0, #0xfc + strb r0, [r1, #0xb] + mov r0, #0x1 + strb r0, [r1, #0xc] + mov r2, r8 + strb r2, [r1, #0xd] + add r4, r5, #0 + add r4, r4, #0xe + add r4, r6, r4 + mov r3, r9 + ldr r0, [r3] + add r0, r0, #0x64 + add r0, r0, r7 + ldrh r0, [r0] + bl NationalPokedexNumToSpecies + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xb + mul r1, r1, r0 + ldr r0, ._477 + 4 @ gSpeciesNames + add r1, r1, r0 + add r0, r4, #0 + mov r2, #0xa + bl debug_80C689C + b ._517 +._478: + .align 2, 0 +._477: + .word gUnknown_Debug_2038A1C + .word gSpeciesNames +._445: + ldr r0, ._483 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r7 + ldr r0, [r0] + cmp r0, #0x1 + beq ._479 @cond_branch + cmp r0, #0x1 + bcc ._480 @cond_branch + cmp r0, #0x2 + beq ._481 @cond_branch + b ._517 +._484: + .align 2, 0 +._483: + .word gUnknown_Debug_2038A1C +._480: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._486 @ gUnknown_Debug_083F8546 + b ._488 +._487: + .align 2, 0 +._486: + .word gUnknown_Debug_083F8546 +._479: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._489 @ gUnknown_Debug_083F8541 + b ._488 +._490: + .align 2, 0 +._489: + .word gUnknown_Debug_083F8541 +._481: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._492 @ gUnknown_Debug_083F8544 +._488: + mov r2, #0x2 + bl debug_80C689C + b ._517 +._493: + .align 2, 0 +._492: + .word gUnknown_Debug_083F8544 +._450: + add r0, r6, #0 + add r0, r0, #0xa + ldr r4, ._495 @ gUnknown_Debug_2038A1C + ldr r1, [r4] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + mov r3, r8 + bl debug_80C6678 + add r1, r5, r6 + mov r0, #0x0 + strb r0, [r1, #0xa] + mov r0, #0xfc + strb r0, [r1, #0xb] + mov r0, #0x1 + strb r0, [r1, #0xc] + mov r0, r8 + strb r0, [r1, #0xd] + add r0, r5, #0 + add r0, r0, #0xe + add r0, r6, r0 + ldr r1, [r4] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r2, [r1] + mov r1, #0xd + mul r1, r1, r2 + ldr r2, ._495 + 4 @ gMoveNames + add r1, r1, r2 + b ._494 +._496: + .align 2, 0 +._495: + .word gUnknown_Debug_2038A1C + .word gMoveNames +._451: + add r0, r6, #0 + add r0, r0, #0xa + ldr r4, ._499 @ gUnknown_Debug_2038A1C + ldr r1, [r4] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + mov r3, r8 + bl debug_80C6678 + add r1, r5, r6 + mov r0, #0x0 + strb r0, [r1, #0xa] + mov r0, #0xfc + strb r0, [r1, #0xb] + mov r0, #0x1 + strb r0, [r1, #0xc] + mov r2, r8 + strb r2, [r1, #0xd] + ldr r0, [r4] + add r0, r0, #0x64 + add r0, r0, r7 + ldr r0, [r0] + cmp r0, #0 + beq ._497 @cond_branch + add r4, r5, #0 + add r4, r4, #0xe + add r4, r6, r4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl ItemId_GetItem + add r1, r0, #0 + add r0, r4, #0 + b ._498 +._500: + .align 2, 0 +._499: + .word gUnknown_Debug_2038A1C +._497: + add r0, r5, #0 + add r0, r0, #0xe + add r0, r6, r0 + ldr r1, ._502 @ gUnknown_Debug_083F8541 +._498: + mov r2, #0x9 + bl debug_80C689C + b ._517 +._503: + .align 2, 0 +._502: + .word gUnknown_Debug_083F8541 +._452: + add r6, r6, #0xc + ldr r4, ._505 @ gUnknown_Debug_2038A1C + ldr r0, [r4] + ldr r0, [r0, #0x64] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl NationalPokedexNumToSpecies + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + ldr r1, [r4] + add r1, r1, #0x64 + add r1, r1, r7 + ldrb r1, [r1] + bl GetAbilityBySpecies + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r1, #0xd + mul r1, r1, r0 + ldr r0, ._505 + 4 @ gAbilityNames + add r1, r1, r0 + add r0, r6, #0 +._494: + mov r2, #0xc + bl debug_80C689C + b ._517 +._506: + .align 2, 0 +._505: + .word gUnknown_Debug_2038A1C + .word gAbilityNames +._474: + add r0, r6, #0 + add r0, r0, #0xa + ldr r2, ._508 @ gUnknown_Debug_083F86E8 + ldr r1, ._508 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r1] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r1, [r1] + b ._514 +._509: + .align 2, 0 +._508: + .word gUnknown_Debug_083F86E8 + .word gUnknown_Debug_2038A1C +._472: + add r0, r6, #0 + add r0, r0, #0xc + ldr r1, ._511 @ gUnknown_Debug_2038A1C + ldr r1, [r1] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + mov r3, r8 + bl debug_80C6678 + b ._517 +._512: + .align 2, 0 +._511: + .word gUnknown_Debug_2038A1C +._473: + ldr r0, ._515 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r7 + ldr r0, [r0] + cmp r0, #0 + beq ._513 @cond_branch + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._515 + 4 @ gUnknown_Debug_083F854A + b ._514 +._516: + .align 2, 0 +._515: + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F854A +._513: + add r0, r6, #0 + add r0, r0, #0xa + ldr r1, ._518 @ gUnknown_Debug_083F854D +._514: + mov r2, #0x4 + bl debug_80C689C + b ._517 +._519: + .align 2, 0 +._518: + .word gUnknown_Debug_083F854D +._446: + add r0, r6, #0 + add r0, r0, #0xa + ldr r2, ._520 @ gNatureNames + ldr r1, ._520 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r1] + add r1, r1, #0x64 + add r1, r1, r7 + ldr r1, [r1] + lsl r1, r1, #0x2 + add r1, r1, r2 + ldr r1, [r1] + mov r2, #0x5 + bl debug_80C689C +._517: + mov r0, #0x0 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 +._521: + .align 2, 0 +._520: + .word gNatureNames + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5738 + + thumb_func_start debug_80C5B60 +debug_80C5B60: + lsl r0, r0, #0x18 + ldr r1, ._522 @ gUnknown_Debug_2038A1C + ldr r1, [r1] + lsr r0, r0, #0x16 + add r1, r1, #0x64 + add r1, r1, r0 + ldr r0, [r1] + bx lr +._523: + .align 2, 0 +._522: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5B60 + + thumb_func_start debug_80C5B74 +debug_80C5B74: + push {r4, r5, r6, lr} + add r6, r0, #0 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + cmp r2, #0x18 + bhi ._540 @cond_branch + lsl r0, r2, #0x2 + ldr r1, ._526 @ + add r1, r0, r1 + ldr r1, [r1] + add r3, r0, #0 + mov pc, r1 +._527: + .align 2, 0 +._526: + .word ._525 +._525: + .word ._532 + .word ._529 + .word ._530 + .word ._532 + .word ._532 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._540 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 + .word ._552 +._540: + ldr r0, ._554 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + lsl r1, r2, #0x2 + add r0, r0, #0x64 + add r0, r0, r1 + str r6, [r0] + b ._562 +._555: + .align 2, 0 +._554: + .word gUnknown_Debug_2038A1C +._532: + ldr r0, ._557 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r3 + str r6, [r0] + bl debug_80C5C94 + b ._562 +._558: + .align 2, 0 +._557: + .word gUnknown_Debug_2038A1C +._529: + ldr r4, ._560 @ gUnknown_Debug_2038A1C + ldr r1, [r4] + add r0, r1, #0 + add r0, r0, #0x64 + add r0, r0, r3 + str r6, [r0] + ldr r0, [r1, #0x64] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl NationalPokedexNumToSpecies + ldr r5, [r4] + ldr r4, ._560 + 4 @ gExperienceTables + lsl r2, r6, #0x2 + ldr r3, ._560 + 8 @ gBaseStats + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r1, r0, #0x3 + sub r1, r1, r0 + lsl r1, r1, #0x2 + add r1, r1, r3 + ldrb r1, [r1, #0x13] + mov r0, #0xca + lsl r0, r0, #0x1 + mul r0, r0, r1 + add r2, r2, r0 + add r2, r2, r4 + ldr r0, [r2] + str r0, [r5, #0x6c] + bl debug_80C5C94 + b ._562 +._561: + .align 2, 0 +._560: + .word gUnknown_Debug_2038A1C + .word gExperienceTables + .word gBaseStats +._530: + ldr r0, ._563 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r3 + str r6, [r0] + bl debug_80C5DEC + b ._562 +._564: + .align 2, 0 +._563: + .word gUnknown_Debug_2038A1C +._552: + ldr r0, ._565 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + add r0, r0, #0x64 + add r0, r0, r3 + str r6, [r0] + bl debug_80C5EF4 +._562: + pop {r4, r5, r6} + pop {r0} + bx r0 +._566: + .align 2, 0 +._565: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5B74 + + thumb_func_start debug_80C5C94 +debug_80C5C94: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffff0 + ldr r6, ._567 @ gUnknown_Debug_2038A1C + ldr r2, [r6] + add r0, r2, #0 + add r0, r0, #0x98 + ldr r4, [r0] + mov r1, #0x1f + and r4, r4, r1 + add r0, r0, #0x8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x5 + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xa8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0xa + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xb0 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0xf + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xb8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x14 + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xc0 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x19 + orr r4, r4, r0 + ldr r0, [r2, #0x64] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl NationalPokedexNumToSpecies + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + ldr r0, [r6] + ldr r2, [r0, #0x68] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov r5, #0x1 + str r5, [sp] + ldr r3, [r0, #0x74] + str r3, [sp, #0x4] + str r5, [sp, #0x8] + ldr r3, [r0, #0x70] + str r3, [sp, #0xc] + add r3, r4, #0 + bl CreateMon + ldr r0, [r6] + bl GetMonGender + ldr r1, [r6] + add r0, r0, #0x2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [r1, #0x78] + add r0, r1, #0 + bl GetNature + ldr r1, [r6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [r1, #0x7c] + add r0, r1, #0 + mov r1, #0xd + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0x80 + str r2, [r1] + mov r1, #0xe + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0x84 + str r2, [r1] + mov r1, #0xf + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0x88 + str r2, [r1] + mov r1, #0x10 + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0x8c + str r2, [r1] + mov r1, #0x19 + bl GetMonData + add r1, r0, #0 + ldr r0, [r6] + str r1, [r0, #0x6c] + mov r1, #0x3a + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0xf0 + str r2, [r1] + mov r1, #0x3b + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0xf4 + str r2, [r1] + mov r1, #0x3c + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0xf8 + str r2, [r1] + mov r1, #0x3d + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + add r1, r0, #0 + add r1, r1, #0xfc + str r2, [r1] + mov r1, #0x3e + bl GetMonData + add r2, r0, #0 + ldr r0, [r6] + mov r3, #0x80 + lsl r3, r3, #0x1 + add r1, r0, r3 + str r2, [r1] + mov r1, #0x3f + bl GetMonData + ldr r1, [r6] + mov r2, #0x82 + lsl r2, r2, #0x1 + add r1, r1, r2 + str r0, [r1] + add sp, sp, #0x10 + pop {r4, r5, r6} + pop {r0} + bx r0 +._568: + .align 2, 0 +._567: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5C94 + + thumb_func_start debug_80C5DEC +debug_80C5DEC: + push {r4, lr} + add sp, sp, #0xfffffffc + mov r0, #0x0 + str r0, [sp] + ldr r4, ._569 @ gUnknown_Debug_2038A1C + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0x6c + mov r1, #0x19 + bl SetMonData + ldr r0, [r4] + mov r1, #0xd + mov r2, sp + bl SetMonData + ldr r0, [r4] + mov r1, #0xe + mov r2, sp + bl SetMonData + ldr r0, [r4] + mov r1, #0xf + mov r2, sp + bl SetMonData + ldr r0, [r4] + mov r1, #0x10 + mov r2, sp + bl SetMonData + ldr r0, [r4] + bl CalculateMonStats + ldr r0, [r4] + bl GiveMonInitialMoveset + ldr r0, [r4] + mov r1, #0x38 + bl GetMonData + add r1, r0, #0 + ldr r0, [r4] + str r1, [r0, #0x68] + mov r1, #0xd + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0x80 + str r2, [r1] + mov r1, #0xe + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0x84 + str r2, [r1] + mov r1, #0xf + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0x88 + str r2, [r1] + mov r1, #0x10 + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0x8c + str r2, [r1] + mov r1, #0x3a + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf0 + str r2, [r1] + mov r1, #0x3b + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf4 + str r2, [r1] + mov r1, #0x3c + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf8 + str r2, [r1] + mov r1, #0x3d + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xfc + str r2, [r1] + mov r1, #0x3e + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + mov r3, #0x80 + lsl r3, r3, #0x1 + add r1, r0, r3 + str r2, [r1] + mov r1, #0x3f + bl GetMonData + ldr r1, [r4] + mov r2, #0x82 + lsl r2, r2, #0x1 + add r1, r1, r2 + str r0, [r1] + add sp, sp, #0x4 + pop {r4} + pop {r0} + bx r0 +._570: + .align 2, 0 +._569: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5DEC + + thumb_func_start debug_80C5EF4 +debug_80C5EF4: + push {r4, lr} + ldr r4, ._571 @ gUnknown_Debug_2038A1C + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0x98 + mov r1, #0x27 + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0x9c + mov r1, #0x1a + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xa0 + mov r1, #0x28 + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xa4 + mov r1, #0x1b + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xa8 + mov r1, #0x29 + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xac + mov r1, #0x1c + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xb0 + mov r1, #0x2a + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xb4 + mov r1, #0x1d + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xb8 + mov r1, #0x2b + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xbc + mov r1, #0x1e + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xc0 + mov r1, #0x2c + bl SetMonData + ldr r0, [r4] + add r2, r0, #0 + add r2, r2, #0xc4 + mov r1, #0x1f + bl SetMonData + ldr r0, [r4] + bl CalculateMonStats + ldr r0, [r4] + mov r1, #0x3a + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf0 + str r2, [r1] + mov r1, #0x3b + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf4 + str r2, [r1] + mov r1, #0x3c + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xf8 + str r2, [r1] + mov r1, #0x3d + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + add r1, r0, #0 + add r1, r1, #0xfc + str r2, [r1] + mov r1, #0x3e + bl GetMonData + add r2, r0, #0 + ldr r0, [r4] + mov r3, #0x80 + lsl r3, r3, #0x1 + add r1, r0, r3 + str r2, [r1] + mov r1, #0x3f + bl GetMonData + ldr r1, [r4] + mov r2, #0x82 + lsl r2, r2, #0x1 + add r1, r1, r2 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 +._572: + .align 2, 0 +._571: + .word gUnknown_Debug_2038A1C + + thumb_func_end debug_80C5EF4 + + thumb_func_start debug_80C5FFC +debug_80C5FFC: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xffffffe0 + ldr r1, ._578 @ gUnknown_Debug_083F8758 + add r0, sp, #0x10 + mov r2, #0x4 + bl memcpy + add r7, sp, #0x14 + ldr r1, ._578 + 4 @ gUnknown_Debug_083F875C + add r0, r7, #0 + mov r2, #0x8 + bl memcpy + ldr r5, ._578 + 8 @ gUnknown_Debug_2038A1C + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x98 + ldr r4, [r0] + mov r1, #0x1f + and r4, r4, r1 + add r0, r0, #0x8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x5 + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xa8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0xa + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xb0 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0xf + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xb8 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x14 + orr r4, r4, r0 + add r0, r2, #0 + add r0, r0, #0xc0 + ldr r0, [r0] + and r0, r0, r1 + lsl r0, r0, #0x19 + orr r4, r4, r0 + ldr r0, [r2, #0x64] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl NationalPokedexNumToSpecies + add r1, r0, #0 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + ldr r0, [r5] + ldr r2, [r0, #0x68] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r4, r4, #0x18 + lsr r4, r4, #0x18 + mov r6, #0x1 + str r6, [sp] + ldr r3, [r0, #0x74] + str r3, [sp, #0x4] + str r6, [sp, #0x8] + ldr r3, [r0, #0x70] + str r3, [sp, #0xc] + add r3, r4, #0 + bl CreateMon + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x80 + ldr r0, [r0] + cmp r0, #0 + beq ._573 @cond_branch + lsl r1, r0, #0x10 + lsr r1, r1, #0x10 + add r0, r2, #0 + mov r2, #0x0 + bl SetMonMoveSlot +._573: + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq ._574 @cond_branch + lsl r1, r0, #0x10 + lsr r1, r1, #0x10 + add r0, r2, #0 + mov r2, #0x1 + bl SetMonMoveSlot +._574: + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq ._575 @cond_branch + lsl r1, r0, #0x10 + lsr r1, r1, #0x10 + add r0, r2, #0 + mov r2, #0x2 + bl SetMonMoveSlot +._575: + ldr r2, [r5] + add r0, r2, #0 + add r0, r0, #0x8c + ldr r0, [r0] + cmp r0, #0 + beq ._576 @cond_branch + lsl r1, r0, #0x10 + lsr r1, r1, #0x10 + add r0, r2, #0 + mov r2, #0x3 + bl SetMonMoveSlot +._576: + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x6c + mov r1, #0x19 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x98 + mov r1, #0x27 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x9c + mov r1, #0x1a + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xa0 + mov r1, #0x28 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xa4 + mov r1, #0x1b + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xa8 + mov r1, #0x29 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xac + mov r1, #0x1c + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xb0 + mov r1, #0x2a + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xb4 + mov r1, #0x1d + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xb8 + mov r1, #0x2b + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xbc + mov r1, #0x1e + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xc0 + mov r1, #0x2c + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xc4 + mov r1, #0x1f + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xc8 + mov r1, #0x16 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xcc + mov r1, #0x17 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xd0 + mov r1, #0x18 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xd4 + mov r1, #0x21 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xd8 + mov r1, #0x2f + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xdc + mov r1, #0x30 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xe0 + mov r1, #0x20 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xe4 + mov r1, #0x22 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x90 + mov r1, #0xc + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0x94 + mov r1, #0x2e + bl SetMonData + ldr r0, [r5] + add r1, r0, #0 + add r1, r1, #0xec + ldr r2, [r1] + lsl r2, r2, #0x3 + ldr r1, ._578 + 12 @ gUnknown_Debug_083F86E8 + add r2, r2, r1 + mov r1, #0x37 + bl SetMonData + ldr r0, [r5] + add r2, r0, #0 + add r2, r2, #0xe8 + mov r1, #0x2d + bl SetMonData + ldr r1, [r5] + add r0, r1, #0 + add r0, r0, #0xe8 + ldr r0, [r0] + cmp r0, #0 + beq ._577 @cond_branch + add r0, r1, #0 + mov r1, #0x2 + add r2, sp, #0x10 + bl SetMonData + add r2, sp, #0x1c + strb r6, [r2] + ldr r0, [r5] + mov r1, #0x3 + bl SetMonData +._577: + ldr r0, [r5] + mov r1, #0x7 + add r2, r7, #0 + bl SetMonData + mov r2, sp + add r2, r2, #0x1e + mov r0, #0xff + strh r0, [r2] + ldr r0, [r5] + mov r1, #0x23 + bl SetMonData + ldr r0, [r5] + bl CalculateMonStats + add sp, sp, #0x20 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._579: + .align 2, 0 +._578: + .word gUnknown_Debug_083F8758 + .word gUnknown_Debug_083F875C + .word gUnknown_Debug_2038A1C + .word gUnknown_Debug_083F86E8+0x4 + + thumb_func_end debug_80C5FFC + + thumb_func_start debug_80C627C +debug_80C627C: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffff8 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + add r6, r4, #0 + ldr r1, ._584 @ gUnknown_Debug_083F7FD4 + mov r0, sp + mov r2, #0x2 + bl memcpy + add r5, sp, #0x4 + ldr r1, ._584 + 4 @ gUnknown_Debug_083F8764 + add r0, r5, #0 + mov r2, #0x2 + bl memcpy + cmp r4, #0x1 + beq ._580 @cond_branch + cmp r4, #0x1 + bgt ._581 @cond_branch + cmp r4, #0 + beq ._582 @cond_branch + b ._595 +._585: + .align 2, 0 +._584: + .word gUnknown_Debug_083F7FD4 + .word gUnknown_Debug_083F8764 +._581: + cmp r6, #0x2 + beq ._586 @cond_branch + b ._595 +._582: + ldr r0, ._589 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + ldr r1, ._589 + 4 @ 0x169 + add r0, r0, r1 + b ._588 +._590: + .align 2, 0 +._589: + .word gUnknown_Debug_2038A1C + .word 0x169 +._580: + ldr r4, ._593 @ gUnknown_Debug_2038A1C + ldr r3, [r4] + ldr r1, ._593 + 4 @ 0x169 + add r0, r3, r1 + ldrb r2, [r0] + ldr r1, ._593 + 8 @ gUnknown_Debug_083F8698 + mov r6, #0xb4 + lsl r6, r6, #0x1 + add r0, r3, r6 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r1 + ldrb r0, [r0, #0x4] + sub r0, r0, #0x1 + cmp r2, r0 + bge ._595 @cond_branch + lsl r2, r2, #0x19 + mov r0, #0xa0 + lsl r0, r0, #0x13 + add r2, r2, r0 + lsr r2, r2, #0x18 + add r0, r5, #0 + mov r1, #0x1 + bl Menu_PrintText + ldr r0, [r4] + ldr r2, ._593 + 4 @ 0x169 + add r1, r0, r2 + ldrb r0, [r1] + add r0, r0, #0x1 + strb r0, [r1] + ldr r0, [r4] + add r0, r0, r2 +._588: + ldrb r2, [r0] + lsl r2, r2, #0x19 + mov r6, #0xa0 + lsl r6, r6, #0x13 + add r2, r2, r6 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x1 + bl Menu_PrintText + b ._595 +._594: + .align 2, 0 +._593: + .word gUnknown_Debug_2038A1C + .word 0x169 + .word gUnknown_Debug_083F8698 +._586: + ldr r4, ._596 @ gUnknown_Debug_2038A1C + ldr r0, [r4] + ldr r2, ._596 + 4 @ 0x169 + add r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0 + beq ._595 @cond_branch + add r2, r0, #0 + lsl r2, r2, #0x19 + mov r6, #0xa0 + lsl r6, r6, #0x13 + add r2, r2, r6 + lsr r2, r2, #0x18 + add r0, r5, #0 + mov r1, #0x1 + bl Menu_PrintText + ldr r0, [r4] + ldr r2, ._596 + 4 @ 0x169 + add r1, r0, r2 + ldrb r0, [r1] + sub r0, r0, #0x1 + strb r0, [r1] + ldr r0, [r4] + add r0, r0, r2 + ldrb r2, [r0] + lsl r2, r2, #0x19 + add r2, r2, r6 + lsr r2, r2, #0x18 + mov r0, sp + mov r1, #0x1 + bl Menu_PrintText +._595: + add sp, sp, #0x8 + pop {r4, r5, r6} + pop {r0} + bx r0 +._597: + .align 2, 0 +._596: + .word gUnknown_Debug_2038A1C + .word 0x169 + + thumb_func_end debug_80C627C + + thumb_func_start debug_80C6384 +debug_80C6384: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + mov r0, #0x0 + mov r1, #0x4 + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r5, #0x0 + ldr r3, ._600 @ gUnknown_Debug_083F8698 + ldr r1, ._600 + 4 @ gUnknown_Debug_2038A1C + ldr r0, [r1] + mov r2, #0xb4 + lsl r2, r2, #0x1 + add r0, r0, r2 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r3 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xff + beq ._598 @cond_branch + add r4, r1, #0 + ldr r0, ._600 + 8 @ 0x16b + mov r9, r0 + mov r8, r3 + add r7, r2, #0 + mov r6, #0x1 +._599: + ldr r0, [r4] + add r0, r0, r9 + mov r1, #0xfc + strb r1, [r0] + ldr r0, [r4] + add r1, r1, #0x70 + add r0, r0, r1 + strb r6, [r0] + ldr r0, [r4] + ldr r2, ._600 + 12 @ 0x16d + add r0, r0, r2 + strb r6, [r0] + ldr r1, [r4] + add r2, r2, #0x1 + add r0, r1, r2 + add r1, r1, r7 + ldrb r1, [r1] + lsl r1, r1, #0x3 + add r1, r1, r8 + ldr r1, [r1] + add r1, r1, r5 + ldrb r1, [r1] + mov r2, #0x1 + bl debug_80C5738 + ldr r0, [r4] + add r0, r0, r9 + lsl r2, r5, #0x19 + mov r1, #0xa0 + lsl r1, r1, #0x13 + add r2, r2, r1 + lsr r2, r2, #0x18 + mov r1, #0x2 + bl Menu_PrintText + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r0, [r4] + add r0, r0, r7 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r8 + ldr r0, [r0] + add r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0xff + bne ._599 @cond_branch +._598: + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._601: + .align 2, 0 +._600: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x16b + .word 0x16d + + thumb_func_end debug_80C6384 + + thumb_func_start debug_80C643C +debug_80C643C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + mov r0, #0x2 + mov r1, #0x5 + mov r2, #0x1c + mov r3, #0x12 + bl Menu_BlankWindowRect + mov r5, #0x0 + ldr r6, ._605 @ gUnknown_Debug_083F8698 + ldr r1, ._605 + 4 @ gUnknown_Debug_2038A1C + ldr r0, [r1] + mov r3, #0xb4 + lsl r3, r3, #0x1 + add r0, r0, r3 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r6 + ldr r0, [r0] + ldrb r0, [r0] + cmp r0, #0xff + beq ._602 @cond_branch + add r4, r1, #0 + mov r0, #0x1 + mov r8, r0 +._607: + ldr r0, [r4] + ldr r7, ._605 + 8 @ 0x16b + add r2, r0, r7 + mov r0, #0xfc + strb r0, [r2] + ldr r0, [r4] + mov r2, #0xb6 + lsl r2, r2, #0x1 + add r0, r0, r2 + mov r7, r8 + strb r7, [r0] + ldr r2, [r4] + ldr r7, ._605 + 12 @ 0x169 + add r0, r2, r7 + ldrb r0, [r0] + cmp r5, r0 + bne ._603 @cond_branch + ldr r0, ._605 + 16 @ 0x16d + add r2, r2, r0 + mov r0, #0x2 + strb r0, [r2] + ldr r1, [r1] + mov r2, #0xb7 + lsl r2, r2, #0x1 + add r0, r1, r2 + add r1, r1, r3 + ldrb r1, [r1] + lsl r1, r1, #0x3 + add r1, r1, r6 + ldr r1, [r1] + add r1, r1, r5 + ldrb r1, [r1] + mov r2, #0x2 + bl debug_80C5738 + b ._604 +._606: + .align 2, 0 +._605: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x16b + .word 0x169 + .word 0x16d +._603: + ldr r3, ._608 @ 0x16d + add r0, r2, r3 + mov r7, r8 + strb r7, [r0] + ldr r1, [r1] + mov r2, #0xb7 + lsl r2, r2, #0x1 + add r0, r1, r2 + ldr r2, ._608 + 4 @ gUnknown_Debug_083F8698 + sub r3, r3, #0x5 + add r1, r1, r3 + ldrb r1, [r1] + lsl r1, r1, #0x3 + add r1, r1, r2 + ldr r1, [r1] + add r1, r1, r5 + ldrb r1, [r1] + mov r2, #0x1 + bl debug_80C5738 +._604: + ldr r0, [r4] + ldr r7, ._608 + 8 @ 0x16b + add r0, r0, r7 + lsl r2, r5, #0x19 + mov r1, #0xa0 + lsl r1, r1, #0x13 + add r2, r2, r1 + lsr r2, r2, #0x18 + mov r1, #0x2 + bl Menu_PrintText + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + ldr r6, ._608 + 4 @ gUnknown_Debug_083F8698 + add r1, r4, #0 + ldr r0, [r4] + mov r3, #0xb4 + lsl r3, r3, #0x1 + add r0, r0, r3 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r6 + ldr r0, [r0] + add r0, r0, r5 + ldrb r0, [r0] + cmp r0, #0xff + bne ._607 @cond_branch +._602: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._609: + .align 2, 0 +._608: + .word 0x16d + .word gUnknown_Debug_083F8698 + .word 0x16b + + thumb_func_end debug_80C643C + + thumb_func_start debug_80C6544 +debug_80C6544: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r9, r0 + ldr r0, ._614 @ gUnknown_Debug_083F8698 + mov r8, r0 + ldr r6, ._614 + 4 @ gUnknown_Debug_2038A1C + ldr r1, [r6] + mov r5, #0xb4 + lsl r5, r5, #0x1 + add r0, r1, r5 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r8 + ldr r4, ._614 + 8 @ 0x169 + add r1, r1, r4 + ldrb r1, [r1] + ldr r0, [r0] + add r0, r0, r1 + ldrb r0, [r0] + bl debug_80C5B60 + add r7, r0, #0 + ldr r2, ._614 + 12 @ gUnknown_Debug_083F8554 + ldr r3, [r6] + add r5, r3, r5 + ldrb r0, [r5] + lsl r0, r0, #0x3 + add r0, r0, r8 + add r4, r3, r4 + ldrb r1, [r4] + ldr r0, [r0] + add r0, r0, r1 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r2, r2, #0x4 + add r0, r0, r2 + ldr r1, [r0] + ldr r5, [r1] + ldr r4, [r1, #0x4] + ldr r2, ._614 + 16 @ gUnknown_Debug_083F8768 + mov r6, #0xb5 + lsl r6, r6, #0x1 + add r0, r3, r6 + ldrb r0, [r0] + lsl r0, r0, #0x2 + add r0, r0, r2 + ldr r3, [r0] + ldrb r0, [r1, #0x8] + cmp r0, #0 + bne ._623 @cond_branch + mov r0, r9 + cmp r0, #0x1 + beq ._611 @cond_branch + cmp r0, #0x2 + beq ._612 @cond_branch + b ._623 +._615: + .align 2, 0 +._614: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x169 + .word gUnknown_Debug_083F8554 + .word gUnknown_Debug_083F8768 +._611: + sub r0, r4, r3 + cmp r7, r0 + bcs ._616 @cond_branch + add r7, r7, r3 + b ._623 +._616: + cmp r7, r4 + bcc ._622 @cond_branch + b ._619 +._612: + add r0, r5, r3 + cmp r7, r0 + bls ._620 @cond_branch + sub r7, r7, r3 + b ._623 +._620: + cmp r7, r5 + bls ._622 @cond_branch +._619: + add r7, r5, #0 + b ._623 +._622: + add r7, r4, #0 +._623: + ldr r1, ._624 @ gUnknown_Debug_083F8698 + ldr r0, ._624 + 4 @ gUnknown_Debug_2038A1C + ldr r2, [r0] + mov r3, #0xb4 + lsl r3, r3, #0x1 + add r0, r2, r3 + ldrb r0, [r0] + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r6, ._624 + 8 @ 0x169 + add r1, r2, r6 + ldrb r1, [r1] + ldr r0, [r0] + add r0, r0, r1 + ldrb r1, [r0] + add r0, r7, #0 + bl debug_80C5B74 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._625: + .align 2, 0 +._624: + .word gUnknown_Debug_083F8698 + .word gUnknown_Debug_2038A1C + .word 0x169 + + thumb_func_end debug_80C6544 + + thumb_func_start debug_80C6630 +debug_80C6630: + push {r4, r5, lr} + add r4, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + mov r0, #0xfc + strb r0, [r4] + add r4, r4, #0x1 + mov r0, #0x1 + strb r0, [r4] + add r4, r4, #0x1 + cmp r2, #0x2 + bne ._626 @cond_branch + ldr r0, ._629 @ gUnknown_Debug_2038A1C + ldr r0, [r0] + mov r5, #0xb5 + lsl r5, r5, #0x1 + add r0, r0, r5 + ldrb r0, [r0] + cmp r3, r0 + beq ._627 @cond_branch + strb r2, [r4] + b ._628 +._630: + .align 2, 0 +._629: + .word gUnknown_Debug_2038A1C +._627: + mov r0, #0x4 +._626: + strb r0, [r4] +._628: + add r0, r1, #0 + add r0, r0, #0xa1 + strb r0, [r4, #0x1] + pop {r4, r5} + pop {r0} + bx r0 + + thumb_func_end debug_80C6630 + + thumb_func_start debug_80C6678 +debug_80C6678: + push {r4, r5, r6, r7, lr} + mov r7, r9 + mov r6, r8 + push {r6, r7} + mov r9, r0 + add r6, r1, #0 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + mov r8, r3 + mov r7, #0x0 + sub r0, r2, #1 + cmp r0, #0x9 + bhi ._644 @cond_branch + lsl r0, r0, #0x2 + ldr r1, ._633 @ + add r0, r0, r1 + ldr r0, [r0] + mov pc, r0 +._634: + .align 2, 0 +._633: + .word ._632 +._632: + .word ._635 + .word ._636 + .word ._637 + .word ._638 + .word ._639 + .word ._640 + .word ._641 + .word ._642 + .word ._643 + .word ._644 +._644: + mov r0, r9 + add r4, r0, r7 + ldr r5, ._645 @ 0x3b9aca00 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x9 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._643: + mov r1, r9 + add r4, r1, r7 + ldr r5, ._645 + 4 @ 0x5f5e100 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x8 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._642: + mov r0, r9 + add r4, r0, r7 + ldr r5, ._645 + 8 @ 0x989680 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x7 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._641: + mov r1, r9 + add r4, r1, r7 + ldr r5, ._645 + 12 @ 0xf4240 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x6 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._640: + mov r0, r9 + add r4, r0, r7 + ldr r5, ._645 + 16 @ 0x186a0 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x5 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._639: + mov r1, r9 + add r4, r1, r7 + ldr r5, ._645 + 20 @ 0x2710 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x4 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._638: + mov r0, r9 + add r4, r0, r7 + mov r5, #0xfa + lsl r5, r5, #0x2 + add r0, r6, #0 + add r1, r5, #0 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x3 + bl debug_80C6630 + add r0, r6, #0 + add r1, r5, #0 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._637: + mov r1, r9 + add r4, r1, r7 + add r0, r6, #0 + mov r1, #0x64 + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x2 + bl debug_80C6630 + add r0, r6, #0 + mov r1, #0x64 + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._636: + mov r0, r9 + add r4, r0, r7 + add r0, r6, #0 + mov r1, #0xa + bl __udivsi3 + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r4, #0 + mov r2, r8 + mov r3, #0x1 + bl debug_80C6630 + add r0, r6, #0 + mov r1, #0xa + bl __umodsi3 + add r6, r0, #0 + add r0, r7, #4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 +._635: + mov r1, r9 + add r0, r1, r7 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + mov r2, r8 + mov r3, #0x0 + bl debug_80C6630 + pop {r3, r4} + mov r8, r3 + mov r9, r4 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._646: + .align 2, 0 +._645: + .word 0x3b9aca00 + .word 0x5f5e100 + .word 0x989680 + .word 0xf4240 + .word 0x186a0 + .word 0x2710 + + thumb_func_end debug_80C6678 + + thumb_func_start debug_80C689C +debug_80C689C: + push {r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r3, #0x0 + ldrb r0, [r4] + b ._647 +._649: + add r1, r5, r3 + add r0, r4, r3 + ldrb r0, [r0] + strb r0, [r1] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + add r0, r4, r3 + ldrb r0, [r0] +._647: + cmp r0, #0xff + beq ._648 @cond_branch + cmp r3, r2 + bcc ._649 @cond_branch +._648: + pop {r4, r5} + pop {r0} + bx r0 + + thumb_func_end debug_80C689C + + thumb_func_start debug_80C68CC +debug_80C68CC: + push {r4, r5, r6, r7, lr} + add sp, sp, #0xfffffff8 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + lsl r1, r1, #0x18 + lsr r6, r1, #0x18 + lsl r2, r2, #0x18 + lsr r5, r2, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + mov r2, #0x0 + mov r1, #0x0 +._650: + mov r7, sp + add r0, r7, r2 + strb r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x3 + bls ._650 @cond_branch + mov r1, sp + mov r0, #0xff + strb r0, [r1, #0x4] + cmp r3, #0x2 + beq ._651 @cond_branch + cmp r3, #0x2 + bgt ._652 @cond_branch + cmp r3, #0x1 + beq ._653 @cond_branch + b ._654 +._652: + cmp r3, #0x3 + beq ._655 @cond_branch +._654: + mov r1, sp + lsr r0, r4, #0xc + strb r0, [r1] +._655: + mov r1, sp + mov r0, #0xf0 + lsl r0, r0, #0x4 + and r0, r0, r4 + lsr r0, r0, #0x8 + strb r0, [r1, #0x1] +._651: + mov r1, sp + mov r0, #0xf0 + and r0, r0, r4 + lsr r0, r0, #0x4 + strb r0, [r1, #0x2] +._653: + mov r2, sp + mov r1, #0xf + add r0, r4, #0 + and r0, r0, r1 + strb r0, [r2, #0x3] + mov r2, #0x0 +._658: + mov r0, sp + add r1, r0, r2 + ldrb r0, [r1] + cmp r0, #0x9 + bhi ._656 @cond_branch + add r0, r0, #0xa1 + b ._657 +._656: + add r0, r0, #0xb1 +._657: + strb r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x3 + bls ._658 @cond_branch + mov r0, #0x4 + sub r0, r0, r3 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r0, r0, sp + add r1, r6, #0 + add r2, r5, #0 + bl Menu_PrintText + add sp, sp, #0x8 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_end debug_80C68CC + + thumb_func_start InitSeePokemonGraphics +InitSeePokemonGraphics: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffff8 + bl debug_80C35DC + ldr r1, ._659 @ byte_83F88EC + ldr r2, ._659 + 4 @ 0x600e000 + ldr r0, ._659 + 8 @ 0x40000d4 + str r1, [r0] + str r2, [r0, #0x4] + ldr r1, ._659 + 12 @ 0x80000400 + str r1, [r0, #0x8] + ldr r0, [r0, #0x8] + ldr r0, ._659 + 16 @ word_83F888C + mov r1, #0x80 + mov r2, #0x60 + bl LoadPalette + ldr r1, ._659 + 20 @ 0x7fff + add r0, sp, #0x4 + strh r1, [r0] + mov r1, #0x0 + mov r2, #0x2 + bl LoadPalette + mov r0, #0x1 + neg r0, r0 + mov r5, #0x0 + str r5, [sp] + mov r1, #0x0 + mov r2, #0x10 + mov r3, #0x0 + bl BeginNormalPaletteFade + ldr r0, ._659 + 24 @ 0x4000040 + mov r6, #0x0 + strh r5, [r0] + add r0, r0, #0x4 + strh r5, [r0] + sub r0, r0, #0x2 + strh r5, [r0] + add r0, r0, #0x4 + strh r5, [r0] + ldr r1, ._659 + 28 @ 0x4000048 + mov r0, #0x3f + strh r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1f + strh r0, [r1] + add r1, r1, #0x6 + mov r0, #0xf1 + strh r0, [r1] + ldr r0, ._659 + 32 @ 0x4000052 + strh r5, [r0] + add r1, r1, #0x4 + mov r0, #0x7 + strh r0, [r1] + ldr r3, ._659 + 36 @ 0x4000208 + ldrh r2, [r3] + strh r5, [r3] + ldr r4, ._659 + 40 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, ._659 + 44 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._659 + 48 @ debug_80C370C + bl SetMainCallback2 + bl sub_809D51C + ldr r1, ._659 + 52 @ 0x4000008 + ldr r2, ._659 + 56 @ 0x1f0b + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x2 + ldr r2, ._659 + 60 @ 0x1e0a + add r0, r2, #0 + strh r0, [r1] + sub r1, r1, #0xa + mov r2, #0xcd + lsl r2, r2, #0x6 + add r0, r2, #0 + strh r0, [r1] + ldr r0, ._659 + 64 @ debug_80C6B00 + mov r1, #0x0 + bl CreateTask + ldr r1, ._659 + 68 @ gUnknown_Debug_2038A20 + ldr r0, ._659 + 72 @ 0x2018000 + str r0, [r1] + ldr r1, ._659 + 76 @ 0x115 + strh r1, [r0] + strb r6, [r0, #0x2] + strb r6, [r0, #0x3] + strb r6, [r0, #0x5] + strb r6, [r0, #0x7] + strb r6, [r0, #0xa] + strb r6, [r0, #0x8] + ldr r4, ._659 + 80 @ gSpriteTemplate_83F8874 + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + ldr r6, ._659 + 84 @ gSprites + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + strh r5, [r0, #0x2e] + mov r1, #0x0 + bl StartSpriteAnim + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + mov r1, #0x1 + strh r1, [r0, #0x2e] + bl StartSpriteAnim + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + mov r1, #0x2 + strh r1, [r0, #0x2e] + bl StartSpriteAnim + add sp, sp, #0x8 + pop {r4, r5, r6} + pop {r0} + bx r0 +._660: + .align 2, 0 +._659: + .word byte_83F88EC + .word 0x600e000 + .word 0x40000d4 + .word 0x80000400 + .word word_83F888C + .word 0x7fff + .word 0x4000040 + .word 0x4000048 + .word 0x4000052 + .word 0x4000208 + .word 0x4000200 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word 0x4000008 + .word 0x1f0b + .word 0x1e0a + .word debug_80C6B00+1 + .word gUnknown_Debug_2038A20 + .word 0x2018000 + .word 0x115 + .word gSpriteTemplate_83F8874 + .word gSprites + + thumb_func_end InitSeePokemonGraphics + + thumb_func_start debug_80C6B00 +debug_80C6B00: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xffffffec + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r1, ._666 @ gUnknown_Debug_083F8815 + mov r0, sp + mov r2, #0x12 + bl memcpy + mov r0, #0xa + mov r1, #0x0 + mov r2, #0xf + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x9 + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0xa + mov r2, #0x9 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, #0x10 + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + ldr r0, ._666 + 4 @ gUnknown_Debug_083F87D0 + mov r1, #0x11 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._666 + 8 @ gUnknown_Debug_083F87D8 + mov r1, #0x1b + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._666 + 12 @ gUnknown_Debug_083F87E0 + mov r1, #0x11 + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0xa + mov r1, #0x8 + mov r2, #0x1d + mov r3, #0xc + bl Menu_DrawStdWindowFrame + mov r2, #0x0 + ldr r4, ._666 + 16 @ 0x600fa56 + ldr r0, ._666 + 20 @ 0xa311 + add r3, r0, #0 +._661: + lsl r0, r2, #0x1 + add r0, r0, r4 + add r1, r2, r3 + strh r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0xe + bls ._661 @cond_branch + mov r2, #0x0 + ldr r5, ._666 + 24 @ gUnknown_Debug_083F87F4 + lsl r6, r7, #0x2 + mov r8, r6 + ldr r4, ._666 + 28 @ 0x600f256 + ldr r0, ._666 + 32 @ 0x8301 + add r3, r0, #0 +._662: + lsl r0, r2, #0x1 + add r0, r0, r4 + add r1, r2, r3 + strh r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0xe + bls ._662 @cond_branch + add r0, r5, #0 + mov r1, #0x14 + mov r2, #0xa + bl Menu_PrintText + mov r0, #0xa + mov r1, #0xd + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r1, sp + mov r0, #0x23 + strb r0, [r1] + mov r2, #0x0 + ldr r4, ._666 + 36 @ 0x600f396 + mov r5, #0x93 + lsl r5, r5, #0x8 + add r3, r5, #0 +._663: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._663 @cond_branch + mov r1, sp + mov r0, #0x24 + strb r0, [r1] + mov r2, #0x0 + ldr r5, ._666 + 40 @ gUnknown_Debug_083F8801 + ldr r4, ._666 + 44 @ 0x600f3d6 + mov r0, #0x93 + lsl r0, r0, #0x8 + add r3, r0, #0 +._664: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._664 @cond_branch + mov r1, sp + mov r0, #0x25 + strb r0, [r1] + mov r2, #0x0 + ldr r4, ._666 + 48 @ 0x600f416 + mov r0, #0x93 + lsl r0, r0, #0x8 + add r3, r0, #0 +._665: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._665 @cond_branch + add r0, r5, #0 + mov r1, #0xf + mov r2, #0x11 + bl Menu_PrintText + ldr r1, ._666 + 52 @ 0x4000040 + ldr r2, ._666 + 56 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r5, ._666 + 60 @ 0x699f + add r0, r5, #0 + strh r0, [r1] + ldr r1, ._666 + 64 @ gTasks + mov r6, r8 + add r0, r6, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._666 + 68 @ debug_80C6CB8 + str r1, [r0] + add sp, sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._667: + .align 2, 0 +._666: + .word gUnknown_Debug_083F8815 + .word gUnknown_Debug_083F87D0 + .word gUnknown_Debug_083F87D8 + .word gUnknown_Debug_083F87E0 + .word 0x600fa56 + .word 0xa311 + .word gUnknown_Debug_083F87F4 + .word 0x600f256 + .word 0x8301 + .word 0x600f396 + .word gUnknown_Debug_083F8801 + .word 0x600f3d6 + .word 0x600f416 + .word 0x4000040 + .word 0x51ef + .word 0x699f + .word gTasks + .word debug_80C6CB8+1 + + thumb_func_end debug_80C6B00 + + thumb_func_start debug_80C6CB8 +debug_80C6CB8: + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, r9 + mov r5, r8 + push {r5, r6, r7} + add sp, sp, #0xfffffff4 + mov sl, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov sl, r0 + ldr r5, ._668 @ gUnknown_Debug_2038A20 + ldr r4, [r5] + ldrh r2, [r4] + lsl r0, r2, #0x3 + ldr r1, ._668 + 4 @ gMonFrontPicTable + add r0, r0, r1 + ldr r1, ._668 + 8 @ gMonFrontPicCoords + lsl r2, r2, #0x2 + add r2, r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, #0x1] + ldr r3, ._668 + 12 @ gUnknown_081FAF4C + mov r8, r3 + ldr r6, [r3] + str r6, [sp, #0x8] + ldr r3, [r3, #0x4] + str r3, [sp] + ldrh r3, [r4] + str r3, [sp, #0x4] + add r3, r6, #0 + bl DecompressPicFromTable_2 + ldr r0, [r5] + ldrh r0, [r0] + lsl r0, r0, #0x3 + ldr r7, ._668 + 16 @ gMonPaletteTable + add r0, r0, r7 + bl LoadCompressedObjectPalette + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x1 + bl GetMonSpriteTemplate_803C56C + ldr r0, ._668 + 20 @ gUnknown_02024E8C + mov r1, #0x28 + mov r2, #0x28 + mov r3, #0x0 + bl CreateSprite + ldr r1, [r5] + strb r0, [r1, #0x2] + ldr r2, [r5] + ldrb r1, [r2, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r1, ._668 + 24 @ gSprites + add r0, r0, r1 + ldr r3, ._668 + 28 @ debug_69 + mov r9, r3 + str r3, [r0] + ldrb r0, [r2, #0x2] + lsl r1, r0, #0x4 + add r1, r1, r0 + lsl r1, r1, #0x2 + ldr r6, ._668 + 32 @ gSprites + add r1, r1, r6 + ldrb r2, [r1, #0x5] + mov r6, #0xd + neg r6, r6 + add r0, r6, #0 + and r0, r0, r2 + strb r0, [r1, #0x5] + ldr r4, [r5] + ldrh r2, [r4] + lsl r0, r2, #0x3 + ldr r1, ._668 + 36 @ gMonBackPicTable + add r0, r0, r1 + ldr r1, ._668 + 40 @ gMonBackPicCoords + lsl r2, r2, #0x2 + add r2, r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, #0x1] + mov r7, r8 + ldr r3, [r7, #0x8] + str r3, [sp] + ldrh r3, [r4] + str r3, [sp, #0x4] + ldr r3, [sp, #0x8] + bl DecompressPicFromTable_2 + ldr r0, [r5] + ldrh r0, [r0] + lsl r0, r0, #0x3 + ldr r1, ._668 + 16 @ gMonPaletteTable + add r0, r0, r1 + bl LoadCompressedObjectPalette + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x2 + bl GetMonSpriteTemplate_803C56C + ldr r0, ._668 + 20 @ gUnknown_02024E8C + mov r1, #0x28 + mov r2, #0x78 + mov r3, #0x0 + bl CreateSprite + ldr r1, [r5] + strb r0, [r1, #0x3] + ldr r2, [r5] + ldrb r1, [r2, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r3, ._668 + 24 @ gSprites + add r0, r0, r3 + mov r7, r9 + str r7, [r0] + ldrb r1, [r2, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r1, ._668 + 32 @ gSprites + add r0, r0, r1 + ldrb r1, [r0, #0x5] + and r6, r6, r1 + strb r6, [r0, #0x5] + ldr r0, [r5] + ldrh r0, [r0] + ldr r1, ._668 + 44 @ sub_809D62C + mov r2, #0x0 + str r2, [sp] + str r2, [sp, #0x4] + mov r2, #0x68 + mov r3, #0x2c + bl CreateMonIcon + ldr r1, [r5] + strb r0, [r1, #0x4] + ldr r0, [r5] + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r2, #0xff + lsl r2, r2, #0x2 + mov r1, #0x2 + bl sub_8091738 + ldr r1, ._668 + 48 @ 0x600f858 + ldr r3, ._668 + 52 @ 0xf3fc + add r0, r3, #0 + strh r0, [r1] + add r1, r1, #0x2 + ldr r6, ._668 + 56 @ 0xf3fd + add r0, r6, #0 + strh r0, [r1] + add r1, r1, #0x3e + ldr r7, ._668 + 60 @ 0xf3fe + add r0, r7, #0 + strh r0, [r1] + add r1, r1, #0x2 + ldr r2, ._668 + 64 @ 0xf3ff + add r0, r2, #0 + strh r0, [r1] + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x11 + mov r2, #0x3 + bl debug_80C3800 + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x1a + mov r2, #0x5 + bl debug_80C376C + ldr r2, [r5] + ldrb r1, [r2, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + ldr r3, ._668 + 32 @ gSprites + add r0, r0, r3 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + strb r0, [r2, #0x6] + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + ldr r4, ._668 + 68 @ gPlttBufferUnfaded + add r0, r0, r4 + ldr r6, ._668 + 72 @ 0xffffff00 + add r1, r4, r6 + mov r2, #0x10 + bl CpuSet + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + add r0, r0, r4 + ldr r1, ._668 + 76 @ gPlttBufferFaded + mov r2, #0x10 + bl CpuSet + ldr r1, ._668 + 80 @ gTasks + mov r7, sl + lsl r0, r7, #0x2 + add r0, r0, sl + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._668 + 84 @ debug_80C6EE8 + str r1, [r0] + ldr r0, [r5] + mov r1, #0x0 + strb r1, [r0, #0x9] + bl StopCryAndClearCrySongs + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x0 + bl PlayCry1 + add sp, sp, #0xc + pop {r3, r4, r5} + mov r8, r3 + mov r9, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._669: + .align 2, 0 +._668: + .word gUnknown_Debug_2038A20 + .word gMonFrontPicTable + .word gMonFrontPicCoords + .word gUnknown_081FAF4C + .word gMonPaletteTable + .word gUnknown_02024E8C + .word gSprites+0x1c + .word debug_69+1 + .word gSprites + .word gMonBackPicTable + .word gMonBackPicCoords + .word sub_809D62C+1 + .word 0x600f858 + .word 0xf3fc + .word 0xf3fd + .word 0xf3fe + .word 0xf3ff + .word gPlttBufferUnfaded+0x200 + .word 0xffffff00 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C6EE8+1 + + thumb_func_end debug_80C6CB8 + + thumb_func_start debug_80C6EE8 +debug_80C6EE8: + push {r4, r5, r6, lr} + add r6, r0, #0 + lsl r6, r6, #0x18 + lsr r6, r6, #0x18 + ldr r4, ._670 @ gPlttBufferUnfaded + ldr r5, ._670 + 4 @ gUnknown_Debug_2038A20 + ldr r1, [r5] + add r1, r1, #0x10 + add r0, r4, #0 + mov r2, #0x10 + bl CpuSet + ldr r0, ._670 + 8 @ 0xffffff00 + add r4, r4, r0 + ldr r3, [r5] + ldrb r0, [r3, #0x7] + add r0, r0, #0x81 + lsl r0, r0, #0x1 + add r0, r0, r4 + ldrh r4, [r0] + mov r1, #0x1f + and r1, r1, r4 + ldrb r2, [r3, #0xc] + mov r0, #0x20 + neg r0, r0 + and r0, r0, r2 + orr r0, r0, r1 + strb r0, [r3, #0xc] + ldr r3, [r5] + mov r1, #0xf8 + lsl r1, r1, #0x2 + and r1, r1, r4 + ldrh r2, [r3, #0xc] + ldr r0, ._670 + 12 @ 0xfffffc1f + and r0, r0, r2 + orr r0, r0, r1 + strh r0, [r3, #0xc] + mov r1, #0xf8 + lsl r1, r1, #0x7 + and r1, r1, r4 + lsr r1, r1, #0x8 + ldrb r2, [r3, #0xd] + mov r0, #0x7d + neg r0, r0 + and r0, r0, r2 + orr r0, r0, r1 + strb r0, [r3, #0xd] + ldr r2, [r5] + ldrb r1, [r2, #0xd] + mov r0, #0x7f + and r0, r0, r1 + strb r0, [r2, #0xd] + ldr r0, [r5] + ldrb r0, [r0, #0x7] + add r0, r0, #0x1 + mov r1, #0xb + mov r2, #0xa + mov r3, #0x2 + bl debug_80C68CC + ldr r0, ._670 + 16 @ gUnknown_Debug_083F8813 + mov r1, #0xd + mov r2, #0xa + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xe + mov r2, #0xa + mov r3, #0x4 + bl debug_80C68CC + ldr r1, ._670 + 20 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._670 + 24 @ debug_80C6FA8 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 +._671: + .align 2, 0 +._670: + .word gPlttBufferUnfaded+0x100 + .word gUnknown_Debug_2038A20 + .word 0xffffff00 + .word 0xfffffc1f + .word gUnknown_Debug_083F8813 + .word gTasks + .word debug_80C6FA8+1 + + thumb_func_end debug_80C6EE8 + + thumb_func_start debug_80C6FA8 +debug_80C6FA8: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r1, ._674 @ gMain + ldrh r2, [r1, #0x2e] + mov r0, #0x2 + and r0, r0, r2 + add r4, r1, #0 + cmp r0, #0 + beq ._672 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._674 + 4 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._674 + 8 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._674 + 12 @ debug_80C373C + str r1, [r0] + b ._703 +._675: + .align 2, 0 +._674: + .word gMain + .word debug_80C370C+1 + .word gTasks + .word debug_80C373C+1 +._672: + ldrh r1, [r4, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._676 @cond_branch + ldr r4, ._678 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrh r1, [r0] + mov r0, #0x0 + b ._677 +._679: + .align 2, 0 +._678: + .word gUnknown_Debug_2038A20 +._676: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._680 @cond_branch + ldr r4, ._682 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrh r1, [r0] + mov r0, #0x1 +._677: + bl debug_80C3878 + ldr r1, [r4] + strh r0, [r1] + ldr r1, ._682 + 4 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._682 + 8 @ debug_80C71FC + str r1, [r0] + b ._703 +._683: + .align 2, 0 +._682: + .word gUnknown_Debug_2038A20 + .word gTasks + .word debug_80C71FC+1 +._680: + mov r3, #0x1 + and r3, r3, r2 + cmp r3, #0 + beq ._684 @cond_branch + ldr r0, ._686 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + mov r0, #0x1 + strb r0, [r1, #0x5] + ldr r1, ._686 + 4 @ 0x4000040 + ldr r2, ._686 + 8 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._686 + 12 @ 0x4167 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._686 + 16 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._686 + 20 @ debug_80C7294 + str r1, [r0] + b ._703 +._687: + .align 2, 0 +._686: + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x4167 + .word gTasks + .word debug_80C7294+1 +._684: + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._689 @cond_branch + ldr r1, ._691 @ gUnknown_Debug_2038A20 + ldr r2, [r1] + ldrb r0, [r2, #0x7] + cmp r0, #0xd + bhi ._689 @cond_branch + lsl r0, r0, #0x1 + ldr r2, ._691 + 4 @ 0x5000102 + add r0, r0, r2 + strh r3, [r0] + ldr r1, [r1] + ldrb r0, [r1, #0x7] + add r0, r0, #0x1 + strb r0, [r1, #0x7] + b ._695 +._692: + .align 2, 0 +._691: + .word gUnknown_Debug_2038A20 + .word 0x5000102 +._689: + ldrh r1, [r4, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._694 @cond_branch + ldr r2, ._696 @ gUnknown_Debug_2038A20 + ldr r1, [r2] + ldrb r0, [r1, #0x7] + cmp r0, #0 + beq ._694 @cond_branch + lsl r0, r0, #0x1 + ldr r1, ._696 + 4 @ 0x5000102 + add r0, r0, r1 + mov r1, #0x0 + strh r1, [r0] + ldr r1, [r2] + ldrb r0, [r1, #0x7] + sub r0, r0, #0x1 + strb r0, [r1, #0x7] + b ._695 +._697: + .align 2, 0 +._696: + .word gUnknown_Debug_2038A20 + .word 0x5000102 +._694: + ldrh r1, [r4, #0x2e] + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + beq ._698 @cond_branch + ldr r4, ._701 @ gUnknown_Debug_2038A20 + ldr r2, [r4] + ldrb r0, [r2, #0x9] + mov r1, #0x1 + eor r0, r0, r1 + strb r0, [r2, #0x9] + ldr r1, [r4] + ldrb r0, [r1, #0x9] + cmp r0, #0 + beq ._699 @cond_branch + ldrh r0, [r1] + mov r1, #0x0 + mov r2, #0x0 + bl GetMonSpritePalFromOtIdPersonality + ldr r1, [r4] + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x14 + mov r2, #0x80 + lsl r2, r2, #0x11 + add r1, r1, r2 + lsr r1, r1, #0x10 + mov r2, #0x20 + bl LoadCompressedPalette + b ._700 +._702: + .align 2, 0 +._701: + .word gUnknown_Debug_2038A20 +._699: + ldrh r0, [r1] + mov r1, #0x0 + mov r2, #0x9 + bl GetMonSpritePalFromOtIdPersonality + ldr r1, [r4] + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x14 + mov r2, #0x80 + lsl r2, r2, #0x11 + add r1, r1, r2 + lsr r1, r1, #0x10 + mov r2, #0x20 + bl LoadCompressedPalette +._700: + ldr r5, ._704 @ gUnknown_Debug_2038A20 + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + ldr r4, ._704 + 4 @ gPlttBufferUnfaded + add r0, r0, r4 + ldr r2, ._704 + 8 @ 0xffffff00 + add r1, r4, r2 + mov r2, #0x10 + bl CpuSet + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + add r0, r0, r4 + ldr r1, ._704 + 12 @ gPlttBufferFaded + mov r2, #0x10 + bl CpuSet +._695: + ldr r1, ._704 + 16 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._704 + 20 @ debug_80C6EE8 + str r1, [r0] + b ._703 +._705: + .align 2, 0 +._704: + .word gUnknown_Debug_2038A20 + .word gPlttBufferUnfaded+0x200 + .word 0xffffff00 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C6EE8+1 +._698: + mov r0, #0x4 + and r0, r0, r1 + cmp r0, #0 + beq ._706 @cond_branch + bl StopCryAndClearCrySongs + ldr r0, ._707 @ gUnknown_Debug_2038A20 + ldr r0, [r0] + ldrh r0, [r0] + mov r1, #0x0 + bl PlayCry1 +._706: + ldr r2, ._707 @ gUnknown_Debug_2038A20 + ldr r1, [r2] + ldrb r0, [r1, #0x8] + add r0, r0, #0x4 + strb r0, [r1, #0x8] + ldr r3, [r2] + ldrb r1, [r3, #0x8] + mov r0, #0x1f + and r0, r0, r1 + strb r0, [r3, #0x8] + ldr r0, [r2] + ldrb r1, [r0, #0x7] + lsl r1, r1, #0x1 + ldr r2, ._707 + 4 @ 0x5000142 + add r1, r1, r2 + ldr r2, ._707 + 8 @ gUnknown_Debug_083F8790 + ldrb r0, [r0, #0x8] + lsl r0, r0, #0x1 + add r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] +._703: + add sp, sp, #0x4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._708: + .align 2, 0 +._707: + .word gUnknown_Debug_2038A20 + .word 0x5000142 + .word gUnknown_Debug_083F8790 + + thumb_func_end debug_80C6FA8 + + thumb_func_start debug_80C71FC +debug_80C71FC: + push {r4, r5, r6, lr} + add r5, r0, #0 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + ldr r6, ._709 @ gSprites + ldr r4, ._709 + 4 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrb r1, [r0, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrb r1, [r0, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl DestroySprite + ldr r0, [r4] + ldrb r1, [r0, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrb r1, [r0, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl DestroySprite + ldr r0, [r4] + ldrb r1, [r0, #0x4] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl sub_809D510 + ldr r1, ._709 + 8 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._709 + 12 @ debug_80C6CB8 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 +._710: + .align 2, 0 +._709: + .word gSprites + .word gUnknown_Debug_2038A20 + .word gTasks + .word debug_80C6CB8+1 + + thumb_func_end debug_80C71FC + + thumb_func_start debug_80C7294 +debug_80C7294: + push {r4, r5, r6, r7, lr} + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r0, ._713 @ gMain + ldrh r2, [r0, #0x2e] + mov r1, #0x1 + and r1, r1, r2 + add r3, r0, #0 + cmp r1, #0 + beq ._711 @cond_branch + ldr r0, ._713 + 4 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + mov r0, #0x0 + strb r0, [r1, #0x5] + ldr r1, ._713 + 8 @ 0x4000040 + ldr r2, ._713 + 12 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._713 + 16 @ 0x699f + add r0, r2, #0 + strh r0, [r1] + b ._712 +._714: + .align 2, 0 +._713: + .word gMain + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x699f +._711: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._715 @cond_branch + ldr r6, ._717 @ gUnknown_Debug_2038A20 + ldr r0, [r6] + strb r1, [r0, #0x5] + ldr r1, ._717 + 4 @ 0x4000040 + ldr r2, ._717 + 8 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._717 + 12 @ 0x699f + add r0, r2, #0 + strh r0, [r1] + ldr r0, [r6] + add r0, r0, #0x10 + ldr r4, ._717 + 16 @ gPlttBufferUnfaded + add r1, r4, #0 + mov r2, #0x10 + bl CpuSet + ldr r0, [r6] + add r0, r0, #0x10 + ldr r5, ._717 + 20 @ gPlttBufferFaded + add r1, r5, #0 + mov r2, #0x10 + bl CpuSet + ldr r1, [r6] + add r0, r1, #0 + add r0, r0, #0x10 + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x5 + mov r2, #0x80 + lsl r2, r2, #0x1 + add r4, r4, r2 + add r1, r1, r4 + mov r2, #0x10 + bl CpuSet + ldr r1, [r6] + add r0, r1, #0 + add r0, r0, #0x10 + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x5 + mov r2, #0x80 + lsl r2, r2, #0x1 + add r5, r5, r2 + add r1, r1, r5 + mov r2, #0x10 + bl CpuSet +._712: + ldr r1, ._717 + 24 @ gTasks + lsl r0, r7, #0x2 + add r0, r0, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._717 + 28 @ debug_80C6EE8 + str r1, [r0] + b ._754 +._718: + .align 2, 0 +._717: + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x699f + .word gPlttBufferUnfaded+0x100 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C6EE8+1 +._715: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._720 @cond_branch + ldr r0, ._722 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + ldrb r0, [r1, #0xa] + cmp r0, #0x1 + bhi ._720 @cond_branch + add r0, r0, #0x1 + strb r0, [r1, #0xa] + b ._754 +._723: + .align 2, 0 +._722: + .word gUnknown_Debug_2038A20 +._720: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._725 @cond_branch + ldr r0, ._727 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq ._725 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1, #0xa] + b ._754 +._728: + .align 2, 0 +._727: + .word gUnknown_Debug_2038A20 +._725: + ldrh r1, [r3, #0x30] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._729 @cond_branch + ldr r0, ._734 @ gUnknown_Debug_2038A20 + ldr r2, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #0x1 + beq ._730 @cond_branch + cmp r0, #0x1 + bgt ._731 @cond_branch + cmp r0, #0 + beq ._732 @cond_branch + b ._754 +._735: + .align 2, 0 +._734: + .word gUnknown_Debug_2038A20 +._731: + cmp r0, #0x2 + beq ._736 @cond_branch + b ._754 +._732: + ldrb r3, [r2, #0xc] + lsl r1, r3, #0x1b + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._761 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + mov r1, #0x20 + neg r1, r1 + and r1, r1, r3 + orr r1, r1, r0 + strb r1, [r2, #0xc] + b ._761 +._730: + ldrh r3, [r2, #0xc] + lsl r1, r3, #0x16 + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._761 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x5 + ldr r1, ._742 @ 0xfffffc1f + and r1, r1, r3 + orr r1, r1, r0 + strh r1, [r2, #0xc] + b ._761 +._743: + .align 2, 0 +._742: + .word 0xfffffc1f +._736: + ldrb r3, [r2, #0xd] + lsl r1, r3, #0x19 + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._761 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x2 + mov r1, #0x7d + neg r1, r1 + and r1, r1, r3 + orr r1, r1, r0 + strb r1, [r2, #0xd] + b ._761 +._729: + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._754 @cond_branch + ldr r0, ._751 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r0, [r3, #0xa] + cmp r0, #0x1 + beq ._747 @cond_branch + cmp r0, #0x1 + bgt ._748 @cond_branch + cmp r0, #0 + beq ._749 @cond_branch + b ._754 +._752: + .align 2, 0 +._751: + .word gUnknown_Debug_2038A20 +._748: + cmp r0, #0x2 + beq ._753 @cond_branch + b ._754 +._749: + ldrb r2, [r3, #0xc] + mov r0, #0x1f + and r0, r0, r2 + cmp r0, #0 + beq ._761 @cond_branch + lsl r0, r2, #0x1b + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + mov r1, #0x20 + neg r1, r1 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3, #0xc] + b ._761 +._747: + ldrh r2, [r3, #0xc] + mov r0, #0xf8 + lsl r0, r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._761 @cond_branch + lsl r0, r2, #0x16 + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x5 + ldr r1, ._759 @ 0xfffffc1f + and r1, r1, r2 + orr r1, r1, r0 + strh r1, [r3, #0xc] + b ._761 +._760: + .align 2, 0 +._759: + .word 0xfffffc1f +._753: + ldrb r2, [r3, #0xd] + mov r0, #0x7c + and r0, r0, r2 + cmp r0, #0 + beq ._761 @cond_branch + lsl r0, r2, #0x19 + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x2 + mov r1, #0x7d + neg r1, r1 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3, #0xd] +._761: + ldr r0, ._762 @ gTasks + lsl r1, r7, #0x2 + add r1, r1, r7 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._762 + 4 @ debug_80C74E4 + str r0, [r1] +._754: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._763: + .align 2, 0 +._762: + .word gTasks + .word debug_80C74E4+1 + + thumb_func_end debug_80C7294 + + thumb_func_start debug_80C74E4 +debug_80C74E4: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add r5, r0, #0 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + ldr r0, ._764 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r0, [r3, #0xc] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1b + ldrh r2, [r3, #0xc] + mov r1, #0xf8 + lsl r1, r1, #0x2 + and r1, r1, r2 + add r0, r0, r1 + ldrb r1, [r3, #0xd] + lsl r1, r1, #0x19 + lsr r1, r1, #0x1b + lsl r1, r1, #0xa + add r0, r0, r1 + ldr r6, ._764 + 4 @ gPlttBufferUnfaded + ldrb r1, [r3, #0x7] + add r1, r1, #0x81 + lsl r1, r1, #0x1 + add r1, r1, r6 + strh r0, [r1] + ldr r1, ._764 + 8 @ gPlttBufferFaded + mov r8, r1 + ldrb r1, [r3, #0x7] + add r1, r1, #0x81 + lsl r1, r1, #0x1 + add r1, r1, r8 + strh r0, [r1] + ldrb r1, [r3, #0x6] + lsl r1, r1, #0x4 + ldrb r2, [r3, #0x7] + ldr r4, ._764 + 12 @ 0x101 + add r2, r2, r4 + add r1, r1, r2 + lsl r1, r1, #0x1 + add r1, r1, r6 + strh r0, [r1] + ldrb r1, [r3, #0x6] + lsl r1, r1, #0x4 + ldrb r2, [r3, #0x7] + add r2, r2, r4 + add r1, r1, r2 + lsl r1, r1, #0x1 + add r1, r1, r8 + strh r0, [r1] + mov r1, #0xe + mov r2, #0xa + mov r3, #0x4 + bl debug_80C68CC + ldr r1, ._764 + 16 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._764 + 20 @ debug_80C7294 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 +._765: + .align 2, 0 +._764: + .word gUnknown_Debug_2038A20 + .word gPlttBufferUnfaded + .word gPlttBufferFaded + .word 0x101 + .word gTasks + .word debug_80C7294+1 + + thumb_func_end debug_80C74E4 + + thumb_func_start debug_80C7584 +debug_80C7584: + push {r4, lr} + add r2, r0, #0 + ldr r0, ._771 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r1, [r3, #0x5] + add r4, r0, #0 + cmp r1, #0 + beq ._766 @cond_branch + mov r1, #0x2e + ldsh r0, [r2, r1] + cmp r0, #0x1 + beq ._767 @cond_branch + cmp r0, #0x1 + ble ._768 @cond_branch + cmp r0, #0x2 + beq ._769 @cond_branch +._768: + ldrb r0, [r3, #0xc] + lsl r0, r0, #0x1b + b ._773 +._772: + .align 2, 0 +._771: + .word gUnknown_Debug_2038A20 +._767: + ldrh r0, [r3, #0xc] + lsl r0, r0, #0x16 + b ._773 +._769: + ldrb r0, [r3, #0xd] + lsl r0, r0, #0x19 +._773: + lsr r0, r0, #0x1b + lsl r0, r0, #0x2 + strh r0, [r2, #0x24] + mov r1, #0x2e + ldsh r0, [r2, r1] + lsl r0, r0, #0x3 + strh r0, [r2, #0x26] + ldrh r0, [r2, #0x30] + add r3, r0, #1 + strh r3, [r2, #0x30] + mov r0, #0x2e + ldsh r1, [r2, r0] + ldr r0, [r4] + ldrb r0, [r0, #0xa] + cmp r1, r0 + bne ._775 @cond_branch + mov r0, #0x8 + and r3, r3, r0 + cmp r3, #0 + bne ._775 @cond_branch +._766: + add r0, r2, #0 + add r0, r0, #0x3e + ldrb r1, [r0] + mov r2, #0x4 + orr r1, r1, r2 + strb r1, [r0] + b ._776 +._775: + add r2, r2, #0x3e + ldrb r1, [r2] + mov r0, #0x5 + neg r0, r0 + and r0, r0, r1 + strb r0, [r2] +._776: + pop {r4} + pop {r0} + bx r0 + + thumb_func_end debug_80C7584 + + thumb_func_start InitSeeTrainers +InitSeeTrainers: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffffc + bl debug_80C35DC + ldr r1, ._777 @ byte_83F88EC + ldr r2, ._777 + 4 @ 0x600e000 + ldr r0, ._777 + 8 @ 0x40000d4 + str r1, [r0] + str r2, [r0, #0x4] + ldr r1, ._777 + 12 @ 0x80000400 + str r1, [r0, #0x8] + ldr r0, [r0, #0x8] + ldr r0, ._777 + 16 @ word_83F888C + mov r1, #0x80 + mov r2, #0x60 + bl LoadPalette + mov r0, #0x1 + neg r0, r0 + mov r5, #0x0 + str r5, [sp] + mov r1, #0x0 + mov r2, #0x10 + mov r3, #0x0 + bl BeginNormalPaletteFade + ldr r0, ._777 + 20 @ 0x4000040 + mov r6, #0x0 + strh r5, [r0] + add r0, r0, #0x4 + strh r5, [r0] + sub r0, r0, #0x2 + strh r5, [r0] + add r0, r0, #0x4 + strh r5, [r0] + ldr r1, ._777 + 24 @ 0x4000048 + mov r0, #0x3f + strh r0, [r1] + add r1, r1, #0x2 + mov r0, #0x1f + strh r0, [r1] + add r1, r1, #0x6 + mov r0, #0xf1 + strh r0, [r1] + ldr r0, ._777 + 28 @ 0x4000052 + strh r5, [r0] + add r1, r1, #0x4 + mov r0, #0x7 + strh r0, [r1] + ldr r3, ._777 + 32 @ 0x4000208 + ldrh r2, [r3] + strh r5, [r3] + ldr r4, ._777 + 36 @ 0x4000200 + ldrh r0, [r4] + mov r1, #0x1 + orr r0, r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, ._777 + 40 @ debug_80C3758 + bl SetVBlankCallback + ldr r0, ._777 + 44 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._777 + 48 @ 0x4000008 + ldr r2, ._777 + 52 @ 0x1f0b + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x2 + ldr r2, ._777 + 56 @ 0x1e0a + add r0, r2, #0 + strh r0, [r1] + sub r1, r1, #0xa + mov r2, #0xcd + lsl r2, r2, #0x6 + add r0, r2, #0 + strh r0, [r1] + ldr r0, ._777 + 60 @ debug_80C777C + mov r1, #0x0 + bl CreateTask + ldr r1, ._777 + 64 @ gUnknown_Debug_2038A20 + ldr r0, ._777 + 68 @ 0x2018000 + str r0, [r1] + strh r5, [r0] + strb r6, [r0, #0x2] + strb r6, [r0, #0x3] + strb r6, [r0, #0x5] + strb r6, [r0, #0x7] + strb r6, [r0, #0xa] + strb r6, [r0, #0x8] + ldr r4, ._777 + 72 @ gSpriteTemplate_83F8874 + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + ldr r6, ._777 + 76 @ gSprites + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + strh r5, [r0, #0x2e] + mov r1, #0x0 + bl StartSpriteAnim + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + mov r1, #0x1 + strh r1, [r0, #0x2e] + bl StartSpriteAnim + add r0, r4, #0 + mov r1, #0x6c + mov r2, #0x74 + mov r3, #0x0 + bl CreateSprite + add r1, r0, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + mov r1, #0x2 + strh r1, [r0, #0x2e] + bl StartSpriteAnim + add sp, sp, #0x4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._778: + .align 2, 0 +._777: + .word byte_83F88EC + .word 0x600e000 + .word 0x40000d4 + .word 0x80000400 + .word word_83F888C + .word 0x4000040 + .word 0x4000048 + .word 0x4000052 + .word 0x4000208 + .word 0x4000200 + .word debug_80C3758+1 + .word debug_80C370C+1 + .word 0x4000008 + .word 0x1f0b + .word 0x1e0a + .word debug_80C777C+1 + .word gUnknown_Debug_2038A20 + .word 0x2018000 + .word gSpriteTemplate_83F8874 + .word gSprites + + thumb_func_end InitSeeTrainers + + thumb_func_start debug_80C777C +debug_80C777C: + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + add sp, sp, #0xffffffec + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r1, ._784 @ gUnknown_Debug_083F8815 + mov r0, sp + mov r2, #0x12 + bl memcpy + mov r0, #0x9 + mov r1, #0x0 + mov r2, #0xe + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0x0 + mov r2, #0x9 + mov r3, #0x9 + bl Menu_DrawStdWindowFrame + mov r0, #0x0 + mov r1, #0xa + mov r2, #0x9 + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r0, #0xe + mov r1, #0x0 + mov r2, #0x1d + mov r3, #0x7 + bl Menu_DrawStdWindowFrame + ldr r0, ._784 + 4 @ gUnknown_Debug_083F87D0 + mov r1, #0xf + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._784 + 8 @ gUnknown_Debug_083F87D8 + mov r1, #0x19 + mov r2, #0x1 + bl Menu_PrintText + ldr r0, ._784 + 12 @ gUnknown_Debug_083F87E0 + mov r1, #0xf + mov r2, #0x5 + bl Menu_PrintText + mov r0, #0xa + mov r1, #0x8 + mov r2, #0x1d + mov r3, #0xc + bl Menu_DrawStdWindowFrame + mov r2, #0x0 + ldr r4, ._784 + 16 @ 0x600fa56 + ldr r0, ._784 + 20 @ 0xa311 + add r3, r0, #0 +._779: + lsl r0, r2, #0x1 + add r0, r0, r4 + add r1, r2, r3 + strh r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0xe + bls ._779 @cond_branch + mov r2, #0x0 + ldr r5, ._784 + 24 @ gUnknown_Debug_083F87F4 + lsl r6, r7, #0x2 + mov r8, r6 + ldr r4, ._784 + 28 @ 0x600f256 + ldr r0, ._784 + 32 @ 0x8301 + add r3, r0, #0 +._780: + lsl r0, r2, #0x1 + add r0, r0, r4 + add r1, r2, r3 + strh r1, [r0] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0xe + bls ._780 @cond_branch + add r0, r5, #0 + mov r1, #0x14 + mov r2, #0xa + bl Menu_PrintText + mov r0, #0xa + mov r1, #0xd + mov r2, #0x1d + mov r3, #0x13 + bl Menu_DrawStdWindowFrame + mov r1, sp + mov r0, #0x23 + strb r0, [r1] + mov r2, #0x0 + ldr r4, ._784 + 36 @ 0x600f396 + mov r5, #0x93 + lsl r5, r5, #0x8 + add r3, r5, #0 +._781: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._781 @cond_branch + mov r1, sp + mov r0, #0x24 + strb r0, [r1] + mov r2, #0x0 + ldr r5, ._784 + 40 @ gUnknown_Debug_083F8801 + ldr r4, ._784 + 44 @ 0x600f3d6 + mov r0, #0x93 + lsl r0, r0, #0x8 + add r3, r0, #0 +._782: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._782 @cond_branch + mov r1, sp + mov r0, #0x25 + strb r0, [r1] + mov r2, #0x0 + ldr r4, ._784 + 48 @ 0x600f416 + mov r0, #0x93 + lsl r0, r0, #0x8 + add r3, r0, #0 +._783: + lsl r1, r2, #0x1 + add r1, r1, r4 + mov r6, sp + add r0, r6, r2 + ldrb r0, [r0] + add r0, r0, r3 + strh r0, [r1] + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #0x11 + bls ._783 @cond_branch + add r0, r5, #0 + mov r1, #0xf + mov r2, #0x11 + bl Menu_PrintText + ldr r1, ._784 + 52 @ 0x4000040 + ldr r2, ._784 + 56 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r5, ._784 + 60 @ 0x699f + add r0, r5, #0 + strh r0, [r1] + ldr r1, ._784 + 64 @ gTasks + mov r6, r8 + add r0, r6, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._784 + 68 @ debug_80C7934 + str r1, [r0] + add sp, sp, #0x14 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._785: + .align 2, 0 +._784: + .word gUnknown_Debug_083F8815 + .word gUnknown_Debug_083F87D0 + .word gUnknown_Debug_083F87D8 + .word gUnknown_Debug_083F87E0 + .word 0x600fa56 + .word 0xa311 + .word gUnknown_Debug_083F87F4 + .word 0x600f256 + .word 0x8301 + .word 0x600f396 + .word gUnknown_Debug_083F8801 + .word 0x600f3d6 + .word 0x600f416 + .word 0x4000040 + .word 0x51ef + .word 0x699f + .word gTasks + .word debug_80C7934+1 + + thumb_func_end debug_80C777C + + thumb_func_start debug_80C7934 +debug_80C7934: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add sp, sp, #0xfffffff8 + mov r8, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r8, r0 + ldr r5, ._786 @ gUnknown_Debug_2038A20 + ldr r6, [r5] + ldrh r2, [r6] + lsl r0, r2, #0x3 + ldr r1, ._786 + 4 @ gTrainerFrontPicTable + add r0, r0, r1 + ldr r1, ._786 + 8 @ gTrainerFrontPicCoords + lsl r2, r2, #0x2 + add r2, r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, #0x1] + ldr r4, ._786 + 12 @ gUnknown_081FAF4C + ldr r3, [r4] + ldr r4, [r4, #0x4] + str r4, [sp] + ldrh r4, [r6] + str r4, [sp, #0x4] + bl DecompressPicFromTable_2 + ldr r0, [r5] + ldrh r0, [r0] + lsl r0, r0, #0x3 + ldr r1, ._786 + 16 @ gTrainerFrontPicPaletteTable + add r0, r0, r1 + bl LoadCompressedObjectPalette + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x1 + bl GetMonSpriteTemplate_803C5A0 + ldr r0, ._786 + 20 @ gUnknown_02024E8C + mov r1, #0x28 + mov r2, #0x28 + mov r3, #0x0 + bl CreateSprite + ldr r1, [r5] + mov r6, #0x0 + strb r0, [r1, #0x2] + ldr r4, ._786 + 24 @ gSprites + ldr r2, [r5] + ldrb r1, [r2, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r1, r4, #0 + add r1, r1, #0x1c + add r0, r0, r1 + ldr r1, ._786 + 28 @ debug_69 + str r1, [r0] + ldrb r0, [r2, #0x2] + lsl r1, r0, #0x4 + add r1, r1, r0 + lsl r1, r1, #0x2 + add r1, r1, r4 + ldrb r2, [r1, #0x5] + mov r0, #0xd + neg r0, r0 + and r0, r0, r2 + strb r0, [r1, #0x5] + ldr r0, [r5] + ldrh r0, [r0] + mov r1, #0x1a + mov r2, #0x5 + bl debug_80C376C + ldr r2, [r5] + ldrb r1, [r2, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r4 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + strb r0, [r2, #0x6] + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + ldr r4, ._786 + 32 @ gPlttBufferUnfaded + add r0, r0, r4 + ldr r2, ._786 + 36 @ 0xffffff00 + add r1, r4, r2 + mov r2, #0x10 + bl CpuSet + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + add r0, r0, r4 + ldr r1, ._786 + 40 @ gPlttBufferFaded + mov r2, #0x10 + bl CpuSet + ldr r1, ._786 + 44 @ gTasks + mov r2, r8 + lsl r0, r2, #0x2 + add r0, r0, r8 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._786 + 48 @ debug_80C7A54 + str r1, [r0] + ldr r0, [r5] + strb r6, [r0, #0x9] + add sp, sp, #0x8 + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 +._787: + .align 2, 0 +._786: + .word gUnknown_Debug_2038A20 + .word gTrainerFrontPicTable + .word gTrainerFrontPicCoords + .word gUnknown_081FAF4C + .word gTrainerFrontPicPaletteTable + .word gUnknown_02024E8C + .word gSprites + .word debug_69+1 + .word gPlttBufferUnfaded+0x200 + .word 0xffffff00 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C7A54+1 + + thumb_func_end debug_80C7934 + + thumb_func_start debug_80C7A54 +debug_80C7A54: + push {r4, r5, r6, lr} + add r6, r0, #0 + lsl r6, r6, #0x18 + lsr r6, r6, #0x18 + ldr r4, ._788 @ gPlttBufferUnfaded + ldr r5, ._788 + 4 @ gUnknown_Debug_2038A20 + ldr r1, [r5] + add r1, r1, #0x10 + add r0, r4, #0 + mov r2, #0x10 + bl CpuSet + ldr r0, ._788 + 8 @ 0xffffff00 + add r4, r4, r0 + ldr r3, [r5] + ldrb r0, [r3, #0x7] + add r0, r0, #0x81 + lsl r0, r0, #0x1 + add r0, r0, r4 + ldrh r4, [r0] + mov r1, #0x1f + and r1, r1, r4 + ldrb r2, [r3, #0xc] + mov r0, #0x20 + neg r0, r0 + and r0, r0, r2 + orr r0, r0, r1 + strb r0, [r3, #0xc] + ldr r3, [r5] + mov r1, #0xf8 + lsl r1, r1, #0x2 + and r1, r1, r4 + ldrh r2, [r3, #0xc] + ldr r0, ._788 + 12 @ 0xfffffc1f + and r0, r0, r2 + orr r0, r0, r1 + strh r0, [r3, #0xc] + mov r1, #0xf8 + lsl r1, r1, #0x7 + and r1, r1, r4 + lsr r1, r1, #0x8 + ldrb r2, [r3, #0xd] + mov r0, #0x7d + neg r0, r0 + and r0, r0, r2 + orr r0, r0, r1 + strb r0, [r3, #0xd] + ldr r2, [r5] + ldrb r1, [r2, #0xd] + mov r0, #0x7f + and r0, r0, r1 + strb r0, [r2, #0xd] + ldr r0, [r5] + ldrb r0, [r0, #0x7] + add r0, r0, #0x1 + mov r1, #0xb + mov r2, #0xa + mov r3, #0x2 + bl debug_80C68CC + ldr r0, ._788 + 16 @ gUnknown_Debug_083F8813 + mov r1, #0xd + mov r2, #0xa + bl Menu_PrintText + add r0, r4, #0 + mov r1, #0xe + mov r2, #0xa + mov r3, #0x4 + bl debug_80C68CC + ldr r1, ._788 + 20 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._788 + 24 @ debug_80C7B14 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 +._789: + .align 2, 0 +._788: + .word gPlttBufferUnfaded+0x100 + .word gUnknown_Debug_2038A20 + .word 0xffffff00 + .word 0xfffffc1f + .word gUnknown_Debug_083F8813 + .word gTasks + .word debug_80C7B14+1 + + thumb_func_end debug_80C7A54 + + thumb_func_start debug_80C7B14 +debug_80C7B14: + push {r4, r5, r6, lr} + add sp, sp, #0xfffffffc + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + ldr r1, ._792 @ gMain + ldrh r3, [r1, #0x2e] + mov r0, #0x2 + and r0, r0, r3 + add r4, r1, #0 + cmp r0, #0 + beq ._790 @cond_branch + mov r0, #0x5 + bl PlaySE + mov r0, #0x1 + neg r0, r0 + mov r1, #0x0 + str r1, [sp] + mov r2, #0x0 + mov r3, #0x10 + bl BeginNormalPaletteFade + ldr r0, ._792 + 4 @ debug_80C370C + bl SetMainCallback2 + ldr r1, ._792 + 8 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._792 + 12 @ debug_80C373C + str r1, [r0] + b ._821 +._793: + .align 2, 0 +._792: + .word gMain + .word debug_80C370C+1 + .word gTasks + .word debug_80C373C+1 +._790: + ldrh r1, [r4, #0x30] + mov r0, #0x80 + lsl r0, r0, #0x1 + and r0, r0, r1 + cmp r0, #0 + beq ._794 @cond_branch + ldr r4, ._796 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrh r1, [r0] + mov r0, #0x0 + b ._795 +._797: + .align 2, 0 +._796: + .word gUnknown_Debug_2038A20 +._794: + mov r0, #0x80 + lsl r0, r0, #0x2 + and r0, r0, r1 + cmp r0, #0 + beq ._798 @cond_branch + ldr r4, ._800 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrh r1, [r0] + mov r0, #0x1 +._795: + bl debug_80C38B4 + ldr r1, [r4] + strh r0, [r1] + ldr r1, ._800 + 4 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._800 + 8 @ debug_80C7D44 + str r1, [r0] + b ._821 +._801: + .align 2, 0 +._800: + .word gUnknown_Debug_2038A20 + .word gTasks + .word debug_80C7D44+1 +._798: + mov r2, #0x1 + and r2, r2, r3 + cmp r2, #0 + beq ._802 @cond_branch + ldr r0, ._804 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + mov r0, #0x1 + strb r0, [r1, #0x5] + ldr r1, ._804 + 4 @ 0x4000040 + ldr r2, ._804 + 8 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._804 + 12 @ 0x4167 + add r0, r2, #0 + strh r0, [r1] + ldr r1, ._804 + 16 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._804 + 20 @ debug_80C7DDC + str r1, [r0] + b ._821 +._805: + .align 2, 0 +._804: + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x4167 + .word gTasks + .word debug_80C7DDC+1 +._802: + mov r0, #0x10 + and r0, r0, r1 + ldr r3, ._809 @ gUnknown_Debug_2038A20 + cmp r0, #0 + beq ._807 @cond_branch + ldr r1, [r3] + ldrb r0, [r1, #0x7] + cmp r0, #0xd + bhi ._807 @cond_branch + lsl r0, r0, #0x1 + ldr r1, ._809 + 4 @ 0x5000102 + add r0, r0, r1 + strh r2, [r0] + ldr r1, [r3] + ldrb r0, [r1, #0x7] + add r0, r0, #0x1 + strb r0, [r1, #0x7] + b ._813 +._810: + .align 2, 0 +._809: + .word gUnknown_Debug_2038A20 + .word 0x5000102 +._807: + ldrh r1, [r4, #0x30] + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._812 @cond_branch + ldr r1, [r3] + ldrb r0, [r1, #0x7] + cmp r0, #0 + beq ._812 @cond_branch + lsl r0, r0, #0x1 + ldr r2, ._814 @ 0x5000102 + add r0, r0, r2 + mov r1, #0x0 + strh r1, [r0] + ldr r1, [r3] + ldrb r0, [r1, #0x7] + sub r0, r0, #0x1 + strb r0, [r1, #0x7] + b ._813 +._815: + .align 2, 0 +._814: + .word 0x5000102 +._812: + ldrh r1, [r4, #0x2e] + mov r0, #0x8 + and r0, r0, r1 + cmp r0, #0 + beq ._816 @cond_branch + ldr r4, ._819 @ gUnknown_Debug_2038A20 + ldr r2, [r4] + ldrb r0, [r2, #0x9] + mov r1, #0x1 + eor r0, r0, r1 + strb r0, [r2, #0x9] + ldr r1, [r4] + ldrb r0, [r1, #0x9] + cmp r0, #0 + beq ._817 @cond_branch + ldrh r0, [r1] + mov r1, #0x0 + mov r2, #0x0 + bl GetMonSpritePalFromOtIdPersonality + ldr r1, [r4] + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x14 + mov r2, #0x80 + lsl r2, r2, #0x11 + add r1, r1, r2 + lsr r1, r1, #0x10 + mov r2, #0x20 + bl LoadCompressedPalette + b ._818 +._820: + .align 2, 0 +._819: + .word gUnknown_Debug_2038A20 +._817: + ldrh r0, [r1] + mov r1, #0x0 + mov r2, #0x9 + bl GetMonSpritePalFromOtIdPersonality + ldr r1, [r4] + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x14 + mov r2, #0x80 + lsl r2, r2, #0x11 + add r1, r1, r2 + lsr r1, r1, #0x10 + mov r2, #0x20 + bl LoadCompressedPalette +._818: + ldr r5, ._822 @ gUnknown_Debug_2038A20 + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + ldr r4, ._822 + 4 @ gPlttBufferUnfaded + add r0, r0, r4 + ldr r2, ._822 + 8 @ 0xffffff00 + add r1, r4, r2 + mov r2, #0x10 + bl CpuSet + ldr r0, [r5] + ldrb r0, [r0, #0x6] + lsl r0, r0, #0x5 + add r0, r0, r4 + ldr r1, ._822 + 12 @ gPlttBufferFaded + mov r2, #0x10 + bl CpuSet +._813: + ldr r1, ._822 + 16 @ gTasks + lsl r0, r6, #0x2 + add r0, r0, r6 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._822 + 20 @ debug_80C7A54 + str r1, [r0] + b ._821 +._823: + .align 2, 0 +._822: + .word gUnknown_Debug_2038A20 + .word gPlttBufferUnfaded+0x200 + .word 0xffffff00 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C7A54+1 +._816: + ldr r1, [r3] + ldrb r0, [r1, #0x8] + add r0, r0, #0x4 + strb r0, [r1, #0x8] + ldr r2, [r3] + ldrb r1, [r2, #0x8] + mov r0, #0x1f + and r0, r0, r1 + strb r0, [r2, #0x8] + ldr r0, [r3] + ldrb r1, [r0, #0x7] + lsl r1, r1, #0x1 + ldr r2, ._824 @ 0x5000142 + add r1, r1, r2 + ldr r2, ._824 + 4 @ gUnknown_Debug_083F8790 + ldrb r0, [r0, #0x8] + lsl r0, r0, #0x1 + add r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] +._821: + add sp, sp, #0x4 + pop {r4, r5, r6} + pop {r0} + bx r0 +._825: + .align 2, 0 +._824: + .word 0x5000142 + .word gUnknown_Debug_083F8790 + + thumb_func_end debug_80C7B14 + + thumb_func_start debug_80C7D44 +debug_80C7D44: + push {r4, r5, r6, lr} + add r5, r0, #0 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + ldr r6, ._826 @ gSprites + ldr r4, ._826 + 4 @ gUnknown_Debug_2038A20 + ldr r0, [r4] + ldrb r1, [r0, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrb r1, [r0, #0x2] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl DestroySprite + ldr r0, [r4] + ldrb r1, [r0, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + ldrb r0, [r0, #0x5] + lsr r0, r0, #0x4 + bl GetSpritePaletteTagByPaletteNum + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldrb r1, [r0, #0x3] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl DestroySprite + ldr r0, [r4] + ldrb r1, [r0, #0x4] + lsl r0, r1, #0x4 + add r0, r0, r1 + lsl r0, r0, #0x2 + add r0, r0, r6 + bl sub_809D510 + ldr r1, ._826 + 8 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._826 + 12 @ debug_80C7934 + str r1, [r0] + pop {r4, r5, r6} + pop {r0} + bx r0 +._827: + .align 2, 0 +._826: + .word gSprites + .word gUnknown_Debug_2038A20 + .word gTasks + .word debug_80C7934+1 + + thumb_func_end debug_80C7D44 + + thumb_func_start debug_80C7DDC +debug_80C7DDC: + push {r4, r5, r6, r7, lr} + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + ldr r0, ._830 @ gMain + ldrh r2, [r0, #0x2e] + mov r1, #0x1 + and r1, r1, r2 + add r3, r0, #0 + cmp r1, #0 + beq ._828 @cond_branch + ldr r0, ._830 + 4 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + mov r0, #0x0 + strb r0, [r1, #0x5] + ldr r1, ._830 + 8 @ 0x4000040 + ldr r2, ._830 + 12 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._830 + 16 @ 0x699f + add r0, r2, #0 + strh r0, [r1] + b ._829 +._831: + .align 2, 0 +._830: + .word gMain + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x699f +._828: + mov r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._832 @cond_branch + ldr r6, ._834 @ gUnknown_Debug_2038A20 + ldr r0, [r6] + strb r1, [r0, #0x5] + ldr r1, ._834 + 4 @ 0x4000040 + ldr r2, ._834 + 8 @ 0x51ef + add r0, r2, #0 + strh r0, [r1] + add r1, r1, #0x4 + ldr r2, ._834 + 12 @ 0x699f + add r0, r2, #0 + strh r0, [r1] + ldr r0, [r6] + add r0, r0, #0x10 + ldr r4, ._834 + 16 @ gPlttBufferUnfaded + add r1, r4, #0 + mov r2, #0x10 + bl CpuSet + ldr r0, [r6] + add r0, r0, #0x10 + ldr r5, ._834 + 20 @ gPlttBufferFaded + add r1, r5, #0 + mov r2, #0x10 + bl CpuSet + ldr r1, [r6] + add r0, r1, #0 + add r0, r0, #0x10 + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x5 + mov r2, #0x80 + lsl r2, r2, #0x1 + add r4, r4, r2 + add r1, r1, r4 + mov r2, #0x10 + bl CpuSet + ldr r1, [r6] + add r0, r1, #0 + add r0, r0, #0x10 + ldrb r1, [r1, #0x6] + lsl r1, r1, #0x5 + mov r2, #0x80 + lsl r2, r2, #0x1 + add r5, r5, r2 + add r1, r1, r5 + mov r2, #0x10 + bl CpuSet +._829: + ldr r1, ._834 + 24 @ gTasks + lsl r0, r7, #0x2 + add r0, r0, r7 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._834 + 28 @ debug_80C7A54 + str r1, [r0] + b ._871 +._835: + .align 2, 0 +._834: + .word gUnknown_Debug_2038A20 + .word 0x4000040 + .word 0x51ef + .word 0x699f + .word gPlttBufferUnfaded+0x100 + .word gPlttBufferFaded+0x100 + .word gTasks + .word debug_80C7A54+1 +._832: + ldrh r1, [r3, #0x30] + mov r0, #0x80 + and r0, r0, r1 + cmp r0, #0 + beq ._837 @cond_branch + ldr r0, ._839 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + ldrb r0, [r1, #0xa] + cmp r0, #0x1 + bhi ._837 @cond_branch + add r0, r0, #0x1 + strb r0, [r1, #0xa] + b ._871 +._840: + .align 2, 0 +._839: + .word gUnknown_Debug_2038A20 +._837: + ldrh r1, [r3, #0x30] + mov r0, #0x40 + and r0, r0, r1 + cmp r0, #0 + beq ._842 @cond_branch + ldr r0, ._844 @ gUnknown_Debug_2038A20 + ldr r1, [r0] + ldrb r0, [r1, #0xa] + cmp r0, #0 + beq ._842 @cond_branch + sub r0, r0, #0x1 + strb r0, [r1, #0xa] + b ._871 +._845: + .align 2, 0 +._844: + .word gUnknown_Debug_2038A20 +._842: + ldrh r1, [r3, #0x30] + mov r0, #0x10 + and r0, r0, r1 + cmp r0, #0 + beq ._846 @cond_branch + ldr r0, ._851 @ gUnknown_Debug_2038A20 + ldr r2, [r0] + ldrb r0, [r2, #0xa] + cmp r0, #0x1 + beq ._847 @cond_branch + cmp r0, #0x1 + bgt ._848 @cond_branch + cmp r0, #0 + beq ._849 @cond_branch + b ._871 +._852: + .align 2, 0 +._851: + .word gUnknown_Debug_2038A20 +._848: + cmp r0, #0x2 + beq ._853 @cond_branch + b ._871 +._849: + ldrb r3, [r2, #0xc] + lsl r1, r3, #0x1b + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._878 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + mov r1, #0x20 + neg r1, r1 + and r1, r1, r3 + orr r1, r1, r0 + strb r1, [r2, #0xc] + b ._878 +._847: + ldrh r3, [r2, #0xc] + lsl r1, r3, #0x16 + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._878 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x5 + ldr r1, ._859 @ 0xfffffc1f + and r1, r1, r3 + orr r1, r1, r0 + strh r1, [r2, #0xc] + b ._878 +._860: + .align 2, 0 +._859: + .word 0xfffffc1f +._853: + ldrb r3, [r2, #0xd] + lsl r1, r3, #0x19 + lsr r0, r1, #0x1b + cmp r0, #0x1e + bhi ._878 @cond_branch + add r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x2 + mov r1, #0x7d + neg r1, r1 + and r1, r1, r3 + orr r1, r1, r0 + strb r1, [r2, #0xd] + b ._878 +._846: + mov r0, #0x20 + and r0, r0, r1 + cmp r0, #0 + beq ._871 @cond_branch + ldr r0, ._868 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r0, [r3, #0xa] + cmp r0, #0x1 + beq ._864 @cond_branch + cmp r0, #0x1 + bgt ._865 @cond_branch + cmp r0, #0 + beq ._866 @cond_branch + b ._871 +._869: + .align 2, 0 +._868: + .word gUnknown_Debug_2038A20 +._865: + cmp r0, #0x2 + beq ._870 @cond_branch + b ._871 +._866: + ldrb r2, [r3, #0xc] + mov r0, #0x1f + and r0, r0, r2 + cmp r0, #0 + beq ._878 @cond_branch + lsl r0, r2, #0x1b + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + mov r1, #0x20 + neg r1, r1 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3, #0xc] + b ._878 +._864: + ldrh r2, [r3, #0xc] + mov r0, #0xf8 + lsl r0, r0, #0x2 + and r0, r0, r2 + cmp r0, #0 + beq ._878 @cond_branch + lsl r0, r2, #0x16 + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x5 + ldr r1, ._876 @ 0xfffffc1f + and r1, r1, r2 + orr r1, r1, r0 + strh r1, [r3, #0xc] + b ._878 +._877: + .align 2, 0 +._876: + .word 0xfffffc1f +._870: + ldrb r2, [r3, #0xd] + mov r0, #0x7c + and r0, r0, r2 + cmp r0, #0 + beq ._878 @cond_branch + lsl r0, r2, #0x19 + lsr r0, r0, #0x1b + sub r0, r0, #0x1 + mov r1, #0x1f + and r0, r0, r1 + lsl r0, r0, #0x2 + mov r1, #0x7d + neg r1, r1 + and r1, r1, r2 + orr r1, r1, r0 + strb r1, [r3, #0xd] +._878: + ldr r0, ._879 @ gTasks + lsl r1, r7, #0x2 + add r1, r1, r7 + lsl r1, r1, #0x3 + add r1, r1, r0 + ldr r0, ._879 + 4 @ debug_80C802C + str r0, [r1] +._871: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 +._880: + .align 2, 0 +._879: + .word gTasks + .word debug_80C802C+1 + + thumb_func_end debug_80C7DDC + + thumb_func_start debug_80C802C +debug_80C802C: + push {r4, r5, r6, lr} + mov r6, r8 + push {r6} + add r5, r0, #0 + lsl r5, r5, #0x18 + lsr r5, r5, #0x18 + ldr r0, ._881 @ gUnknown_Debug_2038A20 + ldr r3, [r0] + ldrb r0, [r3, #0xc] + lsl r0, r0, #0x1b + lsr r0, r0, #0x1b + ldrh r2, [r3, #0xc] + mov r1, #0xf8 + lsl r1, r1, #0x2 + and r1, r1, r2 + add r0, r0, r1 + ldrb r1, [r3, #0xd] + lsl r1, r1, #0x19 + lsr r1, r1, #0x1b + lsl r1, r1, #0xa + add r0, r0, r1 + ldr r6, ._881 + 4 @ gPlttBufferUnfaded + ldrb r1, [r3, #0x7] + add r1, r1, #0x81 + lsl r1, r1, #0x1 + add r1, r1, r6 + strh r0, [r1] + ldr r1, ._881 + 8 @ gPlttBufferFaded + mov r8, r1 + ldrb r1, [r3, #0x7] + add r1, r1, #0x81 + lsl r1, r1, #0x1 + add r1, r1, r8 + strh r0, [r1] + ldrb r1, [r3, #0x6] + lsl r1, r1, #0x4 + ldrb r2, [r3, #0x7] + ldr r4, ._881 + 12 @ 0x101 + add r2, r2, r4 + add r1, r1, r2 + lsl r1, r1, #0x1 + add r1, r1, r6 + strh r0, [r1] + ldrb r1, [r3, #0x6] + lsl r1, r1, #0x4 + ldrb r2, [r3, #0x7] + add r2, r2, r4 + add r1, r1, r2 + lsl r1, r1, #0x1 + add r1, r1, r8 + strh r0, [r1] + mov r1, #0xe + mov r2, #0xa + mov r3, #0x4 + bl debug_80C68CC + ldr r1, ._881 + 16 @ gTasks + lsl r0, r5, #0x2 + add r0, r0, r5 + lsl r0, r0, #0x3 + add r0, r0, r1 + ldr r1, ._881 + 20 @ debug_80C7DDC + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4, r5, r6} + pop {r0} + bx r0 +._882: + .align 2, 0 +._881: + .word gUnknown_Debug_2038A20 + .word gPlttBufferUnfaded + .word gPlttBufferFaded + .word 0x101 + .word gTasks + .word debug_80C7DDC+1 + + thumb_func_end debug_80C802C + + .align 2, 0 + +.endif diff --git a/asm/water.s b/asm/water.s index d72f9438c..45fb7f82a 100755..100644 --- a/asm/water.s +++ b/asm/water.s @@ -1,5 +1,5 @@ .include "constants/gba_constants.inc" - .include "asm/macros.inc" + .include "include/macros.inc" .syntax unified @@ -300,7 +300,7 @@ _080D3D9C: movs r3, 0 movs r2, 0x10 ldrsh r0, [r4, r2] - ldr r1, _080D3E6C @ =gUnknown_03004DE0 + ldr r1, _080D3E6C @ =gScanlineEffectRegBuffers mov r12, r1 cmp r3, r0 bge _080D3DDA @@ -337,7 +337,7 @@ _080D3DDA: ldrsh r0, [r4, r3] cmp r1, r0 bge _080D3E14 - ldr r5, _080D3E6C @ =gUnknown_03004DE0 + ldr r5, _080D3E6C @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -366,7 +366,7 @@ _080D3E14: asrs r0, r2, 16 cmp r0, 0x9F bgt _080D3E4A - ldr r5, _080D3E6C @ =gUnknown_03004DE0 + ldr r5, _080D3E6C @ =gScanlineEffectRegBuffers movs r0, 0xF0 lsls r0, 3 adds r6, r5, r0 @@ -407,7 +407,7 @@ _080D3E4A: ldrh r0, [r4, 0xA] b _080D3E8A .align 2, 0 -_080D3E6C: .4byte gUnknown_03004DE0 +_080D3E6C: .4byte gScanlineEffectRegBuffers _080D3E70: .4byte 0x0000ffff _080D3E74: lsls r0, r3, 16 @@ -436,7 +436,7 @@ _080D3E8A: ldr r0, [sp] ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] - bl sub_80895F8 + bl ScanlineEffect_SetParams ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] @@ -475,8 +475,8 @@ _080D3EE8: ldrsh r0, [r4, r1] cmp r3, r0 bge _080D3F1C - ldr r6, _080D3F80 @ =gUnknown_03004DE0 - ldr r5, _080D3F84 @ =gUnknown_03004DC0 + ldr r6, _080D3F80 @ =gScanlineEffectRegBuffers + ldr r5, _080D3F84 @ =gScanlineEffect _080D3EF6: lsls r1, r3, 16 asrs r1, 16 @@ -505,8 +505,8 @@ _080D3F1C: ldrsh r0, [r4, r3] cmp r1, r0 bge _080D3F50 - ldr r6, _080D3F80 @ =gUnknown_03004DE0 - ldr r5, _080D3F84 @ =gUnknown_03004DC0 + ldr r6, _080D3F80 @ =gScanlineEffectRegBuffers + ldr r5, _080D3F84 @ =gScanlineEffect _080D3F2E: asrs r3, r2, 16 lsls r2, r3, 1 @@ -531,8 +531,8 @@ _080D3F50: asrs r0, r1, 16 cmp r0, 0x9F bgt _080D4032 - ldr r6, _080D3F80 @ =gUnknown_03004DE0 - ldr r5, _080D3F84 @ =gUnknown_03004DC0 + ldr r6, _080D3F80 @ =gScanlineEffectRegBuffers + ldr r5, _080D3F84 @ =gScanlineEffect _080D3F5E: asrs r3, r1, 16 lsls r2, r3, 1 @@ -551,16 +551,16 @@ _080D3F5E: ble _080D3F5E b _080D4032 .align 2, 0 -_080D3F80: .4byte gUnknown_03004DE0 -_080D3F84: .4byte gUnknown_03004DC0 +_080D3F80: .4byte gScanlineEffectRegBuffers +_080D3F84: .4byte gScanlineEffect _080D3F88: movs r3, 0 movs r1, 0x10 ldrsh r0, [r4, r1] cmp r3, r0 bge _080D3FBC - ldr r6, _080D403C @ =gUnknown_03004DE0 - ldr r5, _080D4040 @ =gUnknown_03004DC0 + ldr r6, _080D403C @ =gScanlineEffectRegBuffers + ldr r5, _080D4040 @ =gScanlineEffect _080D3F96: lsls r1, r3, 16 asrs r1, 16 @@ -589,8 +589,8 @@ _080D3FBC: ldrsh r0, [r4, r3] cmp r1, r0 bge _080D3FF0 - ldr r6, _080D403C @ =gUnknown_03004DE0 - ldr r5, _080D4040 @ =gUnknown_03004DC0 + ldr r6, _080D403C @ =gScanlineEffectRegBuffers + ldr r5, _080D4040 @ =gScanlineEffect _080D3FCE: asrs r3, r2, 16 lsls r2, r3, 1 @@ -615,8 +615,8 @@ _080D3FF0: asrs r0, r1, 16 cmp r0, 0x9F bgt _080D401C - ldr r6, _080D403C @ =gUnknown_03004DE0 - ldr r5, _080D4040 @ =gUnknown_03004DC0 + ldr r6, _080D403C @ =gScanlineEffectRegBuffers + ldr r5, _080D4040 @ =gScanlineEffect _080D3FFE: asrs r3, r1, 16 lsls r2, r3, 1 @@ -640,7 +640,7 @@ _080D401C: negs r0, r0 cmp r1, r0 bne _080D4032 - bl remove_some_task + bl ScanlineEffect_Stop adds r0, r7, 0 bl DestroyTask _080D4032: @@ -649,8 +649,8 @@ _080D4032: pop {r0} bx r0 .align 2, 0 -_080D403C: .4byte gUnknown_03004DE0 -_080D4040: .4byte gUnknown_03004DC0 +_080D403C: .4byte gScanlineEffectRegBuffers +_080D4040: .4byte gScanlineEffect thumb_func_end sub_80D3D68 thumb_func_start sub_80D4044 diff --git a/asm/wisp_fire.s b/asm/wisp_fire.s deleted file mode 100755 index a6407589f..000000000 --- a/asm/wisp_fire.s +++ /dev/null @@ -1,678 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - @ wisp_fire - - thumb_func_start sub_80D5CC0 -sub_80D5CC0: @ 80D5CC0 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080D5CD8 - ldr r0, _080D5D4C @ =gBattleAnimArgs - ldrh r0, [r0] - strh r0, [r4, 0x30] - adds r0, r1, 0x1 - strh r0, [r4, 0x2E] -_080D5CD8: - movs r0, 0xC0 - lsls r0, 1 - adds r1, r0, 0 - ldrh r2, [r4, 0x34] - adds r1, r2 - strh r1, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r0, 0xA0 - strh r0, [r4, 0x36] - movs r2, 0x30 - ldrsh r0, [r4, r2] - lsls r1, 16 - asrs r1, 24 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - ldrh r1, [r4, 0x36] - lsls r1, 16 - asrs r1, 24 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r2, r0, 0x7 - movs r0, 0xFF - ands r2, r0 - strh r2, [r4, 0x30] - ldr r0, _080D5D50 @ =gMain - ldr r1, _080D5D54 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080D5D84 - adds r0, r2, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080D5D5C - ldr r0, _080D5D58 @ =gAnimBankTarget - ldrb r0, [r0] - bl sub_8079ED4 - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - b _080D5DA0 - .align 2, 0 -_080D5D4C: .4byte gBattleAnimArgs -_080D5D50: .4byte gMain -_080D5D54: .4byte 0x0000043d -_080D5D58: .4byte gAnimBankTarget -_080D5D5C: - ldr r0, _080D5D80 @ =gAnimBankTarget - ldrb r0, [r0] - bl sub_8079ED4 - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - lsls r0, 2 - ldrb r2, [r4, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] - b _080D5DA0 - .align 2, 0 -_080D5D80: .4byte gAnimBankTarget -_080D5D84: - adds r0, r2, 0 - subs r0, 0x40 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x83 - bls _080D5D98 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1D - b _080D5D9E -_080D5D98: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1F -_080D5D9E: - strb r0, [r1] -_080D5DA0: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080D5DC8 - 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] -_080D5DC8: - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x1E - bne _080D5DD6 - adds r0, r4, 0 - bl DestroyAnimSprite -_080D5DD6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80D5CC0 - - thumb_func_start sub_80D5DDC -sub_80D5DDC: @ 80D5DDC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080D5E3C @ =gTasks - adds r4, r1, r0 - ldr r0, _080D5E40 @ =gAnimBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - movs r2, 0x1 - negs r2, r2 - adds r1, r2, 0 - cmp r0, 0 - bne _080D5E02 - movs r1, 0x1 -_080D5E02: - strh r1, [r4, 0x20] - ldr r0, _080D5E44 @ =gAnimBankTarget - ldrb r1, [r0] - movs r0, 0x2 - eors r0, r1 - bl IsAnimBankSpriteVisible - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x1 - strh r0, [r4, 0x22] - movs r0, 0x1 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - movs r0, 0x3 - bl GetAnimBankSpriteId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldr r0, _080D5E48 @ =sub_80D5E4C - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D5E3C: .4byte gTasks -_080D5E40: .4byte gAnimBankAttacker -_080D5E44: .4byte gAnimBankTarget -_080D5E48: .4byte sub_80D5E4C - thumb_func_end sub_80D5DDC - - thumb_func_start sub_80D5E4C -sub_80D5E4C: @ 80D5E4C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080D5E70 @ =gTasks - adds r2, r0, r1 - movs r0, 0x8 - ldrsh r3, [r2, r0] - cmp r3, 0x1 - beq _080D5F14 - cmp r3, 0x1 - bgt _080D5E74 - cmp r3, 0 - beq _080D5E82 - b _080D6074 - .align 2, 0 -_080D5E70: .4byte gTasks -_080D5E74: - cmp r3, 0x2 - bne _080D5E7A - b _080D5F9C -_080D5E7A: - cmp r3, 0x3 - bne _080D5E80 - b _080D6030 -_080D5E80: - b _080D6074 -_080D5E82: - movs r1, 0x20 - ldrsh r0, [r2, r1] - lsls r0, 1 - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D5EB4 - strh r3, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5EB0 - movs r0, 0x2 - b _080D5EB2 -_080D5EB0: - ldr r0, _080D5F0C @ =0x0000fffe -_080D5EB2: - strh r0, [r2, 0x1E] -_080D5EB4: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080D5EF6 - ldr r4, _080D5F10 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080D5EC6: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080D5EC6 -_080D5EF6: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - beq _080D5F06 - b _080D6074 -_080D5F06: - movs r0, 0 - strh r0, [r2, 0x1A] - b _080D6020 - .align 2, 0 -_080D5F0C: .4byte 0x0000fffe -_080D5F10: .4byte gSprites -_080D5F14: - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _080D5F3C - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - ands r0, r3 - lsls r0, 16 - cmp r0, 0 - beq _080D5F38 - movs r0, 0x2 - b _080D5F3A -_080D5F38: - ldr r0, _080D5F94 @ =0x0000fffe -_080D5F3A: - strh r0, [r2, 0x1E] -_080D5F3C: - movs r1, 0 - strh r1, [r2, 0xE] - movs r7, 0x22 - ldrsh r0, [r2, r7] - cmp r1, r0 - bge _080D5F7E - ldr r4, _080D5F98 @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080D5F4E: - movs r1, 0xE - ldrsh r0, [r2, r1] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r5, 0 - ldrsh r0, [r0, r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r7, [r2, 0x1C] - adds r0, r7 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r5, 0x22 - ldrsh r1, [r2, r5] - cmp r0, r1 - blt _080D5F4E -_080D5F7E: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x60 - bne _080D6074 - movs r0, 0 - strh r0, [r2, 0x1A] - b _080D6020 - .align 2, 0 -_080D5F94: .4byte 0x0000fffe -_080D5F98: .4byte gSprites -_080D5F9C: - movs r7, 0x20 - ldrsh r1, [r2, r7] - lsls r1, 1 - ldrh r0, [r2, 0x1C] - subs r0, r1 - strh r0, [r2, 0x1C] - ldrh r0, [r2, 0xA] - adds r0, 0x1 - strh r0, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _080D5FD0 - movs r0, 0 - strh r0, [r2, 0xA] - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080D5FCC - strh r3, [r2, 0x1E] - b _080D5FD0 -_080D5FCC: - ldr r0, _080D6028 @ =0x0000fffe - strh r0, [r2, 0x1E] -_080D5FD0: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080D6012 - ldr r4, _080D602C @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 -_080D5FE2: - movs r5, 0xE - ldrsh r0, [r2, r5] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r0, [r0, r7] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r2, 0x1E] - ldrh r5, [r2, 0x1C] - adds r0, r5 - strh r0, [r1, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080D5FE2 -_080D6012: - ldrh r0, [r2, 0x1A] - adds r0, 0x1 - strh r0, [r2, 0x1A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bne _080D6074 -_080D6020: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _080D6074 - .align 2, 0 -_080D6028: .4byte 0x0000fffe -_080D602C: .4byte gSprites -_080D6030: - movs r1, 0 - strh r1, [r2, 0xE] - movs r3, 0x22 - ldrsh r0, [r2, r3] - cmp r1, r0 - bge _080D606E - ldr r6, _080D607C @ =gSprites - adds r3, r2, 0 - adds r3, 0x8 - movs r5, 0 -_080D6044: - movs r7, 0xE - ldrsh r0, [r2, r7] - adds r0, 0xE - lsls r0, 1 - adds r0, r3, r0 - movs r7, 0 - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strh r5, [r0, 0x24] - ldrh r0, [r2, 0xE] - adds r0, 0x1 - strh r0, [r2, 0xE] - lsls r0, 16 - asrs r0, 16 - movs r7, 0x22 - ldrsh r1, [r2, r7] - cmp r0, r1 - blt _080D6044 -_080D606E: - adds r0, r4, 0 - bl DestroyAnimVisualTask -_080D6074: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D607C: .4byte gSprites - thumb_func_end sub_80D5E4C - - thumb_func_start sub_80D6080 -sub_80D6080: @ 80D6080 - push {r4,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, sp - bl sub_8078914 - mov r0, sp - ldrb r0, [r0, 0x8] - lsls r0, 4 - ldr r1, _080D60B0 @ =gBattleAnimArgs - ldrb r2, [r1] - ldrh r3, [r1, 0x2] - movs r1, 0x10 - bl BlendPalette - adds r0, r4, 0 - bl DestroyAnimVisualTask - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080D60B0: .4byte gBattleAnimArgs - thumb_func_end sub_80D6080 - - thumb_func_start sub_80D60B4 -sub_80D60B4: @ 80D60B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080D610C @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x8 - ldrsh r0, [r2, r3] - mov r9, r1 - ldr r4, _080D6110 @ =gBattleAnimArgs - mov r8, r4 - cmp r0, 0 - bne _080D60EA - ldrh r0, [r4] - strh r0, [r2, 0xA] - ldrh r0, [r4, 0x2] - strh r0, [r2, 0xC] - ldrh r0, [r4, 0x4] - strh r0, [r2, 0xE] - ldrh r0, [r4, 0x6] - strh r0, [r2, 0x10] -_080D60EA: - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - ldr r1, _080D6114 @ =gObjectBankIDs - ldr r0, _080D6118 @ =gAnimBankTarget - ldrb r0, [r0] - adds r0, r1 - ldrb r6, [r0] - movs r5, 0x10 - ldrsh r0, [r2, r5] - cmp r0, 0 - bne _080D6120 - ldr r4, _080D611C @ =gUnknown_083D9794 - movs r1, 0x8 - ldrsh r0, [r2, r1] - b _080D6126 - .align 2, 0 -_080D610C: .4byte gTasks -_080D6110: .4byte gBattleAnimArgs -_080D6114: .4byte gObjectBankIDs -_080D6118: .4byte gAnimBankTarget -_080D611C: .4byte gUnknown_083D9794 -_080D6120: - ldr r4, _080D616C @ =gUnknown_083D97A4 - movs r3, 0x8 - ldrsh r0, [r2, r3] -_080D6126: - movs r1, 0xA - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - adds r0, r4 - ldrb r5, [r0] - lsls r0, r7, 2 - adds r1, r0, r7 - lsls r1, 3 - add r1, r9 - movs r4, 0xE - ldrsh r1, [r1, r4] - mov r12, r0 - cmp r1, 0x1 - bne _080D6174 - ldr r2, _080D6170 @ =gSprites - lsls r3, r6, 4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - mov r10, r0 - mov r0, r8 - movs r4, 0x2 - ldrsh r1, [r0, r4] - lsls r0, r5, 24 - asrs r0, 24 - muls r0, r1 - cmp r0, 0 - bge _080D6164 - negs r0, r0 -_080D6164: - mov r5, r10 - strh r0, [r5, 0x26] - b _080D618E - .align 2, 0 -_080D616C: .4byte gUnknown_083D97A4 -_080D6170: .4byte gSprites -_080D6174: - ldr r3, _080D61C4 @ =gSprites - lsls r4, r6, 4 - adds r2, r4, r6 - lsls r2, 2 - adds r2, r3 - lsls r0, r5, 24 - asrs r0, 24 - mov r5, r8 - ldrh r1, [r5, 0x2] - muls r0, r1 - strh r0, [r2, 0x24] - adds r2, r3, 0 - adds r3, r4, 0 -_080D618E: - mov r1, r12 - adds r0, r1, r7 - lsls r0, 3 - add r0, r9 - movs r4, 0x8 - ldrsh r1, [r0, r4] - movs r5, 0xA - ldrsh r0, [r0, r5] - cmp r1, r0 - bne _080D61B4 - adds r0, r3, r6 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x24] - strh r1, [r0, 0x26] - adds r0, r7, 0 - bl DestroyAnimVisualTask -_080D61B4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080D61C4: .4byte gSprites - thumb_func_end sub_80D60B4 - - .align 2, 0 @ Don't pad with nop. |