diff options
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | asm/rom6.s | 31063 | ||||
-rw-r--r-- | asm/rom_813BA94.s | 30707 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/intro.c | 147 |
5 files changed, 30859 insertions, 31063 deletions
@@ -48,7 +48,8 @@ C_OBJS := $(C_SRCS:%.c=%.o) ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom_8040EB4.o asm/rom4.o asm/rom_8074BAC.o asm/rom5.o asm/rom6.o\ asm/libgcnmultiboot.o asm/m4a_1.o asm/m4a_3.o asm/libagbsyscall.o \ -asm/rom_8072DF8.o asm/rom_8065394.o asm/rom_803D1FC.o asm/rom_803BA2C.o +asm/rom_8072DF8.o asm/rom_8065394.o asm/rom_803D1FC.o asm/rom_803BA2C.o \ +asm/rom_813BA94.o DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \ data/event_scripts.o data/battle_anim_scripts.o \ diff --git a/asm/rom6.s b/asm/rom6.s index 055c5db64..457af1c4d 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -98446,31065 +98446,4 @@ _0813B77C: .4byte gTasks _0813B780: .4byte sub_813B174 thumb_func_end sub_813B758 - thumb_func_start sub_813B784 -sub_813B784: @ 813B784 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_813B784 - - thumb_func_start CB2_813B798 -CB2_813B798: @ 813B798 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r0, _0813B7C8 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _0813B7D4 - ldr r0, _0813B7CC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0813B7D4 - ldr r0, _0813B7D0 - bl SetMainCallback2 - b _0813B7E4 - .align 2, 0 -_0813B7C8: .4byte gMain -_0813B7CC: .4byte gPaletteFade -_0813B7D0: .4byte CB2_813B7EC -_0813B7D4: - ldr r2, _0813B7E8 - ldr r1, [r2] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0813B7E4 - adds r0, r1, 0x1 - str r0, [r2] -_0813B7E4: - pop {r0} - bx r0 - .align 2, 0 -_0813B7E8: .4byte gUnknown_03005ED0 - thumb_func_end CB2_813B798 - - thumb_func_start CB2_813B7EC -CB2_813B7EC: @ 813B7EC - push {lr} - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0813B7FE - ldr r0, _0813B804 - bl SetMainCallback2 -_0813B7FE: - pop {r0} - bx r0 - .align 2, 0 -_0813B804: .4byte CB2_InitTitleScreen - thumb_func_end CB2_813B7EC - - thumb_func_start sub_813B808 -sub_813B808: @ 813B808 - push {r4-r6,lr} - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _0813B848 - movs r6, 0xC0 - lsls r6, 19 - adds r3, r6 - adds r1, r3, 0 - bl LZ77UnCompVram - ldr r0, _0813B84C - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0813B850 - adds r4, r6 - movs r2, 0xA0 - lsls r2, 2 - adds r1, r4, 0 - bl CpuSet - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813B848: .4byte gIntroCopyright_Gfx -_0813B84C: .4byte gIntroCopyright_Pal -_0813B850: .4byte gIntroCopyright_Tilemap - thumb_func_end sub_813B808 - - thumb_func_start SerialCb_CopyrightScreen -SerialCb_CopyrightScreen: @ 813B854 - push {lr} - ldr r0, _0813B860 - bl GameCubeMultiBoot_HandleSerialInterrupt - pop {r0} - bx r0 - .align 2, 0 -_0813B860: .4byte gUnknown_03005EE0 - thumb_func_end SerialCb_CopyrightScreen - - thumb_func_start SetUpCopyrightScreen -SetUpCopyrightScreen: @ 813B864 - push {r4,r5,lr} - sub sp, 0xC - ldr r0, _0813B880 - ldr r1, _0813B884 - adds r5, r0, r1 - ldrb r4, [r5] - cmp r4, 0x8C - bne _0813B876 - b _0813B9C4 -_0813B876: - cmp r4, 0x8C - bgt _0813B888 - cmp r4, 0 - beq _0813B890 - b _0813B962 - .align 2, 0 -_0813B880: .4byte gMain -_0813B884: .4byte 0x0000043c -_0813B888: - cmp r4, 0x8D - bne _0813B88E - b _0813B9F0 -_0813B88E: - b _0813B962 -_0813B890: - movs r0, 0 - bl SetVBlankCallback - ldr r0, _0813B97C - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - movs r1, 0xA0 - lsls r1, 19 - ldr r2, _0813B980 - adds r0, r2, 0 - strh r0, [r1] - movs r5, 0x80 - lsls r5, 19 - strh r4, [r5] - ldr r0, _0813B984 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - add r0, sp, 0x4 - strh r4, [r0] - ldr r1, _0813B988 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0813B98C - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - str r4, [sp, 0x8] - add r0, sp, 0x8 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0813B990 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x4 - strh r4, [r0] - str r0, [r1] - ldr r0, _0813B994 - str r0, [r1, 0x4] - ldr r0, _0813B998 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - movs r1, 0xE0 - lsls r1, 6 - movs r0, 0 - movs r2, 0 - bl sub_813B808 - bl remove_some_task - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813B99C - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _0813B9A0 - movs r2, 0xE0 - lsls r2, 3 - adds r0, r2, 0 - strh r0, [r1] - ldr r3, _0813B9A4 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _0813B9A8 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _0813B9AC - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0813B9B0 - bl SetVBlankCallback - movs r1, 0xA0 - lsls r1, 1 - adds r0, r1, 0 - strh r0, [r5] - ldr r0, _0813B9B4 - bl SetSerialCallback - ldr r0, _0813B9B8 - bl GameCubeMultiBoot_Init -_0813B962: - bl UpdatePaletteFade - ldr r0, _0813B9BC - ldr r2, _0813B9C0 - adds r0, r2 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, _0813B9B8 - bl GameCubeMultiBoot_Main - b _0813BA38 - .align 2, 0 -_0813B97C: .4byte REG_BLDCNT -_0813B980: .4byte 0x00007fff -_0813B984: .4byte REG_BG0HOFS -_0813B988: .4byte 0x040000d4 -_0813B98C: .4byte 0x8100c000 -_0813B990: .4byte 0x85000100 -_0813B994: .4byte 0x05000002 -_0813B998: .4byte 0x810001ff -_0813B99C: .4byte 0x0000ffff -_0813B9A0: .4byte REG_BG0CNT -_0813B9A4: .4byte 0x04000208 -_0813B9A8: .4byte 0x04000200 -_0813B9AC: .4byte REG_DISPSTAT -_0813B9B0: .4byte sub_813B784 -_0813B9B4: .4byte SerialCb_CopyrightScreen -_0813B9B8: .4byte gUnknown_03005EE0 -_0813B9BC: .4byte gMain -_0813B9C0: .4byte 0x0000043c -_0813B9C4: - ldr r4, _0813B9EC - adds r0, r4, 0 - bl GameCubeMultiBoot_Main - ldrb r0, [r4, 0x2] - cmp r0, 0x1 - beq _0813BA38 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0813BA38 - .align 2, 0 -_0813B9EC: .4byte gUnknown_03005EE0 -_0813B9F0: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0813BA38 - ldr r0, _0813BA18 - movs r1, 0 - bl CreateTask - ldr r0, _0813BA1C - bl SetMainCallback2 - ldr r1, _0813BA20 - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _0813BA24 - adds r0, r1, 0 - bl GameCubeMultiBoot_ExecuteProgram - b _0813BA2E - .align 2, 0 -_0813BA18: .4byte task_intro_1 -_0813BA1C: .4byte CB2_813B798 -_0813BA20: .4byte gUnknown_03005EE0 -_0813BA24: - bl GameCubeMultiBoot_Quit - ldr r0, _0813BA34 - bl SetSerialCallback -_0813BA2E: - movs r0, 0 - b _0813BA3A - .align 2, 0 -_0813BA34: .4byte SerialCB -_0813BA38: - movs r0, 0x1 -_0813BA3A: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end SetUpCopyrightScreen - - thumb_func_start c2_copyright_1 -c2_copyright_1: @ 813BA44 - push {lr} - bl SetUpCopyrightScreen - lsls r0, 24 - cmp r0, 0 - bne _0813BA7A - bl sub_8052E4C - bl sub_81251B8 - movs r0, 0 - bl sub_8125EC8 - ldr r0, _0813BA80 - ldrh r0, [r0] - cmp r0, 0 - beq _0813BA6A - cmp r0, 0x2 - bne _0813BA6E -_0813BA6A: - bl ClearSav2 -_0813BA6E: - ldr r0, _0813BA84 - ldrb r0, [r0, 0x15] - lsls r0, 31 - lsrs r0, 31 - bl SetPokemonCryStereo -_0813BA7A: - pop {r0} - bx r0 - .align 2, 0 -_0813BA80: .4byte gSaveFileStatus -_0813BA84: .4byte gSaveBlock2 - thumb_func_end c2_copyright_1 - - thumb_func_start sub_813BA88 -sub_813BA88: @ 813BA88 - push {lr} - bl SetUpCopyrightScreen - pop {r0} - bx r0 - thumb_func_end sub_813BA88 - - thumb_func_start task_intro_1 -task_intro_1: @ 813BA94 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - bl SetVBlankCallback - ldr r4, _0813BC18 - bl Random - movs r1, 0x1 - ands r1, r0 - strh r1, [r4] - bl intro_reset_and_hide_bgs - ldr r0, _0813BC1C - movs r6, 0 - strh r6, [r0] - ldr r1, _0813BC20 - movs r0, 0x50 - strh r0, [r1] - subs r1, 0x4 - movs r0, 0x18 - strh r0, [r1] - subs r1, 0x4 - movs r0, 0x28 - strh r0, [r1] - ldr r0, _0813BC24 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _0813BC28 - ldr r1, _0813BC2C - bl LZ77UnCompVram - ldr r1, _0813BC30 - add r0, sp, 0x8 - strh r6, [r0] - ldr r4, _0813BC34 - str r0, [r4] - str r1, [r4, 0x4] - ldr r5, _0813BC38 - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0813BC3C - ldr r1, _0813BC40 - bl LZ77UnCompVram - ldr r1, _0813BC44 - add r0, sp, 0x8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0813BC48 - ldr r1, _0813BC4C - bl LZ77UnCompVram - ldr r1, _0813BC50 - add r0, sp, 0x8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0813BC54 - ldr r1, _0813BC58 - bl LZ77UnCompVram - ldr r1, _0813BC5C - add r0, sp, 0x8 - strh r6, [r0] - str r0, [r4] - str r1, [r4, 0x4] - str r5, [r4, 0x8] - ldr r0, [r4, 0x8] - ldr r0, _0813BC60 - movs r5, 0x80 - lsls r5, 2 - movs r1, 0 - adds r2, r5, 0 - bl LoadPalette - ldr r1, _0813BC64 - ldr r2, _0813BC68 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r3, _0813BC6C - adds r0, r3, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _0813BC70 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - movs r3, 0x90 - lsls r3, 8 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _0813BC74 - bl LoadCompressedObjectPic - ldr r0, _0813BC78 - bl LoadCompressedObjectPic - ldr r0, _0813BC7C - bl LoadSpritePalettes - ldr r4, _0813BC80 - movs r0, 0xF0 - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0x10 - bl CpuSet - movs r2, 0xE1 - lsls r2, 1 - adds r1, r4, r2 - adds r0, r4, 0 - movs r2, 0xF - bl CpuSet - movs r3, 0xD2 - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - movs r2, 0xE - bl CpuSet - movs r0, 0xC3 - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0xD - bl CpuSet - movs r2, 0xB4 - lsls r2, 1 - adds r1, r4, r2 - adds r0, r4, 0 - movs r2, 0xC - bl CpuSet - movs r3, 0xA5 - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - movs r2, 0xB - bl CpuSet - movs r0, 0x96 - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - movs r2, 0xA - bl CpuSet - movs r1, 0xE - negs r1, r1 - movs r0, 0x78 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r0, 0xEC - adds r2, r5, 0 - movs r3, 0x1 - bl sub_813D584 - ldr r2, _0813BC84 - mov r3, r8 - lsls r1, r3, 2 - add r1, r8 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x8] - ldr r0, _0813BC88 - str r0, [r1] - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BC18: .4byte gUnknown_02039318 -_0813BC1C: .4byte REG_BG3VOFS -_0813BC20: .4byte REG_BG2VOFS -_0813BC24: .4byte gUnknown_08407764 -_0813BC28: .4byte gUnknown_08406B74 -_0813BC2C: .4byte 0x06008000 -_0813BC30: .4byte 0x06008800 -_0813BC34: .4byte 0x040000d4 -_0813BC38: .4byte 0x81000400 -_0813BC3C: .4byte gUnknown_08406F28 -_0813BC40: .4byte 0x06009000 -_0813BC44: .4byte 0x06009800 -_0813BC48: .4byte gUnknown_0840725C -_0813BC4C: .4byte 0x0600a000 -_0813BC50: .4byte 0x0600a800 -_0813BC54: .4byte gUnknown_0840754C -_0813BC58: .4byte 0x0600b000 -_0813BC5C: .4byte 0x0600b800 -_0813BC60: .4byte gUnknown_08406974 -_0813BC64: .4byte REG_BG3CNT -_0813BC68: .4byte 0x00009603 -_0813BC6C: .4byte 0x00009402 -_0813BC70: .4byte 0x00009201 -_0813BC74: .4byte gUnknown_0840B008 -_0813BC78: .4byte gUnknown_0840B018 -_0813BC7C: .4byte gUnknown_0840B028 -_0813BC80: .4byte gPlttBufferUnfaded + 0x200 -_0813BC84: .4byte gTasks -_0813BC88: .4byte task_intro_2 - thumb_func_end task_intro_1 - - thumb_func_start task_intro_2 -task_intro_2: @ 813BC8C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r5, 0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _0813BCE0 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0813BCE4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813BCE8 - str r1, [r0] - ldr r0, _0813BCEC - str r5, [r0] - movs r0, 0xCF - lsls r0, 1 - bl m4aSongNumStart - bl ResetSerial - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813BCE0: .4byte sub_813B784 -_0813BCE4: .4byte gTasks -_0813BCE8: .4byte sub_813BCF0 -_0813BCEC: .4byte gUnknown_03005ED0 - thumb_func_end task_intro_2 - - thumb_func_start sub_813BCF0 -sub_813BCF0: @ 813BCF0 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r3, r0, 24 - adds r5, r3, 0 - ldr r4, _0813BDD4 - ldr r0, [r4] - cmp r0, 0x4C - bne _0813BD1E - ldr r2, _0813BDD8 - ldr r1, _0813BDDC - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r6, 0x8 - ldrsh r1, [r0, r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] -_0813BD1E: - ldr r0, [r4] - cmp r0, 0xFB - bne _0813BD40 - ldr r2, _0813BDD8 - ldr r1, _0813BDDC - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r3, 0x8 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] -_0813BD40: - ldr r1, [r4] - movs r0, 0xB8 - lsls r0, 1 - cmp r1, r0 - bne _0813BD60 - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x70 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0x30 - movs r1, 0 - movs r3, 0x5 - bl sub_813D584 -_0813BD60: - ldr r1, [r4] - movs r0, 0xC0 - lsls r0, 1 - cmp r1, r0 - bne _0813BD80 - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x80 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0xC8 - movs r1, 0x3C - movs r3, 0x9 - bl sub_813D584 -_0813BD80: - ldr r1, [r4] - movs r0, 0x8C - lsls r0, 2 - cmp r1, r0 - bne _0813BDA0 - ldr r0, _0813BDE0 - movs r1, 0 - bl CreateTask - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0x78 - movs r1, 0x50 - bl sub_813D954 -_0813BDA0: - ldr r1, [r4] - ldr r0, _0813BDE4 - cmp r1, r0 - bls _0813BDCA - ldr r1, _0813BDDC - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - movs r1, 0x50 - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r1, 0x18 - strh r1, [r0, 0xE] - strh r2, [r0, 0x10] - movs r1, 0x28 - strh r1, [r0, 0x12] - strh r2, [r0, 0x14] - ldr r1, _0813BDE8 - str r1, [r0] -_0813BDCA: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813BDD4: .4byte gUnknown_03005ED0 -_0813BDD8: .4byte gSprites -_0813BDDC: .4byte gTasks -_0813BDE0: .4byte sub_813CCE8 -_0813BDE4: .4byte 0x000002e3 -_0813BDE8: .4byte task_intro_4 - thumb_func_end sub_813BCF0 - - thumb_func_start task_intro_4 -task_intro_4: @ 813BDEC - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r4, r2, 0 - ldr r0, _0813BE80 - ldr r3, [r0] - ldr r0, _0813BE84 - cmp r3, r0 - bhi _0813BEAC - ldr r0, _0813BE88 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r2, 0xA - ldrsh r0, [r1, r2] - lsls r0, 16 - ldrh r2, [r1, 0xC] - adds r0, r2 - ldr r2, _0813BE8C - adds r0, r2 - asrs r2, r0, 16 - strh r2, [r1, 0xA] - strh r0, [r1, 0xC] - ldr r0, _0813BE90 - strh r2, [r0] - movs r2, 0xE - ldrsh r0, [r1, r2] - lsls r0, 16 - ldrh r2, [r1, 0x10] - adds r0, r2 - ldr r2, _0813BE94 - adds r0, r2 - asrs r2, r0, 16 - strh r2, [r1, 0xE] - strh r0, [r1, 0x10] - ldr r0, _0813BE98 - strh r2, [r0] - movs r2, 0x12 - ldrsh r0, [r1, r2] - lsls r0, 16 - ldrh r2, [r1, 0x14] - adds r0, r2 - ldr r2, _0813BE9C - adds r0, r2 - asrs r2, r0, 16 - strh r2, [r1, 0x12] - strh r0, [r1, 0x14] - ldr r0, _0813BEA0 - strh r2, [r0] - movs r0, 0xDC - lsls r0, 2 - cmp r3, r0 - bne _0813BED2 - ldr r0, _0813BEA4 - movs r1, 0xC8 - movs r2, 0xA0 - movs r3, 0xA - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813BEA8 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - b _0813BED2 - .align 2, 0 -_0813BE80: .4byte gUnknown_03005ED0 -_0813BE84: .4byte 0x00000387 -_0813BE88: .4byte gTasks -_0813BE8C: .4byte 0xffff4000 -_0813BE90: .4byte REG_BG2VOFS -_0813BE94: .4byte 0xffff0000 -_0813BE98: .4byte REG_BG1VOFS -_0813BE9C: .4byte 0xfffe8000 -_0813BEA0: .4byte REG_BG0VOFS -_0813BEA4: .4byte gSpriteTemplate_840AFF0 -_0813BEA8: .4byte gSprites -_0813BEAC: - ldr r0, _0813BEDC - cmp r3, r0 - bls _0813BED2 - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813BEE0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0813BEE4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813BEE8 - str r1, [r0] -_0813BED2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BEDC: .4byte 0x000003ef -_0813BEE0: .4byte 0x0000ffff -_0813BEE4: .4byte gTasks -_0813BEE8: .4byte sub_813BEEC - thumb_func_end task_intro_4 - - thumb_func_start sub_813BEEC -sub_813BEEC: @ 813BEEC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0813BF10 - ldr r1, [r0] - ldr r0, _0813BF14 - cmp r1, r0 - bls _0813BF0A - ldr r0, _0813BF18 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813BF1C - str r0, [r1] -_0813BF0A: - pop {r0} - bx r0 - .align 2, 0 -_0813BF10: .4byte gUnknown_03005ED0 -_0813BF14: .4byte 0x00000402 -_0813BF18: .4byte gTasks -_0813BF1C: .4byte task_intro_6 - thumb_func_end sub_813BEEC - - thumb_func_start task_intro_6 -task_intro_6: @ 813BF20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl intro_reset_and_hide_bgs - movs r0, 0 - bl SetVBlankCallback - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0813BF60 - movs r1, 0 - strh r1, [r0] - ldr r0, _0813BF64 - strh r1, [r0] - .ifdef SAPPHIRE - movs r0, 0 - .else - movs r0, 0x1 - .endif - bl load_intro_part2_graphics - ldr r1, _0813BF68 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813BF6C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813BF60: .4byte gUnknown_02039358 -_0813BF64: .4byte gUnknown_0203935A -_0813BF68: .4byte gTasks -_0813BF6C: .4byte sub_813BF70 - thumb_func_end task_intro_6 - - thumb_func_start sub_813BF70 -sub_813BF70: @ 813BF70 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0813BF88 - ldrh r0, [r0] - cmp r0, 0 - bne _0813BF90 - ldr r0, _0813BF8C - bl LoadCompressedObjectPic - b _0813BF96 - .align 2, 0 -_0813BF88: .4byte gUnknown_02039318 -_0813BF8C: .4byte gIntro2BrendanSpriteSheet -_0813BF90: - ldr r0, _0813BFBC - bl LoadCompressedObjectPic -_0813BF96: - ldr r0, _0813BFC0 - bl LoadCompressedObjectPic - ldr r0, _0813BFC4 - bl LoadCompressedObjectPic - ldr r0, _0813BFC8 - bl LoadSpritePalettes - ldr r0, _0813BFCC - ldrh r0, [r0] - cmp r0, 0 - bne _0813BFD0 - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x64 - bl sub_8149310 - b _0813BFDA - .align 2, 0 -_0813BFBC: .4byte gIntro2MaySpriteSheet -_0813BFC0: .4byte gIntro2BicycleSpriteSheet - .ifdef SAPPHIRE -_0813BFC4: .4byte gIntro2LatiasSpriteSheet - .else -_0813BFC4: .4byte gIntro2LatiosSpriteSheet - .endif -_0813BFC8: .4byte gIntro2SpritePalettes -_0813BFCC: .4byte gUnknown_02039318 -_0813BFD0: - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x64 - bl sub_8149368 -_0813BFDA: - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _0813C060 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r2, 0 - adds r5, 0x1C - adds r3, r0, r5 - ldr r1, _0813C064 - str r1, [r3] - adds r2, 0x8 - adds r0, r2 - ldr r1, _0813C068 - str r1, [r0] - ldr r0, _0813C06C - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - strh r6, [r4, 0xA] - movs r0, 0x40 - negs r0, r0 - movs r1, 0x3C - .ifdef SAPPHIRE - bl sapphire_sub_81494A0 - .else - bl sub_8149424 - .endif - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r0, r5 - ldr r1, _0813C070 - str r1, [r0] - strh r6, [r4, 0xC] - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813C074 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _0813C078 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 7 - .ifdef SAPPHIRE - movs r0, 0 - movs r2, 0x40 - .else - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x1 - .endif - movs r3, 0x10 - bl sub_8148EC0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] - .ifdef SAPPHIRE - movs r0, 0 - .else - movs r0, 0x1 - .endif - bl sub_8148C78 - ldr r0, _0813C07C - str r0, [r4] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C060: .4byte gSprites -_0813C064: .4byte sub_813D788 -_0813C068: .4byte gUnknown_0840AE80 -_0813C06C: .4byte gTasks -_0813C070: .4byte sub_813D880 -_0813C074: .4byte 0x0000ffff -_0813C078: .4byte sub_813B784 -_0813C07C: .4byte sub_813C080 - thumb_func_end sub_813BF70 - - thumb_func_start sub_813C080 -sub_813C080: @ 813C080 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - ldr r5, _0813C1BC - ldr r1, [r5] - ldr r0, _0813C1C0 - cmp r1, r0 - bls _0813C0B4 - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813C1C4 - str r1, [sp] - movs r1, 0x10 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0813C1C8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813C1CC - str r1, [r0] -_0813C0B4: - ldr r1, [r5] - ldr r0, _0813C1D0 - ldr r3, _0813C1C8 - cmp r1, r0 - bne _0813C0D8 - ldr r2, _0813C1D4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] -_0813C0D8: - ldr r1, [r5] - ldr r0, _0813C1D8 - cmp r1, r0 - bne _0813C0FA - ldr r2, _0813C1D4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x2E] -_0813C0FA: - ldr r1, [r5] - ldr r0, _0813C1DC - cmp r1, r0 - bne _0813C11C - ldr r2, _0813C1D4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xC - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] -_0813C11C: - ldr r1, [r5] - ldr r0, _0813C1E0 - cmp r1, r0 - bne _0813C13E - ldr r2, _0813C1D4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] -_0813C13E: - ldr r1, [r5] - ldr r0, _0813C1E4 - cmp r1, r0 - bne _0813C160 - ldr r2, _0813C1D4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r7, 0xA - ldrsh r1, [r0, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3 - strh r1, [r0, 0x2E] -_0813C160: - ldr r1, [r5] - ldr r0, _0813C1E8 - cmp r1, r0 - bne _0813C182 - ldr r2, _0813C1D4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r3 - movs r4, 0xA - ldrsh r1, [r0, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0, 0x2E] -_0813C182: - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r3 - ldrh r0, [r4, 0xE] - lsls r0, 16 - asrs r0, 18 - movs r1, 0x7F - ands r0, r1 - movs r1, 0x30 - bl Sin - ldr r1, _0813C1EC - strh r0, [r1] - ldrh r2, [r4, 0xE] - movs r7, 0xE - ldrsh r1, [r4, r7] - ldr r0, _0813C1F0 - cmp r1, r0 - bgt _0813C1AE - adds r0, r2, 0x1 - strh r0, [r4, 0xE] -_0813C1AE: - .ifdef SAPPHIRE - movs r0, 0 - .else - movs r0, 0x1 - .endif - bl sub_8149020 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C1BC: .4byte gUnknown_03005ED0 -_0813C1C0: .4byte 0x0000071f -_0813C1C4: .4byte 0x0000ffff -_0813C1C8: .4byte gTasks -_0813C1CC: .4byte sub_813C1F4 -_0813C1D0: .4byte 0x00000455 -_0813C1D4: .4byte gSprites -_0813C1D8: .4byte 0x000004be -_0813C1DC: .4byte 0x00000572 -_0813C1E0: .4byte 0x00000576 -_0813C1E4: .4byte 0x00000632 -_0813C1E8: .4byte 0x000006bf -_0813C1EC: .4byte gUnknown_0203935A -_0813C1F0: .4byte 0x000001ff - thumb_func_end sub_813C080 - - thumb_func_start sub_813C1F4 -sub_813C1F4: @ 813C1F4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0813C220 - ldr r1, [r0] - ldr r0, _0813C224 - cmp r1, r0 - bls _0813C218 - ldr r0, _0813C228 - lsls r4, r2, 2 - adds r4, r2 - lsls r4, 3 - adds r4, r0 - ldrb r0, [r4, 0x8] - bl DestroyTask - ldr r0, _0813C22C - str r0, [r4] -_0813C218: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C220: .4byte gUnknown_03005ED0 -_0813C224: .4byte 0x00000814 -_0813C228: .4byte gTasks -_0813C22C: .4byte task_intro_10 - thumb_func_end sub_813C1F4 - - thumb_func_start task_intro_10 -task_intro_10: @ 813C230 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl intro_reset_and_hide_bgs - ldr r0, _0813C2C0 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _0813C2C4 - ldr r1, _0813C2C8 - bl LZ77UnCompVram - ldr r0, _0813C2CC - movs r2, 0x80 - lsls r2, 2 - movs r1, 0 - bl LoadPalette - ldr r0, _0813C2D0 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r5, 0 - strh r5, [r4, 0x8] - strh r5, [r4, 0xA] - strh r5, [r4, 0xC] - strh r5, [r4, 0xE] - movs r0, 0x78 - movs r1, 0x50 - movs r2, 0 - movs r3, 0 - bl sub_813CE30 - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813C2D4 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _0813C2D8 - ldr r2, _0813C2DC - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - ldr r2, _0813C2E0 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0813C2E4 - str r0, [r4] - ldr r0, _0813C2E8 - str r5, [r0] - movs r0, 0xDD - lsls r0, 1 - bl m4aSongNumStart - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C2C0: .4byte gUnknown_08409C04 -_0813C2C4: .4byte gUnknown_08409AD4 -_0813C2C8: .4byte 0x06004000 -_0813C2CC: .4byte gUnknown_084098D4 -_0813C2D0: .4byte gTasks -_0813C2D4: .4byte 0x0000ffff -_0813C2D8: .4byte REG_BG2CNT -_0813C2DC: .4byte 0x00004883 -_0813C2E0: .4byte 0x00001441 -_0813C2E4: .4byte task_intro_11 -_0813C2E8: .4byte gUnknown_03005ED0 - thumb_func_end task_intro_10 - - thumb_func_start task_intro_11 -task_intro_11: @ 813C2EC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _0813C324 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r2 - movs r1, 0x80 - lsls r1, 3 - adds r0, r1, 0 - ldrh r1, [r3, 0x8] - adds r0, r1 - strh r0, [r3, 0x8] - ldrh r4, [r3, 0xA] - movs r0, 0xA - ldrsh r1, [r3, r0] - ldr r0, _0813C328 - cmp r1, r0 - bgt _0813C32C - ldrh r0, [r3, 0xC] - adds r1, r4, r0 - strh r1, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xC] - b _0813C330 - .align 2, 0 -_0813C324: .4byte gTasks -_0813C328: .4byte 0x000006bf -_0813C32C: - ldr r0, _0813C378 - str r0, [r3] -_0813C330: - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r2 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x80 - lsls r0, 9 - bl __divsi3 - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - ldrh r3, [r4, 0x8] - movs r0, 0x78 - movs r1, 0x50 - bl sub_813CE30 - ldr r0, _0813C37C - ldr r0, [r0] - cmp r0, 0x2C - bne _0813C36E - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813C380 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0813C36E: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C378: .4byte sub_813C384 -_0813C37C: .4byte gUnknown_03005ED0 -_0813C380: .4byte 0x0000ffff - thumb_func_end task_intro_11 - - thumb_func_start sub_813C384 -sub_813C384: @ 813C384 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0813C3A4 - ldr r0, [r0] - cmp r0, 0x3B - bls _0813C3A0 - ldr r0, _0813C3A8 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813C3AC - str r0, [r1] -_0813C3A0: - pop {r0} - bx r0 - .align 2, 0 -_0813C3A4: .4byte gUnknown_03005ED0 -_0813C3A8: .4byte gTasks -_0813C3AC: .4byte sub_813C3B0 - thumb_func_end sub_813C384 - - thumb_func_start sub_813C3B0 -sub_813C3B0: @ 813C3B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - bl intro_reset_and_hide_bgs - movs r1, 0 - ldr r2, _0813C4E4 - movs r7, 0 - adds r6, r2, 0 - adds r6, 0x20 - adds r5, r2, 0 - adds r5, 0x40 - mov r12, r2 - movs r4, 0x11 - movs r3, 0x22 -_0813C3D4: - adds r0, r1, r2 - strb r7, [r0] - adds r0, r1, r6 - strb r4, [r0] - adds r0, r1, r5 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x1F - bls _0813C3D4 - movs r1, 0xC0 - lsls r1, 19 - ldr r0, _0813C4E8 - mov r2, r12 - str r2, [r0] - str r1, [r0, 0x4] - ldr r1, _0813C4EC - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - movs r1, 0 - ldr r5, _0813C4F0 - ldr r6, _0813C4F4 - mov r0, r8 - lsls r7, r0, 2 - ldr r4, _0813C4F8 - ldr r2, _0813C4FC - adds r3, r2, 0 - ldr r2, _0813C500 -_0813C40E: - lsls r0, r1, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _0813C40E - movs r1, 0 - ldr r3, _0813C504 - ldr r0, _0813C508 - adds r2, r0, 0 -_0813C426: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7F - bls _0813C426 - movs r1, 0 - ldr r4, _0813C50C - movs r2, 0xF0 - lsls r2, 8 - adds r3, r2, 0 - ldr r2, _0813C510 -_0813C442: - lsls r0, r1, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _0813C442 - movs r1, 0 - ldr r3, _0813C514 - ldr r0, _0813C508 - adds r2, r0, 0 -_0813C45A: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x7F - bls _0813C45A - movs r0, 0xF0 - lsls r0, 1 - adds r2, r5, r0 - movs r4, 0 - ldr r1, _0813C518 - strh r1, [r2] - adds r0, r6, r0 - strh r1, [r0] - movs r0, 0x1 - bl sub_813D084 - movs r0, 0xF2 - lsls r0, 1 - adds r1, r5, r0 - strh r4, [r1] - adds r0, r6, r0 - strh r4, [r0] - ldr r0, _0813C51C - ldr r1, _0813C520 - bl LZ77UnCompVram - ldr r0, _0813C524 - ldr r1, _0813C528 - bl LZ77UnCompVram - ldr r0, _0813C52C - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _0813C530 - movs r0, 0x8 - strb r0, [r1] - ldr r0, _0813C534 - bl LoadCompressedObjectPic - ldr r0, _0813C538 - bl LoadCompressedObjectPic - ldr r0, _0813C53C - bl LoadCompressedObjectPalette - ldr r0, _0813C540 - bl LoadSpritePalettes - ldr r1, _0813C544 - mov r2, r8 - adds r0, r7, r2 - lsls r0, 3 - adds r0, r1 - ldr r1, _0813C548 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813C4E4: .4byte 0x02000000 -_0813C4E8: .4byte 0x040000d4 -_0813C4EC: .4byte 0x80000030 -_0813C4F0: .4byte gPlttBufferUnfaded -_0813C4F4: .4byte gPlttBufferFaded -_0813C4F8: .4byte 0x06003000 -_0813C4FC: .4byte 0x0000f001 -_0813C500: .4byte 0x0000027f -_0813C504: .4byte 0x06003800 -_0813C508: .4byte 0x0000f002 -_0813C50C: .4byte 0x06003900 -_0813C510: .4byte 0x0000017f -_0813C514: .4byte 0x06003c00 -_0813C518: .4byte 0x00007fff -_0813C51C: .4byte gUnknown_0840A778 -_0813C520: .4byte 0x06004000 -_0813C524: .4byte gUnknown_0840A7E4 -_0813C528: .4byte 0x06007000 -_0813C52C: .4byte gUnknown_0840A758 -_0813C530: .4byte gReservedSpritePaletteCount -_0813C534: .4byte gUnknown_0840B20C -_0813C538: .4byte gUnknown_0840B21C -_0813C53C: .4byte gUnknown_0840B22C -_0813C540: .4byte gUnknown_0840B23C -_0813C544: .4byte gTasks -_0813C548: .4byte sub_813C54C - thumb_func_end sub_813C3B0 - - thumb_func_start sub_813C54C -sub_813C54C: @ 813C54C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0813C5BC - movs r0, 0xF0 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0xA0 - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x1C - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x1D - strh r0, [r1] - subs r1, 0x3C - ldr r2, _0813C5C0 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x6 - adds r2, 0xFD - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x8 - movs r2, 0xE5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0813C5C4 - movs r1, 0 - bl CreateTask - ldr r5, _0813C5C8 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - strh r0, [r1, 0x26] - movs r0, 0x26 - ldrsh r2, [r1, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r5 - strh r3, [r0, 0x8] - strh r3, [r1, 0x8] - ldr r0, _0813C5CC - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813C5BC: .4byte REG_WIN0H -_0813C5C0: .4byte 0x00000603 -_0813C5C4: .4byte sub_813CAF4 -_0813C5C8: .4byte gTasks -_0813C5CC: .4byte sub_813C5D0 - thumb_func_end sub_813C54C - - thumb_func_start sub_813C5D0 -sub_813C5D0: @ 813C5D0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813C600 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r1, [r3, 0x8] - movs r2, 0x8 - ldrsh r0, [r3, r2] - cmp r0, 0x20 - beq _0813C608 - adds r0, r1, 0x4 - strh r0, [r3, 0x8] - ldr r2, _0813C604 - movs r4, 0x8 - ldrsh r0, [r3, r4] - lsls r0, 8 - subs r1, 0x9C - subs r0, r1 - strh r0, [r2] - b _0813C616 - .align 2, 0 -_0813C600: .4byte gTasks -_0813C604: .4byte REG_WIN0V -_0813C608: - ldr r0, _0813C61C - movs r2, 0x82 - lsls r2, 6 - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _0813C620 - str r0, [r3] -_0813C616: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813C61C: .4byte REG_WIN0V -_0813C620: .4byte sub_813C624 - thumb_func_end sub_813C5D0 - - thumb_func_start sub_813C624 -sub_813C624: @ 813C624 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813C638 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0813C63C - str r0, [r1] - bx lr - .align 2, 0 -_0813C638: .4byte gTasks -_0813C63C: .4byte sub_813C640 - thumb_func_end sub_813C624 - - thumb_func_start sub_813C640 -sub_813C640: @ 813C640 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813C65C - movs r1, 0 - strh r1, [r2] - ldr r2, _0813C660 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0813C664 - str r0, [r1] - bx lr - .align 2, 0 -_0813C65C: .4byte gUnknown_0203931A -_0813C660: .4byte gTasks -_0813C664: .4byte sub_813C668 - thumb_func_end sub_813C640 - - thumb_func_start sub_813C668 -sub_813C668: @ 813C668 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0813CA24 - mov r8, r0 - ldr r0, [r0] - cmp r0, 0x50 - bne _0813C6AC - ldr r0, _0813CA28 - movs r4, 0x1 - str r4, [sp] - movs r1, 0xF0 - movs r2, 0xA0 - movs r3, 0x5 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, _0813CA2C - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _0813CA30 - str r2, [r1] - adds r0, r3 - movs r1, 0 - strh r4, [r0, 0x30] - strh r1, [r0, 0x32] -_0813C6AC: - mov r1, r8 - ldr r0, [r1] - cmp r0, 0x98 - bne _0813C6E2 - ldr r0, _0813CA34 - movs r4, 0x1 - str r4, [sp] - movs r1, 0 - movs r2, 0xA0 - movs r3, 0x4 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r3, _0813CA2C - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r3, 0 - adds r1, 0x1C - adds r1, r0, r1 - ldr r2, _0813CA30 - str r2, [r1] - adds r0, r3 - movs r1, 0x2 - strh r1, [r0, 0x30] - strh r4, [r0, 0x32] -_0813C6E2: - mov r3, r8 - ldr r0, [r3] - cmp r0, 0xDB - bne _0813C720 - movs r0, 0 - bl sub_813D084 - ldr r0, _0813CA38 - ldrh r0, [r0] - movs r1, 0x88 - lsls r1, 1 - movs r2, 0x60 - movs r3, 0x6 - bl sub_813CFA8 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA3C - str r1, [r0] - ldr r1, _0813CA40 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0xA] -_0813C720: - mov r0, r8 - ldr r1, [r0] - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bne _0813C758 - ldr r3, _0813CA40 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r3 - movs r0, 0x26 - ldrsh r2, [r1, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r3 - movs r2, 0x4 - strh r2, [r0, 0x8] - ldr r2, _0813CA2C - movs r3, 0xA - ldrsh r1, [r1, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] -_0813C758: - mov r0, r8 - ldr r1, [r0] - movs r0, 0xC0 - lsls r0, 1 - cmp r1, r0 - bne _0813C790 - ldr r3, _0813CA40 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r3 - movs r0, 0x26 - ldrsh r2, [r1, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r3 - movs r2, 0 - strh r2, [r0, 0x8] - ldr r2, _0813CA2C - movs r3, 0xA - ldrsh r1, [r1, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x4 - strh r1, [r0, 0x2E] -_0813C790: - mov r0, r8 - ldr r1, [r0] - movs r0, 0xC8 - lsls r0, 1 - cmp r1, r0 - bne _0813C7AE - movs r0, 0xFF - lsls r0, 16 - ldr r1, _0813CA44 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_0813C7AE: - mov r3, r8 - ldr r1, [r3] - movs r0, 0xD8 - lsls r0, 1 - cmp r1, r0 - bne _0813C7D6 - ldr r2, _0813CA2C - ldr r1, _0813CA40 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x2E] -_0813C7D6: - mov r0, r8 - ldr r1, [r0] - movs r0, 0xE7 - lsls r0, 1 - cmp r1, r0 - bne _0813C80E - ldr r3, _0813CA2C - ldr r4, _0813CA40 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r4 - movs r0, 0xA - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x6 - strh r2, [r0, 0x2E] - movs r3, 0x26 - ldrsh r1, [r1, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x8] -_0813C80E: - mov r0, r8 - ldr r1, [r0] - ldr r0, _0813CA48 - cmp r1, r0 - bne _0813C854 - movs r0, 0x1 - bl sub_813D084 - ldr r0, _0813CA28 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xD0 - movs r2, 0x8 - movs r3, 0x5 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA4C - str r1, [r0] - ldr r1, _0813CA40 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0xC] - adds r0, r2, 0 - bl sub_813E7C0 -_0813C854: - mov r3, r8 - ldr r1, [r3] - ldr r0, _0813CA50 - cmp r1, r0 - bne _0813C894 - subs r0, 0xB2 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xF8 - movs r2, 0x10 - movs r3, 0x4 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA4C - str r1, [r0] - ldr r1, _0813CA40 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0xE] - adds r0, r2, 0 - bl sub_813E930 -_0813C894: - mov r0, r8 - ldr r1, [r0] - ldr r0, _0813CA54 - cmp r1, r0 - bne _0813C8D8 - ldr r4, _0813CA2C - ldr r5, _0813CA40 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r5 - movs r3, 0xC - ldrsh r2, [r1, r3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - movs r3, 0x2 - strh r3, [r0, 0x2E] - movs r0, 0xE - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - movs r3, 0x26 - ldrsh r1, [r1, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r1, 0x3 - strh r1, [r0, 0x8] -_0813C8D8: - mov r0, r8 - ldr r1, [r0] - movs r0, 0x9C - lsls r0, 2 - cmp r1, r0 - bne _0813C920 - movs r0, 0 - bl sub_813D084 - ldr r0, _0813CA58 - movs r1, 0 - str r1, [sp] - movs r1, 0x20 - movs r2, 0x98 - movs r3, 0 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA5C - str r1, [r0] - ldr r1, _0813CA40 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x10] - adds r0, r2, 0 - bl sub_813EDBC -_0813C920: - mov r3, r8 - ldr r1, [r3] - movs r0, 0xAF - lsls r0, 2 - cmp r1, r0 - bne _0813C966 - movs r0, 0x8C - lsls r0, 1 - movs r1, 0x8 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r2, 0x90 - movs r3, 0x1 - bl sub_813CE88 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813CA2C - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813CA5C - str r1, [r0] - ldr r1, _0813CA40 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x12] - adds r0, r2, 0 - bl sub_813EB4C -_0813C966: - mov r0, r8 - ldr r1, [r0] - movs r0, 0xC2 - lsls r0, 2 - cmp r1, r0 - bne _0813C9B2 - ldr r1, _0813CA60 - movs r0, 0x1 - strh r0, [r1] - ldr r4, _0813CA2C - ldr r6, _0813CA40 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r6 - movs r3, 0x10 - ldrsh r2, [r1, r3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - movs r5, 0 - movs r3, 0x2 - strh r3, [r0, 0x2E] - movs r0, 0x12 - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - movs r3, 0x26 - ldrsh r1, [r1, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r5, [r0, 0x8] -_0813C9B2: - mov r0, r8 - ldr r1, [r0] - ldr r0, _0813CA64 - cmp r1, r0 - bne _0813CA76 - movs r0, 0x2 - bl sub_813D084 - ldr r4, _0813CA2C - ldr r0, _0813CA40 - lsls r2, r7, 2 - adds r2, r7 - lsls r2, 3 - adds r2, r0 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r3, 0x3 - strh r3, [r0, 0x2E] - movs r0, 0xE - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - movs r0, 0x10 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - movs r0, 0x12 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r3, [r0, 0x2E] - ldr r0, _0813CA68 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0xF - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - b _0813CA6C - .align 2, 0 -_0813CA24: .4byte gUnknown_03005ED0 -_0813CA28: .4byte 0x0000014b -_0813CA2C: .4byte gSprites -_0813CA30: .4byte sub_813DB9C -_0813CA34: .4byte 0x00000169 -_0813CA38: .4byte gUnknown_02039318 -_0813CA3C: .4byte sub_813DE70 -_0813CA40: .4byte gTasks -_0813CA44: .4byte 0x00007eff -_0813CA48: .4byte 0x000001cf -_0813CA4C: .4byte sub_813E10C -_0813CA50: .4byte 0x0000021b -_0813CA54: .4byte 0x0000026f -_0813CA58: .4byte 0x0000011b -_0813CA5C: .4byte sub_813E210 -_0813CA60: .4byte gUnknown_0203931A -_0813CA64: .4byte 0x0000030d -_0813CA68: .4byte gSpriteTemplate_840B1F4 -_0813CA6C: - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0813CA76: - mov r3, r8 - ldr r1, [r3] - movs r0, 0xC8 - lsls r0, 2 - cmp r1, r0 - bne _0813CA88 - movs r0, 0x67 - bl PlaySE -_0813CA88: - mov r0, r8 - ldr r1, [r0] - ldr r0, _0813CAC8 - cmp r1, r0 - bne _0813CAA4 - movs r0, 0x1 - negs r0, r0 - ldr r1, _0813CACC - str r1, [sp] - movs r1, 0x4 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0813CAA4: - mov r3, r8 - ldr r1, [r3] - ldr r0, _0813CAD0 - cmp r1, r0 - bne _0813CABC - ldr r0, _0813CAD4 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _0813CAD8 - str r0, [r1] -_0813CABC: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813CAC8: .4byte 0x00000352 -_0813CACC: .4byte 0x0000ffff -_0813CAD0: .4byte 0x000003b2 -_0813CAD4: .4byte gTasks -_0813CAD8: .4byte sub_813CADC - thumb_func_end sub_813C668 - - thumb_func_start sub_813CADC -sub_813CADC: @ 813CADC - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - ldr r0, _0813CAF0 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0813CAF0: .4byte CB2_813B7EC - thumb_func_end sub_813CADC - - thumb_func_start sub_813CAF4 -sub_813CAF4: @ 813CAF4 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0813CB2C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x26] - adds r0, 0x1 - movs r6, 0 - strh r0, [r4, 0x26] - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bne _0813CB18 - b _0813CC28 -_0813CB18: - cmp r0, 0x4 - bgt _0813CB30 - cmp r0, 0x2 - beq _0813CB60 - cmp r0, 0x2 - bgt _0813CBC4 - cmp r0, 0 - beq _0813CB46 - b _0813CC8E - .align 2, 0 -_0813CB2C: .4byte gTasks -_0813CB30: - cmp r0, 0x1E - beq _0813CBEE - cmp r0, 0x1E - bgt _0813CB3E - cmp r0, 0x14 - beq _0813CB8A - b _0813CC8E -_0813CB3E: - cmp r0, 0x28 - bne _0813CB44 - b _0813CC56 -_0813CB44: - b _0813CC8E -_0813CB46: - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xE5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0813CB5C - strh r6, [r0] - movs r0, 0xFF - strh r0, [r4, 0x8] - b _0813CC8E - .align 2, 0 -_0813CB5C: .4byte REG_BG2CNT -_0813CB60: - ldr r0, _0813CBB0 - str r0, [sp] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _0813CBB4 - ldr r2, _0813CBB8 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - movs r2, 0xF5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - strh r6, [r4, 0xA] - strh r6, [r4, 0xC] - movs r0, 0x14 - strh r0, [r4, 0x8] -_0813CB8A: - ldr r2, _0813CBBC - ldr r0, _0813CBC0 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - strh r0, [r2] - subs r2, 0x2 - ldrh r0, [r1, 0xC] - strh r0, [r2] - ldrh r0, [r1, 0xA] - adds r0, 0x6 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xC] - subs r0, 0x8 - strh r0, [r1, 0xC] - b _0813CC8E - .align 2, 0 -_0813CBB0: .4byte 0x0000ffff -_0813CBB4: .4byte REG_BG2CNT -_0813CBB8: .4byte 0x00000e07 -_0813CBBC: .4byte REG_BG2VOFS -_0813CBC0: .4byte gTasks -_0813CBC4: - ldr r0, _0813CC14 - str r0, [sp] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _0813CC18 - ldr r2, _0813CC1C - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - movs r2, 0xF5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - strh r6, [r4, 0xA] - strh r6, [r4, 0xC] - movs r0, 0x1E - strh r0, [r4, 0x8] -_0813CBEE: - ldr r2, _0813CC20 - ldr r0, _0813CC24 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xA] - strh r0, [r2] - subs r2, 0x2 - ldrh r0, [r1, 0xC] - strh r0, [r2] - ldrh r0, [r1, 0xA] - subs r0, 0x6 - strh r0, [r1, 0xA] - ldrh r0, [r1, 0xC] - adds r0, 0x8 - strh r0, [r1, 0xC] - b _0813CC8E - .align 2, 0 -_0813CC14: .4byte 0x0000ffff -_0813CC18: .4byte REG_BG2CNT -_0813CC1C: .4byte 0x00000e07 -_0813CC20: .4byte REG_BG2VOFS -_0813CC24: .4byte gTasks -_0813CC28: - ldr r0, _0813CC98 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x5 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0813CC9C - ldr r2, _0813CCA0 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xC - movs r2, 0xF5 - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - strh r6, [r4, 0xA] - strh r6, [r4, 0xC] - movs r0, 0x8 - strh r0, [r4, 0xE] - movs r0, 0x28 - strh r0, [r4, 0x8] -_0813CC56: - ldr r2, _0813CCA4 - ldr r1, _0813CCA8 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0xA] - strh r0, [r2] - ldr r1, _0813CCAC - ldrh r0, [r3, 0xC] - strh r0, [r1] - ldrh r0, [r3, 0xA] - ldrh r2, [r3, 0xE] - subs r0, r2 - strh r0, [r3, 0xA] - ldrh r1, [r3, 0xC] - adds r0, r2, r1 - strh r0, [r3, 0xC] - ldrh r1, [r3, 0x26] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0813CC8E - lsls r0, r2, 16 - cmp r0, 0 - beq _0813CC8E - subs r0, r2, 0x1 - strh r0, [r3, 0xE] -_0813CC8E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813CC98: .4byte 0x000037f7 -_0813CC9C: .4byte REG_BG2CNT -_0813CCA0: .4byte 0x00000e07 -_0813CCA4: .4byte REG_BG2VOFS -_0813CCA8: .4byte gTasks -_0813CCAC: .4byte REG_BG2HOFS - thumb_func_end sub_813CAF4 - - thumb_func_start intro_reset_and_hide_bgs -intro_reset_and_hide_bgs: @ 813CCB0 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x1C - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x3E - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bx lr - thumb_func_end intro_reset_and_hide_bgs - - thumb_func_start sub_813CCE8 -sub_813CCE8: @ 813CCE8 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _0813CD0C - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _0813CD28 - lsls r0, 2 - ldr r1, _0813CD10 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813CD0C: .4byte gTasks -_0813CD10: .4byte _0813CD14 - .align 2, 0 -_0813CD14: - .4byte _0813CD28 - .4byte _0813CD5C - .4byte _0813CD8C - .4byte _0813CDA8 - .4byte _0813CDFC -_0813CD28: - ldr r1, _0813CD54 - ldr r4, _0813CD58 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0x2 - movs r4, 0x80 - lsls r4, 5 - adds r0, r4, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0 - strh r0, [r1] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r2 - movs r1, 0x40 - strh r1, [r0, 0xA] - movs r1, 0x1 - strh r1, [r0, 0x8] - b _0813CE26 - .align 2, 0 -_0813CD54: .4byte REG_BLDCNT -_0813CD58: .4byte 0x00003f50 -_0813CD5C: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r2 - ldrh r1, [r2, 0xA] - movs r3, 0xA - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _0813CD78 - subs r0, r1, 0x1 - strh r0, [r2, 0xA] - movs r4, 0xA - ldrsh r0, [r2, r4] - b _0813CDC2 -_0813CD78: - ldr r1, _0813CD84 - ldr r0, _0813CD88 - ldrh r0, [r0] - strh r0, [r1] - movs r0, 0x80 - b _0813CDEA - .align 2, 0 -_0813CD84: .4byte REG_BLDALPHA -_0813CD88: .4byte gUnknown_08393E64 -_0813CD8C: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0xA] - movs r3, 0xA - ldrsh r2, [r1, r3] - cmp r2, 0 - bne _0813CE0E - strh r2, [r1, 0xA] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0813CE26 -_0813CDA8: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r2 - ldrh r1, [r2, 0xA] - movs r4, 0xA - ldrsh r0, [r2, r4] - cmp r0, 0x3D - bgt _0813CDE0 - adds r0, r1, 0x1 - strh r0, [r2, 0xA] - movs r1, 0xA - ldrsh r0, [r2, r1] -_0813CDC2: - lsrs r1, r0, 31 - adds r0, r1 - movs r2, 0xFF - lsls r2, 1 - ldr r3, _0813CDD8 - ldr r1, _0813CDDC - ands r0, r2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - b _0813CE26 - .align 2, 0 -_0813CDD8: .4byte REG_BLDALPHA -_0813CDDC: .4byte gUnknown_08393E64 -_0813CDE0: - ldr r1, _0813CDF4 - ldr r0, _0813CDF8 - ldrh r0, [r0, 0x3E] - strh r0, [r1] - movs r0, 0x10 -_0813CDEA: - strh r0, [r2, 0xA] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _0813CE26 - .align 2, 0 -_0813CDF4: .4byte REG_BLDALPHA -_0813CDF8: .4byte gUnknown_08393E64 -_0813CDFC: - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r1, r0, r2 - ldrh r0, [r1, 0xA] - movs r4, 0xA - ldrsh r2, [r1, r4] - cmp r2, 0 - beq _0813CE14 -_0813CE0E: - subs r0, 0x1 - strh r0, [r1, 0xA] - b _0813CE26 -_0813CE14: - ldr r0, _0813CE2C - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, r3, 0 - bl DestroyTask -_0813CE26: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813CE2C: .4byte REG_BLDCNT - thumb_func_end sub_813CCE8 - - thumb_func_start sub_813CE30 -sub_813CE30: @ 813CE30 - push {r4,lr} - sub sp, 0x24 - lsls r2, 16 - lsrs r2, 16 - movs r4, 0x80 - lsls r4, 8 - str r4, [sp] - str r4, [sp, 0x4] - mov r4, sp - strh r0, [r4, 0x8] - mov r0, sp - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - strh r2, [r0, 0xE] - strh r3, [r0, 0x10] - add r4, sp, 0x14 - adds r1, r4, 0 - movs r2, 0x1 - bl BgAffineSet - ldr r1, _0813CE84 - ldrh r0, [r4] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x2] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x4] - strh r0, [r1] - adds r1, 0x2 - ldrh r0, [r4, 0x6] - strh r0, [r1] - adds r1, 0x2 - ldr r0, [r4, 0x8] - str r0, [r1] - adds r1, 0x4 - ldr r0, [r4, 0xC] - str r0, [r1] - add sp, 0x24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813CE84: .4byte REG_BG2PA - thumb_func_end sub_813CE30 - - thumb_func_start sub_813CE88 -sub_813CE88: @ 813CE88 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r4, [sp, 0x30] - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - lsls r4, 24 - lsrs r6, r4, 24 - cmp r6, 0 - beq _0813CEF0 - lsls r0, r7, 3 - ldr r1, _0813CEE4 - adds r0, r1 - ldr r1, _0813CEE8 - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r5, _0813CEEC - mov r6, r8 - lsls r4, r6, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl sub_800D378 - b _0813CF1C - .align 2, 0 -_0813CEE4: .4byte gMonFrontPicTable -_0813CEE8: .4byte gMonFrontPicCoords -_0813CEEC: .4byte gUnknown_0840B5A0 -_0813CEF0: - lsls r0, r7, 3 - ldr r1, _0813CF90 - adds r0, r1 - ldr r1, _0813CF94 - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _0813CF98 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - str r6, [sp, 0x8] - str r6, [sp, 0xC] - bl sub_800D378 -_0813CF1C: - ldr r2, _0813CF9C - adds r0, r7, 0 - movs r1, 0 - bl species_and_otid_get_pal - mov r6, r8 - lsls r4, r6, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r1, r6, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8143648 - ldr r0, _0813CFA0 - mov r3, r9 - lsls r1, r3, 16 - asrs r1, 16 - mov r5, r10 - lsls r2, r5, 16 - asrs r2, 16 - mov r3, r8 - adds r3, 0x1 - lsls r3, 26 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813CFA4 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - movs r3, 0xD - negs r3, r3 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0813CF90: .4byte gMonBackPicTable -_0813CF94: .4byte gMonBackPicCoords -_0813CF98: .4byte gUnknown_0840B5A0 -_0813CF9C: .4byte 0x0000ffff -_0813CFA0: .4byte gUnknown_02024E8C -_0813CFA4: .4byte gSprites - thumb_func_end sub_813CE88 - - thumb_func_start sub_813CFA8 -sub_813CFA8: @ 813CFA8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r1 - mov r10, r2 - adds r6, r3, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - lsls r6, 16 - lsrs r6, 16 - lsls r7, r0, 3 - ldr r1, _0813D068 - mov r8, r1 - add r8, r7 - ldr r1, _0813D06C - lsls r2, r0, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r5, _0813D070 - lsls r4, r6, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp] - str r0, [sp, 0x4] - mov r0, r8 - bl DecompressPicFromTable_2 - ldr r0, _0813D074 - adds r0, r7, r0 - ldr r0, [r0] - lsls r4, r6, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r1, r6, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8143680 - ldr r0, _0813D078 - ldr r1, _0813D07C - str r1, [r0, 0x8] - mov r1, r9 - lsls r1, 16 - asrs r1, 16 - mov r9, r1 - mov r2, r10 - lsls r2, 16 - asrs r2, 16 - mov r10, r2 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813D080 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - movs r3, 0xD - negs r3, r3 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0813D068: .4byte gTrainerBackPicTable -_0813D06C: .4byte gTrainerBackPicCoords -_0813D070: .4byte gUnknown_0840B5A0 -_0813D074: .4byte gTrainerBackPicPaletteTable -_0813D078: .4byte gUnknown_02024E8C -_0813D07C: .4byte gUnknown_0840B064 -_0813D080: .4byte gSprites - thumb_func_end sub_813CFA8 - - thumb_func_start sub_813D084 -sub_813D084: @ 813D084 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0813D0A0 - cmp r0, 0x1 - ble _0813D096 - cmp r0, 0x2 - beq _0813D0A8 -_0813D096: - ldr r2, _0813D09C - b _0813D0AA - .align 2, 0 -_0813D09C: .4byte 0x00003ff6 -_0813D0A0: - ldr r2, _0813D0A4 - b _0813D0AA - .align 2, 0 -_0813D0A4: .4byte 0x000031df -_0813D0A8: - ldr r2, _0813D0C0 -_0813D0AA: - ldr r0, _0813D0C4 - movs r1, 0xF1 - lsls r1, 1 - adds r0, r1 - strh r2, [r0] - ldr r0, _0813D0C8 - adds r0, r1 - strh r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0813D0C0: .4byte 0x0000518c -_0813D0C4: .4byte gPlttBufferUnfaded -_0813D0C8: .4byte gPlttBufferFaded - thumb_func_end sub_813D084 - - thumb_func_start sub_813D0CC -sub_813D0CC: @ 813D0CC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0xBF - ble _0813D148 - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813D0EA - subs r0, r1, 0x1 - strh r0, [r4, 0x34] - b _0813D14E -_0813D0EA: - 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, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x32] - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - movs r0, 0x32 - ldrsh r1, [r4, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 5 - subs r0, r1 - movs r1, 0x64 - bl __divsi3 - strh r0, [r4, 0x32] - movs r2, 0x32 - ldrsh r1, [r4, r2] - adds r0, r1, 0 - subs r0, 0xC0 - cmp r0, 0 - bge _0813D12C - adds r0, 0x7F -_0813D12C: - asrs r0, 7 - adds r0, 0x9 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xF - bls _0813D13A - movs r0, 0xF -_0813D13A: - lsls r2, r0, 4 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - b _0813D14E -_0813D148: - adds r0, r4, 0 - bl DestroySprite -_0813D14E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813D0CC - - thumb_func_start sub_813D158 -sub_813D158: @ 813D158 - push {r4,lr} - adds r4, r0, 0 - ldr r2, _0813D1CC - movs r1, 0x3C - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0813D1D4 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - movs r0, 0x80 - lsls r0, 3 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - movs r0, 0x3 - ands r0, r1 - lsls r0, 3 - strh r0, [r4, 0x34] - ldr r0, _0813D1D0 - str r0, [r4, 0x1C] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x2 - bl CalcCenterToCornerVec - b _0813D200 - .align 2, 0 -_0813D1CC: .4byte gSprites -_0813D1D0: .4byte sub_813D0CC -_0813D1D4: - ldrh r0, [r1, 0x24] - strh r0, [r4, 0x24] - movs r0, 0x3C - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x26] - strh r0, [r4, 0x26] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x20] - strh r0, [r4, 0x20] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x22] -_0813D200: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813D158 - - thumb_func_start sub_813D208 -sub_813D208: @ 813D208 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0813D218 - ldr r0, _0813D21C - str r0, [r1, 0x1C] -_0813D218: - pop {r0} - bx r0 - .align 2, 0 -_0813D21C: .4byte sub_813D220 - thumb_func_end sub_813D208 - - thumb_func_start sub_813D220 -sub_813D220: @ 813D220 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r0, 0 - ldrh r4, [r7, 0x20] - movs r1, 0x20 - ldrsh r0, [r7, r1] - cmp r0, 0x74 - bgt _0813D260 - ldrh r0, [r7, 0x26] - ldrh r1, [r7, 0x22] - adds r0, r1 - movs r1, 0 - strh r0, [r7, 0x22] - strh r1, [r7, 0x26] - adds r0, r4, 0x4 - strh r0, [r7, 0x20] - ldr r0, _0813D258 - strh r0, [r7, 0x24] - movs r0, 0x80 - strh r0, [r7, 0x36] - ldr r0, _0813D25C - str r0, [r7, 0x1C] - b _0813D352 - .align 2, 0 -_0813D258: .4byte 0x0000fffc -_0813D25C: .4byte sub_813D368 -_0813D260: - ldrh r1, [r7, 0x36] - ldr r5, _0813D364 - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r2, [r0] - adds r0, r1, 0 - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r3, [r0] - adds r1, 0x2 - strh r1, [r7, 0x36] - lsls r2, 16 - asrs r0, r2, 16 - cmp r0, 0 - bge _0813D286 - adds r0, 0x1F -_0813D286: - asrs r0, 5 - strh r0, [r7, 0x26] - subs r0, r4, 0x1 - strh r0, [r7, 0x20] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813D29C - ldrh r0, [r7, 0x22] - adds r0, 0x1 - strh r0, [r7, 0x22] -_0813D29C: - lsls r0, r3, 16 - asrs r0, 16 - negs r0, r0 - cmp r0, 0 - bge _0813D2A8 - adds r0, 0xF -_0813D2A8: - lsls r1, r0, 12 - lsrs r1, 16 - ldrh r4, [r7, 0x32] - ldrh r3, [r7, 0x34] - adds r0, r1, 0 - subs r0, 0x10 - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r2, [r0] - adds r1, 0x30 - lsls r1, 24 - lsrs r1, 23 - adds r1, r5 - movs r0, 0 - ldrsh r1, [r1, r0] - adds r0, r1, 0 - muls r0, r4 - cmp r0, 0 - bge _0813D2D2 - adds r0, 0xFF -_0813D2D2: - lsls r0, 8 - lsrs r0, 16 - mov r8, r0 - lsls r0, r2, 16 - asrs r2, r0, 16 - negs r0, r2 - muls r0, r3 - cmp r0, 0 - bge _0813D2E6 - adds r0, 0xFF -_0813D2E6: - lsls r0, 8 - lsrs r0, 16 - mov r10, r0 - adds r0, r2, 0 - muls r0, r4 - cmp r0, 0 - bge _0813D2F6 - adds r0, 0xFF -_0813D2F6: - lsls r0, 8 - lsrs r5, r0, 16 - adds r0, r1, 0 - muls r0, r3 - cmp r0, 0 - bge _0813D304 - adds r0, 0xFF -_0813D304: - lsls r6, r0, 8 - lsrs r6, 16 - ldrh r0, [r7, 0x30] - lsls r0, 24 - lsrs r0, 24 - str r3, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r0, [r7, 0x30] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r5 - mov r1, r10 - lsls r5, r1, 16 - lsrs r3, r5, 16 - lsls r4, r6, 16 - str r6, [sp] - mov r1, r8 - mov r2, r9 - bl SetOamMatrix - ldrh r0, [r7, 0x30] - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - lsls r5, 1 - lsrs r5, 16 - lsls r4, 1 - lsrs r4, 16 - str r4, [sp] - mov r1, r8 - mov r2, r9 - adds r3, r5, 0 - bl SetOamMatrix -_0813D352: - 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 -_0813D364: .4byte gSineTable - thumb_func_end sub_813D220 - - thumb_func_start sub_813D368 -sub_813D368: @ 813D368 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - adds r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r0, [r4, 0x30] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - adds r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r0, [r4, 0x30] - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x3A] - adds r1, 0x40 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldrh r1, [r4, 0x36] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0x40 - beq _0813D400 - adds r0, r1, 0 - subs r0, 0x8 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x36] - adds r1, r0, 0 - ldr r2, _0813D3FC - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - cmp r0, 0 - bge _0813D3E2 - adds r0, 0x3F -_0813D3E2: - asrs r0, 6 - strh r0, [r4, 0x24] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r2 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _0813D3F6 - adds r0, 0x3F -_0813D3F6: - asrs r0, 6 - strh r0, [r4, 0x26] - b _0813D408 - .align 2, 0 -_0813D3FC: .4byte gSineTable -_0813D400: - movs r0, 0 - strh r0, [r4, 0x36] - ldr r0, _0813D410 - str r0, [r4, 0x1C] -_0813D408: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D410: .4byte sub_813D414 - thumb_func_end sub_813D368 - - thumb_func_start sub_813D414 -sub_813D414: @ 813D414 - push {r4,lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x2 - beq _0813D474 - ldrh r0, [r1, 0x36] - adds r0, 0x8 - strh r0, [r1, 0x36] - ldr r3, _0813D470 - lsls r0, 24 - lsrs r0, 23 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _0813D438 - adds r0, 0xF -_0813D438: - asrs r0, 4 - adds r0, 0x40 - lsls r0, 16 - lsrs r2, r0, 16 - adds r0, r2, 0 - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r3 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - bge _0813D454 - adds r0, 0x3F -_0813D454: - asrs r0, 6 - strh r0, [r1, 0x24] - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _0813D468 - adds r0, 0x3F -_0813D468: - asrs r0, 6 - strh r0, [r1, 0x26] - b _0813D478 - .align 2, 0 -_0813D470: .4byte gSineTable -_0813D474: - ldr r0, _0813D480 - str r0, [r1, 0x1C] -_0813D478: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D480: .4byte sub_813D484 - thumb_func_end sub_813D414 - - thumb_func_start sub_813D484 -sub_813D484: @ 813D484 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x22] - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _0813D49C - adds r0, r2, 0x4 - strh r0, [r4, 0x22] - b _0813D4F8 -_0813D49C: - movs r0, 0x1 - strh r0, [r4, 0x3C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - movs r0, 0x80 - lsls r0, 3 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - movs r0, 0x3 - ands r0, r1 - lsls r0, 3 - strh r0, [r4, 0x34] - ldr r0, _0813D500 - str r0, [r4, 0x1C] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x2 - bl CalcCenterToCornerVec -_0813D4F8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D500: .4byte sub_813D0CC - thumb_func_end sub_813D484 - - thumb_func_start sub_813D504 -sub_813D504: @ 813D504 - push {r4,lr} - adds r4, r0, 0 - ldrh r2, [r4, 0x22] - movs r0, 0x22 - ldrsh r1, [r4, r0] - movs r3, 0x38 - ldrsh r0, [r4, r3] - cmp r1, r0 - bge _0813D51C - adds r0, r2, 0x4 - strh r0, [r4, 0x22] - b _0813D578 -_0813D51C: - movs r0, 0x1 - strh r0, [r4, 0x3C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x22] - adds r0, r3 - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnim - movs r0, 0x80 - lsls r0, 3 - strh r0, [r4, 0x32] - ldrh r1, [r4, 0x30] - movs r0, 0x3 - ands r0, r1 - lsls r0, 3 - strh r0, [r4, 0x34] - ldr r0, _0813D580 - str r0, [r4, 0x1C] - ldrb r1, [r4, 0x1] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x2 - bl CalcCenterToCornerVec -_0813D578: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D580: .4byte sub_813D0CC - thumb_func_end sub_813D504 - - thumb_func_start sub_813D584 -sub_813D584: @ 813D584 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r6, [sp, 0x34] - ldr r0, [sp, 0x38] - mov r8, r0 - lsls r4, 16 - lsls r5, 16 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x8] - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0xC] - lsls r6, 16 - lsrs r6, 16 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r0, _0813D640 - lsrs r2, r4, 16 - mov r10, r2 - asrs r4, 16 - lsrs r1, r5, 16 - str r1, [sp, 0x4] - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _0813D644 - mov r9, r2 - lsls r0, r7, 4 - adds r0, r7 - lsls r5, r0, 2 - adds r4, r5, r2 - movs r0, 0 - strh r0, [r4, 0x2E] - strh r0, [r4, 0x3C] - mov r0, sp - ldrh r0, [r0, 0xC] - strh r0, [r4, 0x30] - mov r1, sp - ldrh r1, [r1, 0x8] - strh r1, [r4, 0x32] - mov r2, sp - ldrh r2, [r2, 0x8] - strh r2, [r4, 0x34] - strh r6, [r4, 0x38] - mov r0, sp - ldrh r0, [r0, 0x8] - strh r0, [r4, 0x3A] - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x1F - ldr r1, [sp, 0xC] - ands r1, r0 - lsls r1, 1 - ldrb r2, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl CalcCenterToCornerVec - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - mov r1, r8 - cmp r1, 0 - bne _0813D64C - mov r0, r9 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, _0813D648 - b _0813D654 - .align 2, 0 -_0813D640: .4byte gSpriteTemplate_840AE20 -_0813D644: .4byte gSprites -_0813D648: .4byte sub_813D208 -_0813D64C: - mov r0, r9 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, _0813D774 -_0813D654: - str r1, [r0] - str r7, [sp, 0x10] - mov r2, r10 - lsls r2, 16 - asrs r2, 16 - mov r10, r2 - ldr r0, [sp, 0x4] - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - ldr r0, _0813D778 - mov r1, r10 - mov r2, r8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r5, _0813D77C - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r0, r4, r5 - mov r1, sp - ldrh r1, [r1, 0x10] - strh r1, [r0, 0x3C] - ldr r2, [sp, 0xC] - adds r2, 0x1 - mov r9, r2 - strh r2, [r0, 0x30] - ldrb r1, [r0, 0x1] - movs r2, 0x3 - orrs r1, r2 - strb r1, [r0, 0x1] - mov r2, r9 - movs r1, 0x1F - ands r2, r1 - lsls r2, 1 - ldrb r3, [r0, 0x3] - movs r6, 0x3F - negs r6, r6 - adds r1, r6, 0 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x3] - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl CalcCenterToCornerVec - ldr r2, _0813D780 - adds r4, r2 - ldr r0, _0813D784 - str r0, [r4] - ldr r0, _0813D778 - mov r1, r10 - mov r2, r8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r5, r4, r5 - mov r1, sp - ldrh r1, [r1, 0x10] - strh r1, [r5, 0x3C] - ldr r2, [sp, 0xC] - adds r2, 0x2 - mov r8, r2 - strh r2, [r5, 0x30] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrb r0, [r5, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r5, 0x1] - mov r0, r8 - movs r2, 0x1F - ands r0, r2 - lsls r0, 1 - ldrb r1, [r5, 0x3] - ands r6, r1 - orrs r6, r0 - strb r6, [r5, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl CalcCenterToCornerVec - ldr r0, _0813D780 - adds r4, r0 - ldr r1, _0813D784 - str r1, [r4] - ldr r2, [sp, 0xC] - lsls r0, r2, 24 - lsrs r0, 24 - ldr r5, [sp, 0x8] - adds r5, 0x20 - lsls r4, r5, 16 - lsrs r4, 16 - str r4, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - str r4, [sp] - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r5, 17 - lsrs r5, 16 - str r5, [sp] - mov r0, r8 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldr r0, [sp, 0x10] - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0813D774: .4byte sub_813D504 -_0813D778: .4byte gSpriteTemplate_840AE20 -_0813D77C: .4byte gSprites -_0813D780: .4byte gSprites + 0x1C -_0813D784: .4byte sub_813D158 - thumb_func_end sub_813D584 - - thumb_func_start sub_813D788 -sub_813D788: @ 813D788 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _0813D830 - lsls r0, 2 - ldr r1, _0813D7A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813D7A0: .4byte _0813D7A4 - .align 2, 0 -_0813D7A4: - .4byte _0813D7B8 - .4byte _0813D7C6 - .4byte _0813D7E4 - .4byte _0813D80C - .4byte _0813D816 -_0813D7B8: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r0, [r4, 0x20] - subs r0, 0x1 - b _0813D82E -_0813D7C6: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldr r0, _0813D7E0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0813D87A - ldrh r0, [r4, 0x20] - adds r0, 0x1 - b _0813D82E - .align 2, 0 -_0813D7E0: .4byte gUnknown_03005ED0 -_0813D7E4: - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0x78 - ble _0813D802 - ldr r0, _0813D808 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0813D83C -_0813D802: - adds r0, r2, 0x1 - b _0813D82E - .align 2, 0 -_0813D808: .4byte gUnknown_03005ED0 -_0813D80C: - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent - b _0813D830 -_0813D816: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _0813D830 - subs r0, r2, 0x2 -_0813D82E: - strh r0, [r4, 0x20] -_0813D830: - ldr r0, _0813D84C - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0813D87A -_0813D83C: - movs r1, 0x26 - ldrsh r5, [r4, r1] - cmp r5, 0 - beq _0813D850 - movs r0, 0 - strh r0, [r4, 0x26] - b _0813D87A - .align 2, 0 -_0813D84C: .4byte gUnknown_03005ED0 -_0813D850: - bl Random - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x1 - beq _0813D878 - cmp r1, 0x1 - bgt _0813D866 - cmp r1, 0 - beq _0813D86E - b _0813D87A -_0813D866: - cmp r1, 0x3 - bgt _0813D87A - strh r5, [r4, 0x26] - b _0813D87A -_0813D86E: - ldr r0, _0813D874 - strh r0, [r4, 0x26] - b _0813D87A - .align 2, 0 -_0813D874: .4byte 0x0000ffff -_0813D878: - strh r1, [r4, 0x26] -_0813D87A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_813D788 - - thumb_func_start sub_813D880 -sub_813D880: @ 813D880 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0813D89A - cmp r0, 0x1 - ble _0813D8E2 - cmp r0, 0x2 - beq _0813D8BA - cmp r0, 0x3 - beq _0813D8D4 - b _0813D8E2 -_0813D89A: - movs r2, 0x24 - ldrsh r0, [r4, r2] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - ldr r1, _0813D8B0 - cmp r0, r1 - bgt _0813D8B4 - ldrh r0, [r4, 0x24] - adds r0, 0x8 - b _0813D8E0 - .align 2, 0 -_0813D8B0: .4byte 0x0000012f -_0813D8B4: - movs r0, 0x2 - strh r0, [r4, 0x2E] - b _0813D8E2 -_0813D8BA: - movs r1, 0x24 - ldrsh r0, [r4, r1] - movs r2, 0x20 - ldrsh r1, [r4, r2] - adds r0, r1 - cmp r0, 0x78 - ble _0813D8CE - ldrh r0, [r4, 0x24] - subs r0, 0x1 - b _0813D8E0 -_0813D8CE: - movs r0, 0x3 - strh r0, [r4, 0x2E] - b _0813D8E2 -_0813D8D4: - ldrh r1, [r4, 0x24] - movs r2, 0x24 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _0813D8E2 - subs r0, r1, 0x2 -_0813D8E0: - strh r0, [r4, 0x24] -_0813D8E2: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x8 - bl Sin - ldr r1, _0813D904 - ldrh r1, [r1] - subs r0, r1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x4 - strh r0, [r4, 0x30] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813D904: .4byte gUnknown_0203935A - thumb_func_end sub_813D880 - - thumb_func_start sub_813D908 -sub_813D908: @ 813D908 - push {lr} - adds r3, r0, 0 - ldr r2, _0813D930 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0813D934 - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - b _0813D94E - .align 2, 0 -_0813D930: .4byte gTasks -_0813D934: - cmp r0, 0x4 - beq _0813D948 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _0813D94E -_0813D948: - adds r0, r3, 0 - bl DestroySprite -_0813D94E: - pop {r0} - bx r0 - thumb_func_end sub_813D908 - - thumb_func_start sub_813D954 -sub_813D954: @ 813D954 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - movs r5, 0 - ldr r7, _0813DA48 - lsls r0, 16 - mov r9, r0 - lsls r0, r6, 16 - str r0, [sp, 0x4] - mov r1, r9 - asrs r1, 16 - str r1, [sp] -_0813D97C: - lsls r4, r5, 2 - adds r0, r7, 0x2 - adds r0, r4, r0 - ldrh r1, [r0] - ldr r2, [sp] - adds r1, r2, r1 - lsls r1, 16 - asrs r1, 16 - lsls r2, r6, 16 - asrs r3, r2, 16 - mov r10, r3 - ldr r0, _0813DA4C - adds r2, r0 - ldr r0, _0813DA50 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0813DA54 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - mov r1, r8 - strh r1, [r0, 0x2E] - adds r4, r7 - ldrb r1, [r4] - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x8 - bls _0813D97C - movs r5, 0 - ldr r7, _0813DA58 - mov r0, r10 - adds r0, 0xC - lsls r0, 16 - mov r10, r0 -_0813D9D0: - lsls r4, r5, 2 - adds r0, r7, 0x2 - adds r0, r4, r0 - mov r2, r9 - asrs r1, r2, 16 - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - ldr r0, _0813DA5C - mov r3, r10 - asrs r2, r3, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - ldr r6, _0813DA54 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x2E] - adds r4, r7 - ldrb r1, [r4] - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x7 - bls _0813D9D0 - ldr r0, _0813DA60 - ldr r3, [sp, 0x4] - ldr r1, _0813DA4C - adds r2, r3, r1 - asrs r2, 16 - movs r1, 0x78 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - mov r3, r8 - strh r3, [r0, 0x2E] - adds r0, r2, 0 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0813DA48: .4byte gUnknown_0840AF50 -_0813DA4C: .4byte 0xfffc0000 -_0813DA50: .4byte gSpriteTemplate_840AF94 -_0813DA54: .4byte gSprites -_0813DA58: .4byte gUnknown_0840AF74 -_0813DA5C: .4byte gSpriteTemplate_840AFAC -_0813DA60: .4byte gSpriteTemplate_840AFC4 - thumb_func_end sub_813D954 - - thumb_func_start sub_813DA64 -sub_813DA64: @ 813DA64 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813DA7C - cmp r0, 0x1 - beq _0813DAC0 -_0813DA7C: - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0x3 - movs r3, 0x3 - bl CalcCenterToCornerVec - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x80 - strh r0, [r4, 0x30] - ldr r0, _0813DABC - strh r0, [r4, 0x32] - movs r0, 0 - b _0813DB92 - .align 2, 0 -_0813DABC: .4byte 0x0000ffe8 -_0813DAC0: - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x4F - bgt _0813DAF8 - lsls r0, r1, 24 - lsrs r0, 24 - movs r1, 0x78 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x8C - bl Sin - negs r0, r0 - strh r0, [r4, 0x24] - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x40 - ble _0813DAF8 - ldrb r0, [r4, 0x5] - movs r1, 0xC - orrs r0, r1 - strb r0, [r4, 0x5] -_0813DAF8: - ldr r2, _0813DB60 - ldrh r1, [r4, 0x32] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r2 - ldrh r3, [r0] - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 23 - adds r1, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r1, 0x30 - ldrsh r2, [r4, r1] - adds r1, r0, 0 - muls r1, r2 - adds r0, r1, 0 - cmp r1, 0 - bge _0813DB20 - adds r0, 0xFF -_0813DB20: - lsls r0, 8 - lsrs r6, r0, 16 - lsls r0, r3, 16 - asrs r3, r0, 16 - negs r0, r3 - muls r0, r2 - cmp r0, 0 - bge _0813DB32 - adds r0, 0xFF -_0813DB32: - lsls r0, 8 - lsrs r5, r0, 16 - adds r0, r3, 0 - muls r0, r2 - cmp r0, 0 - bge _0813DB40 - adds r0, 0xFF -_0813DB40: - lsls r0, 8 - lsrs r2, r0, 16 - adds r1, r6, 0 - adds r3, r5, 0 - str r1, [sp] - movs r0, 0x1 - bl SetOamMatrix - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0xFF - bgt _0813DB64 - adds r0, r1, 0 - adds r0, 0x8 - b _0813DB68 - .align 2, 0 -_0813DB60: .4byte gSineTable -_0813DB64: - adds r0, r1, 0 - adds r0, 0x20 -_0813DB68: - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0x17 - bgt _0813DB78 - adds r0, r1, 0x1 - strh r0, [r4, 0x32] -_0813DB78: - ldrh r2, [r4, 0x34] - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0x3F - bgt _0813DB86 - adds r0, r2, 0x2 - b _0813DB92 -_0813DB86: - ldrh r1, [r4, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0813DB94 - adds r0, r2, 0x1 -_0813DB92: - strh r0, [r4, 0x34] -_0813DB94: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813DA64 - - thumb_func_start sub_813DB9C -sub_813DB9C: @ 813DB9C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _0813DBCC - lsls r0, 2 - ldr r1, _0813DBB4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813DBB4: .4byte _0813DBB8 - .align 2, 0 -_0813DBB8: - .4byte _0813DBCC - .4byte _0813DBF2 - .4byte _0813DC24 - .4byte _0813DC3E - .4byte _0813DCAA -_0813DBCC: - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813DBE0 - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - b _0813DBEC -_0813DBE0: - adds r2, r4, 0 - adds r2, 0x3F - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 -_0813DBEC: - strb r0, [r2] - movs r0, 0x1 - strh r0, [r4, 0x2E] -_0813DBF2: - ldrh r1, [r4, 0x22] - movs r3, 0x22 - ldrsh r0, [r4, r3] - cmp r0, 0x60 - ble _0813DC18 - subs r0, r1, 0x4 - strh r0, [r4, 0x22] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813DC10 - ldrh r0, [r4, 0x20] - adds r0, 0x2 - strh r0, [r4, 0x20] - b _0813DD4E -_0813DC10: - ldrh r0, [r4, 0x20] - subs r0, 0x2 - strh r0, [r4, 0x20] - b _0813DD4E -_0813DC18: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x8 - strh r0, [r4, 0x34] - b _0813DD4E -_0813DC24: - ldrh r0, [r4, 0x34] - movs r2, 0x34 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _0813DC34 - subs r0, 0x1 - strh r0, [r4, 0x34] - b _0813DD4E -_0813DC34: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x34] - b _0813DD4E -_0813DC3E: - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r3, 0x30 - ldrsh r1, [r4, r3] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x3 - bl CalcCenterToCornerVec - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813DC8A - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xFF - lsls r1, 8 - movs r2, 0x80 - lsls r2, 1 - str r2, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _0813DC9E -_0813DC8A: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 1 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix -_0813DC9E: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x36] - b _0813DD4E -_0813DCAA: - ldrh r0, [r4, 0x36] - adds r2, r0, 0x1 - strh r2, [r4, 0x36] - movs r3, 0x22 - ldrsh r0, [r4, r3] - movs r3, 0x26 - ldrsh r1, [r4, r3] - adds r0, r1 - movs r1, 0x20 - negs r1, r1 - cmp r0, r1 - ble _0813DD48 - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r3, 0x24 - ldrsh r1, [r4, r3] - adds r0, r1 - movs r1, 0x40 - negs r1, r1 - cmp r0, r1 - ble _0813DD48 - movs r1, 0x36 - ldrsh r0, [r4, r1] - adds r3, r0, 0 - muls r3, r0 - adds r0, r3, 0 - negs r0, r0 - cmp r0, 0 - bge _0813DCE6 - adds r0, 0x7 -_0813DCE6: - asrs r0, 3 - strh r0, [r4, 0x26] - movs r1, 0x32 - ldrsh r0, [r4, r1] - ldrh r3, [r4, 0x32] - cmp r0, 0 - beq _0813DCFA - ldrh r0, [r4, 0x24] - adds r0, r2 - b _0813DCFE -_0813DCFA: - ldrh r0, [r4, 0x24] - subs r0, r2 -_0813DCFE: - strh r0, [r4, 0x24] - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x7F - bgt _0813DD10 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r4, 0x34] -_0813DD10: - ldrh r0, [r4, 0x34] - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r0 - lsls r1, 16 - lsrs r2, r1, 16 - lsls r0, r3, 16 - cmp r0, 0 - beq _0813DD34 - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - negs r1, r2 - lsls r1, 16 - lsrs r1, 16 - str r2, [sp] - b _0813DD3E -_0813DD34: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - str r2, [sp] - adds r1, r2, 0 -_0813DD3E: - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _0813DD4E -_0813DD48: - adds r0, r4, 0 - bl DestroySprite -_0813DD4E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813DB9C - - thumb_func_start sub_813DD58 -sub_813DD58: @ 813DD58 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0813DDAE - cmp r0, 0x1 - ble _0813DD72 - cmp r0, 0x2 - beq _0813DE66 - cmp r0, 0x3 - beq _0813DE26 -_0813DD72: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r4, 0x34] - movs r0, 0x1 - strh r0, [r4, 0x2E] -_0813DDAE: - ldrh r1, [r4, 0x34] - movs r2, 0x34 - ldrsh r0, [r4, r2] - movs r2, 0x80 - lsls r2, 1 - cmp r0, r2 - ble _0813DDEE - subs r1, 0x80 - strh r1, [r4, 0x34] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813DDDA - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r4, 0x34] - str r2, [sp] - b _0813DDE4 -_0813DDDA: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x34] - str r1, [sp] -_0813DDE4: - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _0813DE66 -_0813DDEE: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0813DE0C - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0xFF - lsls r1, 8 - str r2, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _0813DE1E -_0813DE0C: - ldrh r0, [r4, 0x30] - lsls r0, 24 - lsrs r0, 24 - str r2, [sp] - adds r1, r2, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix -_0813DE1E: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _0813DE66 -_0813DE26: - ldrh r0, [r4, 0x36] - adds r0, 0x1 - strh r0, [r4, 0x36] - movs r2, 0x36 - ldrsh r0, [r4, r2] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - cmp r0, 0 - bge _0813DE3C - adds r0, 0x1F -_0813DE3C: - asrs r0, 5 - strh r0, [r4, 0x26] - movs r2, 0x32 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _0813DE56 - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _0813DE52 - adds r0, 0x3 -_0813DE52: - asrs r0, 2 - b _0813DE64 -_0813DE56: - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _0813DE60 - adds r0, 0x3 -_0813DE60: - asrs r0, 2 - negs r0, r0 -_0813DE64: - strh r0, [r4, 0x24] -_0813DE66: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813DD58 - - thumb_func_start sub_813DE70 -sub_813DE70: @ 813DE70 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r0, 0 - movs r1, 0x2E - ldrsh r0, [r7, r1] - cmp r0, 0x6 - bhi _0813DEB0 - lsls r0, 2 - ldr r1, _0813DE90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813DE90: .4byte _0813DE94 - .align 2, 0 -_0813DE94: - .4byte _0813DEB0 - .4byte _0813E0F8 - .4byte _0813DEF4 - .4byte _0813DF2C - .4byte _0813DF54 - .4byte _0813E0A8 - .4byte _0813E0D0 -_0813DEB0: - ldrh r1, [r7, 0x20] - movs r2, 0x20 - ldrsh r0, [r7, r2] - cmp r0, 0x28 - ble _0813DEC0 - subs r0, r1, 0x4 - strh r0, [r7, 0x20] - b _0813E0F8 -_0813DEC0: - adds r0, r7, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldr r4, _0813DEF0 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x68 - movs r3, 0x64 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x3A] - adds r0, r4, 0 - movs r1, 0xC - movs r2, 0x6A - movs r3, 0x65 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x3C] - b _0813DF42 - .align 2, 0 -_0813DEF0: .4byte gSpriteTemplate_840B084 -_0813DEF4: - adds r0, r7, 0 - movs r1, 0x2 - bl StartSpriteAnim - ldr r2, _0813DF28 - movs r3, 0x3A - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldrh r0, [r7, 0x2E] - adds r0, 0x1 - strh r0, [r7, 0x2E] - b _0813E0F8 - .align 2, 0 -_0813DF28: .4byte gSprites -_0813DF2C: - ldrh r1, [r7, 0x22] - movs r2, 0x22 - ldrsh r0, [r7, r2] - cmp r0, 0xA0 - ble _0813DF48 - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0813DF42: - movs r0, 0x1 - strh r0, [r7, 0x2E] - b _0813E0F8 -_0813DF48: - adds r0, r1, 0x2 - strh r0, [r7, 0x22] - ldrh r0, [r7, 0x20] - subs r0, 0x1 - strh r0, [r7, 0x20] - b _0813E0F8 -_0813DF54: - ldr r6, _0813E094 - movs r3, 0x3A - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r5, [r0, 0x24] - ldrh r1, [r0, 0x20] - adds r5, r1 - lsls r5, 16 - lsrs r5, 16 - ldrh r4, [r0, 0x26] - ldrh r2, [r0, 0x22] - adds r4, r2 - lsls r4, 16 - lsrs r4, 16 - bl DestroySprite - movs r0, 0x8C - lsls r0, 1 - lsls r5, 16 - asrs r1, r5, 16 - lsls r4, 16 - asrs r2, r4, 16 - movs r3, 0x1 - mov r8, r3 - str r3, [sp] - movs r3, 0x2 - bl sub_813CE88 - strh r0, [r7, 0x3A] - movs r0, 0x3A - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0813E098 - adds r0, r1 - ldr r2, _0813E09C - mov r10, r2 - str r2, [r0] - movs r3, 0x3A - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - mov r9, r2 - mov r3, r9 - orrs r1, r3 - strb r1, [r0] - movs r0, 0x3A - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x30] - movs r2, 0x3A - ldrsh r1, [r7, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - mov r3, r8 - strh r3, [r0, 0x32] - lsrs r5, 16 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_813E580 - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r5, [r0, 0x24] - ldrh r1, [r0, 0x20] - adds r5, r1 - lsls r5, 16 - lsrs r5, 16 - ldrh r4, [r0, 0x26] - ldrh r2, [r0, 0x22] - adds r4, r2 - lsls r4, 16 - lsrs r4, 16 - bl DestroySprite - ldr r0, _0813E0A0 - lsls r5, 16 - asrs r1, r5, 16 - lsls r4, 16 - asrs r2, r4, 16 - mov r3, r8 - str r3, [sp] - movs r3, 0x3 - bl sub_813CE88 - strh r0, [r7, 0x3C] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0813E098 - adds r0, r1 - mov r2, r10 - str r2, [r0] - movs r3, 0x3C - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - mov r2, r9 - orrs r1, r2 - strb r1, [r0] - movs r3, 0x3C - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - strh r1, [r0, 0x30] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0 - strh r1, [r0, 0x32] - lsrs r5, 16 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_813E580 - movs r0, 0xFF - lsls r0, 16 - ldr r1, _0813E0A4 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0x10 - bl BeginNormalPaletteFade - mov r2, r8 - strh r2, [r7, 0x2E] - b _0813E0F8 - .align 2, 0 -_0813E094: .4byte gSprites -_0813E098: .4byte gSprites + 0x1C -_0813E09C: .4byte sub_813DD58 -_0813E0A0: .4byte 0x0000011b -_0813E0A4: .4byte 0x00007eff -_0813E0A8: - ldr r3, _0813E0CC - movs r0, 0x3A - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0x3 - strh r2, [r0, 0x2E] - movs r0, 0x3C - ldrsh r1, [r7, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x2E] - b _0813E0F8 - .align 2, 0 -_0813E0CC: .4byte gSprites -_0813E0D0: - movs r2, 0x3A - ldrsh r1, [r7, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0813E108 - adds r0, r4 - bl DestroySprite - movs r3, 0x3C - ldrsh r1, [r7, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - adds r0, r7, 0 - bl DestroySprite -_0813E0F8: - 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 -_0813E108: .4byte gSprites - thumb_func_end sub_813DE70 - - thumb_func_start sub_813E10C -sub_813E10C: @ 813E10C - push {r4,lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x4 - bhi _0813E13C - lsls r0, 2 - ldr r1, _0813E124 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813E124: .4byte _0813E128 - .align 2, 0 -_0813E128: - .4byte _0813E13C - .4byte _0813E178 - .4byte _0813E1A6 - .4byte _0813E1C2 - .4byte _0813E1D6 -_0813E13C: - ldrh r4, [r3, 0x24] - movs r2, 0x24 - ldrsh r1, [r3, r2] - movs r0, 0x38 - negs r0, r0 - cmp r1, r0 - ble _0813E158 - adds r0, r4, 0 - subs r0, 0x8 - strh r0, [r3, 0x24] - ldrh r0, [r3, 0x26] - adds r0, 0x6 - strh r0, [r3, 0x26] - b _0813E208 -_0813E158: - ldrh r0, [r3, 0x20] - movs r2, 0 - strh r0, [r3, 0x3A] - ldrh r1, [r3, 0x22] - strh r1, [r3, 0x3C] - adds r0, r4 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x26] - adds r1, r0 - strh r1, [r3, 0x22] - strh r2, [r3, 0x24] - strh r2, [r3, 0x26] - movs r0, 0x1 - strh r0, [r3, 0x2E] - strh r2, [r3, 0x30] - b _0813E208 -_0813E178: - ldrh r1, [r3, 0x30] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0813E1A0 - movs r0, 0x2 - ands r0, r1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _0813E19C - ldr r0, _0813E198 - strh r0, [r3, 0x24] - strh r2, [r3, 0x26] - b _0813E1A0 - .align 2, 0 -_0813E198: .4byte 0x0000ffff -_0813E19C: - strh r0, [r3, 0x24] - strh r0, [r3, 0x26] -_0813E1A0: - adds r0, r1, 0x1 - strh r0, [r3, 0x30] - b _0813E208 -_0813E1A6: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x3A] - movs r1, 0 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x3C] - strh r0, [r3, 0x22] - strh r1, [r3, 0x24] - strh r1, [r3, 0x26] - b _0813E208 -_0813E1C2: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] -_0813E1D6: - ldrh r2, [r3, 0x24] - movs r0, 0x24 - ldrsh r1, [r3, r0] - movs r0, 0x38 - negs r0, r0 - cmp r1, r0 - ble _0813E1F0 - subs r0, r2, 0x4 - strh r0, [r3, 0x24] - ldrh r0, [r3, 0x26] - adds r0, 0x3 - strh r0, [r3, 0x26] - b _0813E208 -_0813E1F0: - ldrh r1, [r3, 0x20] - adds r0, r2, r1 - movs r1, 0 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x26] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r3, 0x22] - strh r1, [r3, 0x24] - strh r1, [r3, 0x26] - movs r0, 0x1 - strh r0, [r3, 0x2E] -_0813E208: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813E10C - - thumb_func_start sub_813E210 -sub_813E210: @ 813E210 - push {r4,lr} - adds r3, r0, 0 - movs r1, 0x2E - ldrsh r0, [r3, r1] - cmp r0, 0x4 - bhi _0813E240 - lsls r0, 2 - ldr r1, _0813E228 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813E228: .4byte _0813E22C - .align 2, 0 -_0813E22C: - .4byte _0813E240 - .4byte _0813E278 - .4byte _0813E2A6 - .4byte _0813E2C2 - .4byte _0813E2D6 -_0813E240: - ldrh r4, [r3, 0x24] - movs r2, 0x24 - ldrsh r0, [r3, r2] - cmp r0, 0x37 - bgt _0813E258 - adds r0, r4, 0 - adds r0, 0x8 - strh r0, [r3, 0x24] - ldrh r0, [r3, 0x26] - subs r0, 0x6 - strh r0, [r3, 0x26] - b _0813E304 -_0813E258: - ldrh r0, [r3, 0x20] - movs r2, 0 - strh r0, [r3, 0x3A] - ldrh r1, [r3, 0x22] - strh r1, [r3, 0x3C] - adds r0, r4 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x26] - adds r1, r0 - strh r1, [r3, 0x22] - strh r2, [r3, 0x24] - strh r2, [r3, 0x26] - movs r0, 0x1 - strh r0, [r3, 0x2E] - strh r2, [r3, 0x30] - b _0813E304 -_0813E278: - ldrh r1, [r3, 0x30] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0813E2A0 - movs r0, 0x2 - ands r0, r1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - beq _0813E29C - strh r2, [r3, 0x24] - ldr r0, _0813E298 - b _0813E29E - .align 2, 0 -_0813E298: .4byte 0x0000ffff -_0813E29C: - strh r0, [r3, 0x24] -_0813E29E: - strh r0, [r3, 0x26] -_0813E2A0: - adds r0, r1, 0x1 - strh r0, [r3, 0x30] - b _0813E304 -_0813E2A6: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x3A] - movs r1, 0 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x3C] - strh r0, [r3, 0x22] - strh r1, [r3, 0x24] - strh r1, [r3, 0x26] - b _0813E304 -_0813E2C2: - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r2] - ldrh r0, [r3, 0x30] - adds r0, 0x1 - strh r0, [r3, 0x30] -_0813E2D6: - ldrh r1, [r3, 0x24] - movs r2, 0x24 - ldrsh r0, [r3, r2] - cmp r0, 0x37 - bgt _0813E2EC - adds r0, r1, 0x4 - strh r0, [r3, 0x24] - ldrh r0, [r3, 0x26] - subs r0, 0x3 - strh r0, [r3, 0x26] - b _0813E304 -_0813E2EC: - ldrh r2, [r3, 0x20] - adds r0, r1, r2 - movs r1, 0 - strh r0, [r3, 0x20] - ldrh r0, [r3, 0x26] - ldrh r2, [r3, 0x22] - adds r0, r2 - strh r0, [r3, 0x22] - strh r1, [r3, 0x24] - strh r1, [r3, 0x26] - movs r0, 0x1 - strh r0, [r3, 0x2E] -_0813E304: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813E210 - - thumb_func_start sub_813E30C -sub_813E30C: @ 813E30C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x14 - bls _0813E322 - b _0813E4AC -_0813E322: - lsls r0, 2 - ldr r1, _0813E32C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813E32C: .4byte _0813E330 - .align 2, 0 -_0813E330: - .4byte _0813E4AC - .4byte _0813E384 - .4byte _0813E41C - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E3A8 - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E4AC - .4byte _0813E440 -_0813E384: - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0xA - strh r0, [r4, 0x2E] - movs r0, 0x24 - strh r0, [r4, 0x36] -_0813E3A8: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x90 - bgt _0813E3D2 - adds r0, r1, 0x4 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x18 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - strh r0, [r4, 0x32] -_0813E3D2: - ldrh r0, [r4, 0x34] - ldrh r2, [r4, 0x36] - subs r0, r2 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x3C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813E3EE - lsls r0, r2, 16 - cmp r0, 0 - beq _0813E3EE - subs r0, r2, 0x1 - strh r0, [r4, 0x36] -_0813E3EE: - ldr r2, _0813E418 - ldrh r1, [r4, 0x34] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r2 - ldrh r4, [r0] - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 23 - adds r1, r2 - ldrh r1, [r1] - negs r3, r4 - lsls r3, 16 - lsrs r3, 16 - str r1, [sp] - movs r0, 0x1 - adds r2, r4, 0 - bl SetOamMatrix - b _0813E4AC - .align 2, 0 -_0813E418: .4byte gSineTable -_0813E41C: - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0x14 - strh r0, [r4, 0x2E] - movs r0, 0x24 - strh r0, [r4, 0x36] -_0813E440: - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x60 - bgt _0813E46A - adds r0, r1, 0x3 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - subs r0, 0x1 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x18 - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - strh r0, [r4, 0x32] -_0813E46A: - ldrh r0, [r4, 0x34] - ldrh r2, [r4, 0x36] - subs r0, r2 - strh r0, [r4, 0x34] - ldrh r1, [r4, 0x3C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813E486 - lsls r0, r2, 16 - cmp r0, 0 - beq _0813E486 - subs r0, r2, 0x1 - strh r0, [r4, 0x36] -_0813E486: - ldr r2, _0813E4B4 - ldrh r1, [r4, 0x34] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r2 - ldrh r4, [r0] - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 23 - adds r1, r2 - ldrh r1, [r1] - negs r3, r4 - lsls r3, 16 - lsrs r3, 16 - str r1, [sp] - movs r0, 0x2 - adds r2, r4, 0 - bl SetOamMatrix -_0813E4AC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813E4B4: .4byte gSineTable - thumb_func_end sub_813E30C - - thumb_func_start sub_813E4B8 -sub_813E4B8: @ 813E4B8 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813E4DA - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - b _0813E4E4 -_0813E4DA: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 -_0813E4E4: - strb r0, [r2] - ldrh r1, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0x3F - ble _0813E4F8 - adds r0, r5, 0 - bl DestroySprite - b _0813E574 -_0813E4F8: - adds r0, r1, 0x2 - strh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x28 - bl Sin - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - lsls r0, 29 - lsrs r0, 24 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - bl Cos - strh r0, [r5, 0x24] - movs r2, 0x2E - ldrsh r0, [r5, r2] - lsls r0, 29 - lsrs r0, 24 - adds r1, r4, 0 - bl Sin - strh r0, [r5, 0x26] - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _0813E574 - ldrh r0, [r5, 0x34] - ldrh r2, [r5, 0x30] - subs r0, r2 - strh r0, [r5, 0x34] - ldrh r1, [r5, 0x3C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813E550 - lsls r0, r2, 16 - cmp r0, 0 - beq _0813E550 - subs r0, r2, 0x1 - strh r0, [r5, 0x30] -_0813E550: - ldr r3, _0813E57C - ldrh r1, [r5, 0x34] - lsls r0, r1, 24 - lsrs r0, 23 - adds r0, r3 - ldrh r2, [r0] - adds r1, 0x40 - lsls r1, 24 - lsrs r1, 23 - adds r1, r3 - ldrh r1, [r1] - negs r3, r2 - lsls r3, 16 - lsrs r3, 16 - str r1, [sp] - movs r0, 0x10 - bl SetOamMatrix -_0813E574: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813E57C: .4byte gSineTable - thumb_func_end sub_813E4B8 - - thumb_func_start sub_813E580 -sub_813E580: @ 813E580 - push {r4-r7,lr} - movs r4, 0 - ldr r7, _0813E5D8 - lsls r6, r0, 16 - lsls r5, r1, 16 -_0813E58A: - ldr r0, _0813E5DC - asrs r1, r6, 16 - asrs r2, r5, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r7 - ldrb r1, [r2, 0x1] - movs r3, 0x4 - negs r3, r3 - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strb r1, [r2, 0x1] - ldrb r1, [r2, 0x3] - subs r3, 0x3B - adds r0, r3, 0 - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r2, 0x3] - strh r4, [r2, 0x2E] - movs r0, 0x20 - strh r0, [r2, 0x30] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _0813E58A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E5D8: .4byte gSprites -_0813E5DC: .4byte gSpriteTemplate_840B0B0 - thumb_func_end sub_813E580 - - thumb_func_start sub_813E5E0 -sub_813E5E0: @ 813E5E0 - push {r4,lr} - adds r3, r0, 0 - ldr r0, _0813E5F4 - ldrh r0, [r0] - cmp r0, 0 - beq _0813E5F8 - adds r0, r3, 0 - bl DestroySprite - b _0813E6B2 - .align 2, 0 -_0813E5F4: .4byte gUnknown_0203931A -_0813E5F8: - ldr r2, _0813E6B8 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r4, r12 - ldrb r2, [r4] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r1, [r3, 0x3C] - movs r2, 0x3C - ldrsh r0, [r3, r2] - cmp r0, 0xB - bgt _0813E630 - adds r0, r1, 0x1 - strh r0, [r3, 0x3C] -_0813E630: - ldrh r0, [r3, 0x3A] - adds r0, 0x4 - strh r0, [r3, 0x3A] - ldr r4, _0813E6BC - ldrh r0, [r3, 0x34] - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x3A - ldrsh r0, [r3, r2] - muls r0, r1 - cmp r0, 0 - bge _0813E652 - adds r0, 0xFF -_0813E652: - asrs r0, 8 - ldrh r1, [r3, 0x36] - adds r0, r1 - strh r0, [r3, 0x20] - movs r2, 0x34 - ldrsh r0, [r3, r2] - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r2, 0x3A - ldrsh r0, [r3, r2] - muls r0, r1 - cmp r0, 0 - bge _0813E674 - adds r0, 0xFF -_0813E674: - asrs r0, 8 - ldrh r1, [r3, 0x38] - adds r2, r0, r1 - strh r2, [r3, 0x22] - movs r1, 0x30 - ldrsh r0, [r3, r1] - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r4, 0 - ldrsh r1, [r0, r4] - movs r4, 0x3C - ldrsh r0, [r3, r4] - muls r0, r1 - cmp r0, 0 - bge _0813E696 - adds r0, 0xFF -_0813E696: - asrs r0, 8 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x30] - adds r0, 0x10 - strh r0, [r3, 0x30] - lsls r0, r2, 16 - asrs r0, 16 - movs r2, 0x32 - ldrsh r1, [r3, r2] - cmp r0, r1 - ble _0813E6B2 - adds r0, r3, 0 - bl DestroySprite -_0813E6B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813E6B8: .4byte gSprites -_0813E6BC: .4byte gSineTable - thumb_func_end sub_813E5E0 - - thumb_func_start sub_813E6C0 -sub_813E6C0: @ 813E6C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r4, r0, 0 - ldr r0, _0813E6E0 - ldrh r0, [r0] - cmp r0, 0 - beq _0813E6E4 - adds r0, r4, 0 - bl DestroySprite - b _0813E7A8 - .align 2, 0 -_0813E6E0: .4byte gUnknown_0203931A -_0813E6E4: - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r3, _0813E7B8 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r3 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0x1 - bne _0813E7A8 - ldrh r1, [r4, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0813E7A8 - ldrh r0, [r2, 0x20] - ldrh r7, [r4, 0x30] - adds r0, r7 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - ldrh r0, [r2, 0x22] - ldrh r1, [r4, 0x32] - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 - movs r5, 0 - mov r8, r3 - ldr r2, [sp] - lsls r2, 16 - mov r10, r2 - lsls r7, r6, 16 - mov r9, r7 -_0813E73A: - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x43 - ldrb r3, [r0] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _0813E7BC - mov r2, r10 - asrs r1, r2, 16 - mov r7, r9 - asrs r2, r7, 16 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0813E79E - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - add r3, r8 - ldrh r0, [r4, 0x2E] - strh r0, [r3, 0x2E] - ldrh r1, [r4, 0x3C] - lsls r1, 16 - asrs r1, 18 - movs r0, 0x7 - ands r1, r0 - lsls r1, 5 - lsls r0, r5, 2 - adds r0, r5 - lsls r2, r0, 4 - adds r0, r2 - adds r1, r0 - strh r1, [r3, 0x30] - ldrh r0, [r4, 0x34] - strh r0, [r3, 0x32] - movs r0, 0x68 - strh r0, [r3, 0x34] - mov r0, sp - ldrh r0, [r0] - strh r0, [r3, 0x36] - strh r6, [r3, 0x38] - movs r1, 0 - strh r1, [r3, 0x3A] -_0813E79E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0813E73A -_0813E7A8: - 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 -_0813E7B8: .4byte gSprites -_0813E7BC: .4byte gSpriteTemplate_840B0DC - thumb_func_end sub_813E6C0 - - thumb_func_start sub_813E7C0 -sub_813E7C0: @ 813E7C0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813E7F8 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0813E7F2 - ldr r1, _0813E7FC - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r2, 0 - strh r4, [r0, 0x2E] - ldr r1, _0813E800 - strh r1, [r0, 0x30] - strh r2, [r0, 0x32] - movs r1, 0x88 - strh r1, [r0, 0x34] -_0813E7F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813E7F8: .4byte gSpriteTemplate_840B0F4 -_0813E7FC: .4byte gSprites -_0813E800: .4byte 0x0000fff4 - thumb_func_end sub_813E7C0 - - thumb_func_start sub_813E804 -sub_813E804: @ 813E804 - push {r4-r7,lr} - adds r3, r0, 0 - ldr r0, _0813E818 - ldrh r0, [r0] - cmp r0, 0 - beq _0813E81C - adds r0, r3, 0 - bl DestroySprite - b _0813E928 - .align 2, 0 -_0813E818: .4byte gUnknown_0203931A -_0813E81C: - ldr r6, _0813E904 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r7, r12 - ldrb r2, [r7] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7] - ldrh r0, [r3, 0x3C] - adds r0, 0x1 - strh r0, [r3, 0x3C] - ldrh r1, [r3, 0x34] - movs r2, 0x34 - ldrsh r0, [r3, r2] - cmp r0, 0x27 - bgt _0813E85A - adds r0, r1, 0x2 - strh r0, [r3, 0x34] -_0813E85A: - movs r7, 0x2E - ldrsh r1, [r3, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x24] - ldrh r0, [r0, 0x20] - adds r2, r1, r0 - ldr r4, _0813E908 - ldrh r5, [r3, 0x30] - adds r0, r5, 0 - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r7, 0 - ldrsh r1, [r0, r7] - movs r7, 0x34 - ldrsh r0, [r3, r7] - muls r0, r1 - cmp r0, 0 - bge _0813E88A - adds r0, 0xFF -_0813E88A: - asrs r0, 8 - adds r0, r2, r0 - strh r0, [r3, 0x20] - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r2, r1, r0 - movs r1, 0x30 - ldrsh r0, [r3, r1] - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r7, 0 - ldrsh r1, [r0, r7] - movs r7, 0x34 - ldrsh r0, [r3, r7] - muls r0, r1 - cmp r0, 0 - bge _0813E8BE - ldr r1, _0813E90C - adds r0, r1 -_0813E8BE: - asrs r0, 9 - adds r0, r2, r0 - strh r0, [r3, 0x22] - adds r1, r5, 0x2 - strh r1, [r3, 0x30] - movs r2, 0x32 - ldrsh r0, [r3, r2] - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - movs r7, 0 - ldrsh r0, [r0, r7] - cmp r0, 0 - bge _0813E8DC - adds r0, 0x1F -_0813E8DC: - asrs r0, 5 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x32] - adds r0, 0x8 - strh r0, [r3, 0x32] - movs r0, 0xFF - ands r1, r0 - cmp r1, 0x7F - bgt _0813E910 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - b _0813E922 - .align 2, 0 -_0813E904: .4byte gSprites -_0813E908: .4byte gSineTable -_0813E90C: .4byte 0x000001ff -_0813E910: - movs r2, 0x2E - ldrsh r1, [r3, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x43 - ldrb r0, [r0] - adds r0, 0x1 -_0813E922: - adds r1, r3, 0 - adds r1, 0x43 - strb r0, [r1] -_0813E928: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_813E804 - - thumb_func_start sub_813E930 -sub_813E930: @ 813E930 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r7, _0813E978 - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r7 -_0813E942: - movs r0, 0x20 - ldrsh r1, [r5, r0] - movs r0, 0x22 - ldrsh r2, [r5, r0] - ldr r0, _0813E97C - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _0813E968 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r6, [r0, 0x2E] - lsls r1, r4, 5 - strh r1, [r0, 0x30] -_0813E968: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _0813E942 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E978: .4byte gSprites -_0813E97C: .4byte gSpriteTemplate_840B124 - thumb_func_end sub_813E930 - - thumb_func_start GetCurrentTrainerHillMapId -GetCurrentTrainerHillMapId: @ 813E980 - push {r4,r5,lr} - adds r3, r0, 0 - ldr r0, _0813E994 - ldrh r0, [r0] - cmp r0, 0 - beq _0813E998 - adds r0, r3, 0 - bl DestroySprite - b _0813EA50 - .align 2, 0 -_0813E994: .4byte gUnknown_0203931A -_0813E998: - ldr r2, _0813EA58 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r5, r12 - ldrb r2, [r5] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5] - ldrh r0, [r3, 0x3C] - adds r0, 0x1 - strh r0, [r3, 0x3C] - ldrh r0, [r3, 0x3A] - adds r4, r0, 0 - adds r4, 0x8 - strh r4, [r3, 0x3A] - ldr r2, _0813EA5C - ldrh r0, [r3, 0x34] - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r5, 0 - ldrsh r1, [r0, r5] - movs r5, 0x3A - ldrsh r0, [r3, r5] - muls r0, r1 - cmp r0, 0 - bge _0813E9EC - adds r0, 0xFF -_0813E9EC: - asrs r0, 8 - ldrh r1, [r3, 0x36] - adds r0, r1 - strh r0, [r3, 0x20] - movs r5, 0x34 - ldrsh r0, [r3, r5] - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r5, 0x3A - ldrsh r0, [r3, r5] - muls r0, r1 - cmp r0, 0 - bge _0813EA0E - adds r0, 0xFF -_0813EA0E: - asrs r0, 8 - ldrh r1, [r3, 0x38] - adds r0, r1 - strh r0, [r3, 0x22] - movs r2, 0x3A - ldrsh r0, [r3, r2] - cmp r0, 0 - bge _0813EA20 - adds r0, 0xF -_0813EA20: - asrs r0, 4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x9 - bls _0813EA2C - movs r0, 0x9 -_0813EA2C: - adds r1, r0, 0 - adds r1, 0x12 - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x3] - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0xA0 - ble _0813EA50 - adds r0, r3, 0 - bl DestroySprite -_0813EA50: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813EA58: .4byte gSprites -_0813EA5C: .4byte gSineTable - thumb_func_end GetCurrentTrainerHillMapId - - thumb_func_start sub_813EA60 -sub_813EA60: @ 813EA60 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - ldr r0, _0813EA7C - ldrh r0, [r0] - cmp r0, 0 - beq _0813EA80 - adds r0, r5, 0 - bl DestroySprite - b _0813EB32 - .align 2, 0 -_0813EA7C: .4byte gUnknown_0203931A -_0813EA80: - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0813EB40 - mov r9, r0 - movs r4, 0x2E - ldrsh r1, [r5, r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r1, r9 - adds r3, r0, r1 - movs r4, 0x2E - ldrsh r1, [r3, r4] - cmp r1, 0x1 - bne _0813EB32 - ldrh r0, [r5, 0x3C] - ands r1, r0 - lsls r0, r1, 16 - asrs r6, r0, 16 - cmp r6, 0 - bne _0813EB32 - ldrh r1, [r3, 0x20] - ldrh r0, [r5, 0x30] - adds r1, r0 - lsls r1, 16 - ldrh r2, [r3, 0x22] - ldrh r4, [r5, 0x32] - adds r2, r4 - lsls r2, 16 - ldr r0, _0813EB44 - lsrs r4, r1, 16 - mov r8, r4 - asrs r1, 16 - lsrs r7, r2, 16 - asrs r2, 16 - adds r3, 0x43 - ldrb r3, [r3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0813EB32 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r9 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x24 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1 - movs r3, 0x3 - bl CalcCenterToCornerVec - ldrh r0, [r5, 0x2E] - strh r0, [r4, 0x2E] - ldr r2, _0813EB48 - ldrh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 17 - movs r1, 0x7 - ands r0, r1 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r4, 0x34] - mov r0, r8 - strh r0, [r4, 0x36] - strh r7, [r4, 0x38] - strh r6, [r4, 0x3A] -_0813EB32: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813EB40: .4byte gSprites -_0813EB44: .4byte gSpriteTemplate_840B150 -_0813EB48: .4byte gUnknown_0840B168 - thumb_func_end sub_813EA60 - - thumb_func_start sub_813EB4C -sub_813EB4C: @ 813EB4C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813EBB0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0813EB80 - ldr r1, _0813EBB4 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0 - strh r4, [r0, 0x2E] - strh r1, [r0, 0x30] - movs r1, 0x8 - strh r1, [r0, 0x32] - movs r1, 0x18 - strh r1, [r0, 0x34] -_0813EB80: - movs r4, 0 - ldr r5, _0813EBB8 -_0813EB84: - adds r0, r4, 0 - adds r0, 0x12 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 1 - adds r1, r5 - ldrh r1, [r1] - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _0813EB84 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813EBB0: .4byte gSpriteTemplate_840B170 -_0813EBB4: .4byte gSprites -_0813EBB8: .4byte gUnknown_0840B188 - thumb_func_end sub_813EB4C - - thumb_func_start sub_813EBBC -sub_813EBBC: @ 813EBBC - push {r4,lr} - adds r3, r0, 0 - ldr r0, _0813EBD0 - ldrh r0, [r0] - cmp r0, 0 - beq _0813EBD4 - adds r0, r3, 0 - bl DestroySprite - b _0813EC80 - .align 2, 0 -_0813EBD0: .4byte gUnknown_0203931A -_0813EBD4: - ldr r2, _0813EC88 - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r4, r12 - ldrb r2, [r4] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4] - ldrh r0, [r3, 0x3C] - adds r0, 0x1 - strh r0, [r3, 0x3C] - ldrh r0, [r3, 0x3A] - adds r0, 0x8 - strh r0, [r3, 0x3A] - ldr r2, _0813EC8C - ldrh r0, [r3, 0x34] - adds r0, 0x40 - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r4, 0 - ldrsh r1, [r0, r4] - movs r4, 0x3A - ldrsh r0, [r3, r4] - muls r0, r1 - cmp r0, 0 - bge _0813EC26 - adds r0, 0xFF -_0813EC26: - asrs r0, 8 - ldrh r1, [r3, 0x36] - adds r0, r1 - strh r0, [r3, 0x20] - movs r4, 0x34 - ldrsh r0, [r3, r4] - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r4, 0 - ldrsh r1, [r0, r4] - movs r4, 0x3A - ldrsh r0, [r3, r4] - muls r0, r1 - cmp r0, 0 - bge _0813EC48 - adds r0, 0xFF -_0813EC48: - asrs r0, 8 - ldrh r4, [r3, 0x38] - adds r1, r0, r4 - strh r1, [r3, 0x22] - movs r4, 0x30 - ldrsh r0, [r3, r4] - lsls r0, 24 - lsrs r0, 23 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _0813EC64 - adds r0, 0x3F -_0813EC64: - asrs r0, 6 - strh r0, [r3, 0x26] - ldrh r0, [r3, 0x30] - adds r0, 0x10 - strh r0, [r3, 0x30] - lsls r0, r1, 16 - asrs r0, 16 - movs r4, 0x32 - ldrsh r1, [r3, r4] - cmp r0, r1 - bge _0813EC80 - adds r0, r3, 0 - bl DestroySprite -_0813EC80: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813EC88: .4byte gSprites -_0813EC8C: .4byte gSineTable - thumb_func_end sub_813EBBC - - thumb_func_start sub_813EC90 -sub_813EC90: @ 813EC90 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, _0813ECAC - ldrh r0, [r0] - cmp r0, 0 - beq _0813ECB0 - adds r0, r5, 0 - bl DestroySprite - b _0813EDA0 - .align 2, 0 -_0813ECAC: .4byte gUnknown_0203931A -_0813ECB0: - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0813EDB0 - mov r9, r0 - movs r2, 0x2E - ldrsh r1, [r5, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - mov r4, r9 - adds r3, r0, r4 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0x1 - bne _0813ED74 - ldrh r0, [r5, 0x3C] - ands r1, r0 - lsls r0, r1, 16 - asrs r6, r0, 16 - cmp r6, 0 - bne _0813ED66 - ldrh r1, [r3, 0x20] - ldrh r2, [r5, 0x30] - adds r1, r2 - lsls r1, 16 - ldrh r2, [r3, 0x22] - ldrh r4, [r5, 0x32] - adds r2, r4 - lsls r2, 16 - ldr r0, _0813EDB4 - lsrs r4, r1, 16 - mov r8, r4 - asrs r1, 16 - lsrs r7, r2, 16 - asrs r2, 16 - adds r3, 0x43 - ldrb r3, [r3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0813ED66 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r9 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x22 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x1 - movs r3, 0x3 - bl CalcCenterToCornerVec - ldrh r0, [r5, 0x2E] - strh r0, [r4, 0x2E] - ldrh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 18 - movs r1, 0x7 - ands r0, r1 - lsls r0, 5 - strh r0, [r4, 0x30] - ldrh r0, [r5, 0x34] - strh r0, [r4, 0x32] - movs r0, 0xE8 - strh r0, [r4, 0x34] - mov r0, r8 - strh r0, [r4, 0x36] - strh r7, [r4, 0x38] - strh r6, [r4, 0x3A] -_0813ED66: - ldrh r1, [r5, 0x3A] - movs r2, 0x3A - ldrsh r0, [r5, r2] - cmp r0, 0x6F - bgt _0813ED74 - adds r0, r1, 0x4 - strh r0, [r5, 0x3A] -_0813ED74: - ldr r1, _0813EDB8 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - movs r4, 0 - ldrsh r0, [r0, r4] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x11 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix -_0813EDA0: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813EDB0: .4byte gSprites -_0813EDB4: .4byte gSpriteTemplate_840B1B0 -_0813EDB8: .4byte gSineTable - thumb_func_end sub_813EC90 - - thumb_func_start sub_813EDBC -sub_813EDBC: @ 813EDBC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813EDF4 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _0813EDEE - ldr r1, _0813EDF8 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0 - strh r4, [r0, 0x2E] - strh r1, [r0, 0x30] - movs r1, 0xC - strh r1, [r0, 0x32] - movs r1, 0x18 - strh r1, [r0, 0x34] -_0813EDEE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813EDF4: .4byte gSpriteTemplate_840B1C8 -_0813EDF8: .4byte gSprites - thumb_func_end sub_813EDBC - - thumb_func_start sub_813EDFC -sub_813EDFC: @ 813EDFC - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0813EE12 - adds r4, r5, 0 - adds r4, 0x3E - cmp r0, 0x1 - beq _0813EE4A -_0813EE12: - adds r4, r5, 0 - adds r4, 0x3E - ldrb r1, [r4] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r5, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r5, 0x1] - ldrb r1, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x24 - orrs r0, r1 - strb r0, [r5, 0x3] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x3 - bl CalcCenterToCornerVec - movs r0, 0 - strh r0, [r5, 0x30] - movs r0, 0x1 - strh r0, [r5, 0x2E] -_0813EE4A: - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813EE62 - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - b _0813EE7A -_0813EE62: - ldrb r0, [r4] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - ldrh r1, [r5, 0x30] - movs r2, 0x30 - ldrsh r0, [r5, r2] - cmp r0, 0x3F - bgt _0813EE7A - adds r0, r1, 0x1 - strh r0, [r5, 0x30] -_0813EE7A: - ldr r1, _0813EEB0 - ldrh r0, [r5, 0x30] - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - movs r2, 0x80 - lsls r2, 1 - adds r1, r2, 0 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x12 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813EEB0: .4byte gSineTable - thumb_func_end sub_813EDFC - - thumb_func_start sub_813EEB4 -sub_813EEB4: @ 813EEB4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0 - bl SetVBlankCallback - ldr r2, _0813EED8 - ldr r0, _0813EEDC - adds r1, r2, r0 - movs r0, 0 - strh r0, [r1] - str r4, [r2] - ldr r0, _0813EEE0 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813EED8: .4byte 0x02000000 -_0813EEDC: .4byte 0x00000888 -_0813EEE0: .4byte sub_813EEE4 - thumb_func_end sub_813EEB4 - - thumb_func_start sub_813EEE4 -sub_813EEE4: @ 813EEE4 - push {r4,lr} - sub sp, 0x4 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x10 - 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] - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r0, _0813EF98 - movs r1, 0 - bl sub_80FA8EC - movs r0, 0 - movs r1, 0 - bl sub_80FBCF0 - movs r0, 0x1 - movs r1, 0x1 - bl sub_80FBB3C - ldr r4, _0813EF9C - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - bl MenuZeroFillScreen - ldr r1, _0813EFA0 - movs r2, 0xF8 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - movs r0, 0x15 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x3 - bl MenuDrawTextWindow - ldr r0, _0813EFA4 - movs r1, 0x16 - movs r2, 0x1 - movs r3, 0x38 - bl sub_8072BD8 - movs r0, 0x10 - movs r1, 0x10 - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - bl sub_813F0C8 - ldr r0, _0813EFA8 - bl SetMainCallback2 - ldr r0, _0813EFAC - bl SetVBlankCallback - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813EF98: .4byte 0x02000008 -_0813EF9C: .4byte gWindowConfig_81E709C -_0813EFA0: .4byte REG_BG0CNT -_0813EFA4: .4byte gOtherText_Hoenn -_0813EFA8: .4byte sub_813EFC4 -_0813EFAC: .4byte sub_813EFB0 - thumb_func_end sub_813EEE4 - - thumb_func_start sub_813EFB0 -sub_813EFB0: @ 813EFB0 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_813EFB0 - - thumb_func_start sub_813EFC4 -sub_813EFC4: @ 813EFC4 - push {lr} - bl sub_813EFDC - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_813EFC4 - - thumb_func_start sub_813EFDC -sub_813EFDC: @ 813EFDC - push {lr} - sub sp, 0x4 - ldr r1, _0813EFF8 - ldr r2, _0813EFFC - adds r0, r1, r2 - ldrh r0, [r0] - adds r2, r1, 0 - cmp r0, 0x4 - bhi _0813F0B8 - lsls r0, 2 - ldr r1, _0813F000 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813EFF8: .4byte 0x02000000 -_0813EFFC: .4byte 0x00000888 -_0813F000: .4byte _0813F004 - .align 2, 0 -_0813F004: - .4byte _0813F018 - .4byte _0813F030 - .4byte _0813F04C - .4byte _0813F078 - .4byte _0813F0A0 -_0813F018: - movs r1, 0x80 - lsls r1, 19 - ldr r3, _0813F028 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, _0813F02C - adds r1, r2, r0 - b _0813F08E - .align 2, 0 -_0813F028: .4byte 0x00001541 -_0813F02C: .4byte 0x00000888 -_0813F030: - ldr r0, _0813F044 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0813F0B8 - ldr r3, _0813F048 - adds r1, r2, r3 - b _0813F08E - .align 2, 0 -_0813F044: .4byte gPaletteFade -_0813F048: .4byte 0x00000888 -_0813F04C: - bl sub_80FAB60 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0813F05E - bl sub_813F0C8 - b _0813F0B8 -_0813F05E: - cmp r0, 0x3 - blt _0813F0B8 - cmp r0, 0x5 - bgt _0813F0B8 - ldr r1, _0813F070 - ldr r0, _0813F074 - adds r1, r0 - b _0813F08E - .align 2, 0 -_0813F070: .4byte 0x02000000 -_0813F074: .4byte 0x00000888 -_0813F078: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0813F098 - ldr r2, _0813F09C - adds r1, r2 -_0813F08E: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _0813F0B8 - .align 2, 0 -_0813F098: .4byte 0x02000000 -_0813F09C: .4byte 0x00000888 -_0813F0A0: - ldr r0, _0813F0C0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0813F0B8 - bl sub_80FAB10 - ldr r0, _0813F0C4 - ldr r0, [r0] - bl SetMainCallback2 -_0813F0B8: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0813F0C0: .4byte gPaletteFade -_0813F0C4: .4byte 0x02000000 - thumb_func_end sub_813EFDC - - thumb_func_start sub_813F0C8 -sub_813F0C8: @ 813F0C8 - push {lr} - movs r0, 0x11 - movs r1, 0x11 - movs r2, 0x1C - movs r3, 0x12 - bl MenuFillWindowRectWithBlankTile - ldr r1, _0813F0F0 - ldrb r0, [r1, 0x1E] - cmp r0, 0 - beq _0813F0EA - adds r0, r1, 0 - adds r0, 0x8 - movs r1, 0x11 - movs r2, 0x11 - bl MenuPrint -_0813F0EA: - pop {r0} - bx r0 - .align 2, 0 -_0813F0F0: .4byte 0x02000000 - thumb_func_end sub_813F0C8 - - thumb_func_start unref_sub_813F0F4 -unref_sub_813F0F4: @ 813F0F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] - ldr r0, _0813F2AC - ldrb r3, [r0] - ldr r0, _0813F2B0 - movs r1, 0 - strh r1, [r0] - ldr r0, _0813F2B4 - strh r1, [r0] - ldr r1, _0813F2B8 - ldr r2, _0813F2BC - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r4, _0813F2C0 - adds r0, r4, 0 - strh r0, [r1] - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r4, 0x80 - lsls r4, 8 - adds r1, r4, 0 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0813F2C4 - ldr r2, _0813F2C8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r4, 0x80 - lsls r4, 5 - adds r0, r4, 0 - strh r0, [r1] - ldr r2, _0813F2CC - ldrb r1, [r2] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r2, 0x1] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - mov r9, r0 - ands r0, r1 - movs r1, 0x4 - mov r8, r1 - mov r4, r8 - orrs r0, r4 - strb r0, [r2] - ldr r0, _0813F2D0 - adds r3, r0 - ldrb r0, [r3] - ldr r1, _0813F2D4 - mov r10, r1 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - add r4, r10 - ldrb r7, [r4, 0x6] - ldrh r6, [r4, 0x38] - lsls r6, 24 - lsrs r6, 24 - ldr r0, _0813F2D8 - bl object_new_hidden_with_callback - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - ldr r0, _0813F2D8 - bl object_new_hidden_with_callback - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x18] - ldrb r1, [r4, 0x5] - mov r0, r9 - ands r0, r1 - mov r2, r8 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r5, r7, 4 - adds r5, r7 - lsls r5, 2 - add r5, r10 - ldrb r1, [r5, 0x5] - mov r0, r9 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - add r1, r10 - ldrb r2, [r1, 0x5] - mov r0, r9 - ands r0, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r0, [sp, 0x14] - lsls r6, r0, 4 - adds r6, r0 - lsls r6, 2 - mov r1, r10 - adds r7, r6, r1 - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0x44 - bl memcpy - ldr r2, [sp, 0x18] - lsls r4, r2, 4 - adds r4, r2 - lsls r4, 2 - adds r0, r4, 0 - add r0, r10 - mov r8, r0 - adds r1, r5, 0 - movs r2, 0x44 - bl memcpy - ldrb r1, [r7, 0x1] - mov r0, r9 - ands r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r7, 0x1] - mov r2, r8 - ldrb r0, [r2, 0x1] - mov r2, r9 - ands r2, r0 - orrs r2, r1 - mov r0, r8 - strb r2, [r0, 0x1] - movs r1, 0x1C - add r10, r1 - add r6, r10 - ldr r2, _0813F2D8 - str r2, [r6] - add r4, r10 - str r2, [r4] - mov r0, sp - bl sub_8078914 - ldr r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0xC] - ldr r2, _0813F2DC - add r0, sp, 0xC - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, _0813F2E0 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _0813F2E4 - bl LZDecompressVram - ldr r0, _0813F2E8 - ldr r1, [sp] - bl LZDecompressVram - ldr r0, _0813F2EC - mov r1, sp - ldrb r1, [r1, 0x8] - lsls r1, 4 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r1, _0813F2F0 - ldrh r0, [r7, 0x20] - negs r0, r0 - adds r0, 0x20 - strh r0, [r1] - ldr r1, _0813F2F4 - ldrh r0, [r7, 0x22] - negs r0, r0 - subs r0, 0x20 - strh r0, [r1] - ldr r1, _0813F2F8 - ldr r4, [sp, 0x10] - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA0 - lsls r1, 2 - strh r1, [r0, 0xA] - mov r1, sp - ldrh r1, [r1, 0x14] - strh r1, [r0, 0x8] - mov r2, sp - ldrh r2, [r2, 0x18] - strh r2, [r0, 0xC] - ldr r1, _0813F2FC - str r1, [r0] - 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 -_0813F2AC: .4byte gUnknown_0202F7C8 -_0813F2B0: .4byte gUnknown_030042C4 -_0813F2B4: .4byte gUnknown_03004240 -_0813F2B8: .4byte REG_WININ -_0813F2BC: .4byte 0x00003f3f -_0813F2C0: .4byte 0x00003f3d -_0813F2C4: .4byte REG_BLDCNT -_0813F2C8: .4byte 0x00003f42 -_0813F2CC: .4byte REG_BG1CNT -_0813F2D0: .4byte gUnknown_03004340 -_0813F2D4: .4byte gSprites -_0813F2D8: .4byte SpriteCallbackDummy -_0813F2DC: .4byte 0x040000d4 -_0813F2E0: .4byte 0x85000400 -_0813F2E4: .4byte gUnknown_08D2EE48 -_0813F2E8: .4byte gUnknown_08D2EDFC -_0813F2EC: .4byte gUnknown_08D2E150 -_0813F2F0: .4byte gUnknown_030042C0 -_0813F2F4: .4byte gUnknown_030041B4 -_0813F2F8: .4byte gTasks -_0813F2FC: .4byte sub_813F300 - thumb_func_end unref_sub_813F0F4 - - thumb_func_start sub_813F300 -sub_813F300: @ 813F300 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0813F34C - ldrb r0, [r0] - mov r9, r0 - ldr r1, _0813F350 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0xA] - ldrh r0, [r4, 0x22] - adds r1, r0 - movs r3, 0 - strh r1, [r4, 0x22] - ldr r2, _0813F354 - lsls r0, r1, 16 - lsrs r0, 24 - ldrh r5, [r2] - adds r0, r5 - strh r0, [r2] - movs r0, 0xFF - ands r1, r0 - strh r1, [r4, 0x22] - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0813F394 - cmp r0, 0x1 - bgt _0813F358 - cmp r0, 0 - beq _0813F35E - b _0813F4B2 - .align 2, 0 -_0813F34C: .4byte gUnknown_0202F7C8 -_0813F350: .4byte gTasks -_0813F354: .4byte gUnknown_030041B4 -_0813F358: - cmp r0, 0x2 - beq _0813F3AC - b _0813F4B2 -_0813F35E: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bgt _0813F36E - b _0813F4B2 -_0813F36E: - strh r3, [r4, 0x1E] - ldrh r1, [r4, 0x20] - adds r1, 0x1 - strh r1, [r4, 0x20] - ldr r2, _0813F390 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r2] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x8 - beq _0813F38C - b _0813F4B2 -_0813F38C: - b _0813F3A4 - .align 2, 0 -_0813F390: .4byte REG_BLDALPHA -_0813F394: - ldrh r0, [r4, 0x1C] - adds r0, 0x1 - strh r0, [r4, 0x1C] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - beq _0813F3A4 - b _0813F4B2 -_0813F3A4: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _0813F4B2 -_0813F3AC: - ldrh r0, [r4, 0x1E] - adds r1, r0, 0x1 - strh r1, [r4, 0x1E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _0813F4B2 - strh r3, [r4, 0x1E] - ldrh r1, [r4, 0x20] - subs r1, 0x1 - strh r1, [r4, 0x20] - ldr r6, _0813F4C0 - movs r0, 0x10 - subs r0, r1 - lsls r0, 8 - orrs r1, r0 - strh r1, [r6] - movs r3, 0x20 - ldrsh r5, [r4, r3] - cmp r5, 0 - bne _0813F4B2 - movs r0, 0 - bl sub_8076464 - ldr r0, _0813F4C4 - strh r5, [r0] - ldr r0, _0813F4C8 - strh r5, [r0] - ldr r0, _0813F4CC - ldr r2, _0813F4D0 - adds r1, r2, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _0813F406 - ldr r2, _0813F4D4 - ldrb r1, [r2] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - strb r0, [r2] -_0813F406: - 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, _0813F4D8 - strh r5, [r0] - strh r5, [r6] - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0813F4DC - mov r8, r1 - add r0, r8 - bl DestroySprite - movs r2, 0xC - ldrsh r1, [r4, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - bl DestroySprite - mov r0, sp - bl sub_8078914 - ldr r2, [sp, 0x4] - str r5, [sp, 0xC] - ldr r1, _0813F4E0 - add r0, sp, 0xC - str r0, [r1] - str r2, [r1, 0x4] - ldr r0, _0813F4E4 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldr r2, _0813F4D4 - ldrb r1, [r2, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x1] - ldr r0, _0813F4E8 - add r0, r9 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r6, [r1, 0x6] - ldrh r4, [r1, 0x38] - lsls r4, 24 - lsrs r4, 24 - ldrb r3, [r1, 0x5] - movs r2, 0xD - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - movs r5, 0x4 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - add r1, r8 - ldrb r3, [r1, 0x5] - adds r0, r2, 0 - ands r0, r3 - orrs r0, r5 - strb r0, [r1, 0x5] - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0, 0x5] - ands r2, r1 - orrs r2, r5 - strb r2, [r0, 0x5] - adds r0, r7, 0 - bl move_anim_task_del -_0813F4B2: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813F4C0: .4byte REG_BLDALPHA -_0813F4C4: .4byte gUnknown_030042C4 -_0813F4C8: .4byte gUnknown_03004240 -_0813F4CC: .4byte REG_WININ -_0813F4D0: .4byte 0x00003f3f -_0813F4D4: .4byte REG_BG1CNT -_0813F4D8: .4byte REG_BLDCNT -_0813F4DC: .4byte gSprites -_0813F4E0: .4byte 0x040000d4 -_0813F4E4: .4byte 0x85000200 -_0813F4E8: .4byte gUnknown_03004340 - thumb_func_end sub_813F300 - - thumb_func_start sub_813F4EC -sub_813F4EC: @ 813F4EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldr r1, _0813F5D0 - ldr r0, _0813F5D4 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - ldr r7, _0813F5D8 - lsls r6, r0, 4 - adds r6, r0 - lsls r6, 2 - adds r6, r7 - ldrb r0, [r6, 0x6] - str r0, [sp, 0x4] - ldrh r4, [r6, 0x38] - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813F5DC - bl AllocSpritePalette - mov r8, r0 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r0, _0813F5E0 - bl AllocSpritePalette - mov r9, r0 - mov r2, r9 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - ldrb r0, [r6, 0x5] - lsrs r0, 4 - lsls r0, 4 - movs r1, 0x80 - lsls r1, 1 - adds r3, r1, 0 - orrs r0, r3 - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - adds r5, r7 - ldrb r4, [r5, 0x5] - lsrs r4, 4 - lsls r4, 4 - orrs r4, r3 - lsls r0, 1 - ldr r2, _0813F5E4 - mov r10, r2 - add r0, r10 - mov r1, r8 - lsls r1, 4 - mov r8, r1 - adds r1, r3, r1 - movs r2, 0x20 - str r3, [sp, 0x8] - bl LoadPalette - lsls r4, 1 - add r4, r10 - mov r2, r9 - lsls r2, 4 - mov r9, r2 - ldr r3, [sp, 0x8] - add r3, r9 - adds r0, r4, 0 - adds r1, r3, 0 - movs r2, 0x20 - bl LoadPalette - ldrb r1, [r6, 0x5] - movs r2, 0xF - adds r0, r2, 0 - ands r0, r1 - mov r3, r8 - orrs r0, r3 - strb r0, [r6, 0x5] - ldr r0, [sp, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r3, [r1, 0x5] - adds r0, r2, 0 - ands r0, r3 - mov r3, r8 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r5, 0x5] - ands r2, r0 - mov r0, r9 - orrs r2, r0 - strb r2, [r5, 0x5] - ldr r0, [sp] - bl move_anim_task_del - 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 -_0813F5D0: .4byte gUnknown_03004340 -_0813F5D4: .4byte gUnknown_0202F7C8 -_0813F5D8: .4byte gSprites -_0813F5DC: .4byte 0x0000d709 -_0813F5E0: .4byte 0x0000d70a -_0813F5E4: .4byte gPlttBufferUnfaded - thumb_func_end sub_813F4EC - - thumb_func_start sub_813F5E8 -sub_813F5E8: @ 813F5E8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _0813F684 - ldr r0, _0813F688 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - ldr r1, _0813F68C - mov r9, r1 - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - add r5, r9 - ldrb r0, [r5, 0x6] - mov r10, r0 - ldrh r6, [r5, 0x38] - lsls r6, 24 - lsrs r6, 24 - ldr r0, _0813F690 - bl FreeSpritePaletteByTag - ldr r0, _0813F694 - bl FreeSpritePaletteByTag - ldr r0, _0813F698 - bl IndexOfSpritePaletteTag - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813F69C - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsls r4, 4 - ldrb r2, [r5, 0x5] - movs r3, 0xF - adds r1, r3, 0 - ands r1, r2 - orrs r1, r4 - strb r1, [r5, 0x5] - mov r1, r10 - lsls r2, r1, 4 - add r2, r10 - lsls r2, 2 - add r2, r9 - ldrb r5, [r2, 0x5] - adds r1, r3, 0 - ands r1, r5 - orrs r1, r4 - strb r1, [r2, 0x5] - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - add r1, r9 - lsrs r0, 20 - ldrb r2, [r1, 0x5] - ands r3, r2 - orrs r3, r0 - strb r3, [r1, 0x5] - mov r0, r8 - bl move_anim_task_del - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813F684: .4byte gUnknown_03004340 -_0813F688: .4byte gUnknown_0202F7C8 -_0813F68C: .4byte gSprites -_0813F690: .4byte 0x0000d709 -_0813F694: .4byte 0x0000d70a -_0813F698: .4byte 0x0000d6ff -_0813F69C: .4byte 0x0000d704 - thumb_func_end sub_813F5E8 - - thumb_func_start sub_813F6A0 -sub_813F6A0: @ 813F6A0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813F6C0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _0813F6C4 - ldrh r0, [r2] - strh r0, [r1, 0x1C] - ldrh r0, [r2, 0x2] - strh r0, [r1, 0x1E] - ldr r0, _0813F6C8 - str r0, [r1] - bx lr - .align 2, 0 -_0813F6C0: .4byte gTasks -_0813F6C4: .4byte gUnknown_03004B00 -_0813F6C8: .4byte sub_813F6CC - thumb_func_end sub_813F6A0 - - thumb_func_start sub_813F6CC -sub_813F6CC: @ 813F6CC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0813F718 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r6, 0 - adds r1, r0, 0x1 - strh r1, [r4, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r2, 0x1E - ldrsh r1, [r4, r2] - cmp r0, r1 - blt _0813F78C - strh r6, [r4, 0x8] - ldr r0, _0813F71C - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r2, r0, 24 - movs r3, 0x1C - ldrsh r0, [r4, r3] - movs r1, 0x2 - cmp r0, 0 - bne _0813F70A - movs r1, 0x6 -_0813F70A: - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _0813F720 - cmp r0, 0x1 - beq _0813F75C - b _0813F78C - .align 2, 0 -_0813F718: .4byte gTasks -_0813F71C: .4byte 0x0000d709 -_0813F720: - ldrh r0, [r4, 0xC] - adds r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - ble _0813F732 - movs r0, 0x10 - strh r0, [r4, 0xC] -_0813F732: - lsls r0, r2, 4 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2 - orrs r0, r1 - ldrb r2, [r4, 0xC] - ldr r3, _0813F758 - movs r1, 0x1 - bl BlendPalette - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0x10 - bne _0813F78C - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - b _0813F78C - .align 2, 0 -_0813F758: .4byte 0x00007f74 -_0813F75C: - ldrh r0, [r4, 0xC] - subs r0, 0x2 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bge _0813F76A - strh r6, [r4, 0xC] -_0813F76A: - lsls r0, r2, 4 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2 - orrs r0, r1 - ldrb r2, [r4, 0xC] - ldr r3, _0813F794 - movs r1, 0x1 - bl BlendPalette - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _0813F78C - adds r0, r5, 0 - bl move_anim_task_del -_0813F78C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813F794: .4byte 0x00007f74 - thumb_func_end sub_813F6CC - - thumb_func_start sub_813F798 -sub_813F798: @ 813F798 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0813F7C4 - ldr r0, _0813F7C8 - ldrb r0, [r0] - adds r0, r1 - ldrb r5, [r0] - ldr r1, _0813F7CC - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0813F7E6 - cmp r0, 0x1 - bgt _0813F7D0 - cmp r0, 0 - beq _0813F7D6 - b _0813F838 - .align 2, 0 -_0813F7C4: .4byte gUnknown_02024BE0 -_0813F7C8: .4byte gUnknown_0202F7C8 -_0813F7CC: .4byte gTasks -_0813F7D0: - cmp r0, 0x2 - beq _0813F818 - b _0813F838 -_0813F7D6: - adds r0, r5, 0 - movs r1, 0 - bl sub_8078E70 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x1C] - b _0813F80A -_0813F7E6: - ldrh r0, [r4, 0x1C] - adds r0, 0x30 - strh r0, [r4, 0x1C] - movs r0, 0x1C - ldrsh r2, [r4, r0] - adds r0, r5, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - adds r0, r5, 0 - bl sub_8079A64 - movs r0, 0x1C - ldrsh r1, [r4, r0] - ldr r0, _0813F814 - cmp r1, r0 - ble _0813F838 -_0813F80A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0813F838 - .align 2, 0 -_0813F814: .4byte 0x000002cf -_0813F818: - adds r0, r5, 0 - bl sub_8078F40 - ldr r1, _0813F840 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r6, 0 - bl move_anim_task_del -_0813F838: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813F840: .4byte gSprites - thumb_func_end sub_813F798 - - thumb_func_start sub_813F844 -sub_813F844: @ 813F844 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0813F87C - ldr r4, _0813F880 - ldrb r0, [r4] - adds r1, r0, r1 - ldrb r1, [r1] - mov r9, r1 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0813F88C - ldr r1, _0813F884 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0813F888 - b _0813F89C - .align 2, 0 -_0813F87C: .4byte gUnknown_02024BE0 -_0813F880: .4byte gUnknown_0202F7C8 -_0813F884: .4byte gUnknown_02024A6A -_0813F888: .4byte gPlayerParty -_0813F88C: - ldr r1, _0813F8CC - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0813F8D0 -_0813F89C: - adds r0, r1 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r2, _0813F8D4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r6, r0, r2 - movs r0, 0x8 - ldrsh r7, [r6, r0] - cmp r7, 0 - beq _0813F8D8 - cmp r7, 0x1 - beq _0813F958 - b _0813F982 - .align 2, 0 -_0813F8CC: .4byte gUnknown_02024A6A -_0813F8D0: .4byte gEnemyParty -_0813F8D4: .4byte gTasks -_0813F8D8: - ldr r5, _0813F950 - ldrb r0, [r5] - movs r1, 0 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8077ABC - adds r1, r0, 0 - lsls r1, 24 - ldr r2, _0813F954 - mov r3, r9 - lsls r0, r3, 4 - add r0, r9 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r0, 0x43 - ldrb r3, [r0] - movs r0, 0x80 - lsls r0, 22 - adds r1, r0 - lsrs r1, 24 - mov r0, r8 - str r0, [sp] - adds r0, r4, 0 - bl sub_814086C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x1C] - str r7, [sp] - str r7, [sp, 0x4] - str r7, [sp, 0x8] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80791A8 - adds r2, r0, 0 - ldrb r1, [r5] - movs r0, 0 - mov r3, r8 - bl sub_8141314 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x1E] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _0813F982 - .align 2, 0 -_0813F950: .4byte gUnknown_0202F7C8 -_0813F954: .4byte gSprites -_0813F958: - movs r1, 0x1C - ldrsh r0, [r6, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _0813F982 - movs r3, 0x1E - ldrsh r0, [r6, r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _0813F982 - adds r0, r5, 0 - bl move_anim_task_del -_0813F982: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_813F844 - - thumb_func_start sub_813F990 -sub_813F990: @ 813F990 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813F9B4 - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r0, 24 - bl sub_80478DC - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813F9B4: .4byte gUnknown_02024C04 - thumb_func_end sub_813F990 - - thumb_func_start sub_813F9B8 -sub_813F9B8: @ 813F9B8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813F9DC - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r0, 24 - bl sub_804794C - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813F9DC: .4byte gUnknown_02024C04 - thumb_func_end sub_813F9B8 - - thumb_func_start sub_813F9E0 -sub_813F9E0: @ 813F9E0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0813F9F4 - ldrb r0, [r0, 0x8] - cmp r0, 0x5 - bne _0813FA00 - ldr r1, _0813F9F8 - ldr r0, _0813F9FC - b _0813FA04 - .align 2, 0 -_0813F9F4: .4byte 0x02017840 -_0813F9F8: .4byte gUnknown_03004B00 -_0813F9FC: .4byte 0x0000ffff -_0813FA00: - ldr r1, _0813FA10 - movs r0, 0 -_0813FA04: - strh r0, [r1, 0xE] - adds r0, r2, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_0813FA10: .4byte gUnknown_03004B00 - thumb_func_end sub_813F9E0 - - thumb_func_start ball_number_to_ball_processing_index -ball_number_to_ball_processing_index: @ 813FA14 - push {lr} - lsls r0, 16 - lsrs r0, 16 - subs r0, 0x1 - cmp r0, 0xB - bhi _0813FA8C - lsls r0, 2 - ldr r1, _0813FA2C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0813FA2C: .4byte _0813FA30 - .align 2, 0 -_0813FA30: - .4byte _0813FA60 - .4byte _0813FA64 - .4byte _0813FA68 - .4byte _0813FA8C - .4byte _0813FA6C - .4byte _0813FA70 - .4byte _0813FA74 - .4byte _0813FA78 - .4byte _0813FA7C - .4byte _0813FA80 - .4byte _0813FA84 - .4byte _0813FA88 -_0813FA60: - movs r0, 0x4 - b _0813FA8E -_0813FA64: - movs r0, 0x3 - b _0813FA8E -_0813FA68: - movs r0, 0x1 - b _0813FA8E -_0813FA6C: - movs r0, 0x2 - b _0813FA8E -_0813FA70: - movs r0, 0x5 - b _0813FA8E -_0813FA74: - movs r0, 0x6 - b _0813FA8E -_0813FA78: - movs r0, 0x7 - b _0813FA8E -_0813FA7C: - movs r0, 0x8 - b _0813FA8E -_0813FA80: - movs r0, 0x9 - b _0813FA8E -_0813FA84: - movs r0, 0xA - b _0813FA8E -_0813FA88: - movs r0, 0xB - b _0813FA8E -_0813FA8C: - movs r0, 0 -_0813FA8E: - pop {r1} - bx r1 - thumb_func_end ball_number_to_ball_processing_index - - thumb_func_start sub_813FA94 -sub_813FA94: @ 813FA94 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - mov r10, r0 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _0813FB58 - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - ldr r1, _0813FB5C - adds r0, r1 - movs r1, 0x20 - movs r2, 0x50 - movs r3, 0x1D - bl CreateSprite - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _0813FB60 - mov r9, r1 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r6, r4, r1 - movs r0, 0x22 - strh r0, [r6, 0x2E] - ldr r2, _0813FB64 - mov r8, r2 - ldrb r0, [r2] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x30] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - strh r0, [r6, 0x32] - mov r0, r9 - adds r0, 0x1C - adds r4, r0 - ldr r0, _0813FB68 - str r0, [r4] - ldr r3, _0813FB6C - ldr r1, _0813FB70 - mov r2, r8 - ldrb r0, [r2] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - lsls r1, 1 - ldrb r2, [r3, 0x9] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x9] - ldr r1, _0813FB74 - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r1, _0813FB78 - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813FB58: .4byte gUnknown_02024C04 -_0813FB5C: .4byte gSpriteTemplate_820AAB4 -_0813FB60: .4byte gSprites -_0813FB64: .4byte gUnknown_0202F7C9 -_0813FB68: .4byte sub_813FD90 -_0813FB6C: .4byte 0x02017840 -_0813FB70: .4byte gUnknown_02024BE0 -_0813FB74: .4byte gTasks -_0813FB78: .4byte sub_813FB7C - thumb_func_end sub_813FA94 - - thumb_func_start sub_813FB7C -sub_813FB7C: @ 813FB7C - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _0813FBAC - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x8] - ldr r2, _0813FBB0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x2E] - ldr r0, _0813FBB4 - cmp r1, r0 - bne _0813FBA6 - adds r0, r3, 0 - bl move_anim_task_del -_0813FBA6: - pop {r0} - bx r0 - .align 2, 0 -_0813FBAC: .4byte gTasks -_0813FBB0: .4byte gSprites -_0813FBB4: .4byte 0x0000ffff - thumb_func_end sub_813FB7C - - thumb_func_start sub_813FBB8 -sub_813FBB8: @ 813FBB8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0813FBD8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0813FBDC - movs r6, 0x20 - movs r5, 0xB - b _0813FBE0 - .align 2, 0 -_0813FBD8: .4byte gUnknown_020239F8 -_0813FBDC: - movs r6, 0x17 - movs r5, 0x5 -_0813FBE0: - ldr r0, _0813FC9C - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - bl sub_8079E90 - adds r3, r0, 0 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _0813FCA0 - adds r0, r1 - adds r1, r6, 0 - adds r1, 0x20 - movs r2, 0x50 - orrs r5, r2 - adds r2, r5, 0 - bl CreateSprite - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0813FCA4 - mov r9, r0 - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - adds r6, r4, r0 - movs r0, 0x22 - strh r0, [r6, 0x2E] - ldr r1, _0813FCA8 - mov r8, r1 - ldrb r0, [r1] - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x30] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - strh r0, [r6, 0x32] - mov r0, r9 - adds r0, 0x1C - adds r4, r0 - ldr r0, _0813FCAC - str r0, [r4] - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _0813FCB0 - lsls r0, 24 - lsrs r0, 24 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r9 - movs r1, 0x1 - bl StartSpriteAnim - ldr r1, _0813FCB4 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x8] - ldr r1, _0813FCB8 - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813FC9C: .4byte gUnknown_02024C04 -_0813FCA0: .4byte gSpriteTemplate_820AAB4 -_0813FCA4: .4byte gSprites -_0813FCA8: .4byte gUnknown_0202F7C9 -_0813FCAC: .4byte SpriteCallbackDummy -_0813FCB0: .4byte gUnknown_02024BE0 -_0813FCB4: .4byte gTasks -_0813FCB8: .4byte sub_813FCBC - thumb_func_end sub_813FBB8 - - thumb_func_start sub_813FCBC -sub_813FCBC: @ 813FCBC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _0813FD1C - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _0813FD20 - lsls r0, 24 - lsrs r0, 24 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bne _0813FD16 - movs r0, 0x3D - movs r1, 0 - bl PlaySE12WithPanning - ldr r0, _0813FD24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - movs r0, 0x8 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0813FD28 - str r1, [r0] - ldr r0, _0813FD2C - movs r1, 0xA - bl CreateTask - ldr r0, _0813FD30 - str r0, [r4] -_0813FD16: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813FD1C: .4byte gSprites -_0813FD20: .4byte gUnknown_02024BE0 -_0813FD24: .4byte gTasks -_0813FD28: .4byte sub_813FD90 -_0813FD2C: .4byte sub_813FD34 -_0813FD30: .4byte sub_813FB7C - thumb_func_end sub_813FCBC - - thumb_func_start sub_813FD34 -sub_813FD34: @ 813FD34 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _0813FD88 - movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, _0813FD8C - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _0813FD80 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0 - bl StartSpriteAnim - adds r0, r5, 0 - bl DestroyTask -_0813FD80: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813FD88: .4byte gSprites -_0813FD8C: .4byte gUnknown_02024BE0 - thumb_func_end sub_813FD34 - - thumb_func_start sub_813FD90 -sub_813FD90: @ 813FD90 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - ldrh r2, [r4, 0x32] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x30] - strh r1, [r4, 0x32] - ldrh r0, [r4, 0x22] - strh r0, [r4, 0x34] - strh r2, [r4, 0x36] - ldr r0, _0813FDB8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r0, _0813FDBC - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813FDB8: .4byte 0x0000ffd8 -_0813FDBC: .4byte sub_813FDC0 - thumb_func_end sub_813FD90 - - thumb_func_start sub_813FDC0 -sub_813FDC0: @ 813FDC0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _0813FE5A - ldr r0, _0813FDE0 - ldrb r0, [r0, 0x8] - cmp r0, 0x5 - bne _0813FDE8 - ldr r0, _0813FDE4 - str r0, [r4, 0x1C] - b _0813FE5A - .align 2, 0 -_0813FDE0: .4byte 0x02017840 -_0813FDE4: .4byte sub_81407B8 -_0813FDE8: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x24] - strh r1, [r4, 0x26] - adds r1, r4, 0 - adds r1, 0x2E - movs r2, 0 - adds r0, r4, 0 - adds r0, 0x3C -_0813FE10: - strh r2, [r0] - subs r0, 0x2 - cmp r0, r1 - bge _0813FE10 - movs r0, 0 - strh r0, [r4, 0x38] - ldr r0, _0813FE64 - str r0, [r4, 0x1C] - ldr r0, _0813FE68 - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xB - bgt _0813FE5A - cmp r5, 0 - blt _0813FE5A - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - str r5, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - ldr r0, _0813FE6C - ldrb r1, [r0] - movs r0, 0 - movs r2, 0xE - adds r3, r5, 0 - bl sub_8141314 -_0813FE5A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813FE64: .4byte sub_813FE70 -_0813FE68: .4byte gUnknown_02024C04 -_0813FE6C: .4byte gUnknown_0202F7C9 - thumb_func_end sub_813FDC0 - - thumb_func_start sub_813FE70 -sub_813FE70: @ 813FE70 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0813FEAC - ldr r0, _0813FEB4 - movs r1, 0x32 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x38] - ldr r0, _0813FEB8 - str r0, [r4, 0x1C] - ldr r2, _0813FEBC - ldr r1, _0813FEC0 - ldr r0, _0813FEC4 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x30] -_0813FEAC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813FEB4: .4byte TaskDummy -_0813FEB8: .4byte sub_813FEC8 -_0813FEBC: .4byte gSprites -_0813FEC0: .4byte gUnknown_02024BE0 -_0813FEC4: .4byte gUnknown_0202F7C9 - thumb_func_end sub_813FE70 - - thumb_func_start sub_813FEC8 -sub_813FEC8: @ 813FEC8 - push {r4-r7,lr} - adds r7, r0, 0 - ldr r1, _0813FF0C - ldr r0, _0813FF10 - ldrb r0, [r0] - adds r0, r1 - ldrb r4, [r0] - ldrh r0, [r7, 0x38] - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0813FF14 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - ldrh r0, [r5, 0xA] - adds r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _0813FEFA - movs r0, 0x3C - bl PlaySE -_0813FEFA: - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _0813FF70 - cmp r0, 0x1 - bgt _0813FF18 - cmp r0, 0 - beq _0813FF1E - b _0813FFDC - .align 2, 0 -_0813FF0C: .4byte gUnknown_02024BE0 -_0813FF10: .4byte gUnknown_0202F7C9 -_0813FF14: .4byte gTasks -_0813FF18: - cmp r0, 0x2 - beq _0813FFB4 - b _0813FFDC -_0813FF1E: - adds r0, r4, 0 - movs r1, 0 - bl sub_8078E70 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r5, 0x1C] - ldr r1, _0813FF60 - movs r0, 0x1C - str r0, [r1] - ldr r2, _0813FF64 - ldr r1, _0813FF68 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x26] - ldrh r0, [r0, 0x22] - adds r1, r0 - ldrh r0, [r7, 0x26] - ldrh r7, [r7, 0x22] - adds r0, r7 - subs r1, r0 - strh r1, [r2] - ldr r4, _0813FF6C - ldrh r0, [r2] - lsls r0, 8 - movs r1, 0x1C - bl __udivsi3 - strh r0, [r4] - strh r0, [r5, 0xC] - b _0813FFCE - .align 2, 0 -_0813FF60: .4byte gUnknown_03005F0C -_0813FF64: .4byte gUnknown_03005F14 -_0813FF68: .4byte gSprites -_0813FF6C: .4byte gUnknown_03005F10 -_0813FF70: - ldrh r0, [r5, 0x1C] - adds r0, 0x20 - strh r0, [r5, 0x1C] - movs r0, 0x1C - ldrsh r2, [r5, r0] - adds r0, r4, 0 - adds r1, r2, 0 - movs r3, 0 - bl obj_id_set_rotscale - ldrh r0, [r5, 0xC] - ldrh r1, [r5, 0xE] - adds r0, r1 - strh r0, [r5, 0xE] - ldr r0, _0813FFAC - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - movs r2, 0xE - ldrsh r0, [r5, r2] - negs r0, r0 - asrs r0, 8 - strh r0, [r1, 0x26] - movs r0, 0x1C - ldrsh r1, [r5, r0] - ldr r0, _0813FFB0 - cmp r1, r0 - ble _08140004 - b _0813FFCE - .align 2, 0 -_0813FFAC: .4byte gSprites -_0813FFB0: .4byte 0x0000047f -_0813FFB4: - adds r0, r4, 0 - bl sub_8078F40 - ldr r1, _0813FFD8 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0813FFCE: - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _08140004 - .align 2, 0 -_0813FFD8: .4byte gSprites -_0813FFDC: - ldr r0, _0814000C - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0xA - ble _08140004 - adds r0, r6, 0 - bl DestroyTask - adds r0, r7, 0 - movs r1, 0x2 - bl StartSpriteAnim - movs r0, 0 - strh r0, [r7, 0x38] - ldr r0, _08140010 - str r0, [r7, 0x1C] -_08140004: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814000C: .4byte gTasks -_08140010: .4byte sub_8140014 - thumb_func_end sub_813FEC8 - - thumb_func_start sub_8140014 -sub_8140014: @ 8140014 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0814004E - movs r1, 0 - strh r1, [r4, 0x34] - movs r0, 0x20 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - movs r0, 0 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x36 - ldrsh r1, [r4, r0] - movs r0, 0 - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldr r0, _08140054 - str r0, [r4, 0x1C] -_0814004E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08140054: .4byte sub_8140058 - thumb_func_end sub_8140014 - - thumb_func_start sub_8140058 -sub_8140058: @ 8140058 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0 - beq _0814006E - cmp r1, 0x1 - beq _081400E2 - b _0814010E -_0814006E: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - adds r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3F - ble _0814010E - ldrh r0, [r4, 0x36] - subs r0, 0xA - strh r0, [r4, 0x36] - ldr r1, _081400B8 - adds r0, r2, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _081400AA - movs r5, 0x1 -_081400AA: - cmp r0, 0x2 - beq _081400CA - cmp r0, 0x2 - bgt _081400BC - cmp r0, 0x1 - beq _081400C2 - b _081400DA - .align 2, 0 -_081400B8: .4byte 0x00000101 -_081400BC: - cmp r0, 0x3 - beq _081400D2 - b _081400DA -_081400C2: - movs r0, 0x38 - bl PlaySE - b _0814010E -_081400CA: - movs r0, 0x39 - bl PlaySE - b _0814010E -_081400D2: - movs r0, 0x3A - bl PlaySE - b _0814010E -_081400DA: - movs r0, 0x3B - bl PlaySE - b _0814010E -_081400E2: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - subs r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - subs r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - cmp r1, 0 - bgt _0814010E - strh r5, [r4, 0x38] - ldr r0, _08140138 - ands r0, r2 - strh r0, [r4, 0x34] -_0814010E: - cmp r5, 0 - beq _0814014E - movs r5, 0 - strh r5, [r4, 0x34] - movs r0, 0x40 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - ldr r0, _0814013C - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08140144 - strh r5, [r4, 0x38] - ldr r0, _08140140 - str r0, [r4, 0x1C] - b _0814014E - .align 2, 0 -_08140138: .4byte 0xffffff00 -_0814013C: .4byte 0x02017840 -_08140140: .4byte sub_8140410 -_08140144: - ldr r0, _08140154 - str r0, [r4, 0x1C] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] -_0814014E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08140154: .4byte sub_8140158 - thumb_func_end sub_8140058 - - thumb_func_start sub_8140158 -sub_8140158: @ 8140158 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08140190 - strh r5, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _08140198 - strh r5, [r0, 0xC] - ldr r0, _0814019C - str r0, [r4, 0x1C] - movs r0, 0x17 - bl PlaySE -_08140190: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08140198: .4byte 0x02017840 -_0814019C: .4byte sub_81401A0 - thumb_func_end sub_8140158 - - thumb_func_start sub_81401A0 -sub_81401A0: @ 81401A0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x6 - bls _081401B0 - b _081403C4 -_081401B0: - lsls r0, r1, 2 - ldr r1, _081401BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081401BC: .4byte _081401C0 - .align 2, 0 -_081401C0: - .4byte _081401DC - .4byte _08140226 - .4byte _0814026C - .4byte _081402C0 - .4byte _08140310 - .4byte _08140368 - .4byte _081403C4 -_081401DC: - ldr r0, _081401F8 - ldrh r2, [r0, 0xC] - movs r3, 0xC - ldrsh r1, [r0, r3] - adds r5, r0, 0 - cmp r1, 0xFF - ble _081401FC - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r2 - b _08140200 - .align 2, 0 -_081401F8: .4byte 0x02017840 -_081401FC: - adds r0, r2, 0 - adds r0, 0xB0 -_08140200: - strh r0, [r5, 0xC] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r3, 0 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xE - bhi _08140224 - b _0814040A -_08140224: - b _081402B4 -_08140226: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _081402CC - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _08140262 - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnim - b _0814040A -_08140262: - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - b _0814040A -_0814026C: - ldr r0, _08140288 - ldrh r2, [r0, 0xC] - movs r3, 0xC - ldrsh r1, [r0, r3] - adds r5, r0, 0 - cmp r1, 0xFF - ble _0814028C - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r2 - b _08140290 - .align 2, 0 -_08140288: .4byte 0x02017840 -_0814028C: - adds r0, r2, 0 - adds r0, 0xB0 -_08140290: - strh r0, [r5, 0xC] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r3, 0 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0xC - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x18 - bhi _081402B4 - b _0814040A -_081402B4: - strh r3, [r5, 0xC] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - strh r3, [r4, 0x38] - b _0814040A -_081402C0: - ldrh r0, [r4, 0x38] - adds r1, r0, 0x1 - strh r1, [r4, 0x38] - lsls r0, 16 - cmp r0, 0 - bge _081402DA -_081402CC: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _0814040A -_081402DA: - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _08140308 - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnim - b _08140310 -_08140308: - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim -_08140310: - ldr r0, _0814032C - ldrh r2, [r0, 0xC] - movs r3, 0xC - ldrsh r1, [r0, r3] - adds r5, r0, 0 - cmp r1, 0xFF - ble _08140330 - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x24] - adds r0, r1 - strh r0, [r4, 0x24] - movs r0, 0xFF - ands r0, r2 - b _08140334 - .align 2, 0 -_0814032C: .4byte 0x02017840 -_08140330: - adds r0, r2, 0 - adds r0, 0xB0 -_08140334: - strh r0, [r5, 0xC] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r3, 0 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0x4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - bls _0814040A - strh r3, [r5, 0xC] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - strh r3, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - b _0814040A -_08140368: - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - ldrh r1, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r1, r0, 24 - ldr r0, _08140394 - ldrb r0, [r0, 0x8] - cmp r1, r0 - bne _0814039C - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08140398 - str r0, [r4, 0x1C] - b _0814040A - .align 2, 0 -_08140394: .4byte 0x02017840 -_08140398: .4byte sub_8140410 -_0814039C: - cmp r0, 0x4 - bne _081403B0 - cmp r1, 0x3 - bne _081403B0 - ldr r0, _081403AC - str r0, [r4, 0x1C] - b _081403B6 - .align 2, 0 -_081403AC: .4byte sub_8140434 -_081403B0: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] -_081403B6: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - b _0814040A -_081403C4: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _0814040A - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r1, [r4, 0x34] - ldr r0, _081403F8 - ands r0, r1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0 - bge _081403FC - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _08140404 - .align 2, 0 -_081403F8: .4byte 0xffffff00 -_081403FC: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08140404: - movs r0, 0x17 - bl PlaySE -_0814040A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81401A0 - - thumb_func_start sub_8140410 -sub_8140410: @ 8140410 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x38] - adds r0, 0x1 - strh r0, [r1, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _0814042A - movs r0, 0 - strh r0, [r1, 0x38] - ldr r0, _08140430 - str r0, [r1, 0x1C] -_0814042A: - pop {r0} - bx r0 - .align 2, 0 -_08140430: .4byte sub_81405F4 - thumb_func_end sub_8140410 - - thumb_func_start sub_8140434 -sub_8140434: @ 8140434 - adds r3, r0, 0 - adds r3, 0x2C - ldrb r1, [r3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r3] - ldr r1, _08140450 - str r1, [r0, 0x1C] - movs r1, 0 - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - bx lr - .align 2, 0 -_08140450: .4byte sub_8140454 - thumb_func_end sub_8140434 - - thumb_func_start sub_8140454 -sub_8140454: @ 8140454 - push {r4-r7,lr} - adds r6, r0, 0 - ldr r7, _08140484 - ldrh r0, [r6, 0x36] - adds r0, 0x1 - strh r0, [r6, 0x36] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0x28 - beq _081404CC - cmp r1, 0x5F - bne _08140490 - ldr r0, _08140488 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - bl sub_8043EB4 - bl m4aMPlayAllStop - ldr r0, _0814048C - bl PlaySE - b _081404CC - .align 2, 0 -_08140484: .4byte gUnknown_0202F7C9 -_08140488: .4byte gUnknown_02024E6D -_0814048C: .4byte 0x00000173 -_08140490: - ldr r0, _081404D4 - cmp r1, r0 - bne _081404CC - ldr r5, _081404D8 - ldr r4, _081404DC - ldrb r0, [r7] - adds r0, r4 - ldrb r1, [r0] - 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 r0, [r7] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - movs r0, 0 - strh r0, [r6, 0x2E] - ldr r0, _081404E0 - str r0, [r6, 0x1C] -_081404CC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081404D4: .4byte 0x0000013b -_081404D8: .4byte gSprites -_081404DC: .4byte gUnknown_02024BE0 -_081404E0: .4byte sub_81404E4 - thumb_func_end sub_8140454 - - thumb_func_start sub_81404E4 -sub_81404E4: @ 81404E4 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08140550 - cmp r0, 0x1 - bgt _081404FC - cmp r0, 0 - beq _08140502 - b _08140594 -_081404FC: - cmp r0, 0x2 - beq _08140580 - b _08140594 -_08140502: - strh r0, [r4, 0x30] - strh r0, [r4, 0x32] - ldrb r1, [r4, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r1, _08140548 - movs r2, 0xFD - lsls r2, 6 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] - ldr r0, [r4, 0x14] - ldrh r0, [r0, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x10 - movs r1, 0x1 - lsls r1, r0 - ldr r0, _0814054C - str r0, [sp] - adds r0, r1, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _0814058C - .align 2, 0 -_08140548: .4byte REG_BLDCNT -_0814054C: .4byte 0x00007fff -_08140550: - ldrh r0, [r4, 0x30] - adds r1, r0, 0x1 - strh r1, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - ble _081405B2 - movs r0, 0 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - adds r1, 0x1 - strh r1, [r4, 0x32] - ldr r3, _0814057C - lsls r2, r1, 8 - movs r0, 0x10 - subs r0, r1 - orrs r2, r0 - strh r2, [r3] - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _081405B2 - b _0814058C - .align 2, 0 -_0814057C: .4byte REG_BLDALPHA -_08140580: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0814058C: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _081405B2 -_08140594: - ldr r0, _081405BC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081405B2 - ldr r0, _081405C0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - strh r1, [r4, 0x2E] - ldr r0, _081405C4 - str r0, [r4, 0x1C] -_081405B2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081405BC: .4byte gPaletteFade -_081405C0: .4byte REG_BLDCNT -_081405C4: .4byte sub_81405C8 - thumb_func_end sub_81404E4 - - thumb_func_start sub_81405C8 -sub_81405C8: @ 81405C8 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x2E] - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _081405E0 - ldr r0, _081405DC - strh r0, [r4, 0x2E] - b _081405EC - .align 2, 0 -_081405DC: .4byte 0x0000ffff -_081405E0: - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_081405EC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81405C8 - - thumb_func_start sub_81405F4 -sub_81405F4: @ 81405F4 - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - ldr r0, _081406A8 - str r0, [r4, 0x1C] - ldr r0, _081406AC - ldrh r0, [r0] - bl ball_number_to_ball_processing_index - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xB - bgt _08140646 - cmp r5, 0 - blt _08140646 - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - str r5, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_814086C - ldr r0, _081406B0 - ldrb r1, [r0] - movs r0, 0x1 - movs r2, 0xE - adds r3, r5, 0 - bl sub_8141314 -_08140646: - ldr r6, _081406B4 - ldr r5, _081406B8 - ldr r4, _081406B0 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl AnimateSprite - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x80 - lsls r1, 5 - strh r1, [r0, 0x30] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081406A8: .4byte sub_81406BC -_081406AC: .4byte gUnknown_02024C04 -_081406B0: .4byte gUnknown_0202F7C9 -_081406B4: .4byte gSprites -_081406B8: .4byte gUnknown_02024BE0 - thumb_func_end sub_81405F4 - - thumb_func_start sub_81406BC -sub_81406BC: @ 81406BC - push {r4-r7,lr} - adds r7, r0, 0 - movs r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081406DA - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_081406DA: - ldr r4, _08140708 - ldr r3, _0814070C - ldr r2, _08140710 - ldrb r0, [r2] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _08140714 - adds r0, r1, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r5, 0x1 - b _08140734 - .align 2, 0 -_08140708: .4byte gSprites -_0814070C: .4byte gUnknown_02024BE0 -_08140710: .4byte gUnknown_0202F7C9 -_08140714: - ldr r6, _0814079C - adds r0, r6, 0 - ldrh r6, [r1, 0x30] - adds r0, r6 - strh r0, [r1, 0x30] - ldrb r0, [r2] - adds r0, r3 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r1, 0x26] -_08140734: - adds r0, r7, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08140796 - cmp r5, 0 - beq _08140796 - ldr r4, _081407A0 - ldr r3, _081407A4 - ldr r2, _081407A8 - ldrb r0, [r2] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r6, 0 - movs r5, 0 - strh r5, [r0, 0x26] - ldrb r0, [r2] - adds r0, r3 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldr r0, _081407AC - ldrb r1, [r0, 0x9] - lsls r1, 30 - adds r2, 0x3E - lsrs r1, 31 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - strh r5, [r7, 0x2E] - ldr r0, _081407B0 - str r0, [r7, 0x1C] - ldr r0, _081407B4 - strb r6, [r0] - movs r0, 0x1 - bl sub_8043EB4 -_08140796: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814079C: .4byte 0xfffffee0 -_081407A0: .4byte gSprites -_081407A4: .4byte gUnknown_02024BE0 -_081407A8: .4byte gUnknown_0202F7C9 -_081407AC: .4byte 0x02017840 -_081407B0: .4byte sub_81405C8 -_081407B4: .4byte gUnknown_02024E6D - thumb_func_end sub_81406BC - - thumb_func_start sub_81407B8 -sub_81407B8: @ 81407B8 - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x24] - ldrh r1, [r2, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x26] - ldrh r3, [r2, 0x22] - adds r0, r3 - strh r0, [r2, 0x22] - strh r1, [r2, 0x26] - strh r1, [r2, 0x24] - ldr r4, _081407F0 - movs r3, 0 - movs r1, 0x5 - adds r0, r2, 0 - adds r0, 0x38 -_081407DC: - strh r3, [r0] - subs r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _081407DC - str r4, [r2, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081407F0: .4byte sub_81407F4 - thumb_func_end sub_81407B8 - - thumb_func_start sub_81407F4 -sub_81407F4: @ 81407F4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x80 - lsls r0, 4 - adds r2, r0, 0 - ldrh r1, [r4, 0x2E] - adds r2, r1 - movs r0, 0xD0 - lsls r0, 3 - adds r3, r0, 0 - ldrh r1, [r4, 0x30] - adds r3, r1 - lsls r1, r3, 16 - asrs r1, 24 - ldrh r0, [r4, 0x24] - subs r0, r1 - strh r0, [r4, 0x24] - lsls r0, r2, 16 - asrs r0, 24 - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] - movs r0, 0xFF - ands r2, r0 - strh r2, [r4, 0x2E] - ands r3, r0 - strh r3, [r4, 0x30] - movs r2, 0x22 - ldrsh r0, [r4, r2] - movs r2, 0x26 - ldrsh r1, [r4, r2] - adds r0, r1 - cmp r0, 0xA0 - bgt _0814084A - movs r1, 0x20 - ldrsh r0, [r4, r1] - movs r2, 0x24 - ldrsh r1, [r4, r2] - adds r0, r1 - movs r1, 0x8 - negs r1, r1 - cmp r0, r1 - bge _0814085E -_0814084A: - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _08140864 - str r0, [r4, 0x1C] - ldr r1, _08140868 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - bl sub_8043EB4 -_0814085E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08140864: .4byte sub_81405C8 -_08140868: .4byte gUnknown_02024E6D - thumb_func_end sub_81407F4 - - thumb_func_start sub_814086C -sub_814086C: @ 814086C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r4, 24 - lsrs r4, 24 - adds r5, r4, 0 - ldr r0, _08140910 - lsls r6, r5, 3 - adds r4, r6, r0 - ldrh r0, [r4, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, _08140914 - cmp r0, r1 - bne _081408B6 - adds r0, r4, 0 - bl LoadCompressedObjectPic - ldr r0, _08140918 - adds r0, r6, r0 - bl LoadCompressedObjectPalette -_081408B6: - ldr r1, _0814091C - lsls r0, r5, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _08140920 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - mov r1, r10 - strh r1, [r0, 0xA] - mov r1, r9 - strh r1, [r0, 0xC] - mov r1, r8 - strh r1, [r0, 0xE] - strh r7, [r0, 0x10] - strh r5, [r0, 0x26] - movs r0, 0xF - bl PlaySE - ldr r0, _08140924 - ldr r1, _08140928 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08140900 - ldr r1, _0814092C - ldrb r0, [r1, 0xA] - adds r0, 0x1 - strb r0, [r1, 0xA] -_08140900: - adds r0, r4, 0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08140910: .4byte gUnknown_0840B258 -_08140914: .4byte 0xffff0000 -_08140918: .4byte gUnknown_0840B2B8 -_0814091C: .4byte gUnknown_0840B384 -_08140920: .4byte gTasks -_08140924: .4byte gMain -_08140928: .4byte 0x0000043d -_0814092C: .4byte 0x02017840 - thumb_func_end sub_814086C - - thumb_func_start sub_8140930 -sub_8140930: @ 8140930 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _081409D0 - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r7, r0, r1 - ldrh r0, [r7, 0x26] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0xF - bgt _081409E4 - ldrb r1, [r7, 0xA] - ldrb r2, [r7, 0xC] - ldrb r6, [r7, 0xE] - ldrb r3, [r7, 0x10] - mov r4, r8 - lsls r0, r4, 1 - add r0, r8 - lsls r0, 3 - ldr r4, _081409D4 - adds r0, r4 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r5, _081409D8 - adds r2, r4, r5 - ldr r0, _081409DC - add r0, r8 - ldrb r1, [r0] - adds r0, r2, 0 - str r2, [sp] - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, _081409E0 - str r0, [r4] - movs r0, 0x3 - ands r6, r0 - lsls r6, 2 - ldr r2, [sp] - ldrb r1, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r6 - strb r0, [r2, 0x5] - ldrb r0, [r7, 0x8] - cmp r0, 0x7 - bls _081409B6 - subs r0, 0x8 - lsls r0, 24 - lsrs r0, 24 -_081409B6: - lsls r0, 5 - strh r0, [r2, 0x2E] - movs r1, 0x8 - ldrsh r0, [r7, r1] - cmp r0, 0xF - bne _081409E4 - movs r0, 0x1 - strh r0, [r2, 0x3C] - mov r0, r9 - bl DestroyTask - b _081409F6 - .align 2, 0 -_081409D0: .4byte gTasks -_081409D4: .4byte gSpriteTemplate_840B3B4 -_081409D8: .4byte gSprites -_081409DC: .4byte gUnknown_0840B378 -_081409E0: .4byte sub_8140A08 -_081409E4: - ldr r0, _08140A04 - mov r2, r9 - lsls r1, r2, 2 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_081409F6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08140A04: .4byte gTasks - thumb_func_end sub_8140930 - - thumb_func_start sub_8140A08 -sub_8140A08: @ 8140A08 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x30] - movs r3, 0x30 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08140A20 - ldr r0, _08140A1C - str r0, [r1, 0x1C] - b _08140A24 - .align 2, 0 -_08140A1C: .4byte sub_8140A28 -_08140A20: - subs r0, r2, 0x1 - strh r0, [r1, 0x30] -_08140A24: - pop {r0} - bx r0 - thumb_func_end sub_8140A08 - - thumb_func_start sub_8140A28 -sub_8140A28: @ 8140A28 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0x2 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x32 - bne _08140A5C - adds r0, r4, 0 - bl sub_8141294 -_08140A5C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8140A28 - - thumb_func_start sub_8140A64 -sub_8140A64: @ 8140A64 - 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, _08140B24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140B28 - mov r8, r3 - ldr r0, _08140B2C - adds r1, r0 - mov r9, r1 -_08140AA8: - ldr r0, _08140B30 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140B34 - adds r1, r5, r3 - ldr r0, _08140B38 - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x36] - movs r0, 0x2 - strh r0, [r4, 0x38] - movs r2, 0x1 - strh r2, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _08140AA8 - ldr r0, _08140B28 - adds r0, r5, r0 - strh r2, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - 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 -_08140B24: .4byte gTasks -_08140B28: .4byte gSprites -_08140B2C: .4byte gUnknown_0840B378 -_08140B30: .4byte gSpriteTemplate_840B3B4 -_08140B34: .4byte gSprites + 0x1C -_08140B38: .4byte sub_8140ECC - thumb_func_end sub_8140A64 - - thumb_func_start sub_8140B3C -sub_8140B3C: @ 8140B3C - 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, _08140BFC - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140C00 - mov r8, r3 - ldr r0, _08140C04 - adds r1, r0 - mov r9, r1 -_08140B80: - ldr r0, _08140C08 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140C0C - adds r1, r5, r3 - ldr r0, _08140C10 - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - movs r0, 0xA - strh r0, [r4, 0x36] - movs r1, 0x1 - strh r1, [r4, 0x38] - movs r0, 0x2 - strh r0, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _08140B80 - ldr r0, _08140C00 - adds r0, r5, r0 - strh r1, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - 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 -_08140BFC: .4byte gTasks -_08140C00: .4byte gSprites -_08140C04: .4byte gUnknown_0840B378 -_08140C08: .4byte gSpriteTemplate_840B3B4 -_08140C0C: .4byte gSprites + 0x1C -_08140C10: .4byte sub_8140ECC - thumb_func_end sub_8140B3C - - thumb_func_start sub_8140C14 -sub_8140C14: @ 8140C14 - 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, _08140CD0 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140CD4 - mov r8, r3 - ldr r0, _08140CD8 - adds r1, r0 - mov r9, r1 -_08140C58: - ldr r0, _08140CDC - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140CE0 - adds r1, r5, r3 - ldr r0, _08140CE4 - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - movs r0, 0x4 - strh r0, [r4, 0x36] - movs r2, 0x1 - strh r2, [r4, 0x38] - strh r2, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _08140C58 - ldr r0, _08140CD4 - adds r0, r5, r0 - strh r2, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - 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 -_08140CD0: .4byte gTasks -_08140CD4: .4byte gSprites -_08140CD8: .4byte gUnknown_0840B378 -_08140CDC: .4byte gSpriteTemplate_840B3B4 -_08140CE0: .4byte gSprites + 0x1C -_08140CE4: .4byte sub_8140ECC - thumb_func_end sub_8140C14 - - thumb_func_start sub_8140CE8 -sub_8140CE8: @ 8140CE8 - 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, _08140DAC - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140DB0 - mov r8, r3 - ldr r0, _08140DB4 - adds r1, r0 - mov r9, r1 -_08140D2C: - ldr r0, _08140DB8 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140DBC - adds r1, r5, r3 - ldr r0, _08140DC0 - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 3 - adds r0, r6 - strh r0, [r4, 0x2E] - movs r0, 0x5 - strh r0, [r4, 0x36] - movs r2, 0x1 - strh r2, [r4, 0x38] - strh r2, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x9 - bls _08140D2C - ldr r0, _08140DB0 - adds r0, r5, r0 - strh r2, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - 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 -_08140DAC: .4byte gTasks -_08140DB0: .4byte gSprites -_08140DB4: .4byte gUnknown_0840B378 -_08140DB8: .4byte gSpriteTemplate_840B3B4 -_08140DBC: .4byte gSprites + 0x1C -_08140DC0: .4byte sub_8140ECC - thumb_func_end sub_8140CE8 - - thumb_func_start sub_8140DC4 -sub_8140DC4: @ 8140DC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08140DF0 - lsls r2, r7, 2 - adds r0, r2, r7 - lsls r0, 3 - adds r3, r0, r1 - ldrh r1, [r3, 0x16] - movs r4, 0x16 - ldrsh r0, [r3, r4] - cmp r0, 0 - beq _08140DF4 - subs r0, r1, 0x1 - strh r0, [r3, 0x16] - b _08140EA4 - .align 2, 0 -_08140DF0: .4byte gTasks -_08140DF4: - ldrh r0, [r3, 0x26] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r3, 0xA] - str r1, [sp] - ldrb r4, [r3, 0xC] - str r4, [sp, 0x4] - ldrb r1, [r3, 0xE] - str r1, [sp, 0x8] - ldrb r3, [r3, 0x10] - str r3, [sp, 0xC] - movs r6, 0 - str r2, [sp, 0x10] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - mov r10, r1 - ldr r3, _08140EB4 - mov r8, r3 - ldr r1, _08140EB8 - adds r0, r1 - mov r9, r0 -_08140E20: - ldr r0, _08140EBC - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r3, r9 - ldrb r1, [r3] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r0, _08140EC0 - adds r1, r5, r0 - ldr r0, _08140EC4 - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - movs r2, 0x8 - strh r2, [r4, 0x36] - movs r0, 0x2 - strh r0, [r4, 0x38] - strh r0, [r4, 0x3A] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _08140E20 - ldr r0, _08140EC8 - ldr r4, [sp, 0x10] - adds r1, r4, r7 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x16] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bne _08140EA4 - ldr r0, _08140EB4 - adds r0, r5, r0 - movs r1, 0x1 - strh r1, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask -_08140EA4: - 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 -_08140EB4: .4byte gSprites -_08140EB8: .4byte gUnknown_0840B378 -_08140EBC: .4byte gSpriteTemplate_840B3B4 -_08140EC0: .4byte gSprites + 0x1C -_08140EC4: .4byte sub_8140ECC -_08140EC8: .4byte gTasks - thumb_func_end sub_8140DC4 - - thumb_func_start sub_8140ECC -sub_8140ECC: @ 8140ECC - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x30 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x36] - ldrh r1, [r4, 0x2E] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x38] - ldrh r2, [r4, 0x30] - adds r0, r2 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x32] - adds r0, r1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _08140F1C - adds r0, r4, 0 - bl sub_8141294 -_08140F1C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8140ECC - - thumb_func_start sub_8140F24 -sub_8140F24: @ 8140F24 - 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, _08140FE0 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _08140FE4 - mov r8, r3 - ldr r0, _08140FE8 - adds r1, r0 - mov r9, r1 -_08140F68: - ldr r0, _08140FEC - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08140FF0 - adds r1, r5, r3 - ldr r0, _08140FF4 - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 2 - adds r0, r6 - strh r0, [r4, 0x2E] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xB - bls _08140F68 - ldr r0, _08140FE4 - adds r0, r5, r0 - movs r1, 0x1 - strh r1, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - 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 -_08140FE0: .4byte gTasks -_08140FE4: .4byte gSprites -_08140FE8: .4byte gUnknown_0840B378 -_08140FEC: .4byte gSpriteTemplate_840B3B4 -_08140FF0: .4byte gSprites + 0x1C -_08140FF4: .4byte sub_8140FF8 - thumb_func_end sub_8140F24 - - thumb_func_start sub_8140FF8 -sub_8140FF8: @ 8140FF8 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] - movs r0, 0x2E - ldrsh r4, [r5, r0] - movs r2, 0x32 - ldrsh r1, [r5, r2] - adds r0, r4, 0 - bl Sin - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl Cos - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x2E] - adds r0, 0x6 - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _08141050 - adds r0, r5, 0 - bl sub_8141294 -_08141050: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8140FF8 - - thumb_func_start sub_8141058 -sub_8141058: @ 8141058 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldr r1, _08141104 - lsls r0, 2 - ldr r2, [sp] - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r3, [r0, 0xA] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xC] - str r2, [sp, 0x8] - ldrb r3, [r0, 0xE] - str r3, [sp, 0xC] - ldrb r0, [r0, 0x10] - str r0, [sp, 0x10] - movs r0, 0 - mov r8, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - str r0, [sp, 0x14] - ldr r0, _08141108 - adds r1, r0 - mov r10, r1 -_0814109E: - movs r7, 0 - movs r1, 0x1 - add r1, r8 - mov r9, r1 -_081410A6: - ldr r0, _0814110C - ldr r2, [sp, 0x14] - adds r0, r2, r0 - ldr r1, [sp, 0x4] - ldr r2, [sp, 0x8] - ldr r3, [sp, 0x10] - bl CreateSprite - lsls r0, 24 - lsrs r6, r0, 24 - lsls r4, r6, 4 - adds r4, r6 - lsls r4, 2 - ldr r3, _08141110 - adds r5, r4, r3 - mov r0, r10 - ldrb r1, [r0] - adds r0, r5, 0 - bl StartSpriteAnim - ldr r1, _08141114 - adds r4, r1 - ldr r0, _08141118 - str r0, [r4] - movs r0, 0x3 - ldr r1, [sp, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r0, [r5, 0x5] - movs r3, 0xD - negs r3, r3 - adds r2, r3, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - lsls r0, r7, 5 - strh r0, [r5, 0x2E] - movs r0, 0x8 - strh r0, [r5, 0x36] - mov r0, r8 - cmp r0, 0 - bne _0814111C - movs r0, 0x2 - strh r0, [r5, 0x38] - movs r0, 0x1 - b _08141122 - .align 2, 0 -_08141104: .4byte gTasks -_08141108: .4byte gUnknown_0840B378 -_0814110C: .4byte gSpriteTemplate_840B3B4 -_08141110: .4byte gSprites -_08141114: .4byte gSprites + 0x1C -_08141118: .4byte sub_8140ECC -_0814111C: - movs r0, 0x1 - strh r0, [r5, 0x38] - movs r0, 0x2 -_08141122: - strh r0, [r5, 0x3A] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x7 - bls _081410A6 - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0x1 - bls _0814109E - ldr r0, _08141160 - lsls r1, r6, 4 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - movs r0, 0x1 - strh r0, [r1, 0x3C] - ldr r0, [sp] - bl DestroyTask - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08141160: .4byte gSprites - thumb_func_end sub_8141058 - - thumb_func_start sub_8141164 -sub_8141164: @ 8141164 - 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, _08141218 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r0, 0xA] - str r2, [sp] - ldrb r3, [r0, 0xC] - str r3, [sp, 0x4] - ldrb r2, [r0, 0xE] - str r2, [sp, 0x8] - ldrb r0, [r0, 0x10] - str r0, [sp, 0xC] - movs r6, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - mov r10, r0 - ldr r3, _0814121C - mov r8, r3 - ldr r0, _08141220 - adds r1, r0 - mov r9, r1 -_081411A8: - ldr r0, _08141224 - add r0, r10 - ldr r1, [sp] - ldr r2, [sp, 0x4] - ldr r3, [sp, 0xC] - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - mov r0, r8 - adds r4, r5, r0 - mov r2, r9 - ldrb r1, [r2] - adds r0, r4, 0 - bl StartSpriteAnim - ldr r3, _08141228 - adds r1, r5, r3 - ldr r0, _0814122C - str r0, [r1] - movs r0, 0x3 - ldr r2, [sp, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r0, [r4, 0x5] - movs r3, 0xD - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - lsls r0, r6, 5 - strh r0, [r4, 0x2E] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x7 - bls _081411A8 - ldr r0, _0814121C - adds r0, r5, r0 - movs r1, 0x1 - strh r1, [r0, 0x3C] - adds r0, r7, 0 - bl DestroyTask - 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 -_08141218: .4byte gTasks -_0814121C: .4byte gSprites -_08141220: .4byte gUnknown_0840B378 -_08141224: .4byte gSpriteTemplate_840B3B4 -_08141228: .4byte gSprites + 0x1C -_0814122C: .4byte sub_8141230 - thumb_func_end sub_8141164 - - thumb_func_start sub_8141230 -sub_8141230: @ 8141230 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - movs r2, 0x30 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x24] - movs r0, 0x2E - ldrsh r4, [r5, r0] - ldrh r1, [r5, 0x2E] - movs r0, 0x3F - ands r0, r1 - movs r2, 0x32 - ldrsh r1, [r5, r2] - bl Sin - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl Cos - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x2E] - adds r0, 0xA - movs r1, 0xFF - ands r0, r1 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] - ldrh r0, [r5, 0x34] - adds r0, 0x1 - strh r0, [r5, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x33 - bne _0814128C - adds r0, r5, 0 - bl sub_8141294 -_0814128C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8141230 - - thumb_func_start sub_8141294 -sub_8141294: @ 8141294 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r0, _081412B8 - ldr r1, _081412BC - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _081412C0 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _081412F2 - adds r0, r5, 0 - bl DestroySpriteAndFreeResources - b _0814130E - .align 2, 0 -_081412B8: .4byte gMain -_081412BC: .4byte 0x0000043d -_081412C0: - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x1 - bne _08141308 - ldr r1, _081412FC - ldrb r0, [r1, 0xA] - subs r0, 0x1 - strb r0, [r1, 0xA] - lsls r0, 24 - cmp r0, 0 - bne _081412F2 - movs r7, 0 - ldr r6, _08141300 - ldr r4, _08141304 -_081412DC: - ldrh r0, [r6, 0x6] - bl FreeSpriteTilesByTag - ldrh r0, [r4, 0x4] - bl FreeSpritePaletteByTag - adds r6, 0x8 - adds r4, 0x8 - adds r7, 0x1 - cmp r7, 0xB - ble _081412DC -_081412F2: - adds r0, r5, 0 - bl DestroySprite - b _0814130E - .align 2, 0 -_081412FC: .4byte 0x02017840 -_08141300: .4byte gUnknown_0840B258 -_08141304: .4byte gUnknown_0840B2B8 -_08141308: - adds r0, r5, 0 - bl DestroySprite -_0814130E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8141294 - - thumb_func_start sub_8141314 -sub_8141314: @ 8141314 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r4, r0, 0 - mov r9, r2 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r3, 24 - lsrs r7, r3, 24 - ldr r0, _08141378 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _0814137C - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r5, r0, r1 - strh r7, [r5, 0x26] - strh r6, [r5, 0xE] - mov r0, r9 - strh r0, [r5, 0x1C] - mov r1, r9 - lsrs r0, r1, 16 - strh r0, [r5, 0x1E] - cmp r4, 0 - bne _08141384 - lsls r0, r6, 20 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r0, 16 - ldr r2, _08141380 - lsls r1, r7, 1 - adds r1, r2 - ldrh r3, [r1] - movs r1, 0x10 - movs r2, 0 - bl BlendPalette - movs r0, 0x1 - strh r0, [r5, 0xA] - b _081413AA - .align 2, 0 -_08141378: .4byte sub_81413DC -_0814137C: .4byte gTasks -_08141380: .4byte gUnknown_0840B4D4 -_08141384: - lsls r0, r6, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldr r2, _081413CC - lsls r1, r7, 1 - adds r1, r2 - ldrh r3, [r1] - movs r1, 0x10 - movs r2, 0x10 - bl BlendPalette - movs r0, 0x10 - strh r0, [r5, 0x8] - ldr r0, _081413D0 - strh r0, [r5, 0xA] - ldr r0, _081413D4 - str r0, [r5] -_081413AA: - ldr r0, _081413D8 - str r0, [sp] - mov r0, r9 - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - mov r0, r8 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081413CC: .4byte gUnknown_0840B4D4 -_081413D0: .4byte 0x0000ffff -_081413D4: .4byte sub_814146C -_081413D8: .4byte 0x00007fff - thumb_func_end sub_8141314 - - thumb_func_start sub_81413DC -sub_81413DC: @ 81413DC - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, _0814142C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r1, r0, 24 - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0x10 - bgt _08141434 - movs r2, 0xE - ldrsh r0, [r4, r2] - lsls r0, 20 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r0, 16 - ldrb r2, [r4, 0x8] - ldr r3, _08141430 - lsls r1, 1 - adds r1, r3 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - adds r0, r1 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _0814145C - .align 2, 0 -_0814142C: .4byte gTasks -_08141430: .4byte gUnknown_0840B4D4 -_08141434: - ldr r0, _08141464 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0814145C - ldrh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - lsls r1, 16 - orrs r0, r1 - ldr r1, _08141468 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - adds r0, r5, 0 - bl DestroyTask -_0814145C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141464: .4byte gPaletteFade -_08141468: .4byte 0x00007fff - thumb_func_end sub_81413DC - - thumb_func_start sub_814146C -sub_814146C: @ 814146C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081414AC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081414A4 - ldr r0, _081414B0 - lsls r4, r2, 2 - adds r4, r2 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x1C] - ldrh r1, [r4, 0x1E] - lsls r1, 16 - orrs r0, r1 - ldr r1, _081414B4 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _081414B8 - str r0, [r4] -_081414A4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081414AC: .4byte gPaletteFade -_081414B0: .4byte gTasks -_081414B4: .4byte 0x00007fff -_081414B8: .4byte sub_81414BC - thumb_func_end sub_814146C - - thumb_func_start sub_81414BC -sub_81414BC: @ 81414BC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08141508 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - ldrh r0, [r4, 0x26] - lsls r0, 24 - lsrs r1, r0, 24 - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0x10 - bgt _08141510 - movs r2, 0xE - ldrsh r0, [r4, r2] - lsls r0, 20 - movs r3, 0x80 - lsls r3, 17 - adds r0, r3 - lsrs r0, 16 - ldrb r2, [r4, 0x8] - ldr r3, _0814150C - lsls r1, 1 - adds r1, r3 - ldrh r3, [r1] - movs r1, 0x10 - bl BlendPalette - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - adds r0, r1 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - b _08141516 - .align 2, 0 -_08141508: .4byte gTasks -_0814150C: .4byte gUnknown_0840B4D4 -_08141510: - adds r0, r2, 0 - bl DestroyTask -_08141516: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81414BC - - thumb_func_start sub_814151C -sub_814151C: @ 814151C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0 - mov r8, r0 - ldr r0, _08141550 - ldr r3, _08141554 - ldrb r2, [r3] - adds r0, r2, r0 - ldrb r6, [r0] - ldr r1, _08141558 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x1C - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _081415F4 - cmp r0, 0x1 - bgt _0814155C - cmp r0, 0 - beq _08141562 - b _081416B6 - .align 2, 0 -_08141550: .4byte gUnknown_02024BE0 -_08141554: .4byte gUnknown_0202F7C8 -_08141558: .4byte gTasks -_0814155C: - cmp r0, 0x2 - beq _08141606 - b _081416B6 -_08141562: - ldr r0, _0814159C - ldrh r0, [r0] - strh r0, [r5, 0x1E] - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r4, [r5, 0x8] - adds r0, r4 - strh r0, [r5, 0x8] - ldrb r0, [r3] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _081415A4 - ldr r2, _081415A0 - lsls r3, r6, 4 - adds r1, r3, r6 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 24 - ldrh r4, [r1, 0x24] - adds r0, r4 - strh r0, [r1, 0x24] - adds r4, r3, 0 - b _081415BC - .align 2, 0 -_0814159C: .4byte gUnknown_03004B00 -_081415A0: .4byte gSprites -_081415A4: - ldr r3, _081415EC - lsls r4, r6, 4 - adds r2, r4, r6 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r5, 0x8] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r2, 0x24] - subs r0, r1 - strh r0, [r2, 0x24] - adds r2, r3, 0 -_081415BC: - ldr r1, _081415F0 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r3, r0, r1 - ldrb r0, [r3, 0x8] - strh r0, [r3, 0x8] - adds r0, r4, r6 - lsls r0, 2 - adds r0, r2 - movs r2, 0x20 - ldrsh r1, [r0, r2] - movs r4, 0x24 - ldrsh r0, [r0, r4] - adds r1, r0 - adds r1, 0x20 - movs r0, 0x98 - lsls r0, 1 - cmp r1, r0 - bls _081416B6 - ldrh r0, [r3, 0x1C] - adds r0, 0x1 - strh r0, [r3, 0x1C] - b _081416B6 - .align 2, 0 -_081415EC: .4byte gSprites -_081415F0: .4byte gTasks -_081415F4: - ldrb r1, [r5, 0x1E] - adds r0, r2, 0 - adds r2, r6, 0 - bl refresh_graphics_maybe - ldrh r0, [r5, 0x1C] - adds r0, 0x1 - strh r0, [r5, 0x1C] - b _081416B6 -_08141606: - movs r1, 0xA0 - lsls r1, 3 - adds r0, r1, 0 - ldrh r2, [r5, 0x8] - adds r0, r2 - strh r0, [r5, 0x8] - ldrb r0, [r3] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _0814163C - ldr r0, _08141638 - lsls r3, r6, 4 - adds r2, r3, r6 - lsls r2, 2 - adds r2, r0 - ldrh r1, [r5, 0x8] - lsls r1, 16 - asrs r1, 24 - ldrh r0, [r2, 0x24] - subs r0, r1 - strh r0, [r2, 0x24] - adds r4, r3, 0 - b _08141654 - .align 2, 0 -_08141638: .4byte gSprites -_0814163C: - ldr r0, _08141688 - lsls r2, r6, 4 - adds r1, r2, r6 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r5, 0x8] - lsls r0, 16 - asrs r0, 24 - ldrh r3, [r1, 0x24] - adds r0, r3 - strh r0, [r1, 0x24] - adds r4, r2, 0 -_08141654: - ldr r1, _0814168C - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x8] - strh r1, [r0, 0x8] - ldr r0, _08141690 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08141694 - ldr r0, _08141688 - adds r1, r4, r6 - lsls r1, 2 - adds r1, r0 - movs r4, 0x24 - ldrsh r0, [r1, r4] - cmp r0, 0 - bgt _081416AA - movs r0, 0 - strh r0, [r1, 0x24] - b _081416B0 - .align 2, 0 -_08141688: .4byte gSprites -_0814168C: .4byte gTasks -_08141690: .4byte gUnknown_0202F7C8 -_08141694: - ldr r0, _081416C0 - adds r1, r4, r6 - lsls r1, 2 - adds r1, r0 - movs r3, 0x24 - ldrsh r0, [r1, r3] - cmp r0, 0 - blt _081416AA - strh r2, [r1, 0x24] - movs r4, 0x1 - mov r8, r4 -_081416AA: - mov r0, r8 - cmp r0, 0 - beq _081416B6 -_081416B0: - adds r0, r7, 0 - bl move_anim_task_del -_081416B6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081416C0: .4byte gSprites - thumb_func_end sub_814151C - - thumb_func_start sub_81416C4 -sub_81416C4: @ 81416C4 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _081416E8 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08141744 - cmp r0, 0x1 - bgt _081416EC - cmp r0, 0 - beq _081416F2 - b _081417B8 - .align 2, 0 -_081416E8: .4byte gTasks -_081416EC: - cmp r0, 0x2 - beq _0814177C - b _081417B8 -_081416F2: - ldr r0, _08141708 - ldrb r0, [r0] - bl battle_get_per_side_status_permutated - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08141714 - ldr r1, _0814170C - ldr r2, _08141710 - b _08141718 - .align 2, 0 -_08141708: .4byte gUnknown_0202F7C8 -_0814170C: .4byte REG_BLDCNT -_08141710: .4byte 0x00003f42 -_08141714: - ldr r1, _08141734 - ldr r2, _08141738 -_08141718: - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0814173C - movs r0, 0x10 - strh r0, [r1] - ldr r1, _08141740 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x26] - adds r1, 0x1 - strh r1, [r0, 0x26] - b _081417B8 - .align 2, 0 -_08141734: .4byte REG_BLDCNT -_08141738: .4byte 0x00003f44 -_0814173C: .4byte REG_BLDALPHA -_08141740: .4byte gTasks -_08141744: - ldrh r0, [r4, 0xA] - adds r1, r0, 0x1 - strh r1, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _081417B8 - movs r0, 0 - strh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - adds r1, 0x1 - strh r1, [r4, 0x8] - ldr r3, _08141778 - lsls r2, r1, 8 - movs r0, 0x10 - subs r0, r1 - orrs r2, r0 - strh r2, [r3] - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x10 - bne _081417B8 - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - b _081417B8 - .align 2, 0 -_08141778: .4byte REG_BLDALPHA -_0814177C: - ldr r1, _081417C0 - ldr r3, _081417C4 - ldrb r0, [r3] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _081417C8 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldr r1, _081417CC - adds r0, r1 - movs r1, 0 - str r1, [sp] - ldr r1, _081417D0 - mov r2, sp - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, _081417D4 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - ldrb r0, [r3] - bl sub_80324E0 - adds r0, r5, 0 - bl move_anim_task_del -_081417B8: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081417C0: .4byte gUnknown_02024BE0 -_081417C4: .4byte gUnknown_0202F7C8 -_081417C8: .4byte gSprites -_081417CC: .4byte 0x06010000 -_081417D0: .4byte 0x040000d4 -_081417D4: .4byte 0x85000200 - thumb_func_end sub_81416C4 - - thumb_func_start sub_81417D8 -sub_81417D8: @ 81417D8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _081417FC - ldr r1, _08141800 - ldrb r1, [r1] - lsls r1, 2 - ldr r2, _08141804 - adds r1, r2 - ldr r1, [r1] - lsls r1, 29 - lsrs r1, 31 - strh r1, [r3, 0xE] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_081417FC: .4byte gUnknown_03004B00 -_08141800: .4byte gUnknown_0202F7C8 -_08141804: .4byte 0x02017800 - thumb_func_end sub_81417D8 - - thumb_func_start sub_8141808 -sub_8141808: @ 8141808 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08141820 - ldr r1, _08141824 - ldrb r1, [r1] - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_08141820: .4byte gUnknown_0202F7C9 -_08141824: .4byte gUnknown_02024C0A - thumb_func_end sub_8141808 - - thumb_func_start sub_8141828 -sub_8141828: @ 8141828 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r1, 0 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0 - mov r8, r0 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - ldr r1, _081418E0 - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r4, r0, 0 - adds r0, r6, 0 - bl b_side_obj__get_some_boolean - lsls r0, 24 - cmp r0, 0 - beq _081418FC - lsrs r0, r5, 16 - ldr r7, _081418E4 - ands r5, r7 - eors r0, r5 - lsrs r1, r4, 16 - eors r0, r1 - ands r4, r7 - eors r0, r4 - cmp r0, 0x7 - bhi _08141882 - movs r0, 0x1 - mov r8, r0 -_08141882: - mov r0, r8 - cmp r0, 0 - beq _081418FC - ldr r0, _081418E8 - bl GetSpriteTileStartByTag - lsls r0, 16 - lsrs r0, 16 - cmp r0, r7 - bne _081418A2 - ldr r0, _081418EC - bl LoadCompressedObjectPic - ldr r0, _081418F0 - bl LoadCompressedObjectPalette -_081418A2: - ldr r5, _081418F4 - adds r0, r5, 0 - movs r1, 0xA - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r3, _081418F8 - lsls r2, r4, 2 - adds r2, r4 - lsls r2, 3 - adds r2, r3 - movs r4, 0 - strh r6, [r2, 0x8] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - strh r6, [r1, 0x8] - strh r4, [r2, 0xA] - movs r0, 0x1 - strh r0, [r1, 0xA] - b _0814190E - .align 2, 0 -_081418E0: .4byte 0x02017810 -_081418E4: .4byte 0x0000ffff -_081418E8: .4byte 0x000027f9 -_081418EC: .4byte gBattleAnimPicTable + (233 * 8) -_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8) -_081418F4: .4byte sub_814191C -_081418F8: .4byte gTasks -_081418FC: - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - ldr r1, _08141918 - adds r0, r1 - ldrb r1, [r0, 0x1] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x1] -_0814190E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08141918: .4byte 0x02017810 - thumb_func_end sub_8141828 - - thumb_func_start sub_814191C -sub_814191C: @ 814191C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08141944 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r4, r0, r1 - ldrh r1, [r4, 0x22] - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0x3B - bgt _08141948 - adds r0, r1, 0x1 - strh r0, [r4, 0x22] - b _08141AB8 - .align 2, 0 -_08141944: .4byte gTasks -_08141948: - ldr r0, _08141998 - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _08141952 - b _08141AB8 -_08141952: - ldrh r0, [r4, 0x1C] - adds r1, r0, 0x1 - strh r1, [r4, 0x1C] - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - beq _08141966 - b _08141AB8 -_08141966: - ldrb r0, [r4, 0x8] - mov r8, r0 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r8 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081419A0 - ldr r0, _0814199C - adds r1, r5, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - b _08141A02 - .align 2, 0 -_08141998: .4byte 0x02017840 -_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8 -_081419A0: - cmp r0, 0 - blt _081419D4 - cmp r0, 0x3 - bgt _081419D4 - ldr r0, _081419CC - adds r1, r5, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _081419D0 - lsls r2, r5, 4 - adds r2, r5 - lsls r2, 2 - adds r2, r0 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x4 - b _081419F4 - .align 2, 0 -_081419CC: .4byte gSpriteTemplate_8402500 -_081419D0: .4byte gSprites -_081419D4: - ldr r0, _08141A2C - adds r1, r5, 0 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08141A30 - lsls r2, r5, 4 - adds r2, r5 - lsls r2, 2 - adds r2, r0 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x5 -_081419F4: - ldr r4, _08141A34 - adds r0, r4, 0 - ands r1, r0 - ldr r0, _08141A38 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] -_08141A02: - ldr r2, _08141A3C - lsls r1, r7, 2 - adds r0, r1, r7 - lsls r0, 3 - adds r6, r0, r2 - movs r2, 0xA - ldrsh r0, [r6, r2] - mov r9, r1 - cmp r0, 0 - bne _08141A44 - ldr r1, _08141A30 - lsls r2, r5, 4 - adds r0, r2, r5 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08141A40 - str r1, [r0] - adds r4, r2, 0 - b _08141A8C - .align 2, 0 -_08141A2C: .4byte gSpriteTemplate_8402500 -_08141A30: .4byte gSprites -_08141A34: .4byte 0x000003ff -_08141A38: .4byte 0xfffffc00 -_08141A3C: .4byte gTasks -_08141A40: .4byte sub_8141B20 -_08141A44: - ldr r3, _08141AC4 - lsls r4, r5, 4 - adds r1, r4, r5 - lsls r1, 2 - adds r0, r3, 0 - adds r0, 0x1C - adds r0, r1, r0 - ldr r2, _08141AC8 - str r2, [r0] - adds r1, r3 - ldr r0, _08141ACC - strh r0, [r1, 0x24] - movs r0, 0x20 - strh r0, [r1, 0x26] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - movs r1, 0x1E - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08141A8C - mov r0, r8 - bl battle_side_get_owner - lsls r0, 24 - movs r1, 0x3F - cmp r0, 0 - bne _08141A82 - movs r1, 0xC0 -_08141A82: - lsls r1, 24 - asrs r1, 24 - movs r0, 0x66 - bl PlaySE12WithPanning -_08141A8C: - ldr r1, _08141AC4 - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - strh r7, [r0, 0x2E] - ldr r1, _08141AD0 - mov r2, r9 - adds r0, r2, r7 - lsls r0, 3 - adds r2, r0, r1 - ldrh r1, [r2, 0x1E] - adds r1, 0x1 - strh r1, [r2, 0x1E] - ldrh r0, [r2, 0x20] - adds r0, 0x1 - strh r0, [r2, 0x20] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x5 - bne _08141AB8 - ldr r0, _08141AD4 - str r0, [r2] -_08141AB8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08141AC4: .4byte gSprites -_08141AC8: .4byte sub_8141B74 -_08141ACC: .4byte 0x0000ffe0 -_08141AD0: .4byte gTasks -_08141AD4: .4byte sub_8141AD8 - thumb_func_end sub_814191C - - thumb_func_start sub_8141AD8 -sub_8141AD8: @ 8141AD8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - adds r3, r0, 0 - ldr r1, _08141B18 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r1, r0, r1 - movs r2, 0x20 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08141B14 - movs r2, 0xA - ldrsh r0, [r1, r2] - cmp r0, 0x1 - bne _08141B0E - ldrb r1, [r1, 0x8] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08141B1C - adds r0, r1 - ldrb r1, [r0, 0x1] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x1] -_08141B0E: - adds r0, r3, 0 - bl DestroyTask -_08141B14: - pop {r0} - bx r0 - .align 2, 0 -_08141B18: .4byte gTasks -_08141B1C: .4byte 0x02017810 - thumb_func_end sub_8141AD8 - - thumb_func_start sub_8141B20 -sub_8141B20: @ 8141B20 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x18 - bl Sin - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x18 - bl Cos - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x30] - adds r0, 0xC - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xFF - ble _08141B6A - ldr r2, _08141B70 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_08141B6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141B70: .4byte gTasks - thumb_func_end sub_8141B20 - - thumb_func_start sub_8141B74 -sub_8141B74: @ 8141B74 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x3 - bgt _08141B88 - adds r0, r1, 0x1 - strh r0, [r4, 0x30] - b _08141BCA -_08141B88: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldrh r1, [r4, 0x24] - adds r1, 0x5 - strh r1, [r4, 0x24] - ldrh r0, [r4, 0x26] - subs r0, 0x5 - strh r0, [r4, 0x26] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x20 - ble _08141BCA - ldr r2, _08141BD0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r0, 0x20] - subs r1, 0x1 - strh r1, [r0, 0x20] - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite -_08141BCA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141BD0: .4byte gTasks - thumb_func_end sub_8141B74 - - thumb_func_start sub_8141BD4 -sub_8141BD4: @ 8141BD4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08141BFC - bl LoadCompressedObjectPic - ldr r0, _08141C00 - bl LoadCompressedObjectPalette - ldr r0, _08141C04 - bl IndexOfSpritePaletteTag - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141BFC: .4byte gBattleAnimPicTable + (269 * 8) -_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8) -_08141C04: .4byte 0x0000281d - thumb_func_end sub_8141BD4 - - thumb_func_start sub_8141C08 -sub_8141C08: @ 8141C08 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08141C2C - adds r0, r5, 0 - bl FreeSpriteTilesByTag - adds r0, r5, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl move_anim_task_del - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141C2C: .4byte 0x0000281d - thumb_func_end sub_8141C08 - - thumb_func_start sub_8141C30 -sub_8141C30: @ 8141C30 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0 - bl sub_80787B0 - movs r0, 0x1E - strh r0, [r4, 0x2E] - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl sub_8077ABC - lsls r0, 24 - ldr r5, _08141CA4 - lsrs r0, 24 - ldrh r1, [r5, 0x4] - adds r0, r1 - strh r0, [r4, 0x32] - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - bl sub_8077ABC - lsls r0, 24 - lsrs r0, 24 - ldrh r5, [r5, 0x6] - adds r0, r5 - strh r0, [r4, 0x36] - ldr r0, _08141CA8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80786EC - ldr r1, _08141CAC - ldr r0, _08141CB0 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08141CB4 - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _08141CB8 - str r0, [r4, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141CA4: .4byte gUnknown_03004B00 -_08141CA8: .4byte 0x0000ffe0 -_08141CAC: .4byte gUnknown_02024BE0 -_08141CB0: .4byte gUnknown_0202F7C8 -_08141CB4: .4byte gSprites -_08141CB8: .4byte sub_8141CBC - thumb_func_end sub_8141C30 - - thumb_func_start sub_8141CBC -sub_8141CBC: @ 8141CBC - push {lr} - adds r3, r0, 0 - ldr r2, _08141CE4 - ldr r1, _08141CE8 - ldr r0, _08141CEC - ldrb r0, [r0] - adds r0, r1 - 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 _08141CE0 - ldr r0, _08141CF0 - str r0, [r3, 0x1C] -_08141CE0: - pop {r0} - bx r0 - .align 2, 0 -_08141CE4: .4byte gSprites -_08141CE8: .4byte gUnknown_02024BE0 -_08141CEC: .4byte gUnknown_0202F7C8 -_08141CF0: .4byte sub_8141CF4 - thumb_func_end sub_8141CBC - - thumb_func_start sub_8141CF4 -sub_8141CF4: @ 8141CF4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8078718 - lsls r0, 24 - cmp r0, 0 - beq _08141D16 - movs r0, 0 - strh r0, [r4, 0x2E] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08141D1C - str r0, [r4, 0x1C] -_08141D16: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141D1C: .4byte sub_8141D20 - thumb_func_end sub_8141CF4 - - thumb_func_start sub_8141D20 -sub_8141D20: @ 8141D20 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _08141D70 - ldr r3, _08141D74 - ldr r2, _08141D78 - ldrb r0, [r2] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - cmp r0, 0 - bge _08141D68 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - ble _08141D68 - ldrb r0, [r2] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0 - bl StartSpriteAnim - adds r0, r4, 0 - bl move_anim_8072740 -_08141D68: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08141D70: .4byte gSprites -_08141D74: .4byte gUnknown_02024BE0 -_08141D78: .4byte gUnknown_0202F7C8 - thumb_func_end sub_8141D20 - - thumb_func_start sub_8141D7C -sub_8141D7C: @ 8141D7C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08141DA4 - strb r0, [r1] - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _08141DA8 - strb r0, [r1] - adds r0, r4, 0 - bl move_anim_task_del - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141DA4: .4byte gUnknown_0202F7C8 -_08141DA8: .4byte gUnknown_0202F7C9 - thumb_func_end sub_8141D7C - - thumb_func_start sub_8141DAC -sub_8141DAC: @ 8141DAC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08141DC0 - ldrh r1, [r0] - cmp r1, 0x53 - bne _08141DC8 - ldr r1, _08141DC4 - movs r0, 0x1 - b _08141E00 - .align 2, 0 -_08141DC0: .4byte 0x02017840 -_08141DC4: .4byte gUnknown_03004B00 -_08141DC8: - cmp r1, 0xFA - bne _08141DD8 - ldr r1, _08141DD4 - movs r0, 0x2 - b _08141E00 - .align 2, 0 -_08141DD4: .4byte gUnknown_03004B00 -_08141DD8: - cmp r1, 0x80 - bne _08141DE8 - ldr r1, _08141DE4 - movs r0, 0x3 - b _08141E00 - .align 2, 0 -_08141DE4: .4byte gUnknown_03004B00 -_08141DE8: - movs r0, 0xA4 - lsls r0, 1 - cmp r1, r0 - bne _08141DFC - ldr r1, _08141DF8 - movs r0, 0x4 - b _08141E00 - .align 2, 0 -_08141DF8: .4byte gUnknown_03004B00 -_08141DFC: - ldr r1, _08141E0C - movs r0, 0 -_08141E00: - strh r0, [r1] - adds r0, r2, 0 - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_08141E0C: .4byte gUnknown_03004B00 - thumb_func_end sub_8141DAC - - thumb_func_start sub_8141E10 -sub_8141E10: @ 8141E10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08141E2C - ldr r1, _08141E30 - ldrh r1, [r1] - strb r1, [r2] - ldr r2, _08141E34 - lsrs r1, 8 - strb r1, [r2] - bl move_anim_task_del - pop {r0} - bx r0 - .align 2, 0 -_08141E2C: .4byte gUnknown_0202F7C8 -_08141E30: .4byte 0x02017840 -_08141E34: .4byte gUnknown_0202F7C9 - thumb_func_end sub_8141E10 - - thumb_func_start sub_8141E38 -sub_8141E38: @ 8141E38 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8141E38 - - thumb_func_start sub_8141E4C -sub_8141E4C: @ 8141E4C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8141E4C - - thumb_func_start sub_8141E64 -sub_8141E64: @ 8141E64 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08141E80 - ldr r1, _08141E84 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bhi _08141EA0 - lsls r0, 2 - ldr r1, _08141E88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08141E80: .4byte gMain -_08141E84: .4byte 0x0000043c -_08141E88: .4byte _08141E8C - .align 2, 0 -_08141E8C: - .4byte _08141EA0 - .4byte _08141EC0 - .4byte _08141EC6 - .4byte _08141F1C - .4byte _08141F58 -_08141EA0: - movs r0, 0 - bl SetVBlankCallback - bl sub_81433E0 - ldr r0, _08141EB8 - ldr r2, _08141EBC - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - b _08141F84 - .align 2, 0 -_08141EB8: .4byte gMain -_08141EBC: .4byte 0x0000043c -_08141EC0: - bl sub_8143570 - b _08141F38 -_08141EC6: - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08141F04 - bl SetVBlankCallback - ldr r3, _08141F08 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08141F0C - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08141F10 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08141F14 - ldr r2, _08141F18 - adds r1, r2 - b _08141F3E - .align 2, 0 -_08141F04: .4byte sub_8141E38 -_08141F08: .4byte 0x04000208 -_08141F0C: .4byte 0x04000200 -_08141F10: .4byte REG_DISPSTAT -_08141F14: .4byte gMain -_08141F18: .4byte 0x0000043c -_08141F1C: - ldr r1, _08141F48 - ldr r2, _08141F4C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r2, 0xE2 - lsls r2, 3 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0 - strh r0, [r1] - bl sub_81435B8 -_08141F38: - ldr r1, _08141F50 - ldr r0, _08141F54 - adds r1, r0 -_08141F3E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08141F84 - .align 2, 0 -_08141F48: .4byte REG_BLDCNT -_08141F4C: .4byte 0x00003f42 -_08141F50: .4byte gMain -_08141F54: .4byte 0x0000043c -_08141F58: - bl UpdatePaletteFade - ldr r0, _08141F7C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08141F84 - ldr r0, _08141F80 - bl SetMainCallback2 - movs r0, 0xDA - lsls r0, 1 - bl PlayBGM - movs r0, 0 - b _08141F86 - .align 2, 0 -_08141F7C: .4byte gPaletteFade -_08141F80: .4byte sub_8141E4C -_08141F84: - movs r0, 0x1 -_08141F86: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8141E64 - - thumb_func_start sub_8141F90 -sub_8141F90: @ 8141F90 - push {r4,lr} - bl sub_8141E64 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08141FB6 - ldr r0, _08141FBC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08141FC0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] -_08141FB6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08141FBC: .4byte sub_8141FF8 -_08141FC0: .4byte gTasks - thumb_func_end sub_8141F90 - - thumb_func_start sub_8141FC4 -sub_8141FC4: @ 8141FC4 - push {lr} - bl sub_8141E64 - lsls r0, 24 - cmp r0, 0 - bne _08141FEA - ldr r0, _08141FF0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08141FF4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x8] -_08141FEA: - pop {r0} - bx r0 - .align 2, 0 -_08141FF0: .4byte sub_8141FF8 -_08141FF4: .4byte gTasks - thumb_func_end sub_8141FC4 - - thumb_func_start sub_8141FF8 -sub_8141FF8: @ 8141FF8 - 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 r8, r0 - ldr r0, _081420C8 - mov r9, r0 - ldr r1, _081420CC - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - movs r7, 0 - ldr r4, _081420D0 - mov r10, r4 -_08142024: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _081420D4 - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r3, r0, 0 - cmp r3, 0 - beq _081420DC - adds r0, r6, 0 - movs r1, 0x41 - bl GetMonData - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 2 - mov r1, r9 - adds r5, r1, r4 - ldr r2, _081420D8 - adds r1, r2, 0 - ands r0, r1 - ldrh r1, [r5, 0x8] - mov r2, r10 - ands r1, r2 - orrs r1, r0 - strh r1, [r5, 0x8] - adds r0, r6, 0 - movs r1, 0x1 - bl GetMonData - str r0, [r5] - adds r0, r6, 0 - movs r1, 0 - bl GetMonData - mov r1, r9 - adds r1, 0x4 - adds r1, r4 - str r0, [r1] - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - lsls r0, 1 - ldrb r2, [r5, 0x9] - movs r1, 0x1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x9] - adds r0, r6, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - movs r2, 0 - mov r6, r8 - lsls r5, r6, 2 - mov r3, r9 - adds r3, 0xA -_081420A0: - adds r1, r2, r4 - adds r1, r3, r1 - mov r6, sp - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x9 - bls _081420A0 - ldr r0, _081420CC - mov r2, r8 - adds r1, r5, r2 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0xC] - adds r0, 0x1 - strh r0, [r1, 0xC] - b _08142108 - .align 2, 0 -_081420C8: .4byte 0x0201c000 -_081420CC: .4byte gTasks -_081420D0: .4byte 0xfffffe00 -_081420D4: .4byte gPlayerParty -_081420D8: .4byte 0x000001ff -_081420DC: - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 2 - mov r4, r9 - adds r2, r4, r1 - ldrh r0, [r2, 0x8] - mov r6, r10 - ands r0, r6 - strh r0, [r2, 0x8] - str r3, [r2] - mov r0, r9 - adds r0, 0x4 - adds r0, r1 - str r3, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x1 - ands r0, r1 - strb r0, [r2, 0x9] - movs r0, 0xFF - strb r0, [r2, 0xA] - mov r0, r8 - lsls r5, r0, 2 -_08142108: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x5 - bls _08142024 - ldr r0, _08142158 - movs r3, 0 - str r3, [r0] - ldr r4, _0814215C - mov r2, r8 - adds r1, r5, r2 - lsls r1, 3 - adds r2, r1, r4 - strh r3, [r2, 0xA] - movs r0, 0xFF - strh r0, [r2, 0x10] - movs r7, 0 - adds r3, r4, 0 - adds r3, 0x8 - movs r2, 0xFF -_08142130: - adds r0, r7, 0x5 - lsls r0, 1 - adds r0, r1 - adds r0, r3 - strh r2, [r0] - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - cmp r7, 0x5 - bls _08142130 - mov r6, r8 - adds r0, r5, r6 - lsls r0, 3 - adds r1, r0, r4 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08142164 - ldr r0, _08142160 - b _08142166 - .align 2, 0 -_08142158: .4byte gUnknown_0203931C -_0814215C: .4byte gTasks -_08142160: .4byte sub_81422E8 -_08142164: - ldr r0, _08142178 -_08142166: - str 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 -_08142178: .4byte sub_814217C - thumb_func_end sub_8141FF8 - - thumb_func_start sub_814217C -sub_814217C: @ 814217C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _081421C4 - mov r9, r0 - movs r7, 0x80 - lsls r7, 6 - add r7, r9 - ldr r0, _081421C8 - ldrb r0, [r0] - cmp r0, 0 - bne _081421D4 - movs r4, 0 - mov r0, r8 - lsls r0, 2 - mov r10, r0 - ldr r5, _081421CC - add r5, r9 - movs r3, 0xF0 - lsls r3, 9 - movs r2, 0 - ldr r1, _081421D0 -_081421B2: - adds r0, r4, r3 - adds r0, r5 - strb r2, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - bls _081421B2 - b _081421E0 - .align 2, 0 -_081421C4: .4byte 0x0201c000 -_081421C8: .4byte gUnknown_02039324 -_081421CC: .4byte 0xfffe4000 -_081421D0: .4byte 0x00001fff -_081421D4: - movs r0, 0x3 - bl sub_8125EC8 - mov r0, r8 - lsls r0, 2 - mov r10, r0 -_081421E0: - movs r4, 0 - ldrh r1, [r7, 0x8] - ldr r2, _081421E8 - b _081421FA - .align 2, 0 -_081421E8: .4byte 0x000001ff -_081421EC: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, 0x78 - cmp r4, 0x31 - bhi _08142206 - ldrh r1, [r7, 0x8] -_081421FA: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _081421EC - cmp r4, 0x31 - bls _08142228 -_08142206: - ldr r5, _08142264 - adds r6, r5, 0 - adds r5, 0x78 - movs r4, 0 - subs r7, 0x78 -_08142210: - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x78 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, 0x78 - adds r5, 0x78 - cmp r4, 0x30 - bls _08142210 -_08142228: - adds r0, r7, 0 - mov r1, r9 - movs r2, 0x78 - bl memcpy - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08142268 - movs r1, 0x3 - movs r2, 0xF - bl MenuPrint - ldr r1, _0814226C - mov r0, r10 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _08142270 - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142264: .4byte 0x0201e000 -_08142268: .4byte gMenuText_HOFSaving -_0814226C: .4byte gTasks -_08142270: .4byte sub_8142274 - thumb_func_end sub_814217C - - thumb_func_start sub_8142274 -sub_8142274: @ 8142274 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _081422A8 - ldr r0, _081422AC - str r0, [r1] - movs r0, 0x3 - bl sub_8125D44 - movs r0, 0x37 - bl PlaySE - ldr r1, _081422B0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081422B4 - str r1, [r0] - movs r1, 0x20 - strh r1, [r0, 0xE] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081422A8: .4byte gUnknown_03005EBC -_081422AC: .4byte sub_8141FC4 -_081422B0: .4byte gTasks -_081422B4: .4byte sub_81422B8 - thumb_func_end sub_8142274 - - thumb_func_start sub_81422B8 -sub_81422B8: @ 81422B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081422D8 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r2, [r1, 0xE] - movs r3, 0xE - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _081422DC - subs r0, r2, 0x1 - strh r0, [r1, 0xE] - b _081422E0 - .align 2, 0 -_081422D8: .4byte gTasks -_081422DC: - ldr r0, _081422E4 - str r0, [r1] -_081422E0: - pop {r0} - bx r0 - .align 2, 0 -_081422E4: .4byte sub_81422E8 - thumb_func_end sub_81422B8 - - thumb_func_start sub_81422E8 -sub_81422E8: @ 81422E8 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08142314 - adds r0, r5, 0 - bl SetUpWindowConfig - adds r0, r5, 0 - bl InitMenuWindow - ldr r1, _08142318 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0814231C - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08142314: .4byte gWindowConfig_81E7198 -_08142318: .4byte gTasks -_0814231C: .4byte sub_8142320 - thumb_func_end sub_81422E8 - - thumb_func_start sub_8142320 -sub_8142320: @ 8142320 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, _08142350 - ldr r0, _08142354 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldrh r6, [r1, 0xA] - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 2 - adds r4, r0, r2 - movs r2, 0xC - ldrsh r0, [r1, r2] - cmp r0, 0x3 - ble _0814235C - ldr r1, _08142358 - b _0814235E - .align 2, 0 -_08142350: .4byte 0x0201c000 -_08142354: .4byte gTasks -_08142358: .4byte gUnknown_0840B534 -_0814235C: - ldr r1, _081423F0 -_0814235E: - lsls r2, r6, 3 - adds r0, r2, r1 - ldrh r5, [r0] - adds r0, r1, 0x2 - adds r0, r2, r0 - ldrh r3, [r0] - adds r0, r1, 0x4 - adds r0, r2, r0 - ldrh r0, [r0] - mov r9, r0 - adds r1, 0x6 - adds r2, r1 - ldrh r2, [r2] - mov r8, r2 - ldrh r0, [r4, 0x8] - lsls r0, 23 - lsrs r0, 23 - lsls r1, r5, 16 - asrs r1, 16 - lsls r2, r3, 16 - asrs r2, 16 - ldr r3, [r4] - str r3, [sp] - ldr r3, [r4, 0x4] - str r3, [sp, 0x4] - adds r3, r6, 0 - bl sub_81436BC - lsls r0, 24 - lsrs r0, 24 - ldr r3, _081423F4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r3 - movs r4, 0 - mov r5, r9 - strh r5, [r2, 0x30] - mov r5, r8 - strh r5, [r2, 0x32] - strh r4, [r2, 0x2E] - adds r3, 0x1C - adds r1, r3 - ldr r2, _081423F8 - str r2, [r1] - ldr r5, _081423FC - adds r1, r6, 0x5 - lsls r1, 1 - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r1, r4 - adds r2, r5, 0 - adds r2, 0x8 - adds r1, r2 - strh r0, [r1] - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r4, r5 - ldr r0, _08142400 - str r0, [r4] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081423F0: .4byte gUnknown_0840B564 -_081423F4: .4byte gSprites -_081423F8: .4byte sub_81435DC -_081423FC: .4byte gTasks -_08142400: .4byte sub_8142404 - thumb_func_end sub_8142320 - - thumb_func_start sub_8142404 -sub_8142404: @ 8142404 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08142470 - ldr r3, _08142474 - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r5, r2, r3 - ldrh r1, [r5, 0xA] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r6, r0, r4 - ldr r4, _08142478 - adds r1, 0x5 - lsls r1, 1 - adds r1, r2 - adds r3, 0x8 - adds r1, r3 - movs r0, 0 - ldrsh r1, [r1, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0814246A - ldrh r2, [r6, 0x8] - ldr r0, _0814247C - ands r0, r2 - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08142458 - lsls r0, r2, 23 - lsrs r0, 23 - movs r1, 0 - bl PlayCry1 -_08142458: - adds r0, r6, 0 - movs r1, 0 - movs r2, 0xE - bl sub_8143088 - movs r0, 0x78 - strh r0, [r5, 0xE] - ldr r0, _08142480 - str r0, [r5] -_0814246A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08142470: .4byte 0x0201c000 -_08142474: .4byte gTasks -_08142478: .4byte gSprites -_0814247C: .4byte 0x000001ff -_08142480: .4byte sub_8142484 - thumb_func_end sub_8142404 - - thumb_func_start sub_8142484 -sub_8142484: @ 8142484 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _081424BC - ldr r1, _081424C0 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - adds r4, r6, r1 - ldrh r3, [r4, 0xA] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r2 - mov r9, r0 - ldrh r2, [r4, 0xE] - movs r7, 0xE - ldrsh r0, [r4, r7] - mov r12, r1 - cmp r0, 0 - beq _081424C4 - subs r0, r2, 0x1 - strh r0, [r4, 0xE] - b _0814255C - .align 2, 0 -_081424BC: .4byte 0x0201c000 -_081424C0: .4byte gTasks -_081424C4: - ldr r2, _0814253C - ldr r0, _08142540 - mov r8, r0 - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r6 - mov r1, r12 - adds r1, 0x8 - adds r6, r0, r1 - movs r7, 0 - ldrsh r1, [r6, r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x5] - lsrs r0, 4 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - ldr r3, [r2] - orrs r3, r1 - str r3, [r2] - ldrh r2, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bgt _08142550 - mov r7, r9 - ldrh r1, [r7, 0x1C] - ldr r0, _08142544 - ands r0, r1 - cmp r0, 0 - beq _08142550 - adds r0, r2, 0x1 - strh r0, [r4, 0xA] - ldr r0, _08142548 - str r0, [sp] - adds r0, r3, 0 - movs r1, 0 - movs r2, 0xC - movs r3, 0xC - bl BeginNormalPaletteFade - movs r0, 0 - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r0, _0814254C - str r0, [r4] - b _0814255C - .align 2, 0 -_0814253C: .4byte gUnknown_0203931C -_08142540: .4byte gSprites -_08142544: .4byte 0x000001ff -_08142548: .4byte 0x0000735f -_0814254C: .4byte sub_8142320 -_08142550: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - add r0, r12 - ldr r1, _0814256C - str r1, [r0] -_0814255C: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814256C: .4byte sub_8142570 - thumb_func_end sub_8142484 - - thumb_func_start sub_8142570 -sub_8142570: @ 8142570 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08142604 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - movs r3, 0 - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r5, r0, 3 - ldr r0, _08142608 - mov r12, r0 - mov r8, r1 - ldr r6, _0814260C - movs r7, 0xD - negs r7, r7 -_0814259E: - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r5 - mov r2, r12 - adds r1, r0, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0xFF - beq _081425C0 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x5] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1, 0x5] -_081425C0: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _0814259E - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xF - bl sub_8143068 - movs r0, 0x69 - bl PlaySE - ldr r1, _08142610 - mov r2, r8 - adds r0, r2, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0xC8 - lsls r1, 1 - strh r1, [r0, 0xE] - ldr r1, _08142614 - str r1, [r0] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142604: .4byte 0xffff0000 -_08142608: .4byte gUnknown_03004B28 -_0814260C: .4byte gSprites -_08142610: .4byte gTasks -_08142614: .4byte sub_8142618 - thumb_func_end sub_8142570 - - thumb_func_start sub_8142618 -sub_8142618: @ 8142618 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r7, _08142658 - lsls r4, r6, 2 - adds r0, r4, r6 - lsls r5, r0, 3 - adds r1, r5, r7 - ldrh r2, [r1, 0xE] - movs r3, 0xE - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0814265C - subs r2, 0x1 - strh r2, [r1, 0xE] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0 - bne _081426D2 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x6E - ble _081426D2 - bl sub_81438C4 - b _081426D2 - .align 2, 0 -_08142658: .4byte gTasks -_0814265C: - movs r3, 0 - mov r9, r4 - ldr r0, _081426E4 - mov r10, r0 - adds r4, r5, 0 - adds r7, 0x8 - mov r8, r7 - ldr r7, _081426E8 - movs r1, 0xD - negs r1, r1 - mov r12, r1 - movs r5, 0x4 -_08142674: - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r4 - mov r2, r8 - adds r1, r0, r2 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0xFF - beq _08142698 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0x5] - mov r0, r12 - ands r0, r2 - orrs r0, r5 - strb r0, [r1, 0x5] -_08142698: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _08142674 - mov r3, r10 - ldr r0, [r3] - ldr r1, _081426EC - str r1, [sp] - movs r1, 0 - movs r2, 0xC - movs r3, 0xC - bl BeginNormalPaletteFade - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _081426F0 - mov r2, r9 - adds r0, r2, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0x7 - strh r1, [r0, 0xE] - ldr r1, _081426F4 - str r1, [r0] -_081426D2: - 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 -_081426E4: .4byte gUnknown_0203931C -_081426E8: .4byte gSprites -_081426EC: .4byte 0x0000735f -_081426F0: .4byte gTasks -_081426F4: .4byte sub_81426F8 - thumb_func_end sub_8142618 - - thumb_func_start sub_81426F8 -sub_81426F8: @ 81426F8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08142718 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r2 - ldrh r1, [r2, 0xE] - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, 0xF - ble _08142720 - ldr r0, _0814271C - str r0, [r2] - b _0814272E - .align 2, 0 -_08142718: .4byte gTasks -_0814271C: .4byte sub_8142738 -_08142720: - adds r0, r1, 0x1 - strh r0, [r2, 0xE] - ldr r1, _08142734 - movs r3, 0xE - ldrsh r0, [r2, r3] - lsls r0, 8 - strh r0, [r1] -_0814272E: - pop {r0} - bx r0 - .align 2, 0 -_08142734: .4byte REG_BLDALPHA - thumb_func_end sub_81426F8 - - thumb_func_start sub_8142738 -sub_8142738: @ 8142738 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xCA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _08142784 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r0, _08142788 - ldrb r0, [r0, 0x8] - movs r1, 0x78 - movs r2, 0x48 - movs r3, 0x6 - bl sub_81437A4 - ldr r2, _0814278C - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0x10] - movs r0, 0x78 - strh r0, [r1, 0xE] - ldr r0, _08142790 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08142784: .4byte gWindowConfig_81E71B4 -_08142788: .4byte gSaveBlock2 -_0814278C: .4byte gTasks -_08142790: .4byte sub_8142794 - thumb_func_end sub_8142738 - - thumb_func_start sub_8142794 -sub_8142794: @ 8142794 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081427B4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081427B8 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _0814280A - .align 2, 0 -_081427B4: .4byte gTasks -_081427B8: - ldr r2, _081427D8 - movs r3, 0x10 - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrh r2, [r1, 0x20] - movs r3, 0x20 - ldrsh r0, [r1, r3] - cmp r0, 0xA0 - beq _081427DC - adds r0, r2, 0x1 - strh r0, [r1, 0x20] - b _0814280A - .align 2, 0 -_081427D8: .4byte gSprites -_081427DC: - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0xF - movs r3, 0x9 - bl MenuDrawTextWindow - movs r0, 0x1 - movs r1, 0x2 - bl sub_8143300 - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08142810 - movs r1, 0x4 - movs r2, 0xF - bl MenuPrint - ldr r0, _08142814 - str r0, [r4] -_0814280A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142810: .4byte gMenuText_HOFCongratulations -_08142814: .4byte sub_8142818 - thumb_func_end sub_8142794 - - thumb_func_start sub_8142818 -sub_8142818: @ 8142818 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08142844 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814283E - movs r0, 0x4 - bl FadeOutBGM - ldr r0, _08142848 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0814284C - str r0, [r1] -_0814283E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142844: .4byte gMain -_08142848: .4byte gTasks -_0814284C: .4byte sub_8142850 - thumb_func_end sub_8142818 - - thumb_func_start sub_8142850 -sub_8142850: @ 8142850 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08142890 - ldr r1, _08142894 - movs r2, 0x80 - lsls r2, 2 - bl CpuSet - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x8 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08142898 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0814289C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08142890: .4byte gPlttBufferFaded -_08142894: .4byte gPlttBufferUnfaded -_08142898: .4byte gTasks -_0814289C: .4byte sub_81428A0 - thumb_func_end sub_8142850 - - thumb_func_start sub_81428A0 -sub_81428A0: @ 81428A0 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081428C4 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081428BE - adds r0, r2, 0 - bl DestroyTask - ldr r0, _081428C8 - bl SetMainCallback2 -_081428BE: - pop {r0} - bx r0 - .align 2, 0 -_081428C4: .4byte gPaletteFade -_081428C8: .4byte sub_81439D0 - thumb_func_end sub_81428A0 - - thumb_func_start sub_81428CC -sub_81428CC: @ 81428CC - push {r4,r5,lr} - ldr r0, _081428E4 - ldr r1, _081428E8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08142908 - lsls r0, 2 - ldr r1, _081428EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081428E4: .4byte gMain -_081428E8: .4byte 0x0000043c -_081428EC: .4byte _081428F0 - .align 2, 0 -_081428F0: - .4byte _08142908 - .4byte _08142928 - .4byte _0814293C - .4byte _08142980 - .4byte _081429C0 - .4byte _081429EC -_08142908: - movs r0, 0 - bl SetVBlankCallback - bl sub_81433E0 - ldr r0, _08142920 - ldr r2, _08142924 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] - b _08142A12 - .align 2, 0 -_08142920: .4byte gMain -_08142924: .4byte 0x0000043c -_08142928: - bl sub_8143570 - ldr r1, _08142934 - ldr r3, _08142938 - adds r1, r3 - b _081429DC - .align 2, 0 -_08142934: .4byte gMain -_08142938: .4byte 0x0000043c -_0814293C: - ldr r0, _08142968 - bl SetVBlankCallback - ldr r3, _0814296C - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _08142970 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08142974 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r1, _08142978 - ldr r4, _0814297C - adds r1, r4 - b _081429DC - .align 2, 0 -_08142968: .4byte sub_8141E38 -_0814296C: .4byte 0x04000208 -_08142970: .4byte 0x04000200 -_08142974: .4byte REG_DISPSTAT -_08142978: .4byte gMain -_0814297C: .4byte 0x0000043c -_08142980: - ldr r0, _081429AC - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl sub_81435B8 - ldr r0, _081429B0 - adds r2, r0, 0 - ldr r1, _081429B4 - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3,r5} - stm r2!, {r3,r5} - bl sub_80C5CD4 - ldr r1, _081429B8 - ldr r4, _081429BC - adds r1, r4 - b _081429DC - .align 2, 0 -_081429AC: .4byte REG_BLDCNT -_081429B0: .4byte 0x0201c000 -_081429B4: .4byte gUnknown_0840B57C -_081429B8: .4byte gMain -_081429BC: .4byte 0x0000043c -_081429C0: - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl sub_80C5DCC - lsls r0, 24 - cmp r0, 0 - beq _08142A12 - ldr r1, _081429E4 - ldr r5, _081429E8 - adds r1, r5 -_081429DC: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08142A12 - .align 2, 0 -_081429E4: .4byte gMain -_081429E8: .4byte 0x0000043c -_081429EC: - ldr r1, _08142A18 - ldr r2, _08142A1C - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r3, 0xE2 - lsls r3, 3 - adds r0, r3, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0 - strh r0, [r1] - ldr r0, _08142A20 - movs r1, 0 - bl CreateTask - ldr r0, _08142A24 - bl SetMainCallback2 -_08142A12: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08142A18: .4byte REG_BLDCNT -_08142A1C: .4byte 0x00003f42 -_08142A20: .4byte sub_8142A28 -_08142A24: .4byte sub_8141E4C - thumb_func_end sub_81428CC - - thumb_func_start sub_8142A28 -sub_8142A28: @ 8142A28 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x3 - bl sub_8125EC8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08142A54 - ldr r0, _08142A4C - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _08142A50 - str r0, [r1] - b _08142AEA - .align 2, 0 -_08142A4C: .4byte gTasks -_08142A50: .4byte sub_8142FEC -_08142A54: - ldr r2, _08142A8C - movs r3, 0 - ldrh r1, [r2, 0x8] - ldr r4, _08142A90 - adds r0, r4, 0 - ands r0, r1 - ldr r7, _08142A94 - lsls r6, r5, 2 - cmp r0, 0 - beq _08142A7E -_08142A68: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - adds r2, 0x78 - cmp r3, 0x31 - bhi _08142A98 - ldrh r1, [r2, 0x8] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _08142A68 -_08142A7E: - cmp r3, 0x31 - bhi _08142A98 - adds r0, r6, r5 - lsls r0, 3 - adds r0, r7 - subs r1, r3, 0x1 - b _08142AA0 - .align 2, 0 -_08142A8C: .4byte 0x0201e000 -_08142A90: .4byte 0x000001ff -_08142A94: .4byte gTasks -_08142A98: - adds r0, r6, r5 - lsls r0, 3 - adds r0, r7 - movs r1, 0x31 -_08142AA0: - strh r1, [r0, 0x8] - movs r0, 0xA - bl sub_8053108 - ldr r2, _08142AF0 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r2 - strh r0, [r1, 0xA] - movs r3, 0 - ldr r7, _08142AF4 - ldr r4, _08142AF8 -_08142AB8: - lsls r1, r3, 1 - adds r2, r1, r7 - adds r0, r3, 0x3 - strh r0, [r2] - adds r1, r4 - adds r0, 0x11 - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x10 - bls _08142AB8 - ldr r4, _08142AFC - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r1, _08142AF0 - adds r0, r6, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _08142B00 - str r1, [r0] -_08142AEA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142AF0: .4byte gTasks -_08142AF4: .4byte 0x0600381a -_08142AF8: .4byte 0x0600385a -_08142AFC: .4byte gWindowConfig_81E7198 -_08142B00: .4byte sub_8142B04 - thumb_func_end sub_8142A28 - - thumb_func_start sub_8142B04 -sub_8142B04: @ 8142B04 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r3, _08142BB8 - movs r5, 0 - ldr r1, _08142BBC - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r6, r1, 0 - ldr r2, _08142BC0 - cmp r5, r0 - bge _08142B3E - adds r1, r0, 0 -_08142B32: - adds r3, 0x78 - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r1 - blt _08142B32 -_08142B3E: - adds r4, r3, 0 - movs r0, 0 - str r0, [r2] - mov r5, r8 - lsls r2, r5, 2 - adds r1, r2, r5 - lsls r1, 3 - adds r1, r6 - strh r0, [r1, 0xC] - strh r0, [r1, 0x10] - movs r5, 0 - str r2, [sp, 0xC] - ldr r6, _08142BC4 - adds r2, r1, 0 -_08142B5A: - ldrh r1, [r4, 0x8] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08142B6A - ldrh r0, [r2, 0x10] - adds r0, 0x1 - strh r0, [r2, 0x10] -_08142B6A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r4, 0x14 - cmp r5, 0x5 - bls _08142B5A - adds r4, r3, 0 - movs r5, 0 - ldr r1, _08142BBC - ldr r0, [sp, 0xC] - add r0, r8 - lsls r7, r0, 3 - adds r6, r7, r1 - str r6, [sp, 0x8] - adds r1, 0x8 - mov r9, r1 - ldr r0, _08142BC8 - mov r10, r0 -_08142B8E: - ldrh r1, [r4, 0x8] - ldr r2, _08142BC4 - adds r0, r2, 0 - ands r0, r1 - adds r6, r1, 0 - cmp r0, 0 - beq _08142C30 - ldr r1, [sp, 0x8] - movs r2, 0x10 - ldrsh r0, [r1, r2] - cmp r0, 0x3 - ble _08142BD4 - lsls r1, r5, 3 - ldr r0, _08142BCC - adds r0, 0x4 - adds r0, r1, r0 - ldrh r3, [r0] - ldr r0, _08142BD0 - adds r1, r0 - b _08142BE2 - .align 2, 0 -_08142BB8: .4byte 0x0201e000 -_08142BBC: .4byte gTasks -_08142BC0: .4byte gUnknown_0203931C -_08142BC4: .4byte 0x000001ff -_08142BC8: .4byte gUnknown_0840B564 -_08142BCC: .4byte gUnknown_0840B534 -_08142BD0: .4byte gUnknown_0840B53A -_08142BD4: - lsls r1, r5, 3 - mov r0, r10 - adds r0, 0x4 - adds r0, r1, r0 - ldrh r3, [r0] - ldr r2, _08142C28 - adds r1, r2 -_08142BE2: - ldrh r2, [r1] - lsls r0, r6, 23 - lsrs r0, 23 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - ldr r3, [r4] - str r3, [sp] - ldr r3, [r4, 0x4] - str r3, [sp, 0x4] - adds r3, r5, 0 - bl sub_81436BC - lsls r0, 16 - lsrs r0, 16 - ldr r2, _08142C2C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x5] - movs r6, 0xD - negs r6, r6 - adds r2, r6, 0 - ands r3, r2 - movs r2, 0x4 - orrs r3, r2 - strb r3, [r1, 0x5] - adds r1, r5, 0x5 - lsls r1, 1 - adds r1, r7 - add r1, r9 - strh r0, [r1] - b _08142C3C - .align 2, 0 -_08142C28: .4byte gUnknown_0840B56A -_08142C2C: .4byte gSprites -_08142C30: - adds r0, r5, 0x5 - lsls r0, 1 - adds r0, r7 - add r0, r9 - movs r1, 0xFF - strh r1, [r0] -_08142C3C: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - adds r4, 0x14 - cmp r5, 0x5 - bls _08142B8E - ldr r0, _08142CB0 - ldr r2, _08142CB4 - movs r1, 0xC - bl BlendPalettes - ldr r3, _08142CB8 - ldr r1, _08142CBC - adds r0, r3, 0 - bl StringCopy - adds r3, r0, 0 - movs r5, 0xFC - strb r5, [r3] - movs r0, 0x14 - strb r0, [r3, 0x1] - movs r0, 0x6 - strb r0, [r3, 0x2] - adds r3, 0x3 - ldr r0, _08142CC0 - ldr r4, [sp, 0xC] - add r4, r8 - lsls r4, 3 - adds r4, r0 - movs r0, 0xA - ldrsh r1, [r4, r0] - adds r0, r3, 0 - bl ConvertIntToDecimalString - adds r3, r0, 0 - strb r5, [r3] - movs r0, 0x13 - strb r0, [r3, 0x1] - movs r0, 0xF0 - strb r0, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - ldr r0, _08142CB8 - movs r1, 0 - movs r2, 0 - bl MenuPrint - ldr r0, _08142CC4 - str r0, [r4] - 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 -_08142CB0: .4byte 0xffff0000 -_08142CB4: .4byte 0x0000735f -_08142CB8: .4byte gStringVar1 -_08142CBC: .4byte gMenuText_HOFNumber -_08142CC0: .4byte gTasks -_08142CC4: .4byte sub_8142CC8 - thumb_func_end sub_8142B04 - - thumb_func_start sub_8142CC8 -sub_8142CC8: @ 8142CC8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08142DD0 - mov r8, r0 - movs r3, 0 - ldr r1, _08142DD4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - cmp r3, r0 - bge _08142CFE - adds r1, r0, 0 -_08142CF0: - movs r0, 0x78 - add r8, r0 - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r1 - blt _08142CF0 -_08142CFE: - movs r3, 0 - lsls r6, r4, 2 - adds r0, r6, r4 - lsls r5, r0, 3 - ldr r1, _08142DD8 - mov r10, r1 - ldr r2, _08142DDC - mov r12, r2 - movs r0, 0xD - negs r0, r0 - mov r9, r0 - movs r7, 0x4 -_08142D16: - adds r0, r3, 0x5 - lsls r0, 1 - adds r0, r5 - add r0, r10 - ldrh r1, [r0] - cmp r1, 0xFF - beq _08142D36 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r2, [r0, 0x5] - mov r1, r9 - ands r1, r2 - orrs r1, r7 - strb r1, [r0, 0x5] -_08142D36: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x5 - bls _08142D16 - adds r1, r6, r4 - lsls r1, 3 - ldr r2, _08142DD4 - adds r5, r1, r2 - movs r2, 0xC - ldrsh r0, [r5, r2] - adds r0, 0x5 - lsls r0, 1 - adds r0, r1 - ldr r1, _08142DD4 - adds r1, 0x8 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08142DDC - adds r0, r1 - ldrb r2, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x5] - lsrs r1, 4 - movs r0, 0x80 - lsls r0, 9 - lsls r0, r1 - ldr r1, _08142DE0 - eors r0, r1 - ldr r2, _08142DE4 - str r0, [r2] - ldr r2, _08142DE8 - movs r1, 0xC - bl BlendPalettesUnfaded - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - mov r1, r8 - adds r4, r1, r0 - ldrh r1, [r4, 0x8] - ldr r0, _08142DEC - ands r0, r1 - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08142DB2 - bl StopCryAndClearCrySongs - ldrh r0, [r4, 0x8] - lsls r0, 23 - lsrs r0, 23 - movs r1, 0 - bl PlayCry1 -_08142DB2: - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xE - bl sub_8143088 - ldr r0, _08142DF0 - str r0, [r5] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142DD0: .4byte 0x0201e000 -_08142DD4: .4byte gTasks -_08142DD8: .4byte gUnknown_03004B28 -_08142DDC: .4byte gSprites -_08142DE0: .4byte 0xffff0000 -_08142DE4: .4byte gUnknown_0203931C -_08142DE8: .4byte 0x0000735f -_08142DEC: .4byte 0x000001ff -_08142DF0: .4byte sub_8142DF4 - thumb_func_end sub_8142CC8 - - thumb_func_start sub_8142DF4 -sub_8142DF4: @ 8142DF4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08142E88 - ldrh r2, [r1, 0x2E] - movs r0, 0x1 - ands r0, r2 - adds r3, r1, 0 - cmp r0, 0 - beq _08142EC4 - ldr r7, _08142E8C - lsls r0, r6, 2 - adds r1, r0, r6 - lsls r3, r1, 3 - adds r4, r3, r7 - ldrh r2, [r4, 0x8] - movs r5, 0x8 - ldrsh r1, [r4, r5] - mov r8, r0 - cmp r1, 0 - beq _08142E98 - subs r0, r2, 0x1 - strh r0, [r4, 0x8] - movs r5, 0 - adds r7, 0x8 - mov r9, r7 - adds r7, r3, 0 -_08142E30: - adds r0, r5, 0x5 - lsls r0, 1 - adds r0, r7 - add r0, r9 - ldrb r1, [r0] - cmp r1, 0xFF - beq _08142E5E - ldr r0, _08142E90 - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - adds r4, r0 - ldrb r0, [r4, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl DestroySprite -_08142E5E: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x5 - bls _08142E30 - ldr r0, _08142E8C - mov r2, r8 - adds r1, r2, r6 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08142E80 - subs r0, r2, 0x1 - strh r0, [r1, 0xA] -_08142E80: - ldr r0, _08142E94 - str r0, [r1] - b _08142F64 - .align 2, 0 -_08142E88: .4byte gMain -_08142E8C: .4byte gTasks -_08142E90: .4byte gSprites -_08142E94: .4byte sub_8142B04 -_08142E98: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _08142EB2 - bl StopCryAndClearCrySongs - ldr r0, _08142EB8 - ldr r1, _08142EBC - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08142EB2: - ldr r0, _08142EC0 - str r0, [r4] - b _08142F64 - .align 2, 0 -_08142EB8: .4byte gMPlay_BGM -_08142EBC: .4byte 0x0000ffff -_08142EC0: .4byte sub_8142F78 -_08142EC4: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _08142F08 - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _08142EE6 - bl StopCryAndClearCrySongs - ldr r0, _08142EF8 - ldr r1, _08142EFC - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08142EE6: - ldr r0, _08142F00 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _08142F04 - str r0, [r1] - b _08142F64 - .align 2, 0 -_08142EF8: .4byte gMPlay_BGM -_08142EFC: .4byte 0x0000ffff -_08142F00: .4byte gTasks -_08142F04: .4byte sub_8142F78 -_08142F08: - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _08142F38 - ldr r0, _08142F30 - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xC] - movs r4, 0xC - ldrsh r0, [r1, r4] - cmp r0, 0 - beq _08142F38 - subs r0, r2, 0x1 - strh r0, [r1, 0xC] - ldr r0, _08142F34 - str r0, [r1] - b _08142F64 - .align 2, 0 -_08142F30: .4byte gTasks -_08142F34: .4byte sub_8142CC8 -_08142F38: - ldrh r1, [r3, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08142F64 - ldr r1, _08142F70 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r2, r0, r1 - movs r5, 0xC - ldrsh r1, [r2, r5] - movs r3, 0x10 - ldrsh r0, [r2, r3] - subs r0, 0x1 - cmp r1, r0 - bge _08142F64 - ldrh r0, [r2, 0xC] - adds r0, 0x1 - strh r0, [r2, 0xC] - ldr r0, _08142F74 - str r0, [r2] -_08142F64: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08142F70: .4byte gTasks -_08142F74: .4byte sub_8142CC8 - thumb_func_end sub_8142DF4 - - thumb_func_start sub_8142F78 -sub_8142F78: @ 8142F78 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08142FB4 - ldr r1, _08142FB8 - movs r2, 0x80 - lsls r2, 2 - bl CpuSet - ldr r0, _08142FBC - adds r2, r0, 0 - ldr r1, _08142FC0 - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5} - stm r2!, {r3,r5} - bl sub_80C5E38 - ldr r1, _08142FC4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08142FC8 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08142FB4: .4byte gPlttBufferFaded -_08142FB8: .4byte gPlttBufferUnfaded -_08142FBC: .4byte 0x0201c000 -_08142FC0: .4byte gUnknown_0840B57C -_08142FC4: .4byte gTasks -_08142FC8: .4byte sub_8142FCC - thumb_func_end sub_8142F78 - - thumb_func_start sub_8142FCC -sub_8142FCC: @ 8142FCC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_80C5F98 - lsls r0, 24 - cmp r0, 0 - beq _08142FE6 - adds r0, r4, 0 - bl DestroyTask - bl sub_810D62C -_08142FE6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8142FCC - - thumb_func_start sub_8142FEC -sub_8142FEC: @ 8142FEC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _08143020 - movs r1, 0x3 - movs r2, 0xF - bl MenuPrintMessage - ldr r1, _08143024 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08143028 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143020: .4byte gMenuText_HOFCorrupt -_08143024: .4byte gTasks -_08143028: .4byte sub_814302C - thumb_func_end sub_8142FEC - - thumb_func_start sub_814302C -sub_814302C: @ 814302C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - beq _08143056 - ldr r0, _0814305C - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08143056 - ldr r0, _08143060 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08143064 - str r0, [r1] -_08143056: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814305C: .4byte gMain -_08143060: .4byte gTasks -_08143064: .4byte sub_8142F78 - thumb_func_end sub_814302C - - thumb_func_start sub_8143068 -sub_8143068: @ 8143068 - push {lr} - lsls r2, r1, 24 - ldr r0, _08143084 - movs r1, 0x80 - lsls r1, 17 - adds r2, r1 - lsrs r2, 24 - movs r1, 0 - movs r3, 0xF0 - bl sub_8072BD8 - pop {r0} - bx r0 - .align 2, 0 -_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating - thumb_func_end sub_8143068 - - thumb_func_start sub_8143088 -sub_8143088: @ 8143088 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - ldr r7, _08143188 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x13 - strb r0, [r7, 0x1] - movs r0, 0x28 - strb r0, [r7, 0x2] - movs r0, 0xFF - strb r0, [r7, 0x3] - mov r0, r9 - ldrh r2, [r0, 0x8] - ldr r0, _0814318C - ands r0, r2 - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _081430EA - lsls r0, r2, 23 - lsrs r0, 23 - bl sub_80406D8 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _08143190 - cmp r6, r0 - beq _081430EA - ldr r1, _08143194 - adds r0, r7, 0 - bl StringCopy - adds r7, r0, 0 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN -_081430EA: - ldr r5, _08143188 - mov r1, r8 - adds r1, 0x4 - lsls r1, 24 - lsrs r1, 24 - mov r4, r10 - adds r4, 0x1 - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r5, 0 - bl MenuPrint - adds r7, r5, 0 - movs r3, 0 - mov r1, r9 - ldrb r0, [r1, 0xA] - str r4, [sp] - mov r2, r8 - adds r2, 0x9 - str r2, [sp, 0xC] - mov r6, r10 - adds r6, 0x3 - str r6, [sp, 0x8] - cmp r0, 0xFF - beq _0814313A - mov r2, r9 - adds r2, 0xA -_08143120: - adds r1, r7, r3 - adds r0, r2, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x9 - bhi _0814313A - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08143120 -_0814313A: - adds r7, r3 - movs r2, 0xFF - strb r2, [r7] - mov r1, r9 - ldrh r0, [r1, 0x8] - ldr r1, _0814318C - ands r1, r0 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bne _08143198 - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x13 - strb r0, [r7, 0x1] - movs r0, 0xA0 - strb r0, [r7, 0x2] - strb r2, [r7, 0x3] - ldr r0, _08143188 - ldr r2, [sp, 0xC] - lsls r1, r2, 24 - lsrs r1, 24 - ldr r3, [sp] - lsls r2, r3, 24 - lsrs r2, 24 - bl MenuPrint - ldr r6, [sp, 0x8] - lsls r1, r6, 24 - lsrs r1, 24 - mov r3, r10 - adds r3, 0x4 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - movs r2, 0x1D - bl MenuZeroFillWindowRect - b _081432E4 - .align 2, 0 -_08143188: .4byte gStringVar1 -_0814318C: .4byte 0x000001ff -_08143190: .4byte 0x0000ffff -_08143194: .4byte gOtherText_Number2 -_08143198: - movs r0, 0xFC - strb r0, [r7] - movs r0, 0x13 - strb r0, [r7, 0x1] - movs r0, 0x3E - strb r0, [r7, 0x2] - adds r7, 0x3 - movs r0, 0xBA - strb r0, [r7] - adds r7, 0x1 - movs r3, 0 - ldr r2, _08143238 - mov r1, r9 - ldrh r0, [r1, 0x8] - lsls r0, 23 - lsrs r0, 23 - movs r1, 0xB - muls r0, r1 - adds r0, r2 - ldrb r0, [r0] - mov r6, r8 - adds r6, 0x7 - str r6, [sp, 0x4] - mov r1, r8 - adds r1, 0xD - str r1, [sp, 0x10] - cmp r0, 0xFF - beq _08143204 - adds r5, r2, 0 - movs r4, 0xB -_081431D4: - adds r1, r7, r3 - mov r6, r9 - ldrh r0, [r6, 0x8] - lsls r0, 23 - lsrs r0, 23 - muls r0, r4 - adds r0, r3, r0 - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x9 - bhi _08143204 - ldrh r0, [r6, 0x8] - lsls r0, 23 - lsrs r0, 23 - muls r0, r4 - adds r0, r3, r0 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081431D4 -_08143204: - adds r7, r3 - movs r0, 0 - strb r0, [r7] - adds r7, 0x1 - mov r1, r9 - ldrh r0, [r1, 0x8] - ldr r1, _0814323C - ands r1, r0 - cmp r1, 0x20 - beq _0814324A - cmp r1, 0x1D - beq _0814324A - lsls r0, 23 - lsrs r0, 23 - mov r2, r9 - ldr r1, [r2, 0x4] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08143240 - cmp r0, 0xFE - beq _08143244 - b _0814324A - .align 2, 0 -_08143238: .4byte gSpeciesNames -_0814323C: .4byte 0x000001ff -_08143240: - movs r0, 0xB5 - b _08143246 -_08143244: - movs r0, 0xB6 -_08143246: - strb r0, [r7] - adds r7, 0x1 -_0814324A: - movs r4, 0xFC - strb r4, [r7] - movs r3, 0x13 - mov r8, r3 - strb r3, [r7, 0x1] - movs r0, 0xA0 - strb r0, [r7, 0x2] - movs r6, 0xFF - mov r10, r6 - strb r6, [r7, 0x3] - ldr r5, _081432F4 - ldr r0, [sp, 0xC] - lsls r1, r0, 24 - lsrs r1, 24 - ldr r3, [sp] - lsls r2, r3, 24 - lsrs r2, 24 - adds r0, r5, 0 - bl MenuPrint - mov r6, r9 - ldrb r0, [r6, 0x9] - lsrs r6, r0, 1 - ldr r1, _081432F8 - adds r0, r5, 0 - bl StringCopy - adds r7, r0, 0 - strb r4, [r7] - movs r0, 0x14 - strb r0, [r7, 0x1] - movs r0, 0x6 - strb r0, [r7, 0x2] - adds r7, 0x3 - adds r0, r7, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r7, r0, 0 - strb r4, [r7] - mov r0, r8 - strb r0, [r7, 0x1] - movs r0, 0x30 - strb r0, [r7, 0x2] - mov r1, r10 - strb r1, [r7, 0x3] - ldr r2, [sp, 0x4] - lsls r1, r2, 24 - lsrs r1, 24 - ldr r3, [sp, 0x8] - lsls r4, r3, 24 - lsrs r4, 24 - adds r0, r5, 0 - adds r2, r4, 0 - bl MenuPrint - mov r0, r9 - ldrh r6, [r0] - ldr r1, _081432FC - adds r0, r5, 0 - bl StringCopy - adds r7, r0, 0 - adds r1, r6, 0 - movs r2, 0x2 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - ldr r2, [sp, 0x10] - lsls r1, r2, 24 - lsrs r1, 24 - adds r0, r5, 0 - adds r2, r4, 0 - bl MenuPrint -_081432E4: - 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 -_081432F4: .4byte gStringVar1 -_081432F8: .4byte gOtherText_Level3 -_081432FC: .4byte gOtherText_IDNumber - thumb_func_end sub_8143088 - - thumb_func_start sub_8143300 -sub_8143300: @ 8143300 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 24 - lsls r4, 24 - ldr r0, _081433CC - lsrs r1, r5, 24 - mov r8, r1 - movs r2, 0x80 - lsls r2, 17 - adds r5, r2 - lsrs r5, 24 - lsrs r6, r4, 24 - adds r4, r2 - lsrs r4, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl MenuPrint - ldr r0, _081433D0 - mov r10, r0 - movs r1, 0xE - add r8, r1 - mov r2, r8 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - mov r1, r8 - adds r2, r4, 0 - bl sub_8072B4C - ldr r0, _081433D4 - adds r4, r6, 0x3 - lsls r4, 24 - lsrs r4, 24 - adds r1, r5, 0 - adds r2, r4, 0 - bl MenuPrint - mov r0, r10 - ldrb r1, [r0, 0xA] - ldrb r0, [r0, 0xB] - lsls r0, 8 - orrs r1, r0 - ldr r2, _081433D8 - mov r9, r2 - mov r0, r9 - movs r2, 0x2 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - mov r0, r9 - mov r1, r8 - adds r2, r4, 0 - bl sub_8072B4C - ldr r0, _081433DC - adds r6, 0x5 - lsls r6, 24 - lsrs r6, 24 - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint - mov r0, r10 - ldrh r1, [r0, 0xE] - mov r0, r9 - bl ConvertIntToDecimalString - adds r2, r0, 0 - movs r1, 0 - strb r1, [r2] - movs r0, 0xF0 - strb r0, [r2, 0x1] - strb r1, [r2, 0x2] - adds r2, 0x3 - mov r0, r10 - ldrb r1, [r0, 0x10] - adds r0, r2, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - movs r0, 0xFF - strb r0, [r2] - mov r0, r9 - mov r1, r8 - adds r2, r6, 0 - bl sub_8072B4C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081433CC: .4byte gOtherText_Name -_081433D0: .4byte gSaveBlock2 -_081433D4: .4byte gOtherText_IDNumber2 -_081433D8: .4byte gStringVar1 -_081433DC: .4byte gMainMenuString_Time - thumb_func_end sub_8143300 - - thumb_func_start sub_81433E0 -sub_81433E0: @ 81433E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x8 - strh r1, [r0] - adds r0, 0x8 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x8 - strh r1, [r0] - adds r0, 0xA - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0xA - strh r1, [r0] - adds r0, 0xC - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0xC - strh r1, [r0] - adds r0, 0xE - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - ldr r1, _0814354C - mov r9, r1 - mov r2, sp - movs r6, 0 - ldr r1, _08143550 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _08143554 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_08143444: - strh r6, [r2] - mov r0, sp - 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 _08143444 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - 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, 0x4] - ldr r2, _08143550 - mov r1, r8 - 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 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xC0 - lsls r1, 19 - mov r0, r9 - bl LZ77UnCompVram - movs r1, 0 - ldr r3, _08143558 - movs r2, 0x1 -_081434B2: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0x3F - bls _081434B2 - movs r1, 0 - ldr r5, _0814355C - ldr r3, _08143560 - movs r2, 0x1 -_081434CA: - lsls r0, r1, 1 - adds r0, r3 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xBF - bls _081434CA - movs r1, 0 - ldr r4, _08143564 - movs r3, 0x2 - ldr r2, _08143568 -_081434E2: - lsls r0, r1, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _081434E2 - adds r2, r5, 0 - movs r3, 0x80 - lsls r3, 7 - mov r4, sp - movs r6, 0 - ldr r1, _08143550 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _08143554 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_0814350A: - 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 _0814350A - 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] - bl ResetPaletteFade - ldr r0, _0814356C - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814354C: .4byte gHallOfFame_Gfx -_08143550: .4byte 0x040000d4 -_08143554: .4byte 0x81000800 -_08143558: .4byte 0x06003800 -_0814355C: .4byte 0x02000000 -_08143560: .4byte 0x06003b80 -_08143564: .4byte 0x06003000 -_08143568: .4byte 0x000003ff -_0814356C: .4byte gHallOfFame_Pal - thumb_func_end sub_81433E0 - - thumb_func_start sub_8143570 -sub_8143570: @ 8143570 - push {r4,lr} - bl remove_some_task - bl ResetTasks - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _081435A8 - movs r0, 0x8 - strb r0, [r1] - ldr r0, _081435AC - bl LoadCompressedObjectPic - ldr r0, _081435B0 - bl LoadCompressedObjectPalette - ldr r4, _081435B4 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081435A8: .4byte gReservedSpritePaletteCount -_081435AC: .4byte gUnknown_0840B514 -_081435B0: .4byte gUnknown_0840B524 -_081435B4: .4byte gWindowConfig_81E71B4 - thumb_func_end sub_8143570 - - thumb_func_start sub_81435B8 -sub_81435B8: @ 81435B8 - ldr r1, _081435D8 - movs r2, 0xE0 - lsls r2, 3 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x4 - subs r2, 0xFD - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r2, 0xDA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_081435D8: .4byte REG_BG1CNT - thumb_func_end sub_81435B8 - - thumb_func_start sub_81435DC -sub_81435DC: @ 81435DC - push {r4,lr} - adds r2, r0, 0 - ldr r1, [r2, 0x20] - ldr r0, [r2, 0x30] - cmp r1, r0 - beq _08143632 - ldrh r3, [r2, 0x20] - movs r1, 0x20 - ldrsh r0, [r2, r1] - movs r4, 0x30 - ldrsh r1, [r2, r4] - cmp r0, r1 - bge _081435FC - adds r0, r3, 0 - adds r0, 0xF - strh r0, [r2, 0x20] -_081435FC: - ldrh r3, [r2, 0x20] - movs r4, 0x20 - ldrsh r0, [r2, r4] - cmp r0, r1 - ble _0814360C - adds r0, r3, 0 - subs r0, 0xF - strh r0, [r2, 0x20] -_0814360C: - ldrh r3, [r2, 0x22] - movs r1, 0x22 - ldrsh r0, [r2, r1] - movs r4, 0x32 - ldrsh r1, [r2, r4] - cmp r0, r1 - bge _08143620 - adds r0, r3, 0 - adds r0, 0xA - strh r0, [r2, 0x22] -_08143620: - ldrh r3, [r2, 0x22] - movs r4, 0x22 - ldrsh r0, [r2, r4] - cmp r0, r1 - ble _0814363A - adds r0, r3, 0 - subs r0, 0xA - strh r0, [r2, 0x22] - b _0814363A -_08143632: - movs r0, 0x1 - strh r0, [r2, 0x2E] - ldr r0, _08143640 - str r0, [r2, 0x1C] -_0814363A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143640: .4byte nullsub_81 - thumb_func_end sub_81435DC - - thumb_func_start nullsub_81 -nullsub_81: @ 8143644 - bx lr - thumb_func_end nullsub_81 - - thumb_func_start sub_8143648 -sub_8143648: @ 8143648 - push {r4-r7,lr} - lsls r1, 24 - ldr r4, _08143670 - adds r3, r4, 0 - ldr r2, _08143674 - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - strh r0, [r4, 0x2] - ldr r0, _08143678 - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - str r0, [r4, 0xC] - ldr r0, _0814367C - str r0, [r4, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08143670: .4byte gUnknown_02024E8C -_08143674: .4byte gUnknown_0840B6B8 -_08143678: .4byte gUnknown_0840B69C -_0814367C: .4byte gSpriteAnimTable_81E7C64 - thumb_func_end sub_8143648 - - thumb_func_start sub_8143680 -sub_8143680: @ 8143680 - push {r4-r7,lr} - lsls r1, 24 - ldr r4, _081436AC - adds r3, r4, 0 - ldr r2, _081436B0 - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - ldm r2!, {r5-r7} - stm r3!, {r5-r7} - strh r0, [r4, 0x2] - ldr r0, _081436B4 - lsrs r1, 22 - adds r1, r0 - ldr r0, [r1] - str r0, [r4, 0xC] - ldr r0, _081436B8 - ldr r0, [r0] - str r0, [r4, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081436AC: .4byte gUnknown_02024E8C -_081436B0: .4byte gUnknown_0840B6B8 -_081436B4: .4byte gUnknown_0840B69C -_081436B8: .4byte gUnknown_081EC2A4 - thumb_func_end sub_8143680 - - thumb_func_start sub_81436BC -sub_81436BC: @ 81436BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r6, r0, 0 - mov r9, r1 - mov r10, r2 - mov r8, r3 - ldr r7, [sp, 0x34] - lsls r6, 16 - lsrs r6, 16 - mov r0, r9 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - mov r1, r10 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - mov r2, r8 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - lsls r0, r6, 3 - ldr r1, _08143790 - adds r0, r1 - ldr r1, _08143794 - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08143798 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl sub_800D378 - adds r0, r6, 0 - ldr r1, [sp, 0x30] - adds r2, r7, 0 - bl species_and_otid_get_pal - lsls r4, r5, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r1, r5, 24 - lsrs r1, 24 - mov r0, r8 - bl sub_8143648 - ldr r0, _0814379C - mov r5, r9 - lsls r5, 16 - asrs r5, 16 - mov r9, r5 - mov r1, r10 - lsls r1, 16 - asrs r1, 16 - mov r10, r1 - movs r3, 0xA - mov r2, r8 - subs r3, r2 - lsls r3, 24 - lsrs r3, 24 - mov r1, r9 - mov r2, r10 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _081437A0 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - strb r1, [r2, 0x5] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08143790: .4byte gMonFrontPicTable -_08143794: .4byte gMonFrontPicCoords -_08143798: .4byte gUnknown_0840B5A0 -_0814379C: .4byte gUnknown_02024E8C -_081437A0: .4byte gSprites - thumb_func_end sub_81436BC - - thumb_func_start sub_81437A4 -sub_81437A4: @ 81437A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r9, r1 - mov r10, r2 - adds r6, r3, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r10, r2 - lsls r6, 16 - lsrs r6, 16 - lsls r7, r0, 3 - ldr r1, _08143854 - mov r8, r1 - add r8, r7 - ldr r1, _08143858 - lsls r2, r0, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r5, _0814385C - lsls r4, r6, 2 - adds r4, r5 - ldr r4, [r4] - str r4, [sp] - str r0, [sp, 0x4] - mov r0, r8 - bl DecompressPicFromTable_2 - ldr r0, _08143860 - adds r0, r7, r0 - ldr r0, [r0] - lsls r4, r6, 4 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - lsls r1, r6, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8143680 - ldr r0, _08143864 - mov r1, r9 - lsls r1, 16 - asrs r1, 16 - mov r9, r1 - mov r2, r10 - lsls r2, 16 - asrs r2, 16 - mov r10, r2 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08143868 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r4 - strb r1, [r2, 0x5] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08143854: .4byte gTrainerFrontPicTable -_08143858: .4byte gTrainerFrontPicCoords -_0814385C: .4byte gUnknown_0840B5A0 -_08143860: .4byte gTrainerFrontPicPaletteTable -_08143864: .4byte gUnknown_02024E8C -_08143868: .4byte gSprites - thumb_func_end sub_81437A4 - - thumb_func_start sub_814386C -sub_814386C: @ 814386C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x26] - movs r2, 0x26 - ldrsh r0, [r5, r2] - cmp r0, 0x78 - ble _08143882 - adds r0, r5, 0 - bl DestroySprite - b _081438BA -_08143882: - adds r0, r1, 0x1 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r4, [r5, 0x2E] - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r0, 0x8 - ldr r1, _081438C0 - lsls r4, 1 - adds r4, r1 - movs r2, 0 - ldrsh r1, [r4, r2] - muls r0, r1 - cmp r0, 0 - bge _081438B0 - adds r0, 0xFF -_081438B0: - asrs r0, 8 - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x2E] - adds r0, 0x4 - strh r0, [r5, 0x2E] -_081438BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081438C0: .4byte gSineTable - thumb_func_end sub_814386C - - thumb_func_start sub_81438C4 -sub_81438C4: @ 81438C4 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF0 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x7 - ands r2, r0 - negs r2, r2 - ldr r0, _08143934 - lsls r4, 16 - asrs r4, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r4, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08143938 - adds r4, r1, r0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x11 - bl __umodsi3 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - bl Random - movs r1, 0x3 - ands r1, r0 - cmp r1, 0 - beq _0814393C - movs r0, 0 - b _0814393E - .align 2, 0 -_08143934: .4byte gSpriteTemplate_840B7A4 -_08143938: .4byte gSprites -_0814393C: - movs r0, 0x1 -_0814393E: - strh r0, [r4, 0x30] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81438C4 - - thumb_func_start sub_8143948 -sub_8143948: @ 8143948 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8143948 - - thumb_func_start sub_814395C -sub_814395C: @ 814395C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r0, _081439B8 - ldrh r1, [r0, 0x2C] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081439B2 - ldr r0, _081439BC - ldrb r0, [r0] - cmp r0, 0 - beq _081439B2 - ldr r2, _081439C0 - ldr r0, _081439C4 - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, [r0] - ldr r0, _081439C8 - cmp r1, r0 - bne _081439B2 - bl sub_8143948 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - ldr r1, _081439CC - movs r0, 0x1 - strb r0, [r1] -_081439B2: - pop {r0} - bx r0 - .align 2, 0 -_081439B8: .4byte gMain -_081439BC: .4byte gUnknown_02039324 -_081439C0: .4byte gTasks -_081439C4: .4byte gUnknown_02039322 -_081439C8: .4byte sub_8143B68 -_081439CC: .4byte gUnknown_02039325 - thumb_func_end sub_814395C - - thumb_func_start sub_81439D0 -sub_81439D0: @ 81439D0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - bl sub_8144130 - movs r0, 0 - bl SetVBlankCallback - bl ResetPaletteFade - bl ResetTasks - ldr r0, _08143AF0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _08143AF4 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x10] - strh r1, [r0, 0x16] - strh r1, [r0, 0x1E] - movs r1, 0x1 - strh r1, [r0, 0x22] -_08143A0E: - movs r0, 0 - adds r1, r7, 0 - bl sub_8144ECC - lsls r0, 24 - cmp r0, 0 - beq _08143A0E - ldr r6, _08143AF4 - lsls r5, r7, 2 - adds r5, r7 - lsls r5, 3 - adds r5, r6 - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - movs r1, 0 - mov r9, r1 - movs r2, 0 - mov r8, r2 - movs r1, 0x28 - strh r1, [r0, 0x8] - ldr r4, _08143AF8 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - ldr r0, _08143AFC - movs r1, 0x80 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08143B00 - ldr r1, _08143B04 - movs r2, 0x20 - bl CpuSet - ldr r1, _08143B08 - ldr r2, _08143B0C - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08143B10 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - strh r7, [r1, 0xA] - strh r0, [r5, 0x26] - movs r0, 0x1 - negs r0, r0 - mov r1, r8 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r3, _08143B14 - ldrh r2, [r3] - mov r0, r8 - strh r0, [r3] - ldr r4, _08143B18 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08143B1C - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08143B20 - bl SetVBlankCallback - ldr r0, _08143B24 - bl m4aSongNumStart - ldr r0, _08143B28 - bl SetMainCallback2 - ldr r0, _08143B2C - mov r1, r9 - strb r1, [r0] - ldr r4, _08143B30 - bl sub_81458DC - adds r0, r4, 0 - adds r0, 0x88 - mov r2, r8 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - ldr r0, _08143B34 - strh r7, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08143AF0: .4byte sub_8143B38 -_08143AF4: .4byte gTasks -_08143AF8: .4byte gWindowConfig_81E7208 -_08143AFC: .4byte gUnknown_0840B7BC -_08143B00: .4byte gUnknown_0840B7FC -_08143B04: .4byte 0x0600bee0 -_08143B08: .4byte REG_BG0VOFS -_08143B0C: .4byte 0x0000fffc -_08143B10: .4byte sub_81441B8 -_08143B14: .4byte 0x04000208 -_08143B18: .4byte 0x04000200 -_08143B1C: .4byte REG_DISPSTAT -_08143B20: .4byte sub_8143948 -_08143B24: .4byte 0x000001c7 -_08143B28: .4byte sub_814395C -_08143B2C: .4byte gUnknown_02039325 -_08143B30: .4byte 0x0201c000 -_08143B34: .4byte gUnknown_02039322 - thumb_func_end sub_81439D0 - - thumb_func_start sub_8143B38 -sub_8143B38: @ 8143B38 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08143B5C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08143B58 - ldr r0, _08143B60 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _08143B64 - str r0, [r1] -_08143B58: - pop {r0} - bx r0 - .align 2, 0 -_08143B5C: .4byte gPaletteFade -_08143B60: .4byte gTasks -_08143B64: .4byte sub_8143B68 - thumb_func_end sub_8143B38 - - thumb_func_start sub_8143B68 -sub_8143B68: @ 8143B68 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08143B9C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - movs r0, 0x10 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _08143BA4 - movs r3, 0xA - ldrsh r1, [r4, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x1E - strh r1, [r0, 0x8] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r4, 0x20] - ldr r0, _08143BA0 - b _08143BEE - .align 2, 0 -_08143B9C: .4byte gTasks -_08143BA0: .4byte sub_8143EBC -_08143BA4: - ldr r0, _08143BCC - strh r1, [r0] - ldrh r2, [r4, 0x1E] - movs r3, 0x1E - ldrsh r0, [r4, r3] - cmp r0, 0x1 - bne _08143BD4 - strh r2, [r4, 0x22] - strh r1, [r4, 0x1E] - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08143BD0 - b _08143BEE - .align 2, 0 -_08143BCC: .4byte gUnknown_02039320 -_08143BD0: .4byte sub_8143BFC -_08143BD4: - cmp r0, 0x2 - bne _08143BF0 - strh r2, [r4, 0x22] - strh r1, [r4, 0x1E] - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08143BF8 -_08143BEE: - str r0, [r4] -_08143BF0: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143BF8: .4byte sub_8143CC0 - thumb_func_end sub_8143B68 - - thumb_func_start sub_8143BFC -sub_8143BFC: @ 8143BFC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08143C34 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08143C2C - movs r0, 0x80 - lsls r0, 19 - strh r1, [r0] - adds r0, r4, 0 - bl sub_81450AC - ldr r1, _08143C38 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08143C3C - str r1, [r0] -_08143C2C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143C34: .4byte gPaletteFade -_08143C38: .4byte gTasks -_08143C3C: .4byte c2_080C9BFC - thumb_func_end sub_8143BFC - - thumb_func_start c2_080C9BFC -c2_080C9BFC: @ 8143C40 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl SetVBlankCallback - ldr r1, _08143CA8 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - ldrb r0, [r5, 0x16] - adds r1, r4, 0 - bl sub_8144ECC - lsls r0, 24 - cmp r0, 0 - beq _08143CA0 - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r3, _08143CAC - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08143CB0 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08143CB4 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08143CB8 - bl SetVBlankCallback - ldr r0, _08143CBC - str r0, [r5] -_08143CA0: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08143CA8: .4byte gTasks -_08143CAC: .4byte 0x04000208 -_08143CB0: .4byte 0x04000200 -_08143CB4: .4byte REG_DISPSTAT -_08143CB8: .4byte sub_8143948 -_08143CBC: .4byte sub_8143B38 - thumb_func_end c2_080C9BFC - - thumb_func_start sub_8143CC0 -sub_8143CC0: @ 8143CC0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08143CF8 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08143CF0 - movs r0, 0x80 - lsls r0, 19 - strh r1, [r0] - adds r0, r4, 0 - bl sub_81450AC - ldr r1, _08143CFC - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08143D00 - str r1, [r0] -_08143CF0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143CF8: .4byte gPaletteFade -_08143CFC: .4byte gTasks -_08143D00: .4byte sub_8143D04 - thumb_func_end sub_8143CC0 - - thumb_func_start sub_8143D04 -sub_8143D04: @ 8143D04 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08143DC8 - ldr r1, _08143DCC - adds r1, r0 - mov r8, r1 - ldrb r7, [r1] - cmp r7, 0 - beq _08143D24 - cmp r7, 0x1 - beq _08143E0C -_08143D24: - bl ResetSpriteData - bl FreeAllSpritePalettes - ldr r1, _08143DD0 - movs r0, 0x8 - strb r0, [r1] - ldr r0, _08143DD4 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08143DD8 - ldr r1, _08143DDC - bl LZ77UnCompVram - ldr r0, _08143DE0 - movs r1, 0x1 - movs r2, 0x3E - bl LoadPalette - movs r1, 0 - ldr r4, _08143DE4 - movs r3, 0x11 - ldr r2, _08143DE8 -_08143D56: - adds r0, r1, r4 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _08143D56 - movs r1, 0 - ldr r2, _08143DEC - ldr r6, _08143DF0 - ldr r0, _08143DF4 - adds r5, r2, r0 - movs r4, 0x22 - ldr r3, _08143DE8 -_08143D72: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bls _08143D72 - movs r1, 0 - ldr r5, _08143DF8 - movs r4, 0x33 - ldr r3, _08143DE8 -_08143D88: - adds r0, r1, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bls _08143D88 - movs r0, 0 - strh r0, [r2] - ldr r1, _08143DFC - adds r0, r1, 0 - strh r0, [r2, 0x2] - ldr r1, _08143E00 - adds r0, r1, 0 - strh r0, [r2, 0x4] - ldr r1, _08143E04 - adds r0, r1, 0 - strh r0, [r2, 0x6] - adds r0, r6, 0 - bl LoadSpriteSheet - ldr r0, _08143E08 - bl LoadSpritePalette - ldr r1, _08143DC8 - ldr r2, _08143DCC - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08143E90 - .align 2, 0 -_08143DC8: .4byte gMain -_08143DCC: .4byte 0x0000043c -_08143DD0: .4byte gReservedSpritePaletteCount -_08143DD4: .4byte gUnknown_083F66F0 -_08143DD8: .4byte gBirchGrassTilemap -_08143DDC: .4byte 0x06003800 -_08143DE0: .4byte gUnknown_083F62EC + 0x2 -_08143DE4: .4byte 0x0201e000 -_08143DE8: .4byte 0x000007ff -_08143DEC: .4byte 0x0201f800 -_08143DF0: .4byte gUnknown_0840CAA0 -_08143DF4: .4byte 0xfffff000 -_08143DF8: .4byte 0x0201f000 -_08143DFC: .4byte 0x000053ff -_08143E00: .4byte 0x0000529f -_08143E04: .4byte 0x00007e94 -_08143E08: .4byte gUnknown_0840CAB0 -_08143E0C: - ldr r0, _08143EA0 - movs r1, 0 - bl CreateTask - ldr r2, _08143EA4 - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 3 - adds r4, r2 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - mov r9, r1 - movs r5, 0 - strh r0, [r4, 0xE] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r7, [r0, 0x8] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - strh r6, [r0, 0xA] - movs r0, 0xE - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r1, [r4, 0x16] - strh r1, [r0, 0xC] - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08143EA8 - strh r5, [r0] - ldr r1, _08143EAC - movs r0, 0x20 - strh r0, [r1] - subs r1, 0x10 - ldr r2, _08143EB0 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r2, 0xCA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - mov r1, r9 - mov r0, r8 - strb r1, [r0] - ldr r0, _08143EB4 - strh r5, [r0] - ldr r0, _08143EB8 - str r0, [r4] -_08143E90: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08143EA0: .4byte sub_8144514 -_08143EA4: .4byte gTasks -_08143EA8: .4byte REG_BG3HOFS -_08143EAC: .4byte REG_BG3VOFS -_08143EB0: .4byte 0x00000703 -_08143EB4: .4byte gUnknown_0203935C -_08143EB8: .4byte sub_8143B38 - thumb_func_end sub_8143D04 - - thumb_func_start sub_8143EBC -sub_8143EBC: @ 8143EBC - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08143EE0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x20] - movs r2, 0x20 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _08143EE4 - subs r0, 0x1 - strh r0, [r4, 0x20] - b _08143EF8 - .align 2, 0 -_08143EE0: .4byte gTasks -_08143EE4: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0xC - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08143F00 - str r0, [r4] -_08143EF8: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143F00: .4byte sub_8143F04 - thumb_func_end sub_8143EBC - - thumb_func_start sub_8143F04 -sub_8143F04: @ 8143F04 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08143F30 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08143F2A - adds r0, r4, 0 - bl sub_81450AC - ldr r0, _08143F34 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08143F38 - str r0, [r1] -_08143F2A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08143F30: .4byte gPaletteFade -_08143F34: .4byte gTasks -_08143F38: .4byte sub_8143F3C - thumb_func_end sub_8143F04 - - thumb_func_start sub_8143F3C -sub_8143F3C: @ 8143F3C - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - bl sub_8144130 - bl ResetPaletteFade - movs r1, 0xE0 - lsls r1, 6 - movs r0, 0 - movs r2, 0 - bl sub_8145128 - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0x8 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _08143FC4 - movs r2, 0xE0 - lsls r2, 3 - adds r0, r2, 0 - strh r0, [r1] - ldr r3, _08143FC8 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08143FCC - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08143FD0 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08143FD4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0x80 - lsls r1, 1 - strh r1, [r0, 0x8] - ldr r1, _08143FD8 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08143FC4: .4byte REG_BG0CNT -_08143FC8: .4byte 0x04000208 -_08143FCC: .4byte 0x04000200 -_08143FD0: .4byte REG_DISPSTAT -_08143FD4: .4byte gTasks -_08143FD8: .4byte sub_8143FDC - thumb_func_end sub_8143F3C - - thumb_func_start sub_8143FDC -sub_8143FDC: @ 8143FDC - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08144000 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r0, [r4, 0x8] - movs r2, 0x8 - ldrsh r1, [r4, r2] - cmp r1, 0 - beq _08144004 - subs r0, 0x1 - strh r0, [r4, 0x8] - b _08144018 - .align 2, 0 -_08144000: .4byte gTasks -_08144004: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0x6 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08144020 - str r0, [r4] -_08144018: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08144020: .4byte sub_8144024 - thumb_func_end sub_8143FDC - - thumb_func_start sub_8144024 -sub_8144024: @ 8144024 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08144074 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0814406A - movs r0, 0xE0 - lsls r0, 6 - movs r1, 0 - bl sub_81452D0 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r1, _08144078 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r1, 0xE1 - lsls r1, 5 - strh r1, [r0, 0x8] - ldr r1, _0814407C - str r1, [r0] -_0814406A: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08144074: .4byte gPaletteFade -_08144078: .4byte gTasks -_0814407C: .4byte sub_8144080 - thumb_func_end sub_8144024 - - thumb_func_start sub_8144080 -sub_8144080: @ 8144080 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081440CC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08144104 - ldr r1, _081440D0 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r1, [r4, r0] - cmp r1, 0 - beq _081440AE - ldr r0, _081440D4 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _081440E0 -_081440AE: - movs r0, 0x4 - bl FadeOutBGM - movs r0, 0x1 - negs r0, r0 - ldr r1, _081440D8 - str r1, [sp] - movs r1, 0x8 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _081440DC - str r0, [r4] - b _08144104 - .align 2, 0 -_081440CC: .4byte gPaletteFade -_081440D0: .4byte gTasks -_081440D4: .4byte gMain -_081440D8: .4byte 0x0000ffff -_081440DC: .4byte sub_8144114 -_081440E0: - ldr r0, _0814410C - cmp r1, r0 - bne _081440EC - movs r0, 0x8 - bl FadeOutBGM -_081440EC: - movs r0, 0x8 - ldrsh r1, [r4, r0] - ldr r0, _08144110 - cmp r1, r0 - bne _081440FE - movs r0, 0xE4 - lsls r0, 1 - bl m4aSongNumStart -_081440FE: - ldrh r0, [r4, 0x8] - subs r0, 0x1 - strh r0, [r4, 0x8] -_08144104: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814410C: .4byte 0x00001be8 -_08144110: .4byte 0x00001ab8 - thumb_func_end sub_8144080 - - thumb_func_start sub_8144114 -sub_8144114: @ 8144114 - push {lr} - ldr r0, _0814412C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08144128 - movs r0, 0xFF - bl SoftReset -_08144128: - pop {r0} - bx r0 - .align 2, 0 -_0814412C: .4byte gPaletteFade - thumb_func_end sub_8144114 - - thumb_func_start sub_8144130 -sub_8144130: @ 8144130 - sub sp, 0x8 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0x1C - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x3E - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - strh r1, [r0] - ldr r1, _081441A4 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _081441A8 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _081441AC - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - strh r2, [r0] - str r0, [r1] - ldr r0, _081441B0 - str r0, [r1, 0x4] - ldr r0, _081441B4 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add sp, 0x8 - bx lr - .align 2, 0 -_081441A4: .4byte 0x040000d4 -_081441A8: .4byte 0x8100c000 -_081441AC: .4byte 0x85000100 -_081441B0: .4byte 0x05000002 -_081441B4: .4byte 0x810001ff - thumb_func_end sub_8144130 - - thumb_func_start sub_81441B8 -sub_81441B8: @ 81441B8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _081441E4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r6, r1, 0 - cmp r0, 0xA - bhi _08144218 - lsls r0, 2 - ldr r1, _081441E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081441E4: .4byte gTasks -_081441E8: .4byte _081441EC - .align 2, 0 -_081441EC: - .4byte _08144218 - .4byte _08144258 - .4byte _08144278 - .4byte _08144358 - .4byte _0814438C - .4byte _081443F8 - .4byte _08144218 - .4byte _08144218 - .4byte _08144218 - .4byte _08144218 - .4byte _08144428 -_08144218: - ldr r0, _08144250 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0814422A - b _08144446 -_0814422A: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0x1 - strh r1, [r0, 0x8] - movs r1, 0x58 - strh r1, [r0, 0xE] - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r2, [r0, 0x24] - ldr r0, _08144254 - strh r2, [r0] - b _08144446 - .align 2, 0 -_08144250: .4byte gPaletteFade -_08144254: .4byte gUnknown_02039320 -_08144258: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r6 - ldrh r2, [r1, 0xE] - movs r3, 0xE - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08144270 - subs r0, r2, 0x1 - strh r0, [r1, 0xE] - b _08144446 -_08144270: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08144446 -_08144278: - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _08144320 - ands r0, r1 - strh r0, [r2] - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r3, r0, r6 - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r4, r0, r6 - ldr r1, [r4] - ldr r0, _08144324 - mov r8, r2 - cmp r1, r0 - bne _08144352 - movs r1, 0xC - ldrsh r0, [r3, r1] - cmp r0, 0x33 - bgt _0814434C - movs r4, 0 - ldr r7, _08144328 - adds r6, r3, 0 -_081442B0: - movs r2, 0xC - ldrsh r1, [r6, r2] - lsls r0, r1, 2 - adds r0, r1 - adds r0, r4 - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r2, r4, 25 - movs r3, 0x90 - lsls r3, 20 - adds r2, r3 - lsrs r2, 24 - movs r1, 0 - movs r3, 0xF0 - bl sub_8072BD8 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _081442B0 - ldr r3, _0814432C - mov r0, r8 - adds r1, r0, r5 - lsls r1, 3 - adds r1, r3 - ldrh r0, [r1, 0xC] - adds r0, 0x1 - strh r0, [r1, 0xC] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0xA - ldrsh r2, [r1, r0] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r3 - movs r2, 0x1 - strh r2, [r0, 0x24] - movs r2, 0xA - ldrsh r1, [r1, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - movs r3, 0x22 - ldrsh r0, [r0, r3] - cmp r0, 0x1 - bne _08144334 - movs r0, 0xC0 - lsls r0, 2 - ldr r1, _08144330 - b _0814433A - .align 2, 0 -_08144320: .4byte 0x0000feff -_08144324: .4byte sub_8143B68 -_08144328: .4byte gCreditsEntryPointerTable -_0814432C: .4byte gTasks -_08144330: .4byte 0x0000328d -_08144334: - movs r0, 0xC0 - lsls r0, 2 - ldr r1, _08144348 -_0814433A: - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08144446 - .align 2, 0 -_08144348: .4byte 0x00001967 -_0814434C: - movs r0, 0xA - strh r0, [r3, 0x8] - b _08144446 -_08144352: - movs r0, 0 - strh r0, [r4, 0x24] - b _08144446 -_08144358: - movs r2, 0x80 - lsls r2, 19 - ldrh r0, [r2] - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08144388 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08144446 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0x82 - strh r1, [r0, 0xE] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - b _08144446 - .align 2, 0 -_08144388: .4byte gPaletteFade -_0814438C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081443A4 - subs r0, r1, 0x1 - strh r0, [r4, 0xE] - b _08144446 -_081443A4: - ldrb r0, [r4, 0xC] - ldrb r1, [r4, 0xA] - bl sub_8144454 - lsls r0, 24 - cmp r0, 0 - beq _081443BA - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _08144446 -_081443BA: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r3, 0xA - ldrsh r1, [r4, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - movs r1, 0x22 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - bne _081443E0 - movs r0, 0xC0 - lsls r0, 2 - ldr r1, _081443DC - b _081443E6 - .align 2, 0 -_081443DC: .4byte 0x0000328d -_081443E0: - movs r0, 0xC0 - lsls r0, 2 - ldr r1, _081443F4 -_081443E6: - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08144446 - .align 2, 0 -_081443F4: .4byte 0x00001967 -_081443F8: - ldr r0, _08144420 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08144446 - movs r0, 0 - movs r1, 0x9 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r0, _08144424 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0x2 - strh r0, [r1, 0x8] - b _08144446 - .align 2, 0 -_08144420: .4byte gPaletteFade -_08144424: .4byte gTasks -_08144428: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r2, 0xA - ldrsh r1, [r0, r2] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - movs r1, 0x1 - strh r1, [r0, 0x10] - adds r0, r5, 0 - bl DestroyTask -_08144446: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81441B8 - - thumb_func_start sub_8144454 -sub_8144454: @ 8144454 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r6, r3, 0 - lsls r1, 24 - lsrs r2, r1, 24 - adds r5, r2, 0 - ldr r4, _08144508 - cmp r3, 0x6 - bne _08144474 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_08144474: - cmp r3, 0xC - bne _08144486 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x1 - strh r1, [r0, 0x16] - strh r1, [r0, 0x1E] -_08144486: - cmp r3, 0x12 - bne _08144496 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_08144496: - cmp r3, 0x18 - bne _081444AA - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x1E] -_081444AA: - cmp r3, 0x1E - bne _081444BA - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_081444BA: - cmp r3, 0x23 - bne _081444CE - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x3 - strh r1, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x1E] -_081444CE: - cmp r3, 0x28 - bne _081444DE - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x1E] -_081444DE: - cmp r6, 0x2E - bne _081444F2 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r4 - movs r1, 0x4 - strh r1, [r0, 0x16] - movs r1, 0x1 - strh r1, [r0, 0x1E] -_081444F2: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r4 - movs r1, 0x1E - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0814450C - movs r0, 0 - b _0814450E - .align 2, 0 -_08144508: .4byte gTasks -_0814450C: - movs r0, 0x1 -_0814450E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8144454 - - thumb_func_start sub_8144514 -sub_8144514: @ 8144514 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r6, _08144548 - ldr r3, _0814454C - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r2, r0, r3 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0x1 - beq _08144550 - cmp r0, 0x1 - bgt _0814453C - b _08144658 -_0814453C: - cmp r0, 0x2 - beq _08144584 - cmp r0, 0x3 - bne _08144546 - b _08144644 -_08144546: - b _08144658 - .align 2, 0 -_08144548: .4byte 0x0201c000 -_0814454C: .4byte gTasks -_08144550: - adds r0, r6, 0 - adds r0, 0x8A - ldrh r0, [r0] - cmp r0, 0 - bne _0814456E - movs r4, 0xA - ldrsh r0, [r2, r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - movs r4, 0x24 - ldrsh r0, [r1, r4] - cmp r0, 0 - beq _08144658 -_0814456E: - movs r0, 0xA - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x24] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - b _08144656 -_08144584: - adds r0, r6, 0 - adds r0, 0x88 - ldrh r1, [r0] - mov r9, r0 - cmp r1, 0x44 - beq _08144658 - movs r4, 0xA - ldrsh r1, [r2, r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r3 - ldr r1, [r0] - ldr r0, _081445EC - cmp r1, r0 - bne _08144658 - adds r7, r6, 0 - adds r7, 0x8C - ldrh r0, [r7] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - ldr r4, _081445F0 - adds r5, r6, 0 - adds r5, 0x8A - ldrh r3, [r5] - lsls r2, r3, 1 - adds r1, r2, r4 - ldrb r1, [r1] - adds r4, 0x1 - adds r2, r4 - ldrb r2, [r2] - bl sub_81456B4 - lsls r0, 24 - lsrs r2, r0, 24 - ldrh r1, [r7] - adds r0, r6, 0 - adds r0, 0x8E - ldrh r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bge _081445F8 - adds r0, r1, 0x1 - strh r0, [r7] - ldr r1, _081445F4 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x32 - b _0814460A - .align 2, 0 -_081445EC: .4byte sub_8143B68 -_081445F0: .4byte gUnknown_0840CA00 -_081445F4: .4byte gSprites -_081445F8: - movs r0, 0 - strh r0, [r7] - ldr r1, _08144620 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x80 - lsls r1, 2 -_0814460A: - strh r1, [r0, 0x34] - mov r1, r9 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldrh r0, [r5] - cmp r0, 0x2 - bne _08144624 - movs r0, 0 - b _08144626 - .align 2, 0 -_08144620: .4byte gSprites -_08144624: - adds r0, 0x1 -_08144626: - strh r0, [r5] - ldr r0, _08144640 - mov r2, r8 - lsls r1, r2, 2 - add r1, r8 - lsls r1, 3 - adds r1, r0 - movs r0, 0x32 - strh r0, [r1, 0xE] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _08144658 - .align 2, 0 -_08144640: .4byte gTasks -_08144644: - ldrh r1, [r2, 0xE] - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _08144654 - subs r0, r1, 0x1 - strh r0, [r2, 0xE] - b _08144658 -_08144654: - movs r0, 0x1 -_08144656: - strh r0, [r2, 0x8] -_08144658: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8144514 - - thumb_func_start sub_8144664 -sub_8144664: @ 8144664 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0814468C - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r6, r1, 0 - cmp r0, 0x32 - bls _08144680 - b _0814492C -_08144680: - lsls r0, 2 - ldr r1, _08144690 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814468C: .4byte gTasks -_08144690: .4byte _08144694 - .align 2, 0 -_08144694: - .4byte _08144760 - .4byte _08144784 - .4byte _081447D8 - .4byte _081447F0 - .4byte _0814482C - .4byte _08144850 - .4byte _0814489C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _081448A8 - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _081448C8 - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _081448EC - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _0814492C - .4byte _08144920 -_08144760: - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 17 - movs r1, 0x7F - ands r0, r1 - movs r1, 0xC - bl Sin - ldr r1, _08144780 - strh r0, [r1] - b _081447A8 - .align 2, 0 -_08144780: .4byte gUnknown_0203935A -_08144784: - ldr r7, _081447B0 - movs r3, 0 - ldrsh r4, [r7, r3] - cmp r4, 0 - beq _081447B4 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r6 - ldrh r0, [r4, 0x12] - lsls r0, 16 - asrs r0, 17 - movs r1, 0x7F - ands r0, r1 - movs r1, 0xC - bl Sin - strh r0, [r7] -_081447A8: - ldrh r0, [r4, 0x12] - adds r0, 0x1 - strh r0, [r4, 0x12] - b _0814492C - .align 2, 0 -_081447B0: .4byte gUnknown_0203935A -_081447B4: - ldr r3, _081447D4 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r6 - movs r0, 0xC - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x2 - strh r2, [r0, 0x2E] - strh r4, [r1, 0x12] - b _08144848 - .align 2, 0 -_081447D4: .4byte gSprites -_081447D8: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r6 - ldrh r2, [r1, 0x12] - movs r3, 0x12 - ldrsh r0, [r1, r3] - cmp r0, 0x3F - bgt _08144848 - adds r0, r2, 0x1 - strh r0, [r1, 0x12] - b _08144866 -_081447F0: - ldr r3, _08144828 - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r6 - movs r0, 0xC - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x3 - strh r1, [r0, 0x2E] - movs r0, 0xE - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - strh r1, [r0, 0x2E] - movs r0, 0x78 - strh r0, [r2, 0x10] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - b _0814492C - .align 2, 0 -_08144828: .4byte gSprites -_0814482C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r1, r0, r6 - ldrh r2, [r1, 0x10] - movs r3, 0x10 - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08144844 - subs r0, r2, 0x1 - strh r0, [r1, 0x10] - b _0814492C -_08144844: - movs r0, 0x40 - strh r0, [r1, 0x12] -_08144848: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0814492C -_08144850: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r6 - ldrh r1, [r4, 0x12] - movs r2, 0x12 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _0814487C - subs r0, r1, 0x1 - strh r0, [r4, 0x12] -_08144866: - movs r1, 0x7F - ands r0, r1 - movs r1, 0x14 - bl Sin - ldr r1, _08144878 - strh r0, [r1] - b _0814492C - .align 2, 0 -_08144878: .4byte gUnknown_0203935A -_0814487C: - ldr r2, _08144898 - movs r3, 0xC - ldrsh r1, [r4, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x1 - strh r1, [r0, 0x2E] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _0814492C - .align 2, 0 -_08144898: .4byte gSprites -_0814489C: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0x32 - b _0814492A -_081448A8: - ldr r3, _081448C4 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r6 - movs r0, 0xE - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x2 - b _081448E0 - .align 2, 0 -_081448C4: .4byte gSprites -_081448C8: - ldr r3, _081448E8 - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r6 - movs r0, 0xC - ldrsh r2, [r1, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x4 -_081448E0: - strh r2, [r0, 0x2E] - movs r0, 0x32 - strh r0, [r1, 0x8] - b _0814492C - .align 2, 0 -_081448E8: .4byte gSprites -_081448EC: - ldr r3, _0814491C - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r6 - movs r0, 0xC - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x5 - strh r1, [r0, 0x2E] - movs r0, 0xE - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x3 - strh r1, [r0, 0x2E] - movs r0, 0x32 - strh r0, [r2, 0x8] - b _0814492C - .align 2, 0 -_0814491C: .4byte gSprites -_08144920: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r6 - movs r1, 0 -_0814492A: - strh r1, [r0, 0x8] -_0814492C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8144664 - - thumb_func_start sub_8144934 -sub_8144934: @ 8144934 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08144958 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r3, 0x8 - ldrsh r0, [r0, r3] - adds r4, r1, 0 - cmp r0, 0x4 - bhi _08144974 - lsls r0, 2 - ldr r1, _0814495C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08144958: .4byte gTasks -_0814495C: .4byte _08144960 - .align 2, 0 -_08144960: - .4byte _08144974 - .4byte _081449B8 - .4byte _081449C4 - .4byte _08144A0C - .4byte _08144A5C -_08144974: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r2, r0, r4 - movs r1, 0xA - ldrsh r0, [r2, r1] - ldr r5, _081449C0 - cmp r0, r5 - beq _081449B8 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r3, r0, r4 - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xC - ldrsh r0, [r0, r1] - cmp r0, 0x2 - bne _081449B8 - movs r1, 0xA - ldrsh r0, [r3, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - movs r0, 0x14 - strh r0, [r1, 0x8] - strh r5, [r2, 0xA] -_081449B8: - movs r0, 0 - bl sub_8149020 - b _08144A62 - .align 2, 0 -_081449C0: .4byte 0x00007fff -_081449C4: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r2, r0, r4 - movs r3, 0xA - ldrsh r0, [r2, r3] - ldr r5, _08144A08 - cmp r0, r5 - beq _08144A54 - movs r0, 0xC - ldrsh r1, [r2, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r3, r0, r4 - ldrh r1, [r3, 0x12] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - movs r1, 0xA0 - lsls r1, 2 - cmp r0, r1 - bne _08144A54 - movs r0, 0x1 - strh r0, [r3, 0x8] - strh r5, [r2, 0xA] - b _08144A54 - .align 2, 0 -_08144A08: .4byte 0x00007fff -_08144A0C: - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r2, r0, r4 - ldrh r3, [r2, 0xA] - movs r0, 0xA - ldrsh r1, [r2, r0] - ldr r5, _08144A48 - cmp r1, r5 - beq _08144A54 - ldr r0, _08144A4C - cmp r1, r0 - bne _08144A50 - movs r3, 0xC - ldrsh r1, [r2, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r3, 0xA - ldrsh r1, [r0, r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - movs r1, 0xA - strh r1, [r0, 0x8] - strh r5, [r2, 0xA] - b _08144A54 - .align 2, 0 -_08144A48: .4byte 0x00007fff -_08144A4C: .4byte 0x000001f3 -_08144A50: - adds r0, r3, 0x1 - strh r0, [r2, 0xA] -_08144A54: - movs r0, 0x1 - bl sub_8149020 - b _08144A62 -_08144A5C: - movs r0, 0x2 - bl sub_8149020 -_08144A62: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8144934 - - thumb_func_start sub_8144A68 -sub_8144A68: @ 8144A68 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - cmp r0, 0x4 - bls _08144A7E - b _08144DFC -_08144A7E: - lsls r0, 2 - ldr r1, _08144A88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08144A88: .4byte _08144A8C - .align 2, 0 -_08144A8C: - .4byte _08144AA0 - .4byte _08144B48 - .4byte _08144BF4 - .4byte _08144CA0 - .4byte _08144D50 -_08144AA0: - ldr r5, _08144B40 - ldr r0, _08144B44 - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r2, 0x88 - lsls r2, 1 - strh r2, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - movs r2, 0x20 - b _08144DF0 - .align 2, 0 -_08144B40: .4byte gSprites -_08144B44: .4byte gTasks -_08144B48: - ldr r5, _08144BEC - ldr r0, _08144BF0 - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - movs r2, 0x20 - b _08144DF0 - .align 2, 0 -_08144BEC: .4byte gSprites -_08144BF0: .4byte gTasks -_08144BF4: - ldr r5, _08144C98 - ldr r0, _08144C9C - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x88 - lsls r1, 1 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x1 - b _08144DF0 - .align 2, 0 -_08144C98: .4byte gSprites -_08144C9C: .4byte gTasks -_08144CA0: - ldr r5, _08144D44 - ldr r0, _08144D48 - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x78 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08144D4C - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x1 - b _08144DF0 - .align 2, 0 -_08144D44: .4byte gSprites -_08144D48: .4byte gTasks -_08144D4C: .4byte 0x0000ffe0 -_08144D50: - ldr r5, _08144EBC - ldr r0, _08144EC0 - lsls r4, r7, 2 - adds r4, r7 - lsls r4, 3 - adds r4, r0 - movs r1, 0x12 - ldrsh r0, [r4, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r3, 0 - movs r1, 0x58 - strh r1, [r0, 0x20] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x98 - strh r1, [r0, 0x20] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r2, 0x2E - strh r2, [r0, 0x22] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x22] - movs r0, 0x12 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r3, [r0, 0x2E] - movs r1, 0x80 - lsls r1, 6 - movs r2, 0x80 - lsls r2, 2 - movs r0, 0x2 -_08144DF0: - movs r3, 0x8 - bl sub_8148EC0 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x8] -_08144DFC: - ldr r0, _08144EC4 - movs r1, 0 - bl CreateTask - ldr r6, _08144EC0 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r5, r1, r6 - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - strh r0, [r5, 0xC] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - mov r1, r8 - strh r1, [r0, 0x8] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r4, [r0, 0xA] - movs r0, 0xC - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r7, [r0, 0xC] - ldr r0, _08144EC8 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5, 0xA] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r4, [r0, 0x8] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r7, [r0, 0xA] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrh r1, [r5, 0x12] - strh r1, [r0, 0xC] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - ldrh r1, [r5, 0x14] - strh r1, [r0, 0xE] - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r6 - strh r4, [r0, 0x10] - mov r1, r8 - cmp r1, 0x2 - bne _08144EB0 - movs r1, 0xA - ldrsh r0, [r5, r1] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r6 - movs r0, 0x45 - strh r0, [r1, 0x12] -_08144EB0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08144EBC: .4byte gSprites -_08144EC0: .4byte gTasks -_08144EC4: .4byte sub_8144934 -_08144EC8: .4byte sub_8144664 - thumb_func_end sub_8144A68 - - thumb_func_start sub_8144ECC -sub_8144ECC: @ 8144ECC - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _08144F28 - ldr r1, _08144F2C - adds r6, r0, r1 - ldrb r0, [r6] - cmp r0, 0x1 - beq _08144F38 - cmp r0, 0x1 - ble _08144EF0 - cmp r0, 0x2 - beq _08144F5C - cmp r0, 0x3 - bne _08144EF0 - b _0814508C -_08144EF0: - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - ldr r2, _08144F30 - movs r0, 0x8 - strh r0, [r2] - ldr r0, _08144F34 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, 0x3A - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0x1 - strb r0, [r6] - b _081450A2 - .align 2, 0 -_08144F28: .4byte gMain -_08144F2C: .4byte 0x0000043c -_08144F30: .4byte REG_BG3HOFS -_08144F34: .4byte REG_BG3VOFS -_08144F38: - ldr r1, _08144F54 - movs r0, 0x22 - strh r0, [r1] - ldr r1, _08144F58 - movs r0, 0 - strh r0, [r1] - adds r0, r4, 0 - bl sub_8148CB0 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - b _081450A2 - .align 2, 0 -_08144F54: .4byte gUnknown_02039358 -_08144F58: .4byte gUnknown_0203935A -_08144F5C: - ldr r0, _08144FBC - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08144FE0 - ldr r0, _08144FC0 - bl LoadCompressedObjectPic - ldr r0, _08144FC4 - bl LoadCompressedObjectPic - ldr r0, _08144FC8 - bl LoadCompressedObjectPic - ldr r0, _08144FCC - bl LoadSpritePalettes - movs r0, 0x78 - movs r1, 0x2E - bl sub_8149310 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08144FD0 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - strh r2, [r4, 0x12] - ldr r6, _08144FD4 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r6, 0 - adds r5, 0x1C - adds r2, r0, r5 - ldr r1, _08144FD8 - str r1, [r2] - adds r6, 0x8 - adds r0, r6 - ldr r1, _08144FDC - str r1, [r0] - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x2E - bl sub_8149368 - b _08145034 - .align 2, 0 -_08144FBC: .4byte gSaveBlock2 -_08144FC0: .4byte gIntro2BrendanSpriteSheet -_08144FC4: .4byte gUnknown_08416E34 -_08144FC8: .4byte gIntro2BicycleSpriteSheet -_08144FCC: .4byte gIntro2SpritePalettes -_08144FD0: .4byte gTasks -_08144FD4: .4byte gSprites -_08144FD8: .4byte sub_8145378 -_08144FDC: .4byte gUnknown_0840CA54 -_08144FE0: - ldr r0, _0814505C - bl LoadCompressedObjectPic - ldr r0, _08145060 - bl LoadCompressedObjectPic - ldr r0, _08145064 - bl LoadCompressedObjectPic - ldr r0, _08145068 - bl LoadSpritePalettes - movs r0, 0x78 - movs r1, 0x2E - bl sub_8149368 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0814506C - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - strh r2, [r4, 0x12] - ldr r6, _08145070 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r6, 0 - adds r5, 0x1C - adds r2, r0, r5 - ldr r1, _08145074 - str r1, [r2] - adds r6, 0x8 - adds r0, r6 - ldr r1, _08145078 - str r1, [r0] - movs r0, 0x88 - lsls r0, 1 - movs r1, 0x2E - bl sub_8149310 -_08145034: - lsls r0, 24 - lsrs r2, r0, 24 - strh r2, [r4, 0x14] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r5, r0, r5 - ldr r1, _0814507C - str r1, [r5] - adds r0, r6 - ldr r1, _08145080 - str r1, [r0] - ldr r1, _08145084 - ldr r0, _08145088 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _081450A2 - .align 2, 0 -_0814505C: .4byte gIntro2MaySpriteSheet -_08145060: .4byte gUnknown_08416E24 -_08145064: .4byte gIntro2BicycleSpriteSheet -_08145068: .4byte gIntro2SpritePalettes -_0814506C: .4byte gTasks -_08145070: .4byte gSprites -_08145074: .4byte sub_8145378 -_08145078: .4byte gUnknown_0840CA54 -_0814507C: .4byte sub_8145420 -_08145080: .4byte gUnknown_0840CA94 -_08145084: .4byte gMain -_08145088: .4byte 0x0000043c -_0814508C: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8144A68 - adds r0, r4, 0 - bl sub_8148E90 - movs r0, 0 - strb r0, [r6] - movs r0, 0x1 - b _081450A4 -_081450A2: - movs r0, 0 -_081450A4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8144ECC - - thumb_func_start sub_81450AC -sub_81450AC: @ 81450AC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08145120 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0x8] - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081450D2 - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0x8] -_081450D2: - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081450E8 - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0xA] -_081450E8: - ldrh r1, [r4, 0xC] - movs r2, 0xC - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _081450FE - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0xC] -_081450FE: - ldrh r1, [r4, 0xE] - movs r2, 0xE - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08145114 - lsls r0, r1, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - strh r0, [r4, 0xE] -_08145114: - ldr r1, _08145124 - movs r0, 0x1 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145120: .4byte gTasks -_08145124: .4byte gUnknown_0203935C - thumb_func_end sub_81450AC - - thumb_func_start sub_8145128 -sub_8145128: @ 8145128 - push {r4-r7,lr} - adds r3, r0, 0 - adds r4, r2, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r1, 16 - lsrs r7, r1, 16 - lsls r4, 16 - lsrs r5, r4, 16 - ldr r0, _081451EC - movs r6, 0xC0 - lsls r6, 19 - adds r3, r6 - adds r1, r3, 0 - bl LZ77UnCompVram - ldr r0, _081451F0 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - lsrs r4, 20 - lsls r4, 28 - lsrs r4, 16 - movs r2, 0 - adds r1, r4, 0x1 - ldr r3, _081451F4 -_0814515E: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r6 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _0814515E - movs r2, 0 - adds r0, r4, 0x2 - adds r6, r4, 0 - adds r6, 0x17 - movs r1, 0x2B - adds r1, r4 - mov r12, r1 - adds r4, 0x42 - ldr r5, _081451F8 - adds r3, r0, 0 -_08145184: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r5 - adds r1, r2, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x14 - bls _08145184 - movs r2, 0 - ldr r5, _081451FC - adds r3, r6, 0 -_0814519E: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r5 - adds r1, r2, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x13 - bls _0814519E - movs r2, 0 - ldr r5, _08145200 - mov r3, r12 -_081451B8: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r5 - adds r1, r2, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x16 - bls _081451B8 - movs r2, 0 - ldr r3, _08145204 -_081451D0: - lsls r0, r2, 1 - adds r0, r7 - adds r0, r3 - adds r1, r2, r4 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0xB - bls _081451D0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081451EC: .4byte gCreditsCopyrightEnd_Gfx -_081451F0: .4byte gIntroCopyright_Pal -_081451F4: .4byte 0x000003ff -_081451F8: .4byte 0x060001c8 -_081451FC: .4byte 0x06000248 -_08145200: .4byte 0x060002c8 -_08145204: .4byte 0x06000348 - thumb_func_end sub_8145128 - - thumb_func_start sub_8145208 -sub_8145208: @ 8145208 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - movs r0, 0x3F - ands r0, r2 - adds r1, r0, 0 - adds r1, 0x50 - cmp r2, 0xFF - bne _08145220 - movs r0, 0x1 - b _08145246 -_08145220: - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _08145230 - movs r2, 0x80 - lsls r2, 4 - adds r0, r2, 0 - orrs r1, r0 -_08145230: - movs r0, 0x40 - ands r3, r0 - cmp r3, 0 - beq _08145244 - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - orrs r1, r0 - lsls r0, r1, 16 - lsrs r1, r0, 16 -_08145244: - adds r0, r1, 0 -_08145246: - pop {r1} - bx r1 - thumb_func_end sub_8145208 - - thumb_func_start sub_814524C -sub_814524C: @ 814524C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r0, [sp] - ldr r0, [sp, 0x2C] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - lsls r3, 16 - lsrs r3, 16 - str r3, [sp, 0x8] - lsls r0, 16 - lsrs r0, 20 - lsls r0, 28 - lsrs r0, 16 - mov r9, r0 - movs r5, 0 -_0814527A: - movs r4, 0 - lsls r7, r5, 1 - ldr r1, [sp, 0x4] - adds r0, r1, r5 - adds r2, r5, 0x1 - mov r8, r2 - lsls r0, 6 - ldr r1, [sp, 0x8] - adds r6, r0, r1 -_0814528C: - adds r0, r7, r5 - adds r0, r4 - ldr r2, [sp] - adds r0, r2, r0 - ldrb r0, [r0] - bl sub_8145208 - mov r2, r10 - adds r1, r2, r4 - lsls r1, 1 - adds r1, r6 - movs r2, 0xC0 - lsls r2, 19 - adds r1, r2 - add r0, r9 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0814528C - mov r1, r8 - lsls r0, r1, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0814527A - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_814524C - - thumb_func_start sub_81452D0 -sub_81452D0: @ 81452D0 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - lsrs r1, 20 - lsls r1, 28 - lsrs r1, 16 - movs r2, 0 - ldr r7, _08145360 - movs r4, 0xC0 - lsls r4, 19 - adds r1, 0x1 - ldr r3, _08145364 -_081452EE: - lsls r0, r2, 1 - adds r0, r5 - adds r0, r4 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bls _081452EE - str r6, [sp] - adds r0, r7, 0 - movs r1, 0x3 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - ldr r0, _08145368 - str r6, [sp] - movs r1, 0x7 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - ldr r4, _0814536C - str r6, [sp] - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - str r6, [sp] - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - ldr r0, _08145370 - str r6, [sp] - movs r1, 0x14 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - ldr r0, _08145374 - str r6, [sp] - movs r1, 0x18 - movs r2, 0x7 - adds r3, r5, 0 - bl sub_814524C - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08145360: .4byte gUnknown_0840B83C -_08145364: .4byte 0x000003ff -_08145368: .4byte gUnknown_0840B84B -_0814536C: .4byte gUnknown_0840B85A -_08145370: .4byte gUnknown_0840B869 -_08145374: .4byte gUnknown_0840B878 - thumb_func_end sub_81452D0 - - thumb_func_start sub_8145378 -sub_8145378: @ 8145378 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08145390 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08145394 - adds r0, r4, 0 - bl DestroySprite - b _08145418 - .align 2, 0 -_08145390: .4byte gUnknown_0203935C -_08145394: - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0x5 - bhi _08145418 - lsls r0, 2 - ldr r1, _081453A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081453A8: .4byte _081453AC - .align 2, 0 -_081453AC: - .4byte _081453C4 - .4byte _081453CE - .4byte _081453D4 - .4byte _081453DE - .4byte _081453E8 - .4byte _081453FE -_081453C4: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - b _08145418 -_081453CE: - adds r0, r4, 0 - movs r1, 0x1 - b _08145402 -_081453D4: - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnimIfDifferent - b _08145418 -_081453DE: - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAnimIfDifferent - b _08145418 -_081453E8: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r1, [r4, 0x20] - movs r2, 0x20 - ldrsh r0, [r4, r2] - cmp r0, 0x78 - ble _08145418 - subs r0, r1, 0x1 - b _08145416 -_081453FE: - adds r0, r4, 0 - movs r1, 0 -_08145402: - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _08145418 - subs r0, r2, 0x1 -_08145416: - strh r0, [r4, 0x20] -_08145418: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8145378 - - thumb_func_start sub_8145420 -sub_8145420: @ 8145420 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08145438 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0814543C - adds r0, r4, 0 - bl DestroySprite - b _081454D8 - .align 2, 0 -_08145438: .4byte gUnknown_0203935C -_0814543C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _08145464 - cmp r0, 0x1 - bgt _0814544E - cmp r0, 0 - beq _08145458 - b _081454D8 -_0814544E: - cmp r0, 0x2 - beq _081454A0 - cmp r0, 0x3 - beq _081454BE - b _081454D8 -_08145458: - strh r0, [r4, 0x26] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - b _081454D8 -_08145464: - movs r1, 0x20 - ldrsh r0, [r4, r1] - cmp r0, 0xC8 - ble _08145476 - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnimIfDifferent - b _0814547E -_08145476: - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnimIfDifferent -_0814547E: - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _08145490 - subs r0, r2, 0x2 - strh r0, [r4, 0x20] -_08145490: - ldr r0, _0814549C - ldrh r0, [r0] - negs r0, r0 - strh r0, [r4, 0x26] - b _081454D8 - .align 2, 0 -_0814549C: .4byte gUnknown_0203935A -_081454A0: - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r1, [r4, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _081454D8 - ldrh r0, [r4, 0x20] - adds r0, 0x1 - b _081454D6 -_081454BE: - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - ldrh r2, [r4, 0x20] - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x20 - negs r0, r0 - cmp r1, r0 - ble _081454D8 - subs r0, r2, 0x1 -_081454D6: - strh r0, [r4, 0x20] -_081454D8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8145420 - - thumb_func_start sub_81454E0 -sub_81454E0: @ 81454E0 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, _081454F8 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _081454FC - adds r0, r5, 0 - bl DestroySprite - b _081456A6 - .align 2, 0 -_081454F8: .4byte gUnknown_0203935C -_081454FC: - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0xA - bhi _08145544 - lsls r0, 2 - ldr r1, _08145514 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08145514: .4byte _08145518 - .align 2, 0 -_08145518: - .4byte _08145544 - .4byte _0814559E - .4byte _08145620 - .4byte _08145660 - .4byte _08145544 - .4byte _08145544 - .4byte _08145544 - .4byte _08145544 - .4byte _08145544 - .4byte _08145544 - .4byte _08145696 -_08145544: - ldrb r1, [r5, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5, 0x1] - movs r0, 0x30 - ldrsh r1, [r5, r0] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r5, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] - movs r0, 0x10 - strh r0, [r5, 0x32] - ldrh r4, [r5, 0x30] - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x80 - lsls r0, 9 - movs r1, 0x10 - bl __divsi3 - adds r1, r0, 0 - str r1, [sp] - adds r0, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - adds r2, r5, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r0, 0x1 - strh r0, [r5, 0x2E] - b _081456A6 -_0814559E: - ldrh r1, [r5, 0x32] - movs r2, 0x32 - ldrsh r0, [r5, r2] - cmp r0, 0xFF - bgt _081455D4 - adds r0, r1, 0 - adds r0, 0x8 - strh r0, [r5, 0x32] - ldrh r4, [r5, 0x30] - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x32 - ldrsh r1, [r5, r0] - movs r0, 0x80 - lsls r0, 9 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - adds r0, r4, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - b _081455DA -_081455D4: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] -_081455DA: - movs r2, 0x30 - ldrsh r1, [r5, r2] - cmp r1, 0x2 - beq _081456A6 - cmp r1, 0x2 - bgt _081455EC - cmp r1, 0x1 - beq _081455F2 - b _081456A6 -_081455EC: - cmp r1, 0x3 - beq _0814560A - b _081456A6 -_081455F2: - ldrh r1, [r5, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08145602 - ldrh r0, [r5, 0x22] - adds r0, 0x1 - strh r0, [r5, 0x22] -_08145602: - ldrh r0, [r5, 0x20] - subs r0, 0x2 - strh r0, [r5, 0x20] - b _081456A6 -_0814560A: - ldrh r0, [r5, 0x3C] - ands r1, r0 - cmp r1, 0 - bne _08145618 - ldrh r0, [r5, 0x22] - adds r0, 0x1 - strh r0, [r5, 0x22] -_08145618: - ldrh r0, [r5, 0x20] - adds r0, 0x2 - strh r0, [r5, 0x20] - b _081456A6 -_08145620: - ldrh r1, [r5, 0x34] - movs r2, 0x34 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _08145630 - subs r0, r1, 0x1 - strh r0, [r5, 0x34] - b _081456A6 -_08145630: - ldr r1, _0814565C - movs r2, 0xF4 - lsls r2, 4 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x10 - strh r0, [r1] - ldrb r1, [r5, 0x1] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x1] - movs r0, 0x10 - strh r0, [r5, 0x34] - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - b _081456A6 - .align 2, 0 -_0814565C: .4byte REG_BLDCNT -_08145660: - ldrh r1, [r5, 0x34] - movs r2, 0x34 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _08145684 - subs r1, 0x1 - strh r1, [r5, 0x34] - ldr r3, _08145680 - movs r0, 0x34 - ldrsh r2, [r5, r0] - movs r0, 0x10 - subs r0, r2 - lsls r0, 8 - adds r1, r0 - strh r1, [r3] - b _081456A6 - .align 2, 0 -_08145680: .4byte REG_BLDALPHA -_08145684: - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0xA - strh r0, [r5, 0x2E] - b _081456A6 -_08145696: - ldr r0, _081456B0 - movs r1, 0 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - adds r0, r5, 0 - bl DestroySprite -_081456A6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081456B0: .4byte REG_BLDCNT - thumb_func_end sub_81454E0 - - thumb_func_start sub_81456B4 -sub_81456B4: @ 81456B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - str r2, [sp, 0x10] - lsls r3, 16 - lsrs r3, 16 - mov r9, r3 - adds r0, r6, 0 - bl NationalPokedexNumToSpecies - adds r6, r0, 0 - cmp r6, 0xC9 - beq _081456F8 - movs r0, 0x9A - lsls r0, 1 - cmp r6, r0 - beq _081456EE - movs r7, 0 - b _081456FC -_081456EE: - ldr r0, _081456F4 - ldr r7, [r0, 0x20] - b _081456FC - .align 2, 0 -_081456F4: .4byte gSaveBlock2 -_081456F8: - ldr r0, _081457E8 - ldr r7, [r0, 0x1C] -_081456FC: - lsls r0, r6, 3 - ldr r1, _081457EC - adds r0, r1 - ldr r1, _081457F0 - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _081457F4 - mov r8, r4 - mov r5, r9 - lsls r4, r5, 2 - add r4, r8 - ldr r4, [r4] - str r4, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - movs r4, 0x1 - str r4, [sp, 0xC] - bl sub_800D378 - ldr r2, _081457F8 - adds r0, r6, 0 - movs r1, 0 - bl species_and_otid_get_pal - lsls r5, 4 - mov r8, r5 - movs r1, 0x80 - lsls r1, 1 - add r1, r8 - lsls r1, 16 - lsrs r1, 16 - movs r2, 0x20 - bl LoadCompressedPalette - mov r7, r9 - lsls r6, r7, 24 - lsrs r6, 24 - mov r0, r9 - adds r1, r6, 0 - bl sub_8143648 - ldr r0, _081457FC - mov r2, r10 - lsls r1, r2, 16 - asrs r1, 16 - ldr r3, [sp, 0x10] - lsls r2, r3, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _08145800 - lsls r2, r4, 4 - adds r2, r4 - lsls r2, 2 - adds r3, r2, r5 - ldrb r1, [r3, 0x5] - movs r0, 0xF - ands r0, r1 - mov r7, r8 - orrs r0, r7 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3, 0x5] - mov r0, r9 - adds r0, 0x1 - strh r0, [r3, 0x30] - movs r0, 0x3E - adds r0, r3 - mov r8, r0 - ldrb r0, [r0] - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - adds r0, r5, 0 - adds r0, 0x1C - adds r2, r0 - ldr r0, _08145804 - str r0, [r2] - ldr r0, _08145808 - movs r2, 0x20 - ldrsh r1, [r3, r2] - movs r7, 0x22 - ldrsh r2, [r3, r7] - movs r3, 0x1 - bl CreateSprite - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r4, [r0, 0x2E] - adds r1, r6, 0 - bl StartSpriteAnimIfDifferent - adds r0, r4, 0 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_081457E8: .4byte gSaveBlock2 -_081457EC: .4byte gMonFrontPicTable -_081457F0: .4byte gMonFrontPicCoords -_081457F4: .4byte gUnknown_0840B5A0 -_081457F8: .4byte 0x0000ffff -_081457FC: .4byte gUnknown_02024E8C -_08145800: .4byte gSprites -_08145804: .4byte sub_81454E0 -_08145808: .4byte gSpriteTemplate_840CAEC - thumb_func_end sub_81456B4 - - thumb_func_start sub_814580C -sub_814580C: @ 814580C - push {r4,lr} - adds r3, r0, 0 - ldr r4, _08145838 - movs r1, 0x2E - ldrsh r0, [r3, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0xA - beq _08145830 - ldr r0, _0814583C - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - beq _08145840 -_08145830: - adds r0, r3, 0 - bl DestroySprite - b _081458D4 - .align 2, 0 -_08145838: .4byte gSprites -_0814583C: .4byte gUnknown_0203935C -_08145840: - adds r0, r1, 0 - adds r0, 0x3E - ldrb r0, [r0] - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - movs r1, 0x4 - ands r1, r0 - mov r0, r12 - ldrb r2, [r0] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - movs r2, 0x2E - ldrsh r1, [r3, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r0, 0xC - ands r0, r1 - ldrb r2, [r3, 0x1] - movs r1, 0xD - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - movs r0, 0x2E - ldrsh r2, [r3, r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r2, 0x4 - negs r2, r2 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - movs r2, 0x2E - ldrsh r1, [r3, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - movs r1, 0x3E - ands r1, r0 - ldrb r2, [r3, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x3] - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r3, 0x20] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x22] - strh r0, [r3, 0x22] -_081458D4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_814580C - - thumb_func_start sub_81458DC -sub_81458DC: @ 81458DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r7, _0814597C - ldr r0, _08145980 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GetStarterPokemon - lsls r0, 16 - lsrs r0, 16 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - movs r4, 0x1 - movs r5, 0 - ldr r0, _08145984 - mov r8, r0 -_0814590E: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - adds r6, r7, 0 - adds r6, 0x90 - cmp r0, 0 - beq _0814592C - lsls r0, r5, 1 - adds r0, r6, r0 - strh r4, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_0814592C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bls _0814590E - adds r4, r5, 0 - ldr r0, _08145984 - lsls r1, r4, 16 - mov r9, r1 - movs r2, 0x8E - adds r2, r7 - mov r8, r2 - adds r1, r7, 0 - adds r1, 0x86 - str r1, [sp] - cmp r4, r0 - bhi _08145964 - adds r1, r6, 0 - movs r3, 0 - adds r2, r0, 0 -_08145954: - lsls r0, r4, 1 - adds r0, r1, r0 - strh r3, [r0] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r2 - bls _08145954 -_08145964: - movs r2, 0xE5 - lsls r2, 2 - adds r0, r7, r2 - strh r5, [r0] - mov r1, r9 - lsrs r0, r1, 16 - cmp r0, 0x43 - bhi _08145988 - mov r2, r8 - strh r5, [r2] - b _0814598E - .align 2, 0 -_0814597C: .4byte 0x0201c000 -_08145980: .4byte 0x00004023 -_08145984: .4byte 0x00000181 -_08145988: - movs r0, 0x44 - mov r1, r8 - strh r0, [r1] -_0814598E: - movs r5, 0 - movs r2, 0xE5 - lsls r2, 2 - adds r4, r7, r2 - mov r9, r5 - b _0814599E -_0814599A: - cmp r5, 0x43 - bhi _081459EE -_0814599E: - bl Random - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r4] - bl __umodsi3 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, r5, 1 - adds r1, r7, r1 - lsls r0, r2, 1 - adds r3, r6, r0 - ldrh r0, [r3] - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - mov r0, r9 - strh r0, [r3] - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r2, r0 - beq _081459E8 - ldrh r0, [r4] - lsls r0, 1 - adds r0, r6, r0 - ldrh r0, [r0] - strh r0, [r3] - ldrh r0, [r4] - lsls r0, 1 - adds r0, r6, r0 - mov r1, r9 - strh r1, [r0] -_081459E8: - ldrh r0, [r4] - cmp r0, 0 - bne _0814599A -_081459EE: - mov r2, r8 - ldrh r0, [r2] - cmp r0, 0x43 - bhi _08145A26 - adds r5, r0, 0 - movs r2, 0 - cmp r5, 0x43 - bhi _08145A5C - mov r3, r8 -_08145A00: - lsls r1, r5, 1 - adds r1, r7, r1 - lsls r0, r2, 1 - adds r0, r7, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrh r0, [r3] - cmp r2, r0 - bne _08145A1A - movs r2, 0 -_08145A1A: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x43 - bls _08145A00 - b _08145A5C -_08145A26: - movs r4, 0 - ldrh r0, [r7] - cmp r0, r10 - beq _08145A42 -_08145A2E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r0, r4, 1 - adds r0, r7, r0 - ldrh r0, [r0] - cmp r0, r10 - beq _08145A42 - cmp r4, 0x43 - bls _08145A2E -_08145A42: - mov r1, r8 - ldrh r0, [r1] - subs r0, 0x1 - cmp r4, r0 - bge _08145A5C - lsls r0, r4, 1 - adds r0, r7, r0 - ldr r2, [sp] - ldrh r1, [r2] - strh r1, [r0] - mov r0, r10 - strh r0, [r2] - b _08145A62 -_08145A5C: - mov r2, r10 - ldr r1, [sp] - strh r2, [r1] -_08145A62: - movs r0, 0x44 - mov r1, r8 - strh r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81458DC - - thumb_func_start sub_8145A78 -sub_8145A78: @ 8145A78 - push {r4,lr} - bl Random - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - lsls r0, 16 - orrs r0, r4 - bl sub_8145D14 - ldr r0, _08145AA0 - movs r1, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145AA0: .4byte 0x00004045 - thumb_func_end sub_8145A78 - - thumb_func_start sub_8145AA4 -sub_8145AA4: @ 8145AA4 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - lsls r0, 16 - lsrs r1, r0, 16 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _08145AE0 - cmp r4, r0 - beq _08145AD4 - ldr r5, _08145AE4 - ldr r3, _08145AE8 - adds r2, r0, 0 -_08145AC4: - adds r0, r1, 0 - muls r0, r5 - adds r1, r0, r3 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r2 - bne _08145AC4 -_08145AD4: - adds r0, r1, 0 - bl sub_8145D14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08145AE0: .4byte 0x0000ffff -_08145AE4: .4byte 0x41c64e6d -_08145AE8: .4byte 0x00003039 - thumb_func_end sub_8145AA4 - - thumb_func_start sub_8145AEC -sub_8145AEC: @ 8145AEC - push {lr} - bl sub_8145D3C - ldr r1, _08145AFC - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08145AFC: .4byte gScriptResult - thumb_func_end sub_8145AEC - - thumb_func_start sub_8145B00 -sub_8145B00: @ 8145B00 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r1, _08145C24 - movs r0, 0 - strh r0, [r1] - movs r0, 0 - mov r10, r0 - mov r9, r0 - movs r6, 0 -_08145B18: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _08145C28 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08145B74 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08145B6A - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - adds r1, r0, 0 - ldr r0, _08145C2C - ldrh r0, [r0] - lsls r1, 16 - lsrs r1, 16 - bl sub_8145C8C - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08145C24 - ldrh r2, [r1] - cmp r0, r2 - bls _08145B6A - cmp r0, 0x1 - bls _08145B6A - subs r0, 0x1 - strh r0, [r1] - movs r0, 0xE - mov r9, r0 - mov r10, r6 -_08145B6A: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x5 - bls _08145B18 -_08145B74: - movs r6, 0 -_08145B76: - movs r5, 0 - adds r1, r6, 0x1 - mov r8, r1 - lsls r0, r6, 2 - adds r7, r0, r6 -_08145B80: - lsls r2, r7, 4 - subs r2, r7 - lsls r2, 5 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 4 - ldr r1, _08145C30 - adds r0, r1 - adds r4, r2, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetBoxMonData - cmp r0, 0 - beq _08145BD8 - adds r0, r4, 0 - movs r1, 0x2D - bl GetBoxMonData - cmp r0, 0 - bne _08145BD8 - adds r0, r4, 0 - movs r1, 0x1 - bl GetBoxMonData - adds r1, r0, 0 - ldr r0, _08145C2C - ldrh r0, [r0] - lsls r1, 16 - lsrs r1, 16 - bl sub_8145C8C - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08145C24 - ldrh r2, [r1] - cmp r0, r2 - bls _08145BD8 - cmp r0, 0x1 - bls _08145BD8 - subs r0, 0x1 - strh r0, [r1] - mov r9, r6 - mov r10, r5 -_08145BD8: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x1D - bls _08145B80 - mov r1, r8 - lsls r0, r1, 16 - lsrs r6, r0, 16 - cmp r6, 0xD - bls _08145B76 - ldr r3, _08145C24 - ldrh r0, [r3] - cmp r0, 0 - beq _08145C72 - ldr r2, _08145C34 - ldr r1, _08145C38 - subs r0, 0x1 - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - mov r2, r9 - cmp r2, 0xE - bne _08145C44 - ldr r1, _08145C3C - movs r0, 0 - strh r0, [r1] - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r1, _08145C28 - adds r0, r1 - ldr r2, _08145C40 - movs r1, 0x2 - bl GetMonData - b _08145C6C - .align 2, 0 -_08145C24: .4byte gUnknown_0202E8CC -_08145C28: .4byte gPlayerParty -_08145C2C: .4byte gScriptResult -_08145C30: .4byte gUnknown_020300A4 -_08145C34: .4byte gUnknown_0202E8CE -_08145C38: .4byte gUnknown_0840CB04 -_08145C3C: .4byte gUnknown_0202E8D0 -_08145C40: .4byte gStringVar1 -_08145C44: - ldr r1, _08145C80 - movs r0, 0x1 - strh r0, [r1] - mov r2, r9 - lsls r1, r2, 2 - add r1, r9 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 5 - mov r2, r10 - lsls r1, r2, 2 - add r1, r10 - lsls r1, 4 - ldr r2, _08145C84 - adds r1, r2 - adds r0, r1 - ldr r2, _08145C88 - movs r1, 0x2 - bl GetBoxMonData -_08145C6C: - ldr r0, _08145C88 - bl StringGetEnd10 -_08145C72: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08145C80: .4byte gUnknown_0202E8D0 -_08145C84: .4byte gUnknown_020300A4 -_08145C88: .4byte gStringVar1 - thumb_func_end sub_8145B00 - - thumb_func_start sub_8145C8C -sub_8145C8C: @ 8145C8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r5, r1, 16 - movs r0, 0 - mov r8, r0 - movs r7, 0 - ldr r1, _08145D0C - mov r10, r1 - ldr r0, _08145D10 - mov r9, r0 -_08145CAC: - adds r0, r6, 0 - movs r1, 0xA - bl __umodsi3 - adds r4, r0, 0 - mov r1, r10 - strh r4, [r1] - adds r0, r5, 0 - movs r1, 0xA - bl __umodsi3 - mov r1, r9 - strh r0, [r1] - lsls r4, 16 - lsls r0, 16 - cmp r4, r0 - bne _08145CFA - adds r0, r6, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 16 - lsrs r5, r0, 16 - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x4 - bls _08145CAC -_08145CFA: - mov r0, r8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08145D0C: .4byte gUnknown_02039328 -_08145D10: .4byte gUnknown_0203932A - thumb_func_end sub_8145C8C - - thumb_func_start sub_8145D14 -sub_8145D14: @ 8145D14 - push {r4,lr} - adds r1, r0, 0 - lsrs r4, r1, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r0, _08145D34 - bl VarSet - ldr r0, _08145D38 - adds r1, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145D34: .4byte 0x0000404b -_08145D38: .4byte 0x0000404c - thumb_func_end sub_8145D14 - - thumb_func_start sub_8145D3C -sub_8145D3C: @ 8145D3C - push {r4,lr} - ldr r0, _08145D5C - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08145D60 - bl VarGet - lsls r0, 16 - orrs r0, r4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08145D5C: .4byte 0x0000404b -_08145D60: .4byte 0x0000404c - thumb_func_end sub_8145D3C - - thumb_func_start unref_sub_8145D64 -unref_sub_8145D64: @ 8145D64 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl sub_8145D14 - pop {r0} - bx r0 - thumb_func_end unref_sub_8145D64 - - thumb_func_start sub_8145D74 -sub_8145D74: @ 8145D74 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8145D74 - - thumb_func_start sub_8145D88 -sub_8145D88: @ 8145D88 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 19 - mov r8, r0 - movs r1, 0 - strh r1, [r0] - ldr r6, _08145EB0 - strh r1, [r6] - adds r0, 0xC - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x14 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add r0, sp, 0x4 - strh r1, [r0] - ldr r2, _08145EB4 - str r0, [r2] - movs r1, 0xC0 - lsls r1, 19 - str r1, [r2, 0x4] - ldr r0, _08145EB8 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r5, 0 - str r5, [sp, 0x8] - add r0, sp, 0x8 - str r0, [r2] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r2, 0x4] - ldr r0, _08145EBC - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - add r0, sp, 0x4 - strh r5, [r0] - str r0, [r2] - movs r0, 0xA0 - lsls r0, 19 - str r0, [r2, 0x4] - ldr r0, _08145EC0 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _08145EC4 - bl LZ77UnCompVram - ldr r0, _08145EC8 - ldr r1, _08145ECC - bl LZ77UnCompVram - bl remove_some_task - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - bl FreeAllSpritePalettes - ldr r0, _08145ED0 - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08145ED4 - bl SetUpWindowConfig - ldr r0, _08145ED8 - bl InitMenuWindow - bl pokedex_diploma_something - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r3, _08145EDC - ldrh r2, [r3] - strh r5, [r3] - ldr r4, _08145EE0 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08145EE4 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08145EE8 - bl SetVBlankCallback - ldr r0, _08145EEC - bl SetMainCallback2 - ldr r0, _08145EF0 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - ldr r1, _08145EF4 - adds r0, r1, 0 - strh r0, [r6] - movs r1, 0xCA - lsls r1, 5 - adds r0, r1, 0 - mov r1, r8 - strh r0, [r1] - ldr r0, _08145EF8 - movs r1, 0 - bl CreateTask - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08145EB0: .4byte REG_BG3CNT -_08145EB4: .4byte 0x040000d4 -_08145EB8: .4byte 0x8100c000 -_08145EBC: .4byte 0x85000100 -_08145EC0: .4byte 0x81000200 -_08145EC4: .4byte gUnknown_0840D288 -_08145EC8: .4byte gUnknown_0840CB4C -_08145ECC: .4byte 0x06003000 -_08145ED0: .4byte gUnknown_0840CB0C -_08145ED4: .4byte gWindowConfig_81E6C3C -_08145ED8: .4byte gWindowConfig_81E6CE4 -_08145EDC: .4byte 0x04000208 -_08145EE0: .4byte 0x04000200 -_08145EE4: .4byte REG_DISPSTAT -_08145EE8: .4byte sub_8145D74 -_08145EEC: .4byte sub_8145EFC -_08145EF0: .4byte REG_BLDCNT -_08145EF4: .4byte 0x00004603 -_08145EF8: .4byte sub_8145F14 - thumb_func_end sub_8145D88 - - thumb_func_start sub_8145EFC -sub_8145EFC: @ 8145EFC - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8145EFC - - thumb_func_start sub_8145F14 -sub_8145F14: @ 8145F14 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08145F38 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08145F34 - ldr r0, _08145F3C - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, _08145F40 - str r0, [r1] -_08145F34: - pop {r0} - bx r0 - .align 2, 0 -_08145F38: .4byte gPaletteFade -_08145F3C: .4byte gTasks -_08145F40: .4byte sub_8145F44 - thumb_func_end sub_8145F14 - - thumb_func_start sub_8145F44 -sub_8145F44: @ 8145F44 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08145F80 - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08145F76 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08145F84 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08145F88 - str r1, [r0] -_08145F76: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08145F80: .4byte gMain -_08145F84: .4byte gTasks -_08145F88: .4byte sub_8145F8C - thumb_func_end sub_8145F44 - - thumb_func_start sub_8145F8C -sub_8145F8C: @ 8145F8C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08145FB0 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08145FAA - adds r0, r2, 0 - bl DestroyTask - ldr r0, _08145FB4 - bl SetMainCallback2 -_08145FAA: - pop {r0} - bx r0 - .align 2, 0 -_08145FB0: .4byte gPaletteFade -_08145FB4: .4byte sub_80546F0 - thumb_func_end sub_8145F8C - - thumb_func_start pokedex_diploma_something -pokedex_diploma_something: @ 8145FB8 - push {lr} - bl sub_8090FF4 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _08145FE8 - ldr r1, _08145FDC - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08145FE0 - ldr r1, _08145FE4 - bl StringCopy - b _08145FF4 - .align 2, 0 -_08145FDC: .4byte REG_BG3HOFS -_08145FE0: .4byte gStringVar1 -_08145FE4: .4byte gOtherText_NationalDex -_08145FE8: - ldr r0, _08146004 - strh r1, [r0] - ldr r0, _08146008 - ldr r1, _0814600C - bl StringCopy -_08145FF4: - ldr r0, _08146010 - movs r1, 0x6 - movs r2, 0x2 - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_08146004: .4byte REG_BG3HOFS -_08146008: .4byte gStringVar1 -_0814600C: .4byte gOtherText_HoennDex -_08146010: .4byte gOtherText_DiplomaCertificationGameFreak - thumb_func_end pokedex_diploma_something - - thumb_func_start sub_8146014 -sub_8146014: @ 8146014 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8146014 - - thumb_func_start sub_814602C -sub_814602C: @ 814602C - push {lr} - ldr r2, _0814604C - ldr r0, _08146050 - ldrh r1, [r0] - strh r1, [r2] - ldr r0, _08146054 - strh r1, [r0] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - .align 2, 0 -_0814604C: .4byte REG_BG0VOFS -_08146050: .4byte gUnknown_030041B4 -_08146054: .4byte REG_BG1VOFS - thumb_func_end sub_814602C - - thumb_func_start sub_8146058 -sub_8146058: @ 8146058 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08146074 - ldr r1, _08146078 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xC - bls _0814606A - b _08146250 -_0814606A: - lsls r0, 2 - ldr r1, _0814607C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08146074: .4byte gMain -_08146078: .4byte 0x0000043c -_0814607C: .4byte _08146080 - .align 2, 0 -_08146080: - .4byte _081460B4 - .4byte _081460CC - .4byte _081460F0 - .4byte _081460F6 - .4byte _08146110 - .4byte _0814611C - .4byte _0814613C - .4byte _0814615C - .4byte _08146170 - .4byte _08146190 - .4byte _081461B4 - .4byte _08146204 - .4byte _08146224 -_081460B4: - bl sub_80F9438 - bl sub_80F9368 - bl sub_8146288 - ldr r1, _081460C8 - movs r0, 0 - strh r0, [r1] - b _0814620C - .align 2, 0 -_081460C8: .4byte REG_BLDCNT -_081460CC: - bl ResetPaletteFade - ldr r2, _081460E4 - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, _081460E8 - ldr r0, _081460EC - adds r1, r0 - b _08146212 - .align 2, 0 -_081460E4: .4byte gPaletteFade -_081460E8: .4byte gMain -_081460EC: .4byte 0x0000043c -_081460F0: - bl ResetSpriteData - b _0814620C -_081460F6: - ldr r0, _08146104 - bl SetUpWindowConfig - ldr r1, _08146108 - ldr r0, _0814610C - adds r1, r0 - b _08146212 - .align 2, 0 -_08146104: .4byte gWindowConfig_81E6E18 -_08146108: .4byte gMain -_0814610C: .4byte 0x0000043c -_08146110: - ldr r0, _08146118 - bl MultistepInitMenuWindowBegin - b _0814620C - .align 2, 0 -_08146118: .4byte gWindowConfig_81E6E18 -_0814611C: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _08146126 - b _08146250 -_08146126: - ldr r0, _08146134 - ldr r1, _08146138 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _0814620C - .align 2, 0 -_08146134: .4byte 0x02000000 -_08146138: .4byte 0x0001ffff -_0814613C: - bl sub_81462B8 - lsls r0, 24 - cmp r0, 0 - bne _08146148 - b _08146250 -_08146148: - ldr r0, _08146154 - ldr r1, _08146158 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _0814620C - .align 2, 0 -_08146154: .4byte 0x02000000 -_08146158: .4byte 0x0001ffff -_0814615C: - bl sub_81464E4 - ldr r1, _08146168 - ldr r0, _0814616C - adds r1, r0 - b _08146212 - .align 2, 0 -_08146168: .4byte gMain -_0814616C: .4byte 0x0000043c -_08146170: - ldr r0, _08146188 - ldrb r0, [r0] - adds r0, 0x7B - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x38 - movs r2, 0x40 - bl sub_80A7D8C - ldr r1, _0814618C - strb r0, [r1] - b _0814620C - .align 2, 0 -_08146188: .4byte word_203855E -_0814618C: .4byte gUnknown_0203932C -_08146190: - ldr r0, _081461A8 - ldrb r0, [r0] - adds r0, 0x7B - lsls r0, 24 - lsrs r0, 24 - bl sub_8146600 - ldr r1, _081461AC - ldr r0, _081461B0 - adds r1, r0 - b _08146212 - .align 2, 0 -_081461A8: .4byte word_203855E -_081461AC: .4byte gMain -_081461B0: .4byte 0x0000043c -_081461B4: - ldr r3, _081461EC - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _081461F0 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _081461F4 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _081461F8 - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _081461FC - ldr r0, _08146200 - adds r1, r0 - b _08146212 - .align 2, 0 -_081461EC: .4byte 0x04000208 -_081461F0: .4byte 0x04000200 -_081461F4: .4byte REG_DISPSTAT -_081461F8: .4byte sub_814602C -_081461FC: .4byte gMain -_08146200: .4byte 0x0000043c -_08146204: - bl sub_8055870 - cmp r0, 0x1 - beq _08146250 -_0814620C: - ldr r1, _0814621C - ldr r2, _08146220 - adds r1, r2 -_08146212: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08146250 - .align 2, 0 -_0814621C: .4byte gMain -_08146220: .4byte 0x0000043c -_08146224: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _08146248 - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _0814624C - bl SetMainCallback2 - movs r0, 0x1 - b _08146252 - .align 2, 0 -_08146248: .4byte gPaletteFade -_0814624C: .4byte sub_8146014 -_08146250: - movs r0, 0 -_08146252: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8146058 - - thumb_func_start sub_814625C -sub_814625C: @ 814625C - push {lr} -_0814625E: - bl sub_8146058 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08146278 - ldr r0, _08146274 - movs r1, 0 - bl CreateTask - b _08146284 - .align 2, 0 -_08146274: .4byte sub_8146480 -_08146278: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0814625E -_08146284: - pop {r0} - bx r0 - thumb_func_end sub_814625C - - thumb_func_start sub_8146288 -sub_8146288: @ 8146288 - ldr r1, _081462A8 - ldr r2, _081462AC - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - adds r2, 0xFE - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _081462B0 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _081462B4 - movs r0, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_081462A8: .4byte REG_BG1CNT -_081462AC: .4byte 0x00000502 -_081462B0: .4byte 0x00000703 -_081462B4: .4byte gUnknown_030041B4 - thumb_func_end sub_8146288 - - thumb_func_start sub_81462B8 -sub_81462B8: @ 81462B8 - push {r4-r7,lr} - ldr r1, _081462D4 - ldr r2, _081462D8 - adds r0, r1, r2 - ldrb r0, [r0] - mov r12, r1 - cmp r0, 0x6 - bls _081462CA - b _08146404 -_081462CA: - lsls r0, 2 - ldr r1, _081462DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081462D4: .4byte 0x02000000 -_081462D8: .4byte 0x0001ffff -_081462DC: .4byte _081462E0 - .align 2, 0 -_081462E0: - .4byte _081462FC - .4byte _0814630C - .4byte _0814632C - .4byte _08146340 - .4byte _081463A4 - .4byte _081463C4 - .4byte _081463E4 -_081462FC: - ldr r0, _08146308 - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - b _081463CA - .align 2, 0 -_08146308: .4byte gBerryCheck_Gfx -_0814630C: - ldr r0, _0814631C - ldr r1, _08146320 - bl LZDecompressVram - ldr r1, _08146324 - ldr r2, _08146328 - adds r1, r2 - b _081463D0 - .align 2, 0 -_0814631C: .4byte gUnknown_08E788E4 -_08146320: .4byte 0x06002800 -_08146324: .4byte 0x02000000 -_08146328: .4byte 0x0001ffff -_0814632C: - ldr r0, _08146338 - ldr r1, _0814633C - bl LZDecompressVram - b _081463CA - .align 2, 0 -_08146338: .4byte gUnknown_08E78A84 -_0814633C: .4byte 0x06003000 -_08146340: - movs r1, 0 - ldr r7, _0814635C - adds r2, r7, 0 - ldr r6, _08146360 - ldr r5, _08146364 - ldr r4, _08146368 - ldr r3, _0814636C -_0814634E: - ldrb r0, [r5, 0x8] - cmp r0, 0 - bne _08146370 - lsls r0, r1, 1 - adds r0, r2 - strh r6, [r0] - b _08146376 - .align 2, 0 -_0814635C: .4byte gBG2TilemapBuffer -_08146360: .4byte 0x00004042 -_08146364: .4byte gSaveBlock2 -_08146368: .4byte 0x00005042 -_0814636C: .4byte 0x000003ff -_08146370: - lsls r0, r1, 1 - adds r0, r2 - strh r4, [r0] -_08146376: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r3 - bls _0814634E - ldr r1, _08146394 - ldr r0, _08146398 - str r7, [r0] - str r1, [r0, 0x4] - ldr r1, _0814639C - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - ldr r1, _081463A0 - add r1, r12 - b _081463D0 - .align 2, 0 -_08146394: .4byte 0x06003800 -_08146398: .4byte 0x040000d4 -_0814639C: .4byte 0x80000400 -_081463A0: .4byte 0x0001ffff -_081463A4: - ldr r0, _081463B8 - movs r1, 0 - movs r2, 0xC0 - bl LoadCompressedPalette - ldr r1, _081463BC - ldr r2, _081463C0 - adds r1, r2 - b _081463D0 - .align 2, 0 -_081463B8: .4byte gBerryCheck_Pal -_081463BC: .4byte 0x02000000 -_081463C0: .4byte 0x0001ffff -_081463C4: - ldr r0, _081463D8 - bl LoadCompressedObjectPic -_081463CA: - ldr r1, _081463DC - ldr r0, _081463E0 - adds r1, r0 -_081463D0: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08146404 - .align 2, 0 -_081463D8: .4byte gUnknown_083C1F74 -_081463DC: .4byte 0x02000000 -_081463E0: .4byte 0x0001ffff -_081463E4: - ldr r0, _081463F8 - bl LoadCompressedObjectPalette - ldr r0, _081463FC - ldr r1, _08146400 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _08146406 - .align 2, 0 -_081463F8: .4byte gUnknown_083C1F7C -_081463FC: .4byte 0x02000000 -_08146400: .4byte 0x0001ffff -_08146404: - movs r0, 0 -_08146406: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81462B8 - - thumb_func_start sub_814640C -sub_814640C: @ 814640C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08146438 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08146432 - ldr r0, _0814643C - bl SetMainCallback2 - bl sub_80A7DD4 - bl gpu_pal_allocator_reset__manage_upper_four - adds r0, r4, 0 - bl DestroyTask -_08146432: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08146438: .4byte gPaletteFade -_0814643C: .4byte sub_80A5B40 - thumb_func_end sub_814640C - - thumb_func_start sub_8146440 -sub_8146440: @ 8146440 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08146478 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0814647C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08146478: .4byte gTasks -_0814647C: .4byte sub_814640C - thumb_func_end sub_8146440 - - thumb_func_start sub_8146480 -sub_8146480: @ 8146480 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - ldr r0, _081464DC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _081464D6 - ldr r5, _081464E0 - ldrh r1, [r5, 0x30] - movs r6, 0xF0 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0x40 - bne _081464AC - movs r1, 0x1 - negs r1, r1 - adds r0, r4, 0 - bl sub_81466E8 -_081464AC: - ldrh r1, [r5, 0x30] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0x80 - bne _081464BE - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81466E8 -_081464BE: - ldrh r1, [r5, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081464D0 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081464D6 -_081464D0: - adds r0, r7, 0 - bl sub_8146440 -_081464D6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081464DC: .4byte gPaletteFade -_081464E0: .4byte gMain - thumb_func_end sub_8146480 - - thumb_func_start sub_81464E4 -sub_81464E4: @ 81464E4 - push {r4-r7,lr} - ldr r4, _0814659C - ldrb r0, [r4] - adds r0, 0x7C - lsls r0, 24 - lsrs r0, 24 - bl GetBerryInfo - adds r5, r0, 0 - ldr r7, _081465A0 - ldrh r1, [r4] - subs r1, 0x84 - adds r0, r7, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r0, r7, 0 - movs r1, 0xC - movs r2, 0x4 - bl MenuPrint - adds r0, r5, 0 - movs r1, 0xE - movs r2, 0x4 - bl MenuPrint - ldr r0, [r5, 0xC] - movs r1, 0x4 - movs r2, 0xE - bl MenuPrint - ldr r0, [r5, 0x10] - movs r1, 0x4 - movs r2, 0x10 - bl MenuPrint - ldrh r1, [r5, 0x8] - lsls r0, r1, 5 - subs r0, r1 - lsls r0, 2 - adds r0, r1 - lsls r0, 3 - movs r1, 0xFE - bl __divsi3 - adds r4, r0, 0 - movs r1, 0xA - bl __umodsi3 - cmp r0, 0x4 - bls _0814654E - adds r4, 0xA -_0814654E: - adds r0, r4, 0 - movs r1, 0x64 - bl __umodsi3 - movs r1, 0xA - bl __udivsi3 - adds r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x64 - bl __udivsi3 - adds r4, r0, 0 - ldr r0, _081465A4 - movs r1, 0xB - movs r2, 0x7 - bl MenuPrint - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _081465B0 - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _081465A8 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _081465AC - movs r1, 0x10 - movs r2, 0x7 - bl MenuPrint - b _081465BA - .align 2, 0 -_0814659C: .4byte word_203855E -_081465A0: .4byte gStringVar1 -_081465A4: .4byte gOtherText_Size -_081465A8: .4byte gStringVar2 -_081465AC: .4byte gContestStatsText_Unknown1 -_081465B0: - ldr r0, _081465E0 - movs r1, 0x10 - movs r2, 0x7 - bl MenuPrint -_081465BA: - ldr r0, _081465E4 - movs r1, 0xB - movs r2, 0x9 - bl MenuPrint - ldrb r0, [r5, 0x7] - cmp r0, 0 - beq _081465EC - ldr r0, _081465E8 - ldrb r1, [r5, 0x7] - subs r1, 0x1 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r1, 0x10 - movs r2, 0x9 - bl MenuPrint - b _081465F6 - .align 2, 0 -_081465E0: .4byte gOtherText_ThreeQuestions2 -_081465E4: .4byte gOtherText_Firm -_081465E8: .4byte gUnknown_0841192C -_081465EC: - ldr r0, _081465FC - movs r1, 0x10 - movs r2, 0x9 - bl MenuPrint -_081465F6: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081465FC: .4byte gOtherText_ThreeQuestions2 - thumb_func_end sub_81464E4 - - thumb_func_start sub_8146600 -sub_8146600: @ 8146600 - push {r4,r5,lr} - lsls r0, 24 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r0, 24 - bl GetBerryInfo - adds r4, r0, 0 - movs r2, 0 - ldr r5, _08146698 - ldr r0, _0814669C - adds r3, r0, 0 -_0814661A: - lsls r0, r2, 1 - adds r0, r5 - ldrh r1, [r0] - orrs r1, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x4 - bls _0814661A - ldrb r0, [r4, 0x15] - cmp r0, 0 - beq _08146642 - movs r0, 0x30 - bl sub_80A7E5C - ldr r1, _08146698 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] -_08146642: - ldrb r0, [r4, 0x16] - cmp r0, 0 - beq _08146656 - movs r0, 0x58 - bl sub_80A7E5C - ldr r1, _08146698 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2] -_08146656: - ldrb r0, [r4, 0x17] - cmp r0, 0 - beq _0814666A - movs r0, 0x80 - bl sub_80A7E5C - ldr r1, _08146698 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x4] -_0814666A: - ldrb r0, [r4, 0x18] - cmp r0, 0 - beq _0814667E - movs r0, 0xA8 - bl sub_80A7E5C - ldr r1, _08146698 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x6] -_0814667E: - ldrb r0, [r4, 0x19] - cmp r0, 0 - beq _08146692 - movs r0, 0xD0 - bl sub_80A7E5C - ldr r1, _08146698 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x8] -_08146692: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08146698: .4byte gUnknown_0203932E -_0814669C: .4byte 0x0000ffff - thumb_func_end sub_8146600 - - thumb_func_start sub_81466A0 -sub_81466A0: @ 81466A0 - push {r4-r7,lr} - movs r5, 0 - movs r7, 0x1 - negs r7, r7 - ldr r6, _081466DC -_081466AA: - lsls r0, r5, 1 - adds r4, r0, r6 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, r7 - beq _081466CA - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081466E0 - adds r0, r1 - bl DestroySprite - ldr r0, _081466E4 - strh r0, [r4] -_081466CA: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x4 - bls _081466AA - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081466DC: .4byte gUnknown_0203932E -_081466E0: .4byte gSprites -_081466E4: .4byte 0x0000ffff - thumb_func_end sub_81466A0 - - thumb_func_start sub_81466E8 -sub_81466E8: @ 81466E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r2, r1, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08146748 - adds r6, r0, r1 - ldr r4, _0814674C - movs r0, 0xC - adds r0, r4 - mov r8, r0 - ldrb r1, [r0, 0x1] - ldrb r0, [r4, 0xC] - adds r1, r0 - cmp r1, 0 - bne _08146718 - lsls r0, r2, 24 - cmp r0, 0 - blt _0814678C -_08146718: - adds r0, r1, 0x1 - lsls r5, r2, 24 - mov r1, r8 - ldrb r1, [r1, 0x2] - cmp r0, r1 - bne _08146728 - cmp r5, 0 - bgt _0814678C -_08146728: - movs r0, 0x5 - bl PlaySE - mov r2, r8 - ldrb r3, [r2, 0x1] - ldrb r4, [r4, 0xC] - mov r12, r4 - adds r0, r3, r4 - asrs r2, r5, 24 - adds r1, r0, r2 - cmp r1, 0 - bge _08146750 - negs r0, r0 - strh r0, [r6, 0x2] - b _08146766 - .align 2, 0 -_08146748: .4byte gUnknown_03004B28 -_0814674C: .4byte gUnknown_03005D10 -_08146750: - mov r4, r8 - ldrb r0, [r4, 0x2] - cmp r1, r0 - blt _08146764 - subs r0, r3 - mov r1, r12 - subs r0, r1 - subs r0, 0x1 - strh r0, [r6, 0x2] - b _08146766 -_08146764: - strh r2, [r6, 0x2] -_08146766: - ldr r0, _08146780 - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _08146784 - str r0, [r1] - cmp r5, 0 - bge _08146788 - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - b _0814678A - .align 2, 0 -_08146780: .4byte gTasks -_08146784: .4byte sub_8146798 -_08146788: - movs r0, 0x10 -_0814678A: - strh r0, [r6] -_0814678C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81466E8 - - thumb_func_start sub_8146798 -sub_8146798: @ 8146798 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _08146800 - adds r0, r1 - ldr r2, _08146804 - ldrh r1, [r0] - ldrh r5, [r2] - adds r3, r1, r5 - movs r1, 0xFF - ands r3, r1 - strh r3, [r2] - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _081467C2 - cmp r3, 0x90 - beq _081467CA -_081467C2: - cmp r0, 0 - bge _081467E0 - cmp r3, 0x70 - bne _081467E0 -_081467CA: - ldr r0, _08146808 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0xA - ldrsb r0, [r1, r0] - bl sub_8146810 - bl sub_81468BC -_081467E0: - ldr r0, _08146804 - ldrh r2, [r0] - cmp r2, 0 - bne _081467FA - ldr r0, _08146808 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0x8] - strh r2, [r1, 0xA] - ldr r0, _0814680C - str r0, [r1] -_081467FA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08146800: .4byte gUnknown_03004B28 -_08146804: .4byte gUnknown_030041B4 -_08146808: .4byte gTasks -_0814680C: .4byte sub_8146480 - thumb_func_end sub_8146798 - - thumb_func_start sub_8146810 -sub_8146810: @ 8146810 - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - adds r4, r3, 0 - lsls r0, r3, 24 - asrs r1, r0, 24 - cmp r1, 0 - ble _08146848 - ldr r0, _08146840 - adds r4, r0, 0 - adds r4, 0xC - ldrb r2, [r0, 0xC] - adds r1, r2, r1 - adds r6, r0, 0 - cmp r1, 0x7 - ble _08146844 - adds r0, r3, 0 - adds r0, 0xF9 - adds r0, r2, r0 - ldrb r1, [r4, 0x1] - adds r0, r1 - strb r0, [r4, 0x1] - movs r0, 0x7 - b _0814686E - .align 2, 0 -_08146840: .4byte gUnknown_03005D10 -_08146844: - adds r0, r2, r3 - b _0814686E -_08146848: - ldr r0, _08146868 - adds r5, r0, 0 - adds r5, 0xC - ldrb r2, [r0, 0xC] - adds r1, r2, r1 - adds r6, r0, 0 - cmp r1, 0 - bge _0814686C - adds r0, r2, r3 - ldrb r1, [r5, 0x1] - adds r0, r1 - movs r1, 0 - strb r0, [r5, 0x1] - strb r1, [r6, 0xC] - b _08146870 - .align 2, 0 -_08146868: .4byte gUnknown_03005D10 -_0814686C: - adds r0, r2, r4 -_0814686E: - strb r0, [r6, 0xC] -_08146870: - ldr r2, _081468AC - movs r0, 0x3 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _081468B0 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1] - strh r0, [r2] - ldr r0, _081468B4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _081468B8 - adds r0, r1 - bl DestroySprite - bl sub_81466A0 - bl sub_80A7DD4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081468AC: .4byte word_203855E -_081468B0: .4byte gUnknown_03005D24 -_081468B4: .4byte gUnknown_0203932C -_081468B8: .4byte gSprites - thumb_func_end sub_8146810 - - thumb_func_start sub_81468BC -sub_81468BC: @ 81468BC - push {r4,lr} - movs r0, 0 - movs r1, 0x4 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - bl sub_81464E4 - ldr r4, _081468F8 - ldrb r0, [r4] - adds r0, 0x7B - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x38 - movs r2, 0x40 - bl sub_80A7D8C - ldr r1, _081468FC - strb r0, [r1] - ldrb r0, [r4] - adds r0, 0x7B - lsls r0, 24 - lsrs r0, 24 - bl sub_8146600 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081468F8: .4byte word_203855E -_081468FC: .4byte gUnknown_0203932C - thumb_func_end sub_81468BC - - thumb_func_start sub_8146900 -sub_8146900: @ 8146900 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8146900 - - thumb_func_start sub_8146914 -sub_8146914: @ 8146914 - push {lr} - movs r2, 0 - ldr r1, _0814692C - ldrh r0, [r1, 0x1A] - ldrh r1, [r1, 0x36] - cmp r0, r1 - bne _08146924 - movs r2, 0x1 -_08146924: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_0814692C: .4byte gLinkPlayers - thumb_func_end sub_8146914 - - thumb_func_start CB2_InitMysteryEventMenu -CB2_InitMysteryEventMenu: @ 8146930 - push {r4,lr} - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, _0814699C - bl SetVBlankCallback - ldr r4, _081469A0 - adds r0, r4, 0 - bl SetUpWindowConfig - adds r0, r4, 0 - bl InitMenuWindow - bl MenuZeroFillScreen - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x50 - movs r0, 0 - strh r0, [r1] - ldr r0, _081469A4 - movs r1, 0 - bl CreateTask - bl StopMapMusic - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - bl FillPalette - ldr r0, _081469A8 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814699C: .4byte sub_8146900 -_081469A0: .4byte gWindowConfig_81E6CE4 -_081469A4: .4byte Task_DestroySelf -_081469A8: .4byte sub_81469E4 - thumb_func_end CB2_InitMysteryEventMenu - - thumb_func_start sub_81469AC -sub_81469AC: @ 81469AC - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - movs r5, 0x1 - cmp r4, 0 - bne _081469C0 - ldr r1, _081469DC - bl StringCopy - movs r5, 0 -_081469C0: - cmp r4, 0x2 - bne _081469C6 - movs r5, 0 -_081469C6: - cmp r4, 0x1 - bne _081469D2 - ldr r1, _081469E0 - adds r0, r6, 0 - bl StringCopy -_081469D2: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081469DC: .4byte gSystemText_EventLoadSuccess -_081469E0: .4byte gSystemText_LoadingError - thumb_func_end sub_81469AC - - thumb_func_start sub_81469E4 -sub_81469E4: @ 81469E4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, _08146A04 - ldr r2, _08146A08 - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x10 - bls _081469F8 - b _08146DA4 -_081469F8: - lsls r0, 2 - ldr r1, _08146A0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08146A04: .4byte gMain -_08146A08: .4byte 0x0000043c -_08146A0C: .4byte _08146A10 - .align 2, 0 -_08146A10: - .4byte _08146A54 - .4byte _08146A6E - .4byte _08146A9C - .4byte _08146AD4 - .4byte _08146B18 - .4byte _08146B26 - .4byte _08146B90 - .4byte _08146C64 - .4byte _08146C72 - .4byte _08146C94 - .4byte _08146CA0 - .4byte _08146CB4 - .4byte _08146CFC - .4byte _08146D18 - .4byte _08146D50 - .4byte _08146D6C - .4byte _08146D94 -_08146A54: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - b _08146D78 -_08146A6E: - ldr r0, _08146A8C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08146A7C - b _08146DA4 -_08146A7C: - ldr r0, _08146A90 - bl sub_8072044 - ldr r1, _08146A94 - ldr r2, _08146A98 - adds r1, r2 - b _08146D82 - .align 2, 0 -_08146A8C: .4byte gPaletteFade -_08146A90: .4byte gSystemText_LinkStandby -_08146A94: .4byte gMain -_08146A98: .4byte 0x0000043c -_08146A9C: - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - bne _08146AA8 - b _08146DA4 -_08146AA8: - ldr r1, _08146AC4 - ldr r0, _08146AC8 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _08146ACC - ldr r2, _08146AD0 - adds r0, r2, 0 - strh r0, [r1] - bl OpenLink - b _08146DA4 - .align 2, 0 -_08146AC4: .4byte gMain -_08146AC8: .4byte 0x0000043c -_08146ACC: .4byte gLinkType -_08146AD0: .4byte 0x00005501 -_08146AD4: - ldr r0, _08146B08 - ldr r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08146AE2 - b _08146C38 -_08146AE2: - movs r0, 0x1C - ands r1, r0 - cmp r1, 0x4 - bhi _08146AEC - b _08146C38 -_08146AEC: - movs r0, 0x15 - bl PlaySE - ldr r0, _08146B0C - bl sub_8072044 - ldr r1, _08146B10 - ldr r0, _08146B14 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08146C38 - .align 2, 0 -_08146B08: .4byte gLinkStatus -_08146B0C: .4byte gSystemText_LoadEventPressA -_08146B10: .4byte gMain -_08146B14: .4byte 0x0000043c -_08146B18: - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - bne _08146B24 - b _08146DA4 -_08146B24: - b _08146D7C -_08146B26: - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bne _08146C10 - ldr r4, _08146B64 - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08146B70 - movs r0, 0x5 - bl PlaySE - bl sub_8007F4C - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuDrawTextWindow - ldr r0, _08146B68 - movs r1, 0x7 - movs r2, 0x6 - bl MenuPrint - ldr r2, _08146B6C - adds r1, r4, r2 - b _08146D82 - .align 2, 0 -_08146B64: .4byte gMain -_08146B68: .4byte gSystemText_LoadingEvent -_08146B6C: .4byte 0x0000043c -_08146B70: - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08146B7A - b _08146DA4 -_08146B7A: - movs r0, 0x5 - bl PlaySE - bl CloseLink - ldr r0, _08146B8C - adds r1, r4, r0 - b _08146C54 - .align 2, 0 -_08146B8C: .4byte 0x0000043c -_08146B90: - bl IsLinkConnectionEstablished - lsls r0, 24 - cmp r0, 0 - beq _08146C38 - ldr r0, _08146BD8 - ldrb r0, [r0] - cmp r0, 0 - bne _08146BA4 - b _08146DA4 -_08146BA4: - bl GetLinkPlayerDataExchangeStatusTimed - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _08146BE8 - bl sub_800832C - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuZeroFillWindowRect - ldr r4, _08146BDC - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81469AC - adds r0, r4, 0 - bl sub_8072044 - ldr r0, _08146BE0 - ldr r2, _08146BE4 - adds r0, r2 - b _08146C26 - .align 2, 0 -_08146BD8: .4byte gReceivedRemoteLinkPlayers -_08146BDC: .4byte gStringVar4 -_08146BE0: .4byte gMain -_08146BE4: .4byte 0x0000043c -_08146BE8: - bl sub_8146914 - lsls r0, 24 - cmp r0, 0 - beq _08146C00 - ldr r0, _08146BFC - bl sub_8072044 - b _08146D7C - .align 2, 0 -_08146BFC: .4byte gSystemText_DontCutLink -_08146C00: - bl CloseLink - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuZeroFillWindowRect -_08146C10: - ldr r4, _08146C2C - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81469AC - adds r0, r4, 0 - bl sub_8072044 - ldr r0, _08146C30 - ldr r1, _08146C34 - adds r0, r1 -_08146C26: - movs r1, 0xD - strb r1, [r0] - b _08146DA4 - .align 2, 0 -_08146C2C: .4byte gStringVar4 -_08146C30: .4byte gMain -_08146C34: .4byte 0x0000043c -_08146C38: - ldr r4, _08146C5C - ldrh r1, [r4, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08146C46 - b _08146DA4 -_08146C46: - movs r0, 0x5 - bl PlaySE - bl CloseLink - ldr r2, _08146C60 - adds r1, r4, r2 -_08146C54: - movs r0, 0xF - strb r0, [r1] - b _08146DA4 - .align 2, 0 -_08146C5C: .4byte gMain -_08146C60: .4byte 0x0000043c -_08146C64: - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - bne _08146C70 - b _08146DA4 -_08146C70: - b _08146D7C -_08146C72: - bl GetBlockRecievedStatus - lsls r0, 24 - cmp r0, 0 - bne _08146C7E - b _08146DA4 -_08146C7E: - bl ResetBlockReceivedFlags - ldr r1, _08146C8C - ldr r2, _08146C90 - adds r1, r2 - b _08146D82 - .align 2, 0 -_08146C8C: .4byte gMain -_08146C90: .4byte 0x0000043c -_08146C94: - ldr r0, _08146C9C - adds r1, r4, r0 - b _08146D82 - .align 2, 0 -_08146C9C: .4byte 0x0000043c -_08146CA0: - bl sub_800832C - ldr r1, _08146CAC - ldr r2, _08146CB0 - adds r1, r2 - b _08146D82 - .align 2, 0 -_08146CAC: .4byte gMain -_08146CB0: .4byte 0x0000043c -_08146CB4: - ldr r0, _08146CEC - ldrb r6, [r0] - cmp r6, 0 - bne _08146DA4 - ldr r5, _08146CF0 - adds r0, r5, 0 - bl sub_812613C - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - str r6, [sp, 0x4] - ldr r2, _08146CF4 - add r0, sp, 0x4 - adds r1, r5, 0 - bl CpuSet - ldr r0, _08146CF8 - adds r1, r4, 0 - bl sub_81469AC - lsls r0, 24 - cmp r0, 0 - bne _08146D7C - movs r0, 0 - bl sub_8125D44 - b _08146D7C - .align 2, 0 -_08146CEC: .4byte gReceivedRemoteLinkPlayers -_08146CF0: .4byte 0x02000000 -_08146CF4: .4byte 0x050001f5 -_08146CF8: .4byte gStringVar4 -_08146CFC: - ldr r0, _08146D0C - bl sub_8072044 - ldr r1, _08146D10 - ldr r2, _08146D14 - adds r1, r2 - b _08146D82 - .align 2, 0 -_08146D0C: .4byte gStringVar4 -_08146D10: .4byte gMain -_08146D14: .4byte 0x0000043c -_08146D18: - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuZeroFillWindowRect - bl MenuUpdateWindowText - lsls r0, 24 - cmp r0, 0 - beq _08146DA4 - ldr r1, _08146D44 - ldr r0, _08146D48 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r0, _08146D4C - strb r2, [r0] - b _08146DA4 - .align 2, 0 -_08146D44: .4byte gMain -_08146D48: .4byte 0x0000043c -_08146D4C: .4byte gUnknown_02039338 -_08146D50: - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08146DA4 - movs r0, 0x5 - bl PlaySE - ldr r2, _08146D68 - adds r1, r4, r2 - b _08146D82 - .align 2, 0 -_08146D68: .4byte 0x0000043c -_08146D6C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 -_08146D78: - bl BeginNormalPaletteFade -_08146D7C: - ldr r1, _08146D8C - ldr r0, _08146D90 - adds r1, r0 -_08146D82: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08146DA4 - .align 2, 0 -_08146D8C: .4byte gMain -_08146D90: .4byte 0x0000043c -_08146D94: - ldr r0, _08146DFC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08146DA4 - bl DoSoftReset -_08146DA4: - ldr r0, _08146E00 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08146DE4 - bl IsLinkMaster - lsls r0, 24 - cmp r0, 0 - bne _08146DE4 - bl CloseLink - movs r0, 0x6 - movs r1, 0x5 - movs r2, 0x17 - movs r3, 0x8 - bl MenuZeroFillWindowRect - ldr r4, _08146E04 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_81469AC - adds r0, r4, 0 - bl sub_8072044 - ldr r0, _08146E08 - ldr r1, _08146E0C - adds r0, r1 - movs r1, 0xD - strb r1, [r0] -_08146DE4: - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08146DFC: .4byte gPaletteFade -_08146E00: .4byte gLinkStatus -_08146E04: .4byte gStringVar4 -_08146E08: .4byte gMain -_08146E0C: .4byte 0x0000043c - thumb_func_end sub_81469E4 - - thumb_func_start fullscreen_save_activate -fullscreen_save_activate: @ 8146E10 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08146E30 - bl SetMainCallback2 - ldr r0, _08146E34 - strh r4, [r0] - ldr r1, _08146E38 - movs r0, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08146E30: .4byte sub_8146E50 -_08146E34: .4byte gUnknown_0203933C -_08146E38: .4byte gUnknown_0203933E - thumb_func_end fullscreen_save_activate - - thumb_func_start sub_8146E3C -sub_8146E3C: @ 8146E3C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8146E3C - - thumb_func_start sub_8146E50 -sub_8146E50: @ 8146E50 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - ldr r0, _08146FB0 - ldr r1, _08146FB4 - adds r7, r0, r1 - ldrb r0, [r7] - cmp r0, 0 - beq _08146E6C - cmp r0, 0x1 - bne _08146E6C - b _0814701C -_08146E6C: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 19 - mov r9, r0 - movs r1, 0 - strh r1, [r0] - ldr r6, _08146FB8 - strh r1, [r6] - adds r0, 0xC - mov r8, r0 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - ldr r5, _08146FBC - strh r1, [r5] - adds r0, 0x12 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - add r0, sp, 0x4 - strh r1, [r0] - ldr r2, _08146FC0 - str r0, [r2] - movs r1, 0xC0 - lsls r1, 19 - str r1, [r2, 0x4] - ldr r0, _08146FC4 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r4, 0 - str r4, [sp, 0x8] - add r0, sp, 0x8 - str r0, [r2] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r2, 0x4] - ldr r0, _08146FC8 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - add r0, sp, 0x4 - strh r4, [r0] - str r0, [r2] - movs r0, 0xA0 - lsls r0, 19 - str r0, [r2, 0x4] - ldr r0, _08146FCC - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, _08146FD0 - bl LZ77UnCompVram - ldr r0, _08146FD4 - ldr r1, _08146FD8 - bl LZ77UnCompVram - ldr r0, _08146FDC - ldr r1, _08146FE0 - bl LZ77UnCompVram - ldr r0, _08146FE4 - ldr r1, _08146FE8 - bl LZ77UnCompVram - bl ResetSpriteData - bl ResetTasks - bl ResetPaletteFade - ldr r0, _08146FEC - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08146FF0 - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08146FF4 - bl SetUpWindowConfig - ldr r0, _08146FF8 - bl InitMenuWindow - .if REVISION >= 1 - movs r0, 0xD - movs r1, 0x6 - movs r2, 0x10 - movs r3, 0x9 - .else - movs r0, 0xD - movs r1, 0x8 - movs r2, 0x10 - movs r3, 0xB - .endif - bl MenuDrawTextWindow - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _08146FFC - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r3, _08147000 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _08147004 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08147008 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0814700C - bl SetVBlankCallback - ldr r1, _08147010 - adds r0, r1, 0 - strh r0, [r6] - ldr r1, _08147014 - adds r0, r1, 0 - mov r1, r8 - strh r0, [r1] - ldr r1, _08147018 - adds r0, r1, 0 - strh r0, [r5] - movs r1, 0xEA - lsls r1, 5 - adds r0, r1, 0 - mov r1, r9 - strh r0, [r1] - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - b _08147032 - .align 2, 0 -_08146FB0: .4byte gMain -_08146FB4: .4byte 0x0000043c -_08146FB8: .4byte REG_BG3CNT -_08146FBC: .4byte REG_BG0CNT -_08146FC0: .4byte 0x040000d4 -_08146FC4: .4byte 0x8100c000 -_08146FC8: .4byte 0x85000100 -_08146FCC: .4byte 0x81000200 -_08146FD0: .4byte gUnknown_083F66F0 -_08146FD4: .4byte gBirchBagTilemap -_08146FD8: .4byte 0x06003000 -_08146FDC: .4byte gBirchGrassTilemap -_08146FE0: .4byte 0x06003800 -_08146FE4: .4byte gUnknown_08411980 -_08146FE8: .4byte 0x06010020 -_08146FEC: .4byte gUnknown_083F62EC -_08146FF0: .4byte gUnknown_08411960 -_08146FF4: .4byte gWindowConfig_81E6C3C -_08146FF8: .4byte gWindowConfig_81E6CE4 -_08146FFC: .4byte gSystemText_SaveFailedBackupCheck -_08147000: .4byte 0x04000208 -_08147004: .4byte 0x04000200 -_08147008: .4byte REG_DISPSTAT -_0814700C: .4byte sub_8146E3C -_08147010: .4byte 0x00000703 -_08147014: .4byte 0x00000602 -_08147018: .4byte 0x00001f08 -_0814701C: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _08147032 - ldr r0, _08147040 - bl SetMainCallback2 - ldr r0, _08147044 - bl SetVBlankCallback -_08147032: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08147040: .4byte sub_8147048 -_08147044: .4byte sub_8147218 - thumb_func_end sub_8146E50 - - thumb_func_start sub_8147048 -sub_8147048: @ 8147048 - push {r4,r5,lr} - movs r4, 0 - ldr r0, _081470C8 - movs r1, 0x1 - strh r1, [r0] - ldr r1, _081470CC - ldr r0, [r1] - cmp r0, 0 - beq _081470A6 - adds r5, r1, 0 -_0814705C: - ldr r0, [r5] - bl sub_814737C - lsls r0, 24 - cmp r0, 0 - bne _0814710C - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _081470D0 - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - ldr r0, _081470D4 - ldrb r0, [r0] - bl sub_8125C3C - ldr r0, [r5] - cmp r0, 0 - beq _08147096 - ldr r0, _081470D8 - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint -_08147096: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [r5] - cmp r0, 0 - beq _081470A6 - cmp r4, 0x2 - bls _0814705C -_081470A6: - cmp r4, 0x3 - bne _081470E4 - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _081470DC - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - ldr r0, _081470E0 - bl SetMainCallback2 - b _0814713E - .align 2, 0 -_081470C8: .4byte gUnknown_0203933E -_081470CC: .4byte gUnknown_03005EA8 -_081470D0: .4byte gSystemText_CheckCompleteSaveAttempt -_081470D4: .4byte gUnknown_0203933C -_081470D8: .4byte gSystemText_SaveFailedBackupCheck -_081470DC: .4byte gSystemText_BackupDamagedGameContinue -_081470E0: .4byte sub_81471A4 -_081470E4: - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _08147104 - ldr r0, [r0] - cmp r0, 0 - bne _08147134 - ldr r0, _08147108 - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - b _0814713E - .align 2, 0 -_08147104: .4byte gUnknown_03005EBC -_08147108: .4byte gSystemText_SaveCompletedGameEnd -_0814710C: - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _0814712C - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - ldr r0, _08147130 - bl SetMainCallback2 - b _08147144 - .align 2, 0 -_0814712C: .4byte gSystemText_BackupDamagedGameContinue -_08147130: .4byte sub_8147154 -_08147134: - ldr r0, _0814714C - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint -_0814713E: - ldr r0, _08147150 - bl SetMainCallback2 -_08147144: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814714C: .4byte gSystemText_SaveCompletedPressA -_08147150: .4byte sub_81471A4 - thumb_func_end sub_8147048 - - thumb_func_start sub_8147154 -sub_8147154: @ 8147154 - push {lr} - ldr r1, _08147190 - movs r0, 0 - strh r0, [r1] - ldr r0, _08147194 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814718A - .if REVISION >= 1 - movs r0, 0x1 - movs r1, 0xA - movs r2, 0x1C - movs r3, 0x13 - .else - movs r0, 0x1 - movs r1, 0xC - movs r2, 0x1C - movs r3, 0x13 - .endif - bl MenuDrawTextWindow - ldr r0, _08147198 - .if REVISION >= 1 - movs r1, 0x2 - movs r2, 0xB - .else - movs r1, 0x2 - movs r2, 0xD - .endif - bl MenuPrint - ldr r0, _0814719C - bl SetVBlankCallback - ldr r0, _081471A0 - bl SetMainCallback2 -_0814718A: - pop {r0} - bx r0 - .align 2, 0 -_08147190: .4byte gUnknown_0203933E -_08147194: .4byte gMain -_08147198: .4byte gSystemText_GameplayEnded -_0814719C: .4byte sub_8146E3C -_081471A0: .4byte sub_81471A4 - thumb_func_end sub_8147154 - - thumb_func_start sub_81471A4 -sub_81471A4: @ 81471A4 - push {lr} - sub sp, 0x4 - ldr r0, _081471DC - movs r2, 0 - strh r2, [r0] - ldr r0, _081471E0 - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081471D4 - movs r0, 0x1 - negs r0, r0 - str r2, [sp] - movs r1, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _081471E4 - bl SetVBlankCallback - ldr r0, _081471E8 - bl SetMainCallback2 -_081471D4: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_081471DC: .4byte gUnknown_0203933E -_081471E0: .4byte gMain -_081471E4: .4byte sub_8146E3C -_081471E8: .4byte sub_81471EC - thumb_func_end sub_81471A4 - - thumb_func_start sub_81471EC -sub_81471EC: @ 81471EC - push {r4,r5,lr} - bl UpdatePaletteFade - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08147212 - ldr r5, _08147208 - ldr r0, [r5] - cmp r0, 0 - bne _0814720C - bl DoSoftReset - b _08147212 - .align 2, 0 -_08147208: .4byte gUnknown_03005EBC -_0814720C: - bl SetMainCallback2 - str r4, [r5] -_08147212: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81471EC - - thumb_func_start sub_8147218 -sub_8147218: @ 8147218 - push {r4,r5,lr} - ldr r0, _08147290 - mov r12, r0 - ldr r0, [r0, 0x24] - lsrs r4, r0, 3 - movs r0, 0x7 - ands r4, r0 - ldr r0, _08147294 - ldr r1, [r0, 0x4] - ldr r0, [r0] - mov r2, r12 - str r0, [r2, 0x3C] - str r1, [r2, 0x40] - ldrh r1, [r2, 0x3E] - ldr r0, _08147298 - ands r0, r1 - movs r1, 0x70 - orrs r0, r1 - strh r0, [r2, 0x3E] - mov r1, r12 - adds r1, 0x3C - .if REVISION >= 1 - movs r0, 0x38 - .else - movs r0, 0x48 - .endif - strb r0, [r1] - ldr r0, _0814729C - ldrh r0, [r0] - cmp r0, 0 - beq _081472A8 - ldr r3, _081472A0 - lsls r2, r4, 1 - adds r2, r4 - adds r0, r2, r3 - mov r4, r12 - adds r4, 0x40 - ldrb r5, [r0] - ldrh r1, [r4] - ldr r0, _081472A4 - ands r0, r1 - orrs r0, r5 - strh r0, [r4] - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r1, 4 - adds r3, 0x1 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 3 - orrs r1, r0 - mov r3, r12 - adds r3, 0x3F - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _081472B8 - .align 2, 0 -_08147290: .4byte gMain -_08147294: .4byte gUnknown_08411940 -_08147298: .4byte 0xfffffe00 -_0814729C: .4byte gUnknown_0203933E -_081472A0: .4byte gUnknown_08411948 -_081472A4: .4byte 0xfffffc00 -_081472A8: - mov r2, r12 - adds r2, 0x40 - ldrh r1, [r2] - ldr r0, _081472D8 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] -_081472B8: - ldr r0, _081472DC - movs r1, 0xE0 - lsls r1, 19 - movs r2, 0x1 - bl CpuFastSet - ldr r1, _081472E0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _081472D0 - subs r0, 0x1 - strh r0, [r1, 0x2] -_081472D0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081472D8: .4byte 0xfffffc00 -_081472DC: .4byte gMain + 0x3C -_081472E0: .4byte gUnknown_0203933E - thumb_func_end sub_8147218 - - thumb_func_start sub_81472E4 -sub_81472E4: @ 81472E4 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _08147308 - movs r3, 0x80 - lsls r3, 5 - movs r1, 0 - adds r2, r4, 0 - bl ReadFlash - movs r1, 0 - ldr r2, _0814730C -_081472FC: - ldr r0, [r4] - cmp r0, 0 - beq _08147310 - movs r0, 0x1 - b _0814731E - .align 2, 0 -_08147308: .4byte 0x02000000 -_0814730C: .4byte 0x000003ff -_08147310: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r4, 0x4 - cmp r1, r2 - bls _081472FC - movs r0, 0 -_0814731E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81472E4 - - thumb_func_start sub_8147324 -sub_8147324: @ 8147324 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r6, r0, 16 - movs r0, 0 - ldr r1, _08147374 - mov r8, r1 - ldr r7, _08147378 -_08147336: - movs r4, 0 - adds r5, r0, 0x1 -_0814733A: - ldr r3, [r7] - adds r0, r6, 0 - adds r1, r4, 0 - movs r2, 0 - bl _call_via_r3 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bls _0814733A - adds r0, r6, 0 - bl sub_81472E4 - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r5, 16 - lsrs r0, 16 - cmp r1, 0 - beq _08147366 - cmp r0, 0x81 - bls _08147336 -_08147366: - adds r0, r1, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08147374: .4byte 0x00000fff -_08147378: .4byte ProgramFlashByte - thumb_func_end sub_8147324 - - thumb_func_start sub_814737C -sub_814737C: @ 814737C - push {r4-r6,lr} - adds r5, r0, 0 - movs r6, 0 -_08147382: - movs r4, 0x1 - lsls r4, r6 - adds r0, r5, 0 - ands r0, r4 - cmp r0, 0 - beq _0814739C - adds r0, r6, 0 - bl sub_8147324 - lsls r0, 24 - cmp r0, 0 - bne _0814739C - bics r5, r4 -_0814739C: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x1F - bls _08147382 - cmp r5, 0 - beq _081473AE - movs r0, 0x1 - b _081473B0 -_081473AE: - movs r0, 0 -_081473B0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_814737C - - thumb_func_start sub_81473B8 -sub_81473B8: @ 81473B8 - push {lr} - ldr r0, _081473E8 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08147400 - ldr r2, _081473EC - ldrh r1, [r2, 0x4] - ldr r0, _081473F0 - cmp r1, r0 - bne _08147400 - ldr r1, [r2] - ldr r0, _081473F4 - cmp r1, r0 - beq _081473E4 - ldr r0, _081473F8 - cmp r1, r0 - beq _081473E4 - ldr r0, _081473FC - cmp r1, r0 - bne _08147400 -_081473E4: - movs r0, 0x1 - b _08147402 - .align 2, 0 -_081473E8: .4byte 0x0000084f -_081473EC: .4byte gSaveBlock1 -_081473F0: .4byte 0x00004718 -_081473F4: .4byte 0x0003000a -_081473F8: .4byte 0x00030009 -_081473FC: .4byte 0x0003000b -_08147400: - movs r0, 0 -_08147402: - pop {r1} - bx r1 - thumb_func_end sub_81473B8 - - thumb_func_start sub_8147408 -sub_8147408: @ 8147408 - push {lr} - ldr r2, _08147460 - movs r0, 0x10 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _08147464 - movs r0, 0x11 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - movs r2, 0x8B - lsls r2, 2 - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _08147468 - movs r0, 0x10 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - ldr r2, _0814746C - movs r0, 0x11 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - ldr r2, _08147470 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, 0x14 - bl PlaySE - ldr r0, _08147474 - bl FlagSet - bl ScriptContext2_Disable - pop {r0} - bx r0 - .align 2, 0 -_08147460: .4byte 0x0000022a -_08147464: .4byte 0x0000022b -_08147468: .4byte 0x00000e32 -_0814746C: .4byte 0x00000233 -_08147470: .4byte 0x00000e34 -_08147474: .4byte 0x0000084f - thumb_func_end sub_8147408 - - thumb_func_start sub_8147478 -sub_8147478: @ 8147478 - push {r4,lr} - ldr r4, _081474B4 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - ldr r1, _081474B8 - cmp r0, r1 - bne _081474C0 - bl CalculatePlayerPartyCount - ldr r0, _081474BC - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - adds r1, r4, 0 - subs r1, 0x64 - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0x9D - lsls r1, 1 - cmp r0, r1 - bne _081474C0 - movs r0, 0x1 - b _081474C2 - .align 2, 0 -_081474B4: .4byte gPlayerParty -_081474B8: .4byte 0x0000017d -_081474BC: .4byte gPlayerPartyCount -_081474C0: - movs r0, 0 -_081474C2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8147478 - - thumb_func_start sub_81474C8 -sub_81474C8: @ 81474C8 - push {lr} - movs r0, 0x85 - lsls r0, 4 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0814750C - ldr r2, _081474FC - ldrh r1, [r2, 0x4] - movs r0, 0xC3 - lsls r0, 3 - cmp r1, r0 - bne _0814750C - ldr r1, [r2] - ldr r0, _08147500 - cmp r1, r0 - beq _081474F8 - ldr r0, _08147504 - cmp r1, r0 - beq _081474F8 - ldr r0, _08147508 - cmp r1, r0 - bne _0814750C -_081474F8: - movs r0, 0x1 - b _0814750E - .align 2, 0 -_081474FC: .4byte gSaveBlock1 -_08147500: .4byte 0x0017000a -_08147504: .4byte 0x00170009 -_08147508: .4byte 0x0017000b -_0814750C: - movs r0, 0 -_0814750E: - pop {r1} - bx r1 - thumb_func_end sub_81474C8 - - thumb_func_start sub_8147514 -sub_8147514: @ 8147514 - push {lr} - movs r0, 0x28 - bl FieldEffectActiveListRemove - ldr r2, _08147574 - movs r0, 0xE - movs r1, 0x1A - bl MapGridSetMetatileIdAt - ldr r2, _08147578 - movs r0, 0xF - movs r1, 0x1A - bl MapGridSetMetatileIdAt - movs r2, 0x8B - lsls r2, 2 - movs r0, 0x10 - movs r1, 0x1A - bl MapGridSetMetatileIdAt - ldr r2, _0814757C - movs r0, 0xE - movs r1, 0x1B - bl MapGridSetMetatileIdAt - ldr r2, _08147580 - movs r0, 0xF - movs r1, 0x1B - bl MapGridSetMetatileIdAt - ldr r2, _08147584 - movs r0, 0x10 - movs r1, 0x1B - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, 0x14 - bl PlaySE - movs r0, 0x85 - lsls r0, 4 - bl FlagSet - bl ScriptContext2_Disable - pop {r0} - bx r0 - .align 2, 0 -_08147574: .4byte 0x0000022a -_08147578: .4byte 0x0000022b -_0814757C: .4byte 0x00000e32 -_08147580: .4byte 0x00000233 -_08147584: .4byte 0x00000e34 - thumb_func_end sub_8147514 - - thumb_func_start sub_8147588 -sub_8147588: @ 8147588 - push {lr} - ldr r0, _081475AC - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _081475BC - ldr r2, _081475B0 - ldrh r1, [r2, 0x4] - ldr r0, _081475B4 - cmp r1, r0 - bne _081475BC - ldr r1, [r2] - ldr r0, _081475B8 - cmp r1, r0 - bne _081475BC - movs r0, 0x1 - b _081475BE - .align 2, 0 -_081475AC: .4byte 0x00000852 -_081475B0: .4byte gSaveBlock1 -_081475B4: .4byte 0x00004418 -_081475B8: .4byte 0x00190008 -_081475BC: - movs r0, 0 -_081475BE: - pop {r1} - bx r1 - thumb_func_end sub_8147588 - - thumb_func_start sub_81475C4 -sub_81475C4: @ 81475C4 - push {lr} - ldr r0, _081475D8 - ldr r1, _081475DC - ldrb r1, [r1] - str r1, [r0] - movs r0, 0x3C - bl FieldEffectStart - pop {r0} - bx r0 - .align 2, 0 -_081475D8: .4byte gUnknown_0202FF84 -_081475DC: .4byte gUnknown_03005CE0 - thumb_func_end sub_81475C4 - - thumb_func_start sub_81475E0 -sub_81475E0: @ 81475E0 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147604 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _08147608 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08147604: .4byte gTasks -_08147608: .4byte sub_814760C - thumb_func_end sub_81475E0 - - thumb_func_start sub_814760C -sub_814760C: @ 814760C - push {lr} - movs r0, 0x3C - bl FieldEffectActiveListRemove - bl sub_814761C - pop {r0} - bx r0 - thumb_func_end sub_814760C - - thumb_func_start sub_814761C -sub_814761C: @ 814761C - push {lr} - ldr r2, _08147674 - movs r0, 0xE - movs r1, 0x1A - bl MapGridSetMetatileIdAt - ldr r2, _08147678 - movs r0, 0xF - movs r1, 0x1A - bl MapGridSetMetatileIdAt - movs r2, 0x8B - lsls r2, 2 - movs r0, 0x10 - movs r1, 0x1A - bl MapGridSetMetatileIdAt - ldr r2, _0814767C - movs r0, 0xE - movs r1, 0x1B - bl MapGridSetMetatileIdAt - ldr r2, _08147680 - movs r0, 0xF - movs r1, 0x1B - bl MapGridSetMetatileIdAt - ldr r2, _08147684 - movs r0, 0x10 - movs r1, 0x1B - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - movs r0, 0x14 - bl PlaySE - ldr r0, _08147688 - bl FlagSet - bl ScriptContext2_Disable - pop {r0} - bx r0 - .align 2, 0 -_08147674: .4byte 0x0000022a -_08147678: .4byte 0x0000022b -_0814767C: .4byte 0x00000e32 -_08147680: .4byte 0x00000233 -_08147684: .4byte 0x00000e34 -_08147688: .4byte 0x00000852 - thumb_func_end sub_814761C - - thumb_func_start sub_814768C -sub_814768C: @ 814768C - push {lr} - ldr r0, _081476A8 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _081476A2 - ldr r0, _081476AC - movs r1, 0x50 - bl CreateTask -_081476A2: - pop {r0} - bx r0 - .align 2, 0 -_081476A8: .4byte 0x00000851 -_081476AC: .4byte sub_81476B0 - thumb_func_end sub_814768C - - thumb_func_start sub_81476B0 -sub_81476B0: @ 81476B0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081476D4 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x4 - bhi _0814776A - lsls r0, 2 - ldr r1, _081476D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081476D4: .4byte gUnknown_03004B28 -_081476D8: .4byte _081476DC - .align 2, 0 -_081476DC: - .4byte _081476F0 - .4byte _081476FE - .4byte _08147730 - .4byte _08147748 - .4byte _0814775A -_081476F0: - movs r1, 0xE1 - lsls r1, 5 - adds r0, r1, 0 - strh r0, [r4, 0x2] - movs r0, 0x1 - strh r0, [r4] - b _0814776A -_081476FE: - bl sub_8147774 - cmp r0, 0 - beq _08147716 - bl MenuZeroFillScreen - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - strh r0, [r4] - b _0814776A -_08147716: - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _0814776A - bl MenuZeroFillScreen - movs r0, 0x3 - strh r0, [r4] - movs r0, 0x1E - strh r0, [r4, 0x2] - b _0814776A -_08147730: - bl sub_8147774 - cmp r0, 0 - beq _08147748 - bl sub_8064E2C - adds r0, r5, 0 - bl DestroyTask - bl ScriptContext2_Disable - b _0814776A -_08147748: - ldrh r0, [r4, 0x2] - subs r0, 0x1 - strh r0, [r4, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _0814776A - movs r0, 0x4 - strh r0, [r4] - b _0814776A -_0814775A: - bl sub_8064E2C - ldr r0, _08147770 - bl ScriptContext1_SetupScript - adds r0, r5, 0 - bl DestroyTask -_0814776A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08147770: .4byte gUnknown_0815EF19 - thumb_func_end sub_81476B0 - - thumb_func_start sub_8147774 -sub_8147774: @ 8147774 - push {lr} - movs r1, 0xFF - ldr r0, _081477A4 - ldrb r2, [r0, 0x13] - cmp r2, 0x1 - bne _08147788 - movs r3, 0xC0 - lsls r3, 2 - adds r0, r3, 0 - orrs r1, r0 -_08147788: - cmp r2, 0x2 - bne _08147794 - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - orrs r1, r0 -_08147794: - ldr r0, _081477A8 - ldrh r0, [r0, 0x2E] - ands r1, r0 - cmp r1, 0 - bne _081477AC - movs r0, 0 - b _081477AE - .align 2, 0 -_081477A4: .4byte gSaveBlock2 -_081477A8: .4byte gMain -_081477AC: - movs r0, 0x1 -_081477AE: - pop {r1} - bx r1 - thumb_func_end sub_8147774 - - thumb_func_start sub_81477B4 -sub_81477B4: @ 81477B4 - push {lr} - ldr r0, _081477E8 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081477EC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - movs r0, 0x2 - strh r0, [r1, 0x10] - movs r0, 0x5 - strh r0, [r1, 0x12] - movs r0, 0x32 - strh r0, [r1, 0x14] - movs r0, 0 - bl SetCameraPanningCallback - pop {r0} - bx r0 - .align 2, 0 -_081477E8: .4byte sub_814782C -_081477EC: .4byte gTasks - thumb_func_end sub_81477B4 - - thumb_func_start sub_81477F0 -sub_81477F0: @ 81477F0 - push {lr} - ldr r0, _08147824 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147828 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - movs r0, 0x3 - strh r0, [r1, 0x10] - movs r0, 0x5 - strh r0, [r1, 0x12] - movs r0, 0x2 - strh r0, [r1, 0x14] - movs r0, 0 - bl SetCameraPanningCallback - pop {r0} - bx r0 - .align 2, 0 -_08147824: .4byte sub_814782C -_08147828: .4byte gTasks - thumb_func_end sub_81477F0 - - thumb_func_start sub_814782C -sub_814782C: @ 814782C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0814788C - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _08147884 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r2, 0x14 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08147884 - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts - bl InstallCameraPanAheadCallback -_08147884: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814788C: .4byte gTasks - thumb_func_end sub_814782C - - thumb_func_start sub_8147890 -sub_8147890: @ 8147890 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8147890 - - thumb_func_start sub_81478A8 -sub_81478A8: @ 81478A8 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81478A8 - - thumb_func_start sub_81478BC -sub_81478BC: @ 81478BC - push {r4,lr} - sub sp, 0x4 - ldr r0, _081478D8 - ldr r1, _081478DC - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xD - bls _081478CE - b _08147AD0 -_081478CE: - lsls r0, 2 - ldr r1, _081478E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081478D8: .4byte gMain -_081478DC: .4byte 0x0000043c -_081478E0: .4byte _081478E4 - .align 2, 0 -_081478E4: - .4byte _0814791C - .4byte _08147938 - .4byte _0814794C - .4byte _08147960 - .4byte _08147966 - .4byte _08147980 - .4byte _0814798C - .4byte _081479B8 - .4byte _081479DC - .4byte _081479F4 - .4byte _08147A20 - .4byte _08147A3C - .4byte _08147A5C - .4byte _08147A8C -_0814791C: - bl sub_80F9438 - bl sub_80F9368 - bl sub_8147B04 - ldr r1, _08147930 - ldr r2, _08147934 - adds r1, r2 - b _08147A4A - .align 2, 0 -_08147930: .4byte gMain -_08147934: .4byte 0x0000043c -_08147938: - bl ResetPaletteFade - ldr r2, _08147948 - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - b _08147A44 - .align 2, 0 -_08147948: .4byte gPaletteFade -_0814794C: - bl ResetSpriteData - ldr r1, _08147958 - ldr r2, _0814795C - adds r1, r2 - b _08147A4A - .align 2, 0 -_08147958: .4byte gMain -_0814795C: .4byte 0x0000043c -_08147960: - bl FreeAllSpritePalettes - b _08147A44 -_08147966: - ldr r0, _08147974 - bl SetUpWindowConfig - ldr r1, _08147978 - ldr r2, _0814797C - adds r1, r2 - b _08147A4A - .align 2, 0 -_08147974: .4byte gWindowConfig_81E6E50 -_08147978: .4byte gMain -_0814797C: .4byte 0x0000043c -_08147980: - ldr r0, _08147988 - bl MultistepInitMenuWindowBegin - b _08147A44 - .align 2, 0 -_08147988: .4byte gWindowConfig_81E6E50 -_0814798C: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _08147996 - b _08147AD0 -_08147996: - ldr r0, _081479A8 - ldr r1, _081479AC - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r1, _081479B0 - ldr r2, _081479B4 - adds r1, r2 - b _08147A4A - .align 2, 0 -_081479A8: .4byte 0x02000000 -_081479AC: .4byte 0x0001ffff -_081479B0: .4byte gMain -_081479B4: .4byte 0x0000043c -_081479B8: - ldr r0, _081479D4 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _081479D8 - adds r0, r1 - bl sub_8147B20 - lsls r0, 24 - cmp r0, 0 - bne _081479D0 - b _08147AD0 -_081479D0: - b _08147A44 - .align 2, 0 -_081479D4: .4byte gUnknown_02039310 -_081479D8: .4byte gPlayerParty -_081479DC: - bl sub_81480B4 - ldr r1, _081479EC - ldr r2, _081479F0 - adds r1, r2 - strb r0, [r1] - b _08147A44 - .align 2, 0 -_081479EC: .4byte 0x02000000 -_081479F0: .4byte 0x0001fffd -_081479F4: - ldr r0, _08147A10 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08147A14 - adds r0, r1 - bl sub_8147F84 - ldr r1, _08147A18 - ldr r2, _08147A1C - adds r1, r2 - strb r0, [r1] - b _08147A44 - .align 2, 0 -_08147A10: .4byte gUnknown_02039310 -_08147A14: .4byte gPlayerParty -_08147A18: .4byte 0x02000000 -_08147A1C: .4byte 0x0001fffe -_08147A20: - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r1, _08147A34 - ldr r2, _08147A38 - adds r1, r2 - b _08147A4A - .align 2, 0 -_08147A34: .4byte gMain -_08147A38: .4byte 0x0000043c -_08147A3C: - bl sub_8055870 - cmp r0, 0x1 - beq _08147AD0 -_08147A44: - ldr r1, _08147A54 - ldr r0, _08147A58 - adds r1, r0 -_08147A4A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08147AD0 - .align 2, 0 -_08147A54: .4byte gMain -_08147A58: .4byte 0x0000043c -_08147A5C: - ldr r3, _08147AB0 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _08147AB4 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _08147AB8 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08147ABC - bl SetVBlankCallback - ldr r1, _08147AC0 - ldr r2, _08147AC4 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08147A8C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _08147AC8 - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _08147ACC - bl SetMainCallback2 - movs r0, 0x1 - b _08147AD2 - .align 2, 0 -_08147AB0: .4byte 0x04000208 -_08147AB4: .4byte 0x04000200 -_08147AB8: .4byte REG_DISPSTAT -_08147ABC: .4byte sub_81478A8 -_08147AC0: .4byte gMain -_08147AC4: .4byte 0x0000043c -_08147AC8: .4byte gPaletteFade -_08147ACC: .4byte sub_8147890 -_08147AD0: - movs r0, 0 -_08147AD2: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81478BC - - thumb_func_start sub_8147ADC -sub_8147ADC: @ 8147ADC - push {lr} -_08147ADE: - bl sub_81478BC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08147AF2 - movs r0, 0x1 - bl sub_8147DDC - b _08147AFE -_08147AF2: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08147ADE -_08147AFE: - pop {r0} - bx r0 - thumb_func_end sub_8147ADC - - thumb_func_start sub_8147B04 -sub_8147B04: @ 8147B04 - ldr r1, _08147B18 - ldr r2, _08147B1C - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - movs r2, 0x9A - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_08147B18: .4byte REG_BG1CNT -_08147B1C: .4byte 0x00001d02 - thumb_func_end sub_8147B04 - - thumb_func_start sub_8147B20 -sub_8147B20: @ 8147B20 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - ldr r0, _08147B40 - ldr r1, _08147B44 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x8 - bls _08147B34 - b _08147C84 -_08147B34: - lsls r0, 2 - ldr r1, _08147B48 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08147B40: .4byte 0x02000000 -_08147B44: .4byte 0x0001ffff -_08147B48: .4byte _08147B4C - .align 2, 0 -_08147B4C: - .4byte _08147B70 - .4byte _08147BB8 - .4byte _08147BF0 - .4byte _08147BFC - .4byte _08147C08 - .4byte _08147C14 - .4byte _08147C2C - .4byte _08147C38 - .4byte _08147C60 -_08147B70: - 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 r6, r0, 0 - lsls r0, r5, 3 - ldr r1, _08147BAC - adds r0, r1 - ldr r1, _08147BB0 - lsls r2, r5, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08147BB4 - ldr r4, [r4, 0x4] - str r4, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - bl sub_800D334 - b _08147C40 - .align 2, 0 -_08147BAC: .4byte gMonFrontPicTable -_08147BB0: .4byte gMonFrontPicCoords -_08147BB4: .4byte gUnknown_081FAF4C -_08147BB8: - 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 r6, r0, 0 - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - adds r1, r0, 0 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_80409C8 - adds r4, r0, 0 - bl LoadCompressedObjectPalette - ldrh r0, [r4, 0x4] - movs r1, 0x1 - bl GetMonSpriteTemplate_803C56C - b _08147C40 -_08147BF0: - ldr r0, _08147BF8 - bl LoadCompressedObjectPic - b _08147C40 - .align 2, 0 -_08147BF8: .4byte gUnknown_083F7F74 -_08147BFC: - ldr r0, _08147C04 - bl LoadCompressedObjectPalette - b _08147C40 - .align 2, 0 -_08147C04: .4byte gUnknown_083F7F7C -_08147C08: - ldr r0, _08147C10 - bl LoadCompressedObjectPic - b _08147C40 - .align 2, 0 -_08147C10: .4byte gUnknown_084121DC -_08147C14: - ldr r0, _08147C24 - ldrb r0, [r0] - bl sub_8147C90 - ldr r0, _08147C28 - bl LoadCompressedObjectPalette - b _08147C40 - .align 2, 0 -_08147C24: .4byte word_203855E -_08147C28: .4byte gUnknown_02039350 -_08147C2C: - ldr r0, _08147C34 - movs r1, 0xC0 - lsls r1, 19 - b _08147C3C - .align 2, 0 -_08147C34: .4byte gBattleTerrainTiles_Building -_08147C38: - ldr r0, _08147C50 - ldr r1, _08147C54 -_08147C3C: - bl LZDecompressVram -_08147C40: - ldr r1, _08147C58 - ldr r0, _08147C5C - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08147C84 - .align 2, 0 -_08147C50: .4byte gUnknown_08E782FC -_08147C54: .4byte 0x0600e800 -_08147C58: .4byte 0x02000000 -_08147C5C: .4byte 0x0001ffff -_08147C60: - ldr r0, _08147C78 - movs r1, 0x20 - movs r2, 0x60 - bl LoadCompressedPalette - ldr r0, _08147C7C - ldr r1, _08147C80 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _08147C86 - .align 2, 0 -_08147C78: .4byte gBattleTerrainPalette_BattleTower -_08147C7C: .4byte 0x02000000 -_08147C80: .4byte 0x0001ffff -_08147C84: - movs r0, 0 -_08147C86: - add sp, 0xC - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8147B20 - - thumb_func_start sub_8147C90 -sub_8147C90: @ 8147C90 - push {lr} - lsls r0, 24 - lsrs r0, 21 - ldr r1, _08147CB8 - adds r0, r1 - movs r1, 0 - bl sub_810CA9C - lsls r0, 24 - ldr r2, _08147CBC - ldr r1, _08147CC0 - lsrs r0, 22 - subs r0, 0x4 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r0, _08147CC4 - strh r0, [r2, 0x4] - pop {r0} - bx r0 - .align 2, 0 -_08147CB8: .4byte gSaveBlock1 + 0x7F8 -_08147CBC: .4byte gUnknown_02039350 -_08147CC0: .4byte gUnknown_084120A4 -_08147CC4: .4byte 0x000039e2 - thumb_func_end sub_8147C90 - - thumb_func_start sub_8147CC8 -sub_8147CC8: @ 8147CC8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08147D00 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08147CDC - b _08147DCE -_08147CDC: - ldr r0, _08147D04 - lsls r2, r4, 2 - adds r1, r2, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x8 - ldrsh r3, [r1, r0] - ldr r0, _08147D08 - adds r5, r2, 0 - cmp r3, r0 - beq _08147D50 - cmp r3, r0 - bgt _08147D0C - cmp r3, 0 - beq _08147D20 - cmp r3, 0xFF - beq _08147D38 - b _08147D8C - .align 2, 0 -_08147D00: .4byte gPaletteFade -_08147D04: .4byte gTasks -_08147D08: .4byte 0x0000010d -_08147D0C: - ldr r0, _08147D1C - cmp r3, r0 - beq _08147D68 - adds r0, 0x10 - cmp r3, r0 - beq _08147D80 - b _08147D8C - .align 2, 0 -_08147D1C: .4byte 0x00000119 -_08147D20: - ldr r0, _08147D30 - strb r3, [r0] - ldr r0, _08147D34 - strh r3, [r0] - bl sub_81481DC - b _08147D8C - .align 2, 0 -_08147D30: .4byte gUnknown_03005F3C -_08147D34: .4byte gUnknown_03005F94 -_08147D38: - ldr r0, _08147D48 - ldr r2, _08147D4C - adds r0, r2 - ldrb r0, [r0] - ldrb r1, [r1, 0xA] - bl sub_8148108 - b _08147D8C - .align 2, 0 -_08147D48: .4byte 0x02000000 -_08147D4C: .4byte 0x0001fffd -_08147D50: - bl sub_814817C - ldr r1, _08147D60 - ldr r2, _08147D64 - adds r1, r2 - strb r0, [r1] - b _08147D8C - .align 2, 0 -_08147D60: .4byte 0x02000000 -_08147D64: .4byte 0x0001fffc -_08147D68: - ldr r0, _08147D78 - ldr r1, _08147D7C - adds r0, r1 - ldrb r0, [r0] - bl sub_8148044 - b _08147D8C - .align 2, 0 -_08147D78: .4byte 0x02000000 -_08147D7C: .4byte 0x0001fffe -_08147D80: - ldr r0, _08147D88 - str r0, [r1] - b _08147DCE - .align 2, 0 -_08147D88: .4byte sub_8147E40 -_08147D8C: - ldr r0, _08147DA0 - ldr r1, _08147DA4 - ldrh r2, [r0] - ldrh r0, [r1] - cmp r2, r0 - bcs _08147DA8 - bl sub_814825C - b _08147DB8 - .align 2, 0 -_08147DA0: .4byte gUnknown_03005F94 -_08147DA4: .4byte gUnknown_03005F34 -_08147DA8: - cmp r2, r0 - bne _08147DB8 - ldr r0, _08147DD4 - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0xFE - strh r0, [r1, 0x8] -_08147DB8: - ldr r1, _08147DD8 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - ldr r0, _08147DD4 - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_08147DCE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08147DD4: .4byte gTasks -_08147DD8: .4byte gUnknown_03005F94 - thumb_func_end sub_8147CC8 - - thumb_func_start sub_8147DDC -sub_8147DDC: @ 8147DDC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08147E08 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08147E0C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r4, [r1, 0xA] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147E08: .4byte sub_8147CC8 -_08147E0C: .4byte gTasks - thumb_func_end sub_8147DDC - - thumb_func_start sub_8147E10 -sub_8147E10: @ 8147E10 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl MenuUpdateWindowText - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08147E30 - ldr r0, _08147E38 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _08147E3C - str r0, [r1] -_08147E30: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147E38: .4byte gTasks -_08147E3C: .4byte sub_8147F4C - thumb_func_end sub_8147E10 - - thumb_func_start sub_8147E40 -sub_8147E40: @ 8147E40 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08147E94 - ldrb r1, [r0] - movs r0, 0x64 - adds r5, r1, 0 - muls r5, r0 - ldr r0, _08147E98 - adds r5, r0 - ldr r0, _08147E9C - ldrh r4, [r0] - lsls r4, 3 - ldr r0, _08147EA0 - adds r4, r0 - adds r0, r5, 0 - bl GetNature - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_810CAE4 - ldr r6, _08147EA4 - strh r0, [r6] - ldr r1, _08147EA8 - adds r0, r5, 0 - bl GetMonNickname - ldr r1, _08147EAC - adds r0, r4, 0 - bl sub_810CB44 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08147EB8 - ldr r0, _08147EB0 - ldr r1, _08147EB4 - bl StringExpandPlaceholders - b _08147ED8 - .align 2, 0 -_08147E94: .4byte gUnknown_02039310 -_08147E98: .4byte gPlayerParty -_08147E9C: .4byte word_203855E -_08147EA0: .4byte gSaveBlock1 + 0x7F8 -_08147EA4: .4byte gUnknown_02039312 -_08147EA8: .4byte gStringVar1 -_08147EAC: .4byte gStringVar2 -_08147EB0: .4byte gStringVar4 -_08147EB4: .4byte gContestStatsText_NormallyAte -_08147EB8: - cmp r0, 0 - ble _08147ED0 - ldr r0, _08147EC8 - ldr r1, _08147ECC - bl StringExpandPlaceholders - b _08147ED8 - .align 2, 0 -_08147EC8: .4byte gStringVar4 -_08147ECC: .4byte gContestStatsText_HappilyAte -_08147ED0: - ldr r0, _08147EF8 - ldr r1, _08147EFC - bl StringExpandPlaceholders -_08147ED8: - ldr r0, _08147EF8 - movs r1, 0x1 - movs r2, 0xF - bl MenuPrintMessage - ldr r1, _08147F00 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, _08147F04 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08147EF8: .4byte gStringVar4 -_08147EFC: .4byte gContestStatsText_DisdainfullyAte -_08147F00: .4byte gTasks -_08147F04: .4byte sub_8147E10 - thumb_func_end sub_8147E40 - - thumb_func_start sub_8147F08 -sub_8147F08: @ 8147F08 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08147F3C - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08147F34 - ldr r0, _08147F40 - ldr r1, _08147F44 - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - ldr r0, _08147F48 - ldr r0, [r0, 0x8] - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_08147F34: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147F3C: .4byte gPaletteFade -_08147F40: .4byte gMPlay_BGM -_08147F44: .4byte 0x0000ffff -_08147F48: .4byte gMain - thumb_func_end sub_8147F08 - - thumb_func_start sub_8147F4C -sub_8147F4C: @ 8147F4C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08147F7C - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08147F80 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08147F7C: .4byte gTasks -_08147F80: .4byte sub_8147F08 - thumb_func_end sub_8147F4C - - thumb_func_start sub_8147F84 -sub_8147F84: @ 8147F84 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r1, 0x41 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08148024 - movs r1, 0x30 - movs r2, 0x50 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _08148028 - strh r4, [r0] - ldr r0, _0814802C - mov r1, r8 - strb r1, [r0] - adds r0, r5, 0 - bl GetNature - ldr r1, _08148030 - strb r0, [r1] - ldr r7, _08148034 - mov r1, r8 - lsls r0, r1, 4 - add r0, r8 - lsls r5, r0, 2 - adds r6, r5, r7 - strh r4, [r6, 0x32] - adds r0, r7, 0 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, _08148038 - str r1, [r0] - ldr r0, _0814803C - mov r9, r0 - movs r0, 0x1 - mov r1, r9 - strb r0, [r1] - adds r0, r4, 0 - bl sub_8040A3C - lsls r0, 24 - cmp r0, 0 - bne _08148016 - adds r0, r7, 0 - adds r0, 0x10 - adds r0, r5, r0 - ldr r1, _08148040 - str r1, [r0] - ldrb r3, [r6, 0x1] - movs r0, 0x3 - orrs r3, r0 - strb r3, [r6, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r6, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r6, 0 - bl CalcCenterToCornerVec - movs r0, 0 - mov r1, r9 - strb r0, [r1] -_08148016: - mov r0, r8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08148024: .4byte gUnknown_02024E8C -_08148028: .4byte gUnknown_03005F24 -_0814802C: .4byte gUnknown_03005F2C -_08148030: .4byte gUnknown_03005F30 -_08148034: .4byte gSprites -_08148038: .4byte SpriteCallbackDummy -_0814803C: .4byte gUnknown_03005F28 -_08148040: .4byte gSpriteAffineAnimTable_84120EC - thumb_func_end sub_8147F84 - - thumb_func_start sub_8148044 -sub_8148044: @ 8148044 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _0814806C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r3 - movs r0, 0x30 - strh r0, [r2, 0x20] - movs r0, 0x50 - strh r0, [r2, 0x22] - ldr r0, _08148070 - strh r0, [r2, 0x2E] - movs r0, 0x1 - strh r0, [r2, 0x30] - adds r3, 0x1C - adds r1, r3 - ldr r0, _08148074 - str r0, [r1] - bx lr - .align 2, 0 -_0814806C: .4byte gSprites -_08148070: .4byte 0x0000fff8 -_08148074: .4byte sub_8148078 - thumb_func_end sub_8148044 - - thumb_func_start sub_8148078 -sub_8148078: @ 8148078 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x20] - adds r0, 0x4 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x2E] - ldrh r2, [r4, 0x22] - adds r1, r0, r2 - strh r1, [r4, 0x22] - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x2E] - lsls r0, 16 - cmp r0, 0 - bne _0814809E - ldrh r0, [r4, 0x32] - movs r1, 0 - bl PlayCry1 -_0814809E: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x9 - bne _081480AA - ldr r0, _081480B0 - str r0, [r4, 0x1C] -_081480AA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081480B0: .4byte SpriteCallbackDummy - thumb_func_end sub_8148078 - - thumb_func_start sub_81480B4 -sub_81480B4: @ 81480B4 - push {r4,r5,lr} - movs r0, 0xBC - movs r1, 0x64 - movs r2, 0x2 - bl sub_810BA50 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _081480FC - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - adds r0, r3, r5 - ldrb r2, [r0, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x1] - adds r1, r5, 0 - adds r1, 0x10 - adds r1, r3, r1 - ldr r2, _08148100 - str r2, [r1] - adds r5, 0x1C - adds r3, r5 - ldr r1, _08148104 - str r1, [r3] - bl InitSpriteAffineAnim - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_081480FC: .4byte gSprites -_08148100: .4byte gSpriteAffineAnimTable_84121A0 -_08148104: .4byte SpriteCallbackDummy - thumb_func_end sub_81480B4 - - thumb_func_start sub_8148108 -sub_8148108: @ 8148108 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08148148 - mov r8, r0 - lsls r0, r7, 4 - adds r0, r7 - lsls r6, r0, 2 - mov r0, r8 - adds r4, r6, r0 - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - cmp r5, 0 - bne _08148150 - mov r0, r8 - adds r0, 0x10 - adds r0, r6, r0 - ldr r1, _0814814C - b _08148158 - .align 2, 0 -_08148148: .4byte gSprites -_0814814C: .4byte gSpriteAffineAnimTable_84121A4 -_08148150: - mov r0, r8 - adds r0, 0x10 - adds r0, r6, r0 - ldr r1, _08148174 -_08148158: - str r1, [r0] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - ldr r1, _08148178 - adds r0, r1 - bl InitSpriteAffineAnim - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08148174: .4byte gSpriteAffineAnimTable_84121A8 -_08148178: .4byte gSprites - thumb_func_end sub_8148108 - - thumb_func_start sub_814817C -sub_814817C: @ 814817C - push {lr} - ldr r0, _081481A4 - movs r1, 0xAE - movs r2, 0x54 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081481A8 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r2, _081481AC - strh r2, [r1, 0x2E] - movs r2, 0x1 - strh r2, [r1, 0x30] - pop {r1} - bx r1 - .align 2, 0 -_081481A4: .4byte gSpriteTemplate_84121E4 -_081481A8: .4byte gSprites -_081481AC: .4byte 0x0000fff4 - thumb_func_end sub_814817C - - thumb_func_start sub_81481B0 -sub_81481B0: @ 81481B0 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x20] - subs r0, 0x4 - strh r0, [r2, 0x20] - ldrh r0, [r2, 0x2E] - ldrh r3, [r2, 0x22] - adds r1, r0, r3 - strh r1, [r2, 0x22] - ldrh r1, [r2, 0x30] - adds r0, r1 - strh r0, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _081481D6 - adds r0, r2, 0 - bl DestroySprite -_081481D6: - pop {r0} - bx r0 - thumb_func_end sub_81481B0 - - thumb_func_start sub_81481DC -sub_81481DC: @ 81481DC - push {r4-r7,lr} - ldr r6, _0814824C - movs r0, 0x1 - strh r0, [r6] - ldr r1, _08148250 - ldr r0, _08148254 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrb r3, [r0] - movs r4, 0 - ldr r2, _08148258 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r7, r2, 0 - adds r7, 0x8 - adds r0, r1, r7 - ldrh r0, [r0] - adds r0, 0x1 - strh r0, [r6] - adds r5, r2, 0 - adds r5, 0x12 - adds r1, r5 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _08148244 - adds r2, r6, 0 - adds r6, r5, 0 - adds r5, r7, 0 -_0814821A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r4, 0x7 - bhi _08148244 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r0, r1, r5 - ldrh r0, [r0] - ldrh r7, [r2] - adds r0, r7 - strh r0, [r2] - adds r1, r6 - movs r7, 0 - ldrsh r0, [r1, r7] - cmp r0, 0x1 - bne _0814821A -_08148244: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814824C: .4byte gUnknown_03005F34 -_08148250: .4byte gNatureToMonPokeblockAnim -_08148254: .4byte gUnknown_03005F30 -_08148258: .4byte gMonPokeblockAnims - thumb_func_end sub_81481DC - - thumb_func_start sub_814825C -sub_814825C: @ 814825C - push {lr} - ldr r0, _08148274 - ldrb r0, [r0] - cmp r0, 0x5A - bls _08148268 - b _08148532 -_08148268: - lsls r0, 2 - ldr r1, _08148278 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08148274: .4byte gUnknown_03005F3C -_08148278: .4byte _0814827C - .align 2, 0 -_0814827C: - .4byte _081483E8 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _0814843C - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _0814847A - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _081484CC - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148524 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 - .4byte _08148532 -_081483E8: - ldr r2, _0814841C - ldr r1, _08148420 - ldr r0, _08148424 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r2, _08148428 - ldr r0, _0814842C - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08148430 - adds r1, r0 - str r1, [r2] - ldr r0, _08148434 - movs r2, 0x44 - bl memcpy - ldr r1, _08148438 - movs r0, 0xA - strb r0, [r1] - b _08148532 - .align 2, 0 -_0814841C: .4byte gUnknown_03005F40 -_08148420: .4byte gNatureToMonPokeblockAnim -_08148424: .4byte gUnknown_03005F30 -_08148428: .4byte gUnknown_03005F20 -_0814842C: .4byte gUnknown_03005F2C -_08148430: .4byte gSprites -_08148434: .4byte gUnknown_03005F50 -_08148438: .4byte gUnknown_03005F3C -_0814843C: - bl sub_8148540 - ldr r1, _081484A4 - ldr r0, _081484A8 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08148474 - ldr r3, _081484AC - ldr r2, [r3] - ldrb r0, [r2, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r2, [r3] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x3] - ldr r0, [r3] - ldr r1, _081484B0 - str r1, [r0, 0x10] - bl InitSpriteAffineAnim -_08148474: - ldr r1, _081484B4 - movs r0, 0x32 - strb r0, [r1] -_0814847A: - ldr r1, _081484A4 - ldr r0, _081484A8 - ldrb r0, [r0] - lsls r0, 1 - adds r1, 0x1 - adds r2, r0, r1 - ldrb r1, [r2] - cmp r1, 0 - beq _081484EE - ldr r0, _081484B8 - ldrb r0, [r0] - cmp r0, 0 - bne _081484BC - ldr r0, _081484AC - ldr r0, [r0] - adds r1, 0xA - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAffineAnim - b _081484EE - .align 2, 0 -_081484A4: .4byte gNatureToMonPokeblockAnim -_081484A8: .4byte gUnknown_03005F30 -_081484AC: .4byte gUnknown_03005F20 -_081484B0: .4byte gSpriteAffineAnimTable_8412050 -_081484B4: .4byte gUnknown_03005F3C -_081484B8: .4byte gUnknown_03005F28 -_081484BC: - ldr r0, _081484C8 - ldr r0, [r0] - ldrb r1, [r2] - bl StartSpriteAffineAnim - b _081484EE - .align 2, 0 -_081484C8: .4byte gUnknown_03005F20 -_081484CC: - bl sub_81485CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08148532 - ldr r0, _081484F8 - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08148504 - ldr r1, _081484FC - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_8148540 -_081484EE: - ldr r1, _08148500 - movs r0, 0x3C - strb r0, [r1] - b _08148532 - .align 2, 0 -_081484F8: .4byte gUnknown_03005FA0 -_081484FC: .4byte gUnknown_03005F40 -_08148500: .4byte gUnknown_03005F3C -_08148504: - ldr r0, _0814851C - ldr r0, [r0] - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r1, _08148520 - movs r0, 0x46 - strb r0, [r1] - b _08148532 - .align 2, 0 -_0814851C: .4byte gUnknown_03005F20 -_08148520: .4byte gUnknown_03005F3C -_08148524: - bl sub_8148618 - ldr r0, _08148538 - movs r1, 0 - strb r1, [r0] - ldr r0, _0814853C - strb r1, [r0] -_08148532: - pop {r0} - bx r0 - .align 2, 0 -_08148538: .4byte gUnknown_03005F40 -_0814853C: .4byte gUnknown_03005F3C - thumb_func_end sub_814825C - - thumb_func_start sub_8148540 -sub_8148540: @ 8148540 - push {r4-r7,lr} - movs r4, 0 - ldr r5, _081485B4 - mov r12, r5 - ldr r7, _081485B8 - ldr r6, _081485BC -_0814854C: - lsls r2, r4, 1 - mov r0, r12 - adds r3, r2, r0 - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - adds r2, r7 - ldrh r0, [r2] - strh r0, [r3] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _0814854C - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081485C4 - movs r2, 0 - ldrsh r0, [r5, r2] - movs r2, 0x4 - ldrsh r1, [r5, r2] - bl Sin - strh r0, [r5, 0x14] - movs r1, 0 - ldrsh r0, [r5, r1] - movs r2, 0x6 - ldrsh r1, [r5, r2] - bl Cos - strh r0, [r5, 0x16] - ldrh r0, [r5, 0x8] - strh r0, [r5, 0x18] - ldr r0, _081485C0 - ldr r1, [r0] - ldrh r0, [r1, 0x24] - strh r0, [r5, 0x1A] - ldrh r0, [r1, 0x26] - strh r0, [r5, 0x1C] - bl sub_8148710 - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x8] - bl sub_814862C - ldrh r0, [r5, 0x18] - strh r0, [r5, 0x8] - movs r0, 0 - b _081485C6 - .align 2, 0 -_081485B4: .4byte gUnknown_03005FA0 -_081485B8: .4byte gMonPokeblockAnims -_081485BC: .4byte gUnknown_03005F40 -_081485C0: .4byte gUnknown_03005F20 -_081485C4: - movs r0, 0x1 -_081485C6: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8148540 - - thumb_func_start sub_81485CC -sub_81485CC: @ 81485CC - push {r4,lr} - ldr r3, _08148604 - ldrh r0, [r3, 0x18] - ldrh r1, [r3, 0x8] - subs r0, r1 - lsls r0, 16 - ldr r1, _08148608 - ldr r4, [r1] - lsrs r0, 15 - ldr r1, _0814860C - adds r2, r0, r1 - ldrh r2, [r2] - strh r2, [r4, 0x24] - movs r2, 0x80 - lsls r2, 3 - adds r1, r2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4, 0x26] - ldrh r0, [r3, 0x8] - subs r0, 0x1 - strh r0, [r3, 0x8] - lsls r0, 16 - cmp r0, 0 - beq _08148610 - movs r0, 0 - b _08148612 - .align 2, 0 -_08148604: .4byte gUnknown_03005FA0 -_08148608: .4byte gUnknown_03005F20 -_0814860C: .4byte 0x0201d000 -_08148610: - movs r0, 0x1 -_08148612: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81485CC - - thumb_func_start sub_8148618 -sub_8148618: @ 8148618 - push {lr} - ldr r0, _08148628 - ldr r0, [r0] - bl FreeSpriteOamMatrix - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08148628: .4byte gUnknown_03005F20 - thumb_func_end sub_8148618 - - thumb_func_start sub_814862C -sub_814862C: @ 814862C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r1, _08148700 - ldrh r0, [r1, 0x10] - mov r8, r0 - ldrh r0, [r1, 0x18] - mov r2, r8 - subs r0, r2 - lsls r0, 16 - lsrs r7, r0, 16 - ldrh r0, [r1, 0xC] - ldrh r3, [r1, 0x1A] - adds r0, r3 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp] - ldrh r0, [r1, 0xE] - ldrh r1, [r1, 0x1C] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r6, 0 - subs r0, r7, 0x1 - ldr r4, _08148704 - mov r10, r4 - cmp r6, r0 - bge _081486D4 - ldr r1, [sp] - lsls r0, r1, 16 - asrs r0, 16 - str r0, [sp, 0x4] -_08148674: - mov r2, r8 - adds r5, r2, r6 - lsls r5, 1 - ldr r4, _08148708 - adds r3, r5, r4 - ldrh r2, [r3] - ldr r0, [sp, 0x4] - subs r1, r2, r0 - ldr r4, _0814870C - adds r5, r4 - ldrh r0, [r5] - mov r12, r0 - mov r4, r9 - lsls r0, r4, 16 - asrs r0, 16 - mov r4, r12 - subs r0, r4, r0 - lsls r4, r0, 16 - lsrs r4, 16 - lsls r1, 16 - asrs r1, 16 - adds r6, 0x1 - adds r0, r1, 0 - muls r0, r6 - adds r1, r7, 0 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - bl __divsi3 - ldr r2, [sp, 0x8] - subs r2, r0 - ldr r3, [sp, 0xC] - strh r2, [r3] - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - muls r0, r6 - adds r1, r7, 0 - bl __divsi3 - ldrh r1, [r5] - subs r1, r0 - strh r1, [r5] - lsls r6, 16 - lsrs r6, 16 - subs r0, r7, 0x1 - cmp r6, r0 - blt _08148674 -_081486D4: - mov r1, r8 - adds r0, r1, r7 - lsls r0, 1 - mov r2, r10 - adds r1, r0, r2 - mov r3, sp - ldrh r3, [r3] - strh r3, [r1] - movs r1, 0x80 - lsls r1, 3 - add r1, r10 - adds r0, r1 - mov r4, r9 - strh r4, [r0] - 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 -_08148700: .4byte gUnknown_03005FA0 -_08148704: .4byte 0x0201cffe -_08148708: .4byte 0x0201d000 -_0814870C: .4byte 0x0201d400 - thumb_func_end sub_814862C - - thumb_func_start sub_8148710 -sub_8148710: @ 8148710 - 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 r1, _081487A4 - ldrh r2, [r1, 0x1A] - ldrh r0, [r1, 0x14] - subs r2, r0 - ldrh r3, [r1, 0x1C] - ldrh r0, [r1, 0x16] - subs r3, r0 - adds r6, r1, 0 - ldr r1, _081487A8 - mov r9, r1 - lsls r2, 16 - asrs r2, 16 - mov r8, r2 - movs r2, 0x80 - lsls r2, 3 - add r2, r9 - mov r10, r2 - lsls r3, 16 - asrs r7, r3, 16 -_08148746: - movs r1, 0xA - ldrsh r0, [r6, r1] - cmp r0, 0 - bge _08148750 - negs r0, r0 -_08148750: - lsls r0, 16 - lsrs r0, 16 - ldrh r2, [r6, 0x6] - adds r0, r2 - lsls r5, r0, 16 - strh r0, [r6, 0x6] - ldrh r2, [r6, 0x4] - movs r1, 0x4 - ldrsh r0, [r6, r1] - cmp r0, 0 - bge _0814876A - movs r0, 0x1 - str r0, [sp] -_0814876A: - ldrh r0, [r6, 0x18] - ldrh r1, [r6, 0x8] - subs r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r1, 0 - beq _081487F0 - ldr r1, [sp] - cmp r1, 0 - bne _081487AC - movs r1, 0 - ldrsh r0, [r6, r1] - lsrs r5, 24 - adds r1, r2, r5 - lsls r1, 16 - asrs r1, 16 - bl Sin - lsls r4, 1 - mov r2, r9 - adds r1, r4, r2 - add r0, r8 - strh r0, [r1] - movs r1, 0 - ldrsh r0, [r6, r1] - ldrh r1, [r6, 0x6] - adds r1, r5 - b _081487CE - .align 2, 0 -_081487A4: .4byte gUnknown_03005FA0 -_081487A8: .4byte 0x0201d000 -_081487AC: - movs r1, 0 - ldrsh r0, [r6, r1] - lsrs r5, 24 - subs r1, r2, r5 - lsls r1, 16 - asrs r1, 16 - bl Sin - lsls r4, 1 - mov r2, r9 - adds r1, r4, r2 - add r0, r8 - strh r0, [r1] - movs r1, 0 - ldrsh r0, [r6, r1] - ldrh r1, [r6, 0x6] - subs r1, r5 -_081487CE: - lsls r1, 16 - asrs r1, 16 - bl Cos - add r4, r10 - adds r0, r7, r0 - strh r0, [r4] - ldrh r0, [r6, 0x2] - ldrh r2, [r6] - adds r0, r2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r6] - ldrh r0, [r6, 0x8] - subs r0, 0x1 - strh r0, [r6, 0x8] - b _08148746 -_081487F0: - 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_8148710 - - thumb_func_start c2_clear_save_data_screen_2 -c2_clear_save_data_screen_2: @ 8148800 - push {lr} - bl sub_8148970 - lsls r0, 24 - cmp r0, 0 - beq _08148814 - ldr r0, _08148818 - movs r1, 0 - bl CreateTask -_08148814: - pop {r0} - bx r0 - .align 2, 0 -_08148818: .4byte sub_8148830 - thumb_func_end c2_clear_save_data_screen_2 - - thumb_func_start sub_814881C -sub_814881C: @ 814881C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_814881C - - thumb_func_start sub_8148830 -sub_8148830: @ 8148830 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetSpriteData - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xCA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _081488A8 - bl SetVBlankCallback - movs r0, 0x2 - movs r1, 0xE - movs r2, 0x1B - movs r3, 0x13 - bl MenuDrawTextWindow - ldr r0, _081488AC - movs r1, 0x3 - movs r2, 0xF - bl MenuPrint - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x8 - movs r3, 0x6 - bl MenuDrawTextWindow - ldr r3, _081488B0 - movs r0, 0x3 - movs r1, 0x2 - movs r2, 0x2 - bl PrintMenuItems - movs r0, 0x1 - str r0, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x3 - movs r2, 0x2 - movs r3, 0x2 - bl InitMenu - ldr r1, _081488B4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _081488B8 - str r1, [r0] - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081488A8: .4byte sub_814881C -_081488AC: .4byte gSystemText_ClearAllSaveDataPrompt -_081488B0: .4byte gUnknown_08376D74 -_081488B4: .4byte gTasks -_081488B8: .4byte sub_81488BC - thumb_func_end sub_8148830 - - thumb_func_start sub_81488BC -sub_81488BC: @ 81488BC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _081488E2 - cmp r1, 0 - bgt _081488DC - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0814890C - b _0814891E -_081488DC: - cmp r1, 0x1 - beq _0814890C - b _0814891E -_081488E2: - movs r0, 0x5 - bl PlaySE - ldr r0, _08148900 - bl sub_8071F40 - ldr r1, _08148904 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08148908 - str r1, [r0] - b _0814891E - .align 2, 0 -_08148900: .4byte gSystemText_ClearingData -_08148904: .4byte gTasks -_08148908: .4byte sub_8148930 -_0814890C: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl DestroyTask - ldr r0, _0814892C - bl SetMainCallback2 -_0814891E: - bl AnimateSprites - bl BuildOamBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814892C: .4byte sub_8148B34 - thumb_func_end sub_81488BC - - thumb_func_start sub_8148930 -sub_8148930: @ 8148930 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl calls_flash_erase_block - adds r0, r4, 0 - bl DestroyTask - ldr r0, _08148950 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08148950: .4byte sub_8148B34 - thumb_func_end sub_8148930 - - thumb_func_start sub_8148954 -sub_8148954: @ 8148954 - push {lr} - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8148954 - - thumb_func_start sub_8148964 -sub_8148964: @ 8148964 - push {lr} - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8148964 - - thumb_func_start sub_8148970 -sub_8148970: @ 8148970 - push {r4,lr} - sub sp, 0xC - ldr r0, _08148AA4 - ldr r1, _08148AA8 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08148986 - cmp r0, 0x1 - bne _08148986 - b _08148B04 -_08148986: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 19 - movs r4, 0 - strh r4, [r0] - adds r0, 0x10 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0xA - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x22 - strh r4, [r0] - adds r0, 0x4 - strh r4, [r0] - adds r0, 0x4 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x6 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - add r0, sp, 0x4 - strh r4, [r0] - ldr r1, _08148AAC - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _08148AB0 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r2, 0 - str r2, [sp, 0x8] - add r0, sp, 0x8 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _08148AB4 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - add r0, sp, 0x4 - strh r2, [r0] - str r0, [r1] - ldr r0, _08148AB8 - str r0, [r1, 0x4] - ldr r0, _08148ABC - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - ldr r2, _08148AC0 - ldr r0, _08148AC4 - strh r0, [r2] - ldr r1, _08148AC8 - strh r0, [r1] - ldr r0, _08148ACC - strh r0, [r2, 0x2] - strh r0, [r1, 0x2] - movs r1, 0 - ldr r3, _08148AD0 - ldr r0, _08148AD4 - adds r2, r0, 0 -_08148A14: - 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 _08148A14 - movs r1, 0 - ldr r4, _08148AD8 - movs r3, 0x1 - ldr r2, _08148ADC -_08148A2C: - lsls r0, r1, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - bls _08148A2C - bl ResetTasks - bl ResetSpriteData - ldr r0, _08148AE0 - bl SetUpWindowConfig - ldr r0, _08148AE4 - bl InitMenuWindow - movs r0, 0x1 - negs r0, r0 - ldr r1, _08148AE8 - str r1, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _08148AEC - ldrh r1, [r2] - movs r0, 0 - strh r0, [r2] - ldr r3, _08148AF0 - ldrh r0, [r3] - movs r4, 0x1 - orrs r0, r4 - strh r0, [r3] - strh r1, [r2] - ldr r2, _08148AF4 - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _08148AF8 - bl SetVBlankCallback - ldr r1, _08148AFC - ldr r2, _08148B00 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xE - movs r2, 0x90 - lsls r2, 4 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _08148AA4 - ldr r1, _08148AA8 - adds r0, r1 - strb r4, [r0] - b _08148B28 - .align 2, 0 -_08148AA4: .4byte gMain -_08148AA8: .4byte 0x0000043c -_08148AAC: .4byte 0x040000d4 -_08148AB0: .4byte 0x8100c000 -_08148AB4: .4byte 0x85000100 -_08148AB8: .4byte 0x05000002 -_08148ABC: .4byte 0x810001ff -_08148AC0: .4byte gPlttBufferUnfaded -_08148AC4: .4byte 0x00007fff -_08148AC8: .4byte gPlttBufferFaded -_08148ACC: .4byte 0x00003945 -_08148AD0: .4byte 0x06000020 -_08148AD4: .4byte 0x00001111 -_08148AD8: .4byte 0x06003800 -_08148ADC: .4byte 0x000004ff -_08148AE0: .4byte gWindowConfig_81E6C3C -_08148AE4: .4byte gWindowConfig_81E6CE4 -_08148AE8: .4byte 0x0000ffff -_08148AEC: .4byte 0x04000208 -_08148AF0: .4byte 0x04000200 -_08148AF4: .4byte REG_DISPSTAT -_08148AF8: .4byte sub_8148964 -_08148AFC: .4byte REG_BG3CNT -_08148B00: .4byte 0x00000703 -_08148B04: - bl UpdatePaletteFade - ldr r0, _08148B20 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08148B28 - ldr r0, _08148B24 - bl SetMainCallback2 - movs r0, 0x1 - b _08148B2A - .align 2, 0 -_08148B20: .4byte gPaletteFade -_08148B24: .4byte sub_8148954 -_08148B28: - movs r0, 0 -_08148B2A: - add sp, 0xC - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8148970 - - thumb_func_start sub_8148B34 -sub_8148B34: @ 8148B34 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08148B60 - ldr r1, _08148B64 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - beq _08148B48 - cmp r0, 0x1 - beq _08148B6C -_08148B48: - movs r0, 0x1 - negs r0, r0 - ldr r1, _08148B68 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - movs r0, 0x1 - strb r0, [r4] - b _08148B80 - .align 2, 0 -_08148B60: .4byte gMain -_08148B64: .4byte 0x0000043c -_08148B68: .4byte 0x0000ffff -_08148B6C: - bl UpdatePaletteFade - ldr r0, _08148B88 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08148B80 - bl DoSoftReset -_08148B80: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08148B88: .4byte gPaletteFade - thumb_func_end sub_8148B34 - - thumb_func_start load_intro_part2_graphics -load_intro_part2_graphics: @ 8148B8C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08148BE8 - ldr r1, _08148BEC - bl LZ77UnCompVram - ldr r0, _08148BF0 - ldr r1, _08148BF4 - bl LZ77UnCompVram - ldr r0, _08148BF8 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - cmp r4, 0 - beq _08148BB4 - cmp r4, 0x1 - beq _08148C14 -_08148BB4: - ldr r0, _08148BFC - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148C00 - ldr r1, _08148C04 - bl LZ77UnCompVram - ldr r0, _08148C08 - movs r1, 0 - movs r2, 0x60 - bl LoadPalette - ldr r0, _08148C0C - bl LoadCompressedObjectPic - ldr r0, _08148C10 - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - bl sub_8149248 - b _08148C46 - .align 2, 0 -_08148BE8: .4byte gUnknown_0841225C -_08148BEC: .4byte 0x06004000 -_08148BF0: .4byte gUnknown_084126DC -_08148BF4: .4byte 0x06007800 -_08148BF8: .4byte gUnknown_084121FC -_08148BFC: .4byte gUnknown_084128D8 -_08148C00: .4byte gUnknown_08412EB4 -_08148C04: .4byte 0x06003000 -_08148C08: .4byte gUnknown_08412818 -_08148C0C: .4byte gUnknown_08416B54 -_08148C10: .4byte gUnknown_08413184 -_08148C14: - ldr r0, _08148C58 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148C5C - ldr r1, _08148C60 - bl LZ77UnCompVram - ldr r0, _08148C64 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148C68 - bl LoadCompressedObjectPic - ldr r0, _08148C6C - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - bl sub_8149264 -_08148C46: - ldr r1, _08148C70 - movs r0, 0 - strh r0, [r1] - ldr r1, _08148C74 - movs r0, 0x8 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08148C58: .4byte gUnknown_08413340 -_08148C5C: .4byte gUnknown_084139C8 -_08148C60: .4byte 0x06003000 -_08148C64: .4byte gUnknown_08413300 -_08148C68: .4byte gUnknown_08416BDC -_08148C6C: .4byte gUnknown_08413CCC -_08148C70: .4byte gUnknown_0203935C -_08148C74: .4byte gReservedSpritePaletteCount - thumb_func_end load_intro_part2_graphics - - thumb_func_start sub_8148C78 -sub_8148C78: @ 8148C78 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08148CA4 - ldr r2, _08148CA8 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - adds r2, 0xFF - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _08148CAC - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - movs r2, 0xF2 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08148CA4: .4byte REG_BG3CNT -_08148CA8: .4byte 0x00000603 -_08148CAC: .4byte 0x00000f05 - thumb_func_end sub_8148C78 - - thumb_func_start sub_8148CB0 -sub_8148CB0: @ 8148CB0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08148CD4 - ldr r1, _08148CD8 - bl LZ77UnCompVram - ldr r0, _08148CDC - ldr r1, _08148CE0 - bl LZ77UnCompVram - cmp r4, 0x4 - bhi _08148CFC - lsls r0, r4, 2 - ldr r1, _08148CE4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08148CD4: .4byte gUnknown_0841225C -_08148CD8: .4byte 0x06004000 -_08148CDC: .4byte gUnknown_084126DC -_08148CE0: .4byte 0x06007800 -_08148CE4: .4byte _08148CE8 - .align 2, 0 -_08148CE8: - .4byte _08148CFC - .4byte _08148D58 - .4byte _08148DC4 - .4byte _08148DC4 - .4byte _08148E1C -_08148CFC: - ldr r0, _08148D34 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148D38 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148D3C - ldr r1, _08148D40 - bl LZ77UnCompVram - ldr r0, _08148D44 - movs r1, 0 - movs r2, 0x60 - bl LoadPalette - ldr r0, _08148D48 - bl LoadCompressedObjectPic - ldr r0, _08148D4C - ldr r1, _08148D50 - bl LZ77UnCompVram - ldr r0, _08148D54 - b _08148D8E - .align 2, 0 -_08148D34: .4byte gUnknown_084121FC -_08148D38: .4byte gUnknown_084128D8 -_08148D3C: .4byte gUnknown_08412EB4 -_08148D40: .4byte 0x06003000 -_08148D44: .4byte gUnknown_08412818 -_08148D48: .4byte gUnknown_08416B54 -_08148D4C: .4byte gUnknown_084131C4 -_08148D50: .4byte 0x06010000 -_08148D54: .4byte gUnknown_08413184 -_08148D58: - ldr r0, _08148DA0 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148DA4 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148DA8 - ldr r1, _08148DAC - bl LZ77UnCompVram - ldr r0, _08148DB0 - movs r1, 0 - movs r2, 0x60 - bl LoadPalette - ldr r0, _08148DB4 - bl LoadCompressedObjectPic - ldr r0, _08148DB8 - ldr r1, _08148DBC - bl LZ77UnCompVram - ldr r0, _08148DC0 -_08148D8E: - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - bl sub_8149248 - b _08148E58 - .align 2, 0 -_08148DA0: .4byte gUnknown_0841221C -_08148DA4: .4byte gUnknown_084128D8 -_08148DA8: .4byte gUnknown_08412EB4 -_08148DAC: .4byte 0x06003000 -_08148DB0: .4byte gUnknown_08412878 -_08148DB4: .4byte gUnknown_08416B54 -_08148DB8: .4byte gUnknown_084131C4 -_08148DBC: .4byte 0x06010000 -_08148DC0: .4byte gUnknown_084131A4 -_08148DC4: - ldr r0, _08148E04 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148E08 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148E0C - ldr r1, _08148E10 - bl LZ77UnCompVram - ldr r4, _08148E14 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148E18 - bl LoadCompressedObjectPic - movs r1, 0x80 - lsls r1, 1 - adds r0, r4, 0 - movs r2, 0x20 - bl LoadPalette - bl sub_8149264 - b _08148E58 - .align 2, 0 -_08148E04: .4byte gUnknown_0841221C -_08148E08: .4byte gUnknown_08413340 -_08148E0C: .4byte gUnknown_084139C8 -_08148E10: .4byte 0x06003000 -_08148E14: .4byte gUnknown_08413320 -_08148E18: .4byte gUnknown_08416BDC -_08148E1C: - ldr r0, _08148E6C - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08148E70 - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, _08148E74 - ldr r1, _08148E78 - bl LZ77UnCompVram - ldr r0, _08148E7C - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - ldr r0, _08148E80 - bl LoadCompressedObjectPic - ldr r0, _08148E84 - movs r1, 0x80 - lsls r1, 1 - movs r2, 0x20 - bl LoadPalette - bl sub_8149280 -_08148E58: - ldr r1, _08148E88 - movs r0, 0x8 - strb r0, [r1] - ldr r1, _08148E8C - movs r0, 0 - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08148E6C: .4byte gUnknown_0841223C -_08148E70: .4byte gUnknown_08413E78 -_08148E74: .4byte gUnknown_08414084 -_08148E78: .4byte 0x06003000 -_08148E7C: .4byte gUnknown_08413E38 -_08148E80: .4byte gUnknown_08416C70 -_08148E84: .4byte gUnknown_08414064 -_08148E88: .4byte gReservedSpritePaletteCount -_08148E8C: .4byte gUnknown_0203935C - thumb_func_end sub_8148CB0 - - thumb_func_start sub_8148E90 -sub_8148E90: @ 8148E90 - ldr r1, _08148EB4 - ldr r2, _08148EB8 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - adds r2, 0xFF - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _08148EBC - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - movs r2, 0xFA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bx lr - .align 2, 0 -_08148EB4: .4byte REG_BG3CNT -_08148EB8: .4byte 0x00000603 -_08148EBC: .4byte 0x00000f05 - thumb_func_end sub_8148E90 - - thumb_func_start sub_8148EC0 -sub_8148EC0: @ 8148EC0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 16 - lsrs r6, 16 - mov r0, r8 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r3, 16 - lsrs r3, 16 - ldr r1, _08148F34 - mov r9, r1 - mov r0, r9 - movs r1, 0 - str r3, [sp] - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _08148F38 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r2, 0 - strh r5, [r0, 0x8] - strh r6, [r0, 0xA] - strh r2, [r0, 0xC] - strh r2, [r0, 0xE] - mov r1, r8 - strh r1, [r0, 0x10] - strh r2, [r0, 0x12] - strh r2, [r0, 0x14] - ldr r3, [sp] - strh r3, [r0, 0x16] - movs r1, 0x8 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - adds r0, r4, 0 - bl _call_via_r9 - adds r0, r4, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08148F34: .4byte sub_8148F3C -_08148F38: .4byte gTasks - thumb_func_end sub_8148EC0 - - thumb_func_start sub_8148F3C -sub_8148F3C: @ 8148F3C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08148FB4 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r1 - ldrh r0, [r3, 0xA] - lsls r4, r0, 16 - adds r6, r1, 0 - cmp r4, 0 - beq _08148F7C - movs r1, 0xC - ldrsh r0, [r3, r1] - lsls r0, 16 - ldrh r1, [r3, 0xE] - adds r2, r0, r1 - lsrs r0, r4, 12 - subs r2, r0 - asrs r1, r2, 16 - strh r1, [r3, 0xC] - strh r2, [r3, 0xE] - ldr r0, _08148FB8 - strh r1, [r0] - ldr r2, _08148FBC - ldr r1, _08148FC0 - ldr r0, _08148FC4 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r2] -_08148F7C: - ldrh r0, [r3, 0x10] - lsls r4, r0, 16 - cmp r4, 0 - beq _08148FD8 - movs r1, 0x12 - ldrsh r0, [r3, r1] - lsls r0, 16 - ldrh r1, [r3, 0x14] - adds r2, r0, r1 - lsrs r0, r4, 12 - subs r2, r0 - asrs r1, r2, 16 - strh r1, [r3, 0x12] - strh r2, [r3, 0x14] - ldr r0, _08148FC8 - strh r1, [r0] - movs r1, 0x8 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _08148FD0 - ldr r2, _08148FCC - ldr r1, _08148FC0 - ldr r0, _08148FC4 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r1 - strh r0, [r2] - b _08148FD8 - .align 2, 0 -_08148FB4: .4byte gTasks -_08148FB8: .4byte REG_BG1HOFS -_08148FBC: .4byte REG_BG1VOFS -_08148FC0: .4byte gUnknown_02039358 -_08148FC4: .4byte gUnknown_0203935A -_08148FC8: .4byte REG_BG2HOFS -_08148FCC: .4byte REG_BG2VOFS -_08148FD0: - ldr r0, _08149010 - ldr r1, _08149014 - ldrh r1, [r1] - strh r1, [r0] -_08148FD8: - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r3, r0, r6 - ldrh r0, [r3, 0x16] - lsls r4, r0, 16 - cmp r4, 0 - beq _08149008 - movs r1, 0x18 - ldrsh r0, [r3, r1] - lsls r0, 16 - ldrh r1, [r3, 0x1A] - adds r2, r0, r1 - lsrs r0, r4, 12 - subs r2, r0 - asrs r1, r2, 16 - strh r1, [r3, 0x18] - strh r2, [r3, 0x1A] - ldr r0, _08149018 - strh r1, [r0] - ldr r1, _0814901C - ldr r0, _08149014 - ldrh r0, [r0] - strh r0, [r1] -_08149008: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08149010: .4byte REG_BG2VOFS -_08149014: .4byte gUnknown_02039358 -_08149018: .4byte REG_BG3HOFS -_0814901C: .4byte REG_BG3VOFS - thumb_func_end sub_8148F3C - - thumb_func_start sub_8149020 -sub_8149020: @ 8149020 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08149100 - cmp r0, 0x1 - ble _08149034 - cmp r0, 0x2 - beq _08149098 -_08149034: - ldr r0, _08149060 - ldr r2, [r0, 0x20] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0 - bne _08149100 - ldr r0, _08149064 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08149100 - movs r0, 0x4 - ands r2, r0 - cmp r2, 0 - beq _0814906C - ldr r2, _08149068 - ldrh r1, [r2, 0x12] - mov r0, sp - strh r1, [r0] - ldrh r1, [r2, 0x14] - b _08149076 - .align 2, 0 -_08149060: .4byte gMain -_08149064: .4byte gPaletteFade -_08149068: .4byte gPlttBufferUnfaded -_0814906C: - ldr r2, _08149094 - ldrh r1, [r2, 0x14] - mov r0, sp - strh r1, [r0] - ldrh r1, [r2, 0x12] -_08149076: - adds r0, 0x2 - strh r1, [r0] - adds r4, r0, 0 - mov r0, sp - movs r1, 0x9 - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0x2 - bl LoadPalette - b _08149100 - .align 2, 0 -_08149094: .4byte gPlttBufferUnfaded -_08149098: - ldr r0, _081490C8 - ldr r2, [r0, 0x20] - movs r0, 0x3 - ands r0, r2 - cmp r0, 0 - bne _08149100 - ldr r0, _081490CC - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08149100 - movs r0, 0x4 - ands r2, r0 - cmp r2, 0 - beq _081490D8 - mov r1, sp - ldr r2, _081490D0 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _081490D4 - b _081490E6 - .align 2, 0 -_081490C8: .4byte gMain -_081490CC: .4byte gPaletteFade -_081490D0: .4byte 0x00003d27 -_081490D4: .4byte 0x00000295 -_081490D8: - mov r1, sp - movs r2, 0xC7 - lsls r2, 2 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _08149108 -_081490E6: - adds r0, r2, 0 - strh r0, [r1] - adds r4, r1, 0 - mov r0, sp - movs r1, 0xC - movs r2, 0x2 - bl LoadPalette - adds r0, r4, 0 - movs r1, 0xD - movs r2, 0x2 - bl LoadPalette -_08149100: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08149108: .4byte 0x00003d27 - thumb_func_end sub_8149020 - - thumb_func_start sub_814910C -sub_814910C: @ 814910C - push {lr} - adds r2, r0, 0 - ldr r0, _08149124 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _08149128 - adds r0, r2, 0 - bl DestroySprite - b _0814916C - .align 2, 0 -_08149124: .4byte gUnknown_0203935C -_08149128: - movs r1, 0x20 - ldrsh r0, [r2, r1] - lsls r0, 16 - ldrh r1, [r2, 0x32] - orrs r0, r1 - ldrh r1, [r2, 0x30] - adds r0, r1 - asrs r1, r0, 16 - strh r1, [r2, 0x20] - strh r0, [r2, 0x32] - cmp r1, 0xFF - ble _08149144 - ldr r0, _08149158 - strh r0, [r2, 0x20] -_08149144: - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08149164 - ldr r1, _0814915C - ldr r0, _08149160 - ldrh r0, [r0] - ldrh r1, [r1] - adds r0, r1 - b _08149168 - .align 2, 0 -_08149158: .4byte 0x0000ffe0 -_0814915C: .4byte gUnknown_02039358 -_08149160: .4byte gUnknown_0203935A -_08149164: - ldr r0, _08149170 - ldrh r0, [r0] -_08149168: - negs r0, r0 - strh r0, [r2, 0x26] -_0814916C: - pop {r0} - bx r0 - .align 2, 0 -_08149170: .4byte gUnknown_02039358 - thumb_func_end sub_814910C - - thumb_func_start sub_8149174 -sub_8149174: @ 8149174 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - str r1, [sp, 0x4] - str r2, [sp, 0x8] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - movs r7, 0 - cmp r7, r8 - bcs _0814922A - ldr r0, _0814923C - mov r10, r0 - movs r2, 0x3F - mov r9, r2 -_0814919E: - lsls r6, r7, 3 - ldr r0, [sp, 0x4] - adds r6, r0 - ldrb r1, [r6, 0x1] - ldrb r2, [r6, 0x2] - ldrb r3, [r6, 0x3] - ldr r0, _08149240 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - mov r2, r10 - adds r4, r5, r2 - ldrb r2, [r6] - lsls r1, r2, 26 - lsrs r1, 30 - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec - ldrb r3, [r4, 0x5] - movs r0, 0xC - orrs r3, r0 - strb r3, [r4, 0x5] - ldrb r1, [r6] - lsls r1, 26 - lsrs r1, 30 - lsls r1, 6 - ldrb r2, [r4, 0x1] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r6] - lsrs r1, 6 - lsls r1, 6 - ldrb r2, [r4, 0x3] - mov r0, r9 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - movs r0, 0xF - ands r3, r0 - strb r3, [r4, 0x5] - ldr r0, _08149244 - adds r5, r0 - ldr r2, [sp, 0x8] - str r2, [r5] - ldrb r1, [r6] - lsls r1, 28 - lsrs r1, 28 - adds r0, r4, 0 - bl StartSpriteAnim - movs r1, 0 - mov r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x2E] - ldrh r0, [r6, 0x4] - strh r0, [r4, 0x30] - strh r1, [r4, 0x32] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, r8 - bcc _0814919E -_0814922A: - 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 -_0814923C: .4byte gSprites -_08149240: .4byte gSpriteTemplate_8416B3C -_08149244: .4byte gSprites + 0x8 - thumb_func_end sub_8149174 - - thumb_func_start sub_8149248 -sub_8149248: @ 8149248 - push {lr} - ldr r1, _0814925C - ldr r2, _08149260 - movs r0, 0 - movs r3, 0x9 - bl sub_8149174 - pop {r0} - bx r0 - .align 2, 0 -_0814925C: .4byte gUnknown_08416B94 -_08149260: .4byte gSpriteAnimTable_8416B84 - thumb_func_end sub_8149248 - - thumb_func_start sub_8149264 -sub_8149264: @ 8149264 - push {lr} - ldr r1, _08149278 - ldr r2, _0814927C - movs r0, 0x1 - movs r3, 0xC - bl sub_8149174 - pop {r0} - bx r0 - .align 2, 0 -_08149278: .4byte gUnknown_08416C10 -_0814927C: .4byte gSpriteAnimTable_8416C04 - thumb_func_end sub_8149264 - - thumb_func_start sub_8149280 -sub_8149280: @ 8149280 - push {lr} - ldr r1, _08149294 - ldr r2, _08149298 - movs r0, 0x1 - movs r3, 0x6 - bl sub_8149174 - pop {r0} - bx r0 - .align 2, 0 -_08149294: .4byte gUnknown_08416C8C -_08149298: .4byte gSpriteAnimTable_8416C88 - thumb_func_end sub_8149280 - - thumb_func_start nullsub_82 -nullsub_82: @ 814929C - bx lr - thumb_func_end nullsub_82 - - thumb_func_start sub_81492A0 -sub_81492A0: @ 81492A0 - push {r4,lr} - ldr r4, _0814930C - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r1, [r1] - movs r2, 0x3E - adds r2, r0 - mov r12, r2 - movs r2, 0x4 - ands r2, r1 - mov r1, r12 - ldrb r3, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x20] - strh r1, [r0, 0x20] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - adds r1, 0x8 - strh r1, [r0, 0x22] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x24] - strh r1, [r0, 0x24] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814930C: .4byte gSprites - thumb_func_end sub_81492A0 - - thumb_func_start sub_8149310 -sub_8149310: @ 8149310 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, _0814935C - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _08149360 - adds r4, 0x8 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08149364 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strh r6, [r1, 0x2E] - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0814935C: .4byte gSpriteTemplate_8416CDC -_08149360: .4byte gSpriteTemplate_8416D2C -_08149364: .4byte gSprites - thumb_func_end sub_8149310 - - thumb_func_start sub_8149368 -sub_8149368: @ 8149368 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, _081493B4 - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _081493B8 - adds r4, 0x8 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _081493BC - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strh r6, [r1, 0x2E] - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_081493B4: .4byte gSpriteTemplate_8416CF4 -_081493B8: .4byte gSpriteTemplate_8416D44 -_081493BC: .4byte gSprites - thumb_func_end sub_8149368 - - thumb_func_start nullsub_83 -nullsub_83: @ 81493C0 - bx lr - thumb_func_end nullsub_83 - - thumb_func_start sub_81493C4 -sub_81493C4: @ 81493C4 - push {r4,lr} - ldr r4, _08149420 - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r1, [r1] - movs r2, 0x3E - adds r2, r0 - mov r12, r2 - movs r2, 0x4 - ands r2, r1 - mov r1, r12 - ldrb r3, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - movs r1, 0x2E - ldrsh r2, [r0, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x22] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x24] - strh r1, [r0, 0x24] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x26] - strh r1, [r0, 0x26] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08149420: .4byte gSprites - thumb_func_end sub_81493C4 - - thumb_func_start sub_8149424 -sub_8149424: @ 8149424 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r2, r0, 0 - adds r5, r1, 0 - ldr r0, _08149490 - mov r8, r0 - lsls r2, 16 - asrs r4, r2, 16 - ldr r0, _08149494 - adds r2, r0 - asrs r2, 16 - lsls r5, 16 - asrs r5, 16 - mov r0, r8 - adds r1, r2, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r4, 0x20 - lsls r4, 16 - asrs r4, 16 - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08149498 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - strh r6, [r0, 0x2E] - movs r1, 0x1 - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, _0814949C - str r0, [r4] - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08149490: .4byte gSpriteTemplate_8416D7C -_08149494: .4byte 0xffe00000 -_08149498: .4byte gSprites -_0814949C: .4byte sub_81493C4 - thumb_func_end sub_8149424 - - thumb_func_start sapphire_sub_81494A0 -sapphire_sub_81494A0: @ 81494A0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r2, r0, 0 - adds r5, r1, 0 - ldr r0, _0814950C - mov r8, r0 - lsls r2, 16 - asrs r4, r2, 16 - ldr r0, _08149510 - adds r2, r0 - asrs r2, 16 - lsls r5, 16 - asrs r5, 16 - mov r0, r8 - adds r1, r2, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl CreateSprite - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r4, 0x20 - lsls r4, 16 - asrs r4, 16 - mov r0, r8 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08149514 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - strh r6, [r0, 0x2E] - movs r1, 0x1 - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, _08149518 - str r0, [r4] - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0814950C: .4byte gSpriteTemplate_8416D94 -_08149510: .4byte 0xffe00000 -_08149514: .4byte gSprites -_08149518: .4byte sub_81493C4 - thumb_func_end sapphire_sub_81494A0 - - thumb_func_start nullsub_84 -nullsub_84: @ 814951C - bx lr - thumb_func_end nullsub_84 - - thumb_func_start sub_8149520 -sub_8149520: @ 8149520 - push {r4,r5,lr} - sub sp, 0x4 - movs r4, 0 - ldr r5, _08149554 -_08149528: - adds r0, r4, 0 - adds r0, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r4, 1 - adds r1, r5 - ldrh r1, [r1] - str r1, [sp] - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0xB - bls _08149528 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08149554: .4byte gUnknown_08416ED0 - thumb_func_end sub_8149520 - - thumb_func_start sub_8149558 -sub_8149558: @ 8149558 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - ble _08149606 - movs r2, 0x3C - ldrsh r0, [r4, r2] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0x50 - bl __divsi3 - movs r1, 0x58 - subs r1, r0 - strh r1, [r4, 0x22] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08149592 - adds r0, 0x3 -_08149592: - asrs r0, 2 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x3A] - adds r0, 0x4 - strh r0, [r4, 0x3A] - ldrh r1, [r4, 0x3C] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081495BC - ldrh r0, [r4, 0x38] - subs r0, 0x1 - strh r0, [r4, 0x38] -_081495BC: - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - movs r1, 0x26 - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _081495D2 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1 - b _081495D8 -_081495D2: - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x14 -_081495D8: - strb r0, [r1] - movs r2, 0x38 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _081495E4 - adds r0, 0x3 -_081495E4: - asrs r0, 2 - adds r0, 0x14 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _081495F2 - movs r2, 0x1F -_081495F2: - movs r0, 0x1F - ands r2, r0 - lsls r2, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - b _0814960C -_08149606: - adds r0, r4, 0 - bl DestroySprite -_0814960C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8149558 - - thumb_func_start sub_8149614 -sub_8149614: @ 8149614 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08149664 - movs r1, 0x78 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0814965E - ldr r4, _08149668 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r4 - movs r1, 0 - movs r0, 0x30 - strh r0, [r2, 0x38] - strh r5, [r2, 0x3A] - strh r1, [r2, 0x3C] - ldrb r1, [r2, 0x1] - subs r0, 0x34 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x3] - movs r1, 0x3E - orrs r0, r1 - strb r0, [r2, 0x3] - adds r4, 0x1C - adds r3, r4 - ldr r0, _0814966C - str r0, [r3] -_0814965E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08149664: .4byte gSpriteTemplate_8416EB8 -_08149668: .4byte gSprites -_0814966C: .4byte sub_8149558 - thumb_func_end sub_8149614 - - thumb_func_start sub_8149670 -sub_8149670: @ 8149670 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x22 - ldrsh r0, [r4, r1] - cmp r0, 0x57 - bgt _081496D6 - movs r2, 0x3C - ldrsh r0, [r4, r2] - adds r1, r0, 0 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0x5 - bl __divsi3 - adds r0, 0x8 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _081496A8 - adds r0, 0x3 -_081496A8: - asrs r0, 2 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x3C - ldrsh r0, [r4, r1] - lsls r0, 26 - lsrs r0, 24 - movs r1, 0x28 - bl Sin - adds r0, 0x8 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - b _081496DC -_081496D6: - adds r0, r4, 0 - bl DestroySprite -_081496DC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8149670 - - thumb_func_start sub_81496E4 -sub_81496E4: @ 81496E4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08149740 - movs r1, 0x78 - movs r2, 0x8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0814973A - ldr r4, _08149744 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r4 - movs r1, 0 - movs r0, 0x8 - strh r0, [r2, 0x38] - strh r5, [r2, 0x3A] - strh r1, [r2, 0x3C] - ldrb r1, [r2, 0x1] - subs r0, 0xC - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x32 - orrs r0, r1 - strb r0, [r2, 0x3] - adds r2, 0x43 - movs r0, 0x1 - strb r0, [r2] - adds r4, 0x1C - adds r3, r4 - ldr r0, _08149748 - str r0, [r3] -_0814973A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08149740: .4byte gSpriteTemplate_8416EB8 -_08149744: .4byte gSprites -_08149748: .4byte sub_8149670 - thumb_func_end sub_81496E4 - - thumb_func_start sub_814974C -sub_814974C: @ 814974C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - ble _08149788 - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r2, 0x38 - ldrsh r1, [r4, r2] - bl Cos - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x38] - ldrh r1, [r4, 0x34] - subs r0, r1 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - adds r0, 0x4 - strh r0, [r4, 0x3A] - b _0814978E -_08149788: - adds r0, r4, 0 - bl DestroySprite -_0814978E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_814974C - - thumb_func_start sub_8149794 -sub_8149794: @ 8149794 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _081497F0 - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _081497EA - ldr r4, _081497F4 - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r4 - movs r1, 0 - strh r5, [r2, 0x34] - movs r0, 0x78 - strh r0, [r2, 0x38] - strh r6, [r2, 0x3A] - strh r1, [r2, 0x3C] - ldrb r1, [r2, 0x1] - subs r0, 0x7C - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r2, 0x3] - movs r1, 0x3E - orrs r0, r1 - strb r0, [r2, 0x3] - adds r2, 0x43 - movs r0, 0x1 - strb r0, [r2] - adds r4, 0x1C - adds r3, r4 - ldr r0, _081497F8 - str r0, [r3] -_081497EA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081497F0: .4byte gSpriteTemplate_8416EB8 -_081497F4: .4byte gSprites -_081497F8: .4byte sub_814974C - thumb_func_end sub_8149794 - - thumb_func_start sub_81497FC -sub_81497FC: @ 81497FC - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x3C] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08149810 - ldrh r0, [r4, 0x22] - adds r0, 0x1 - strh r0, [r4, 0x22] -_08149810: - ldrh r1, [r4, 0x3A] - movs r2, 0x3A - ldrsh r0, [r4, r2] - cmp r0, 0x7F - bgt _081498C0 - lsls r0, r1, 24 - lsrs r0, 24 - movs r5, 0x38 - ldrsh r1, [r4, r5] - bl Sin - negs r0, r0 - strh r0, [r4, 0x26] - movs r0, 0x34 - ldrsh r1, [r4, r0] - movs r2, 0x3C - ldrsh r0, [r4, r2] - muls r0, r1 - movs r1, 0x3 - bl __divsi3 - adds r0, 0x78 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x3A] - adds r3, r0, 0x1 - strh r3, [r4, 0x3A] - movs r5, 0x3A - ldrsh r1, [r4, r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - cmp r0, 0 - bge _08149854 - adds r0, 0x7F -_08149854: - asrs r0, 7 - movs r1, 0x1F - subs r1, r0 - lsls r1, 24 - lsrs r2, r1, 24 - lsls r0, r3, 16 - asrs r0, 16 - cmp r0, 0x40 - ble _08149870 - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x1 - strb r0, [r1] - b _081498A0 -_08149870: - adds r3, r4, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0x14 - strb r0, [r1] - ldrh r1, [r4, 0x3A] - movs r5, 0x3A - ldrsh r0, [r4, r5] - cmp r0, 0x70 - ble _081498A0 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081498A0 - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] -_081498A0: - cmp r2, 0x13 - bhi _081498A6 - movs r2, 0x14 -_081498A6: - movs r0, 0x1F - ands r2, r0 - lsls r2, 1 - ldrb r1, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - b _081498C6 -_081498C0: - adds r0, r4, 0 - bl DestroySprite -_081498C6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_81497FC - - thumb_func_start sub_81498CC -sub_81498CC: @ 81498CC - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r0, _08149948 - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _0814993C - bl Random - ldr r6, _0814994C - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - adds r4, r5, r6 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x7 - bl __umodsi3 - movs r1, 0x3 - subs r1, r0 - movs r0, 0 - mov r8, r0 - strh r1, [r4, 0x34] - bl Random - movs r1, 0x3F - ands r1, r0 - adds r1, 0x30 - strh r1, [r4, 0x38] - mov r0, r8 - strh r0, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - movs r1, 0x3E - orrs r0, r1 - strb r0, [r4, 0x3] - adds r4, 0x43 - movs r0, 0x14 - strb r0, [r4] - adds r6, 0x1C - adds r5, r6 - ldr r0, _08149950 - str r0, [r5] -_0814993C: - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08149948: .4byte gSpriteTemplate_8416EB8 -_0814994C: .4byte gSprites -_08149950: .4byte sub_81497FC - thumb_func_end sub_81498CC - - thumb_func_start sub_8149954 -sub_8149954: @ 8149954 - push {lr} - ldr r0, _08149968 - bl LoadCompressedObjectPic - ldr r0, _0814996C - bl LoadSpritePalettes - pop {r0} - bx r0 - .align 2, 0 -_08149968: .4byte gUnknown_08416E84 -_0814996C: .4byte gUnknown_08416E94 - thumb_func_end sub_8149954 - - thumb_func_start sub_8149970 -sub_8149970: @ 8149970 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08149998 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0814999C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149998: .4byte sub_81499A0 -_0814999C: .4byte gTasks - thumb_func_end sub_8149970 - - thumb_func_start sub_81499A0 -sub_81499A0: @ 81499A0 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8149520 - ldr r0, _081499E4 - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r0 - movs r0, 0 - strh r0, [r5, 0x26] - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x3 - lsls r0, r1 - ldr r1, _081499E8 - str r1, [sp] - movs r1, 0xA - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _081499EC - str r0, [r5] - movs r0, 0x8C - bl PlaySE - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081499E4: .4byte gTasks -_081499E8: .4byte 0x00007fff -_081499EC: .4byte sub_81499F0 - thumb_func_end sub_81499A0 - - thumb_func_start sub_81499F0 -sub_81499F0: @ 81499F0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08149A48 - lsls r3, r5, 2 - adds r0, r3, r5 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x26] - movs r4, 0x26 - ldrsh r0, [r1, r4] - cmp r0, 0x3F - bgt _08149A4C - movs r0, 0x7 - ands r0, r2 - adds r7, r3, 0 - cmp r0, 0 - bne _08149A36 - movs r4, 0 - adds r6, r1, 0 -_08149A18: - ldrh r1, [r6, 0x26] - movs r0, 0x78 - ands r0, r1 - lsls r0, 1 - lsls r1, r4, 6 - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_8149614 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08149A18 -_08149A36: - ldr r0, _08149A48 - adds r1, r7, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08149A54 - .align 2, 0 -_08149A48: .4byte gTasks -_08149A4C: - movs r0, 0x60 - strh r0, [r1, 0x26] - ldr r0, _08149A5C - str r0, [r1] -_08149A54: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08149A5C: .4byte sub_8149A60 - thumb_func_end sub_81499F0 - - thumb_func_start sub_8149A60 -sub_8149A60: @ 8149A60 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08149A80 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - ldrh r3, [r1, 0x26] - movs r4, 0x26 - ldrsh r0, [r1, r4] - cmp r0, 0 - beq _08149A84 - subs r0, r3, 0x1 - strh r0, [r1, 0x26] - b _08149A8A - .align 2, 0 -_08149A80: .4byte gTasks -_08149A84: - adds r0, r2, 0 - bl DestroyTask -_08149A8A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8149A60 - - thumb_func_start sub_8149A90 -sub_8149A90: @ 8149A90 - push {lr} - ldr r0, _08149AA4 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08149AA4: .4byte sub_8149AA8 - thumb_func_end sub_8149A90 - - thumb_func_start sub_8149AA8 -sub_8149AA8: @ 8149AA8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8149520 - ldr r1, _08149AD4 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x26] - ldr r1, _08149AD8 - str r1, [r0] - movs r0, 0xB7 - bl PlaySE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08149AD4: .4byte gTasks -_08149AD8: .4byte sub_8149ADC - thumb_func_end sub_8149AA8 - - thumb_func_start sub_8149ADC -sub_8149ADC: @ 8149ADC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08149B20 - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0x26 - ldrsh r0, [r1, r3] - cmp r0, 0x5F - bgt _08149B24 - adds r6, r2, 0 - cmp r0, 0x5 - bgt _08149B0E - movs r4, 0 -_08149AFC: - lsls r0, r4, 28 - lsrs r0, 24 - bl sub_81496E4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _08149AFC -_08149B0E: - ldr r0, _08149B20 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08149B28 - .align 2, 0 -_08149B20: .4byte gTasks -_08149B24: - ldr r0, _08149B30 - str r0, [r1] -_08149B28: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08149B30: .4byte sub_8149B34 - thumb_func_end sub_8149ADC - - thumb_func_start sub_8149B34 -sub_8149B34: @ 8149B34 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - thumb_func_end sub_8149B34 - - thumb_func_start sub_8149B44 -sub_8149B44: @ 8149B44 - push {lr} - ldr r0, _08149B58 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_08149B58: .4byte sub_8149B5C - thumb_func_end sub_8149B44 - - thumb_func_start sub_8149B5C -sub_8149B5C: @ 8149B5C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8149520 - ldr r1, _08149B88 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x26] - ldr r1, _08149B8C - str r1, [r0] - movs r0, 0x66 - bl PlaySE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08149B88: .4byte gTasks -_08149B8C: .4byte sub_8149B90 - thumb_func_end sub_8149B5C - - thumb_func_start sub_8149B90 -sub_8149B90: @ 8149B90 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08149BFC - lsls r2, r5, 2 - adds r0, r2, r5 - lsls r0, 3 - adds r1, r0, r1 - movs r3, 0x26 - ldrsh r0, [r1, r3] - cmp r0, 0x2F - bgt _08149C00 - adds r6, r2, 0 - cmp r0, 0 - bne _08149BC4 - movs r4, 0 -_08149BB0: - lsls r0, r4, 28 - lsrs r0, 24 - movs r1, 0x4 - bl sub_8149794 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08149BB0 -_08149BC4: - ldr r0, _08149BFC - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r2, 0x26 - ldrsh r0, [r1, r2] - cmp r0, 0x20 - bne _08149BEA - movs r4, 0 -_08149BD6: - lsls r0, r4, 28 - lsrs r0, 24 - movs r1, 0x8 - bl sub_8149794 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _08149BD6 -_08149BEA: - ldr r0, _08149BFC - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08149C04 - .align 2, 0 -_08149BFC: .4byte gTasks -_08149C00: - ldr r0, _08149C0C - str r0, [r1] -_08149C04: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08149C0C: .4byte sub_8149C10 - thumb_func_end sub_8149B90 - - thumb_func_start sub_8149C10 -sub_8149C10: @ 8149C10 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - pop {r0} - bx r0 - thumb_func_end sub_8149C10 - - thumb_func_start sub_8149C20 -sub_8149C20: @ 8149C20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08149C48 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08149C4C - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xC] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149C48: .4byte sub_8149C50 -_08149C4C: .4byte gTasks - thumb_func_end sub_8149C20 - - thumb_func_start sub_8149C50 -sub_8149C50: @ 8149C50 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8149520 - ldr r0, _08149C98 - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r0 - movs r0, 0 - strh r0, [r5, 0x26] - ldr r0, _08149C9C - ldr r1, _08149CA0 - movs r2, 0x30 - bl CpuSet - ldr r0, _08149CA4 - ldr r1, _08149CA8 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08149CAC - str r0, [r5] - movs r0, 0xCA - bl PlaySE - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08149C98: .4byte gTasks -_08149C9C: .4byte gPlttBufferFaded + 0x40 -_08149CA0: .4byte gPlttBufferUnfaded + 0x40 -_08149CA4: .4byte 0xfff9001c -_08149CA8: .4byte 0x00007fff -_08149CAC: .4byte sub_8149CB0 - thumb_func_end sub_8149C50 - - thumb_func_start sub_8149CB0 -sub_8149CB0: @ 8149CB0 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08149CE8 - lsls r5, r6, 2 - adds r0, r5, r6 - lsls r0, 3 - adds r1, r0, r1 - movs r0, 0x26 - ldrsh r2, [r1, r0] - cmp r2, 0x7F - bgt _08149D2C - adds r0, r2, 0 - cmp r0, 0 - beq _08149CEC - cmp r0, 0x20 - beq _08149D00 - cmp r2, 0x31 - bgt _08149D10 - bl Random - movs r1, 0x7 - ands r0, r1 - bl sub_81498CC - b _08149D10 - .align 2, 0 -_08149CE8: .4byte gTasks -_08149CEC: - movs r4, 0 -_08149CEE: - adds r0, r4, 0 - bl sub_81498CC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _08149CEE - b _08149D10 -_08149D00: - ldr r0, _08149D20 - ldr r1, _08149D24 - str r1, [sp] - movs r1, 0x10 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_08149D10: - ldr r0, _08149D28 - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08149D30 - .align 2, 0 -_08149D20: .4byte 0xffff001c -_08149D24: .4byte 0x00007fff -_08149D28: .4byte gTasks -_08149D2C: - ldr r0, _08149D38 - str r0, [r1] -_08149D30: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08149D38: .4byte sub_8149D3C - thumb_func_end sub_8149CB0 - - thumb_func_start sub_8149D3C -sub_8149D3C: @ 8149D3C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08149D58 - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08149D54 - adds r0, r2, 0 - bl DestroyTask -_08149D54: - pop {r0} - bx r0 - .align 2, 0 -_08149D58: .4byte gPaletteFade - thumb_func_end sub_8149D3C - - thumb_func_start sub_8149D5C -sub_8149D5C: @ 8149D5C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _08149D84 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08149D88 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xC] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08149D84: .4byte sub_8149D8C -_08149D88: .4byte gTasks - thumb_func_end sub_8149D5C - - thumb_func_start sub_8149D8C -sub_8149D8C: @ 8149D8C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_8149520 - ldr r0, _08149DD4 - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r0 - movs r0, 0 - strh r0, [r5, 0x26] - ldr r0, _08149DD8 - ldr r1, _08149DDC - movs r2, 0x30 - bl CpuSet - ldr r0, _08149DE0 - ldr r1, _08149DE4 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _08149DE8 - str r0, [r5] - movs r0, 0xCA - bl PlaySE - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08149DD4: .4byte gTasks -_08149DD8: .4byte gPlttBufferFaded + 0x40 -_08149DDC: .4byte gPlttBufferUnfaded + 0x40 -_08149DE0: .4byte 0xfff90001 -_08149DE4: .4byte 0x00007fff -_08149DE8: .4byte sub_8149DEC - thumb_func_end sub_8149D8C - - thumb_func_start sub_8149DEC -sub_8149DEC: @ 8149DEC - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08149E24 - lsls r5, r6, 2 - adds r0, r5, r6 - lsls r0, 3 - adds r1, r0, r1 - movs r0, 0x26 - ldrsh r2, [r1, r0] - cmp r2, 0x7F - bgt _08149E68 - adds r0, r2, 0 - cmp r0, 0 - beq _08149E28 - cmp r0, 0x20 - beq _08149E3C - cmp r2, 0x31 - bgt _08149E4C - bl Random - movs r1, 0x7 - ands r0, r1 - bl sub_81498CC - b _08149E4C - .align 2, 0 -_08149E24: .4byte gTasks -_08149E28: - movs r4, 0 -_08149E2A: - adds r0, r4, 0 - bl sub_81498CC - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _08149E2A - b _08149E4C -_08149E3C: - ldr r0, _08149E5C - ldr r1, _08149E60 - str r1, [sp] - movs r1, 0x10 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade -_08149E4C: - ldr r0, _08149E64 - adds r1, r5, r6 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08149E6C - .align 2, 0 -_08149E5C: .4byte 0xffff0001 -_08149E60: .4byte 0x00007fff -_08149E64: .4byte gTasks -_08149E68: - ldr r0, _08149E74 - str r0, [r1] -_08149E6C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08149E74: .4byte sub_8149D3C - thumb_func_end sub_8149DEC - - thumb_func_start nullsub_85 -nullsub_85: @ 8149E78 - bx lr - thumb_func_end nullsub_85 - - thumb_func_start sub_8149E7C -sub_8149E7C: @ 8149E7C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - movs r1, 0 - ldr r3, _08149FB0 - ldr r2, _08149FB4 -_08149E96: - lsls r0, r1, 1 - add r0, sp - adds r0, 0x4 - strh r2, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xF - bls _08149E96 - adds r0, r3, 0 - movs r1, 0 - bl CreateTask - mov r8, r0 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _08149FB8 - mov r1, r8 - lsls r6, r1, 2 - add r6, r8 - lsls r6, 3 - adds r6, r0 - strh r5, [r6, 0xA] - strh r7, [r6, 0xC] - movs r1, 0x80 - lsls r1, 1 - strh r1, [r6, 0xE] - movs r0, 0x10 - strh r0, [r6, 0x10] - movs r4, 0x80 - lsls r4, 9 - str r1, [sp] - movs r0, 0x1E - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - movs r0, 0x10 - ldrsh r1, [r6, r0] - adds r0, r4, 0 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x1F - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - ldr r1, _08149FBC - mov r9, r1 - lsls r2, r5, 4 - adds r2, r5 - lsls r2, 2 - mov r3, r9 - adds r3, 0x1C - adds r0, r2, r3 - ldr r1, _08149FC0 - str r1, [r0] - add r2, r9 - ldrb r1, [r2, 0x1] - movs r4, 0x4 - negs r4, r4 - adds r0, r4, 0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r1, [r2, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 - movs r1, 0x3C - orrs r0, r1 - strb r0, [r2, 0x3] - movs r0, 0x3E - adds r0, r2 - mov r10, r0 - ldrb r1, [r0] - movs r5, 0x5 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - mov r1, r10 - strb r0, [r1] - ldrb r1, [r2, 0x5] - lsrs r1, 4 - lsls r1, 5 - ldr r0, _08149FC4 - mov r10, r0 - add r1, r10 - add r0, sp, 0x4 - movs r2, 0x10 - str r3, [sp, 0x24] - bl CpuSet - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - ldr r3, [sp, 0x24] - adds r3, r1, r3 - ldr r0, _08149FC0 - str r0, [r3] - add r1, r9 - ldrb r0, [r1, 0x1] - ands r4, r0 - movs r0, 0x1 - orrs r4, r0 - strb r4, [r1, 0x1] - ldrb r0, [r1, 0x3] - movs r2, 0x3E - orrs r0, r2 - strb r0, [r1, 0x3] - adds r2, r1, 0 - adds r2, 0x3E - ldrb r0, [r2] - ands r5, r0 - strb r5, [r2] - ldrb r1, [r1, 0x5] - lsrs r1, 4 - lsls r1, 5 - add r1, r10 - add r0, sp, 0x4 - movs r2, 0x10 - bl CpuSet - movs r1, 0 - strh r1, [r6, 0x18] - mov r0, r8 - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08149FB0: .4byte sub_8149FC8 -_08149FB4: .4byte 0x00007fff -_08149FB8: .4byte gTasks -_08149FBC: .4byte gSprites -_08149FC0: .4byte nullsub_85 -_08149FC4: .4byte gPlttBufferFaded + 0x200 - thumb_func_end sub_8149E7C - - thumb_func_start sub_8149FC8 -sub_8149FC8: @ 8149FC8 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08149FE4 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x12] - movs r0, 0x8 - strh r0, [r1, 0x14] - ldr r0, _08149FE8 - str r0, [r1] - bx lr - .align 2, 0 -_08149FE4: .4byte gTasks -_08149FE8: .4byte sub_8149FEC - thumb_func_end sub_8149FC8 - - thumb_func_start sub_8149FEC -sub_8149FEC: @ 8149FEC - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _0814A00C - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r1 - movs r1, 0x18 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _0814A010 - adds r0, r3, 0 - bl sub_814A208 - b _0814A032 - .align 2, 0 -_0814A00C: .4byte gTasks -_0814A010: - ldrh r1, [r2, 0x14] - movs r4, 0x14 - ldrsh r0, [r2, r4] - cmp r0, 0x80 - bne _0814A022 - adds r0, r3, 0 - bl sub_814A158 - b _0814A032 -_0814A022: - adds r0, r1, 0x2 - strh r0, [r2, 0x14] - ldrh r0, [r2, 0x12] - movs r1, 0x1 - eors r0, r1 - strh r0, [r2, 0x12] - ldr r0, _0814A038 - str r0, [r2] -_0814A032: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814A038: .4byte sub_814A03C - thumb_func_end sub_8149FEC - - thumb_func_start sub_814A03C -sub_814A03C: @ 814A03C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _0814A060 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - movs r3, 0x18 - ldrsh r0, [r2, r3] - adds r5, r1, 0 - cmp r0, 0 - beq _0814A068 - ldr r0, _0814A064 - str r0, [r2] - b _0814A14C - .align 2, 0 -_0814A060: .4byte gTasks -_0814A064: .4byte sub_814A208 -_0814A068: - movs r6, 0 - movs r7, 0x12 - ldrsh r0, [r2, r7] - cmp r0, 0 - bne _0814A0B8 - movs r0, 0xE - ldrsh r1, [r2, r0] - movs r3, 0x14 - ldrsh r0, [r2, r3] - movs r3, 0x80 - lsls r3, 1 - subs r0, r3, r0 - cmp r1, r0 - bge _0814A08E - ldrh r0, [r2, 0x14] - ldrh r7, [r2, 0xE] - adds r0, r7 - strh r0, [r2, 0xE] - b _0814A092 -_0814A08E: - strh r3, [r2, 0xE] - movs r6, 0x1 -_0814A092: - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r5 - movs r0, 0x10 - ldrsh r1, [r3, r0] - movs r7, 0x14 - ldrsh r0, [r3, r7] - adds r0, 0x10 - cmp r1, r0 - ble _0814A0B2 - ldrh r0, [r3, 0x10] - ldrh r1, [r3, 0x14] - subs r0, r1 - strh r0, [r3, 0x10] - b _0814A102 -_0814A0B2: - movs r0, 0x10 - strh r0, [r3, 0x10] - b _0814A0FC -_0814A0B8: - movs r0, 0x10 - ldrsh r1, [r2, r0] - movs r3, 0x14 - ldrsh r0, [r2, r3] - movs r3, 0x80 - lsls r3, 1 - subs r0, r3, r0 - cmp r1, r0 - bge _0814A0D4 - ldrh r0, [r2, 0x14] - ldrh r7, [r2, 0x10] - adds r0, r7 - strh r0, [r2, 0x10] - b _0814A0D8 -_0814A0D4: - strh r3, [r2, 0x10] - movs r6, 0x1 -_0814A0D8: - lsls r2, r4, 2 - adds r0, r2, r4 - lsls r0, 3 - adds r3, r0, r5 - movs r0, 0xE - ldrsh r1, [r3, r0] - movs r7, 0x14 - ldrsh r0, [r3, r7] - adds r0, 0x10 - cmp r1, r0 - ble _0814A0F8 - ldrh r0, [r3, 0xE] - ldrh r1, [r3, 0x14] - subs r0, r1 - strh r0, [r3, 0xE] - b _0814A102 -_0814A0F8: - movs r0, 0x10 - strh r0, [r3, 0xE] -_0814A0FC: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0814A102: - adds r0, r2, r4 - lsls r0, 3 - adds r5, r0, r5 - movs r0, 0xE - ldrsh r1, [r5, r0] - movs r4, 0x80 - lsls r4, 9 - adds r0, r4, 0 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x1E - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - movs r3, 0x10 - ldrsh r1, [r5, r3] - adds r0, r4, 0 - bl __divsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - str r1, [sp] - movs r0, 0x1F - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - cmp r6, 0x2 - bne _0814A14C - ldr r0, _0814A154 - str r0, [r5] -_0814A14C: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814A154: .4byte sub_8149FEC - thumb_func_end sub_814A03C - - thumb_func_start sub_814A158 -sub_814A158: @ 814A158 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814A200 - mov r8, r1 - ldr r1, _0814A204 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x1] - movs r6, 0x4 - negs r6, r6 - adds r1, r6, 0 - ands r1, r3 - strb r1, [r2, 0x1] - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x3] - movs r5, 0x3F - negs r5, r5 - adds r1, r5, 0 - ands r1, r3 - strb r1, [r2, 0x3] - movs r1, 0xA - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - adds r1, 0x3E - ldrb r2, [r1] - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x1] - ands r6, r2 - strb r6, [r1, 0x1] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x3] - ands r5, r2 - strb r5, [r1, 0x3] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - ands r2, r3 - strb r2, [r1] - bl DestroyTask - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814A200: .4byte gSprites -_0814A204: .4byte gTasks - thumb_func_end sub_814A158 - - thumb_func_start sub_814A208 -sub_814A208: @ 814A208 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0814A2B0 - mov r8, r1 - ldr r1, _0814A2B4 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x1] - movs r6, 0x4 - negs r6, r6 - adds r1, r6, 0 - ands r1, r3 - strb r1, [r2, 0x1] - movs r2, 0xA - ldrsh r1, [r4, r2] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - add r2, r8 - ldrb r3, [r2, 0x3] - movs r5, 0x3F - negs r5, r5 - adds r1, r5, 0 - ands r1, r3 - strb r1, [r2, 0x3] - movs r1, 0xA - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - ands r2, r3 - strb r2, [r1] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x1] - ands r6, r2 - strb r6, [r1, 0x1] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - ldrb r2, [r1, 0x3] - ands r5, r2 - strb r5, [r1, 0x3] - movs r1, 0xC - ldrsh r2, [r4, r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - add r1, r8 - adds r1, 0x3E - ldrb r2, [r1] - movs r3, 0x4 - orrs r2, r3 - strb r2, [r1] - bl DestroyTask - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814A2B0: .4byte gSprites -_0814A2B4: .4byte gTasks - thumb_func_end sub_814A208 - - thumb_func_start sub_814A2B8 -sub_814A2B8: @ 814A2B8 - ldr r2, _0814A2CC - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - lsls r1, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - bx lr - .align 2, 0 -_0814A2CC: .4byte gUnknown_08417068 - thumb_func_end sub_814A2B8 - - thumb_func_start sub_814A2D0 -sub_814A2D0: @ 814A2D0 - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r2, _0814A2E8 - lsrs r0, 14 - adds r0, r2 - ldr r0, [r0] - lsls r2, r1, 1 - adds r2, r1 - lsls r2, 4 - adds r0, r2 - bx lr - .align 2, 0 -_0814A2E8: .4byte gBardMusicTable - thumb_func_end sub_814A2D0 - - thumb_func_start sub_814A2EC -sub_814A2EC: @ 814A2EC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - ldr r4, _0814A370 - adds r2, r1, 0 - adds r3, r6, 0 - adds r3, 0x18 - movs r7, 0x5 -_0814A306: - ldrb r0, [r2] - strh r0, [r3] - ldrb r0, [r2] - cmp r0, 0xFF - beq _0814A328 - movs r1, 0x1 - ldrsb r1, [r2, r1] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - adds r1, r0 - strh r1, [r3, 0x2] - ldrh r0, [r2, 0x4] - strh r0, [r3, 0x6] - ldrh r0, [r6, 0x4] - adds r0, r1 - strh r0, [r6, 0x4] -_0814A328: - adds r2, 0x8 - adds r3, 0x8 - subs r7, 0x1 - cmp r7, 0 - bge _0814A306 - movs r7, 0x6 - movs r5, 0 - movs r0, 0x1E - mov r8, r0 - adds r4, r6, 0 -_0814A33C: - mov r0, r8 - add r0, r9 - adds r1, r5, 0 - bl sub_814A2B8 - adds r1, r0, 0 - strh r1, [r4, 0x1C] - adds r4, 0x8 - adds r5, 0x1 - cmp r5, r7 - blt _0814A33C - ldrb r1, [r6] - adds r1, 0x1 - movs r2, 0 - strb r1, [r6] - strb r2, [r6, 0x1] - strb r2, [r6, 0x2] - strb r2, [r6, 0x3] - strh r2, [r6, 0xA] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0814A370: .4byte gUnknown_084170F4 - thumb_func_end sub_814A2EC - - thumb_func_start sub_814A374 -sub_814A374: @ 814A374 - push {lr} - ldr r0, _0814A38C - ldrb r0, [r0, 0x17] - bl is_light_level_1_2_3_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0814A390 - movs r0, 0 - b _0814A39E - .align 2, 0 -_0814A38C: .4byte gMapHeader -_0814A390: - ldr r1, _0814A3A4 - ldr r0, _0814A3A8 - str r0, [r1] - ldr r1, _0814A3AC - ldr r0, _0814A3B0 - str r0, [r1] - movs r0, 0x1 -_0814A39E: - pop {r1} - bx r1 - .align 2, 0 -_0814A3A4: .4byte gUnknown_0300485C -_0814A3A8: .4byte sub_808AB90 -_0814A3AC: .4byte gUnknown_03005CE4 -_0814A3B0: .4byte hm_teleport_run_dp02scr - thumb_func_end sub_814A374 - - thumb_func_start hm_teleport_run_dp02scr -hm_teleport_run_dp02scr: @ 814A3B4 - push {lr} - bl new_game - movs r0, 0x3F - bl FieldEffectStart - ldr r0, _0814A3CC - ldr r1, _0814A3D0 - ldrb r1, [r1] - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0814A3CC: .4byte gUnknown_0202FF84 -_0814A3D0: .4byte gUnknown_03005CE0 - thumb_func_end hm_teleport_run_dp02scr - - thumb_func_start sub_814A3D4 -sub_814A3D4: @ 814A3D4 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0814A3FC - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _0814A400 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0814A3FC: .4byte gTasks -_0814A400: .4byte sub_814A404 - thumb_func_end sub_814A3D4 - - thumb_func_start sub_814A404 -sub_814A404: @ 814A404 - push {lr} - movs r0, 0x3F - bl FieldEffectActiveListRemove - bl sub_8087BA8 - pop {r0} - bx r0 - thumb_func_end sub_814A404 - - thumb_func_start unref_sub_814A414 -unref_sub_814A414: @ 814A414 - push {lr} - sub sp, 0x8 - bl MenuZeroFillScreen - movs r0, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0x12 - bl MenuDrawTextWindow - ldr r3, _0814A458 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x8 - bl PrintMenuItems - movs r0, 0 - str r0, [sp] - movs r0, 0xF - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x8 - bl InitMenu - ldr r1, _0814A45C - ldr r0, _0814A460 - str r0, [r1] - movs r0, 0 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_0814A458: .4byte gUnknown_0842C29C -_0814A45C: .4byte gCallback_03004AE8 -_0814A460: .4byte sub_814A464 - thumb_func_end unref_sub_814A414 - - thumb_func_start sub_814A464 -sub_814A464: @ 814A464 - push {lr} - bl ProcessMenuInput - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - lsls r0, r2, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _0814A480 - movs r0, 0 - b _0814A4B2 -_0814A480: - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0814A4AC - ldr r0, _0814A4A0 - strb r2, [r0] - ldr r2, _0814A4A4 - ldr r0, _0814A4A8 - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - str r0, [r2] - movs r0, 0 - b _0814A4B2 - .align 2, 0 -_0814A4A0: .4byte gUnknown_02024D1E -_0814A4A4: .4byte gCallback_03004AE8 -_0814A4A8: .4byte gUnknown_0842C29C -_0814A4AC: - bl sub_8071C20 - movs r0, 0x1 -_0814A4B2: - pop {r1} - bx r1 - thumb_func_end sub_814A464 - - thumb_func_start sub_814A4B8 -sub_814A4B8: @ 814A4B8 - push {r4,lr} - ldr r2, _0814A4FC - ldr r1, _0814A500 - adds r0, r2, r1 - movs r1, 0x3 - strb r1, [r0] - ldr r3, _0814A504 - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _0814A508 - ldrb r0, [r3] - adds r0, 0x1 - ldr r4, _0814A50C - adds r1, r2, r4 - strh r0, [r1] - ldrb r0, [r3] - adds r0, 0x1 - ldr r3, _0814A510 - adds r1, r2, r3 - strh r0, [r1] - subs r4, 0x4 - adds r0, r2, r4 - movs r1, 0x1 - strh r1, [r0] - ldr r0, _0814A514 - adds r2, r0 - strh r1, [r2] - bl sub_8071C20 - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814A4FC: .4byte gSaveBlock2 -_0814A500: .4byte 0x00000556 -_0814A504: .4byte 0x00000557 -_0814A508: .4byte gUnknown_02024D1E -_0814A50C: .4byte 0x0000055c -_0814A510: .4byte 0x0000055e -_0814A514: .4byte 0x0000055a - thumb_func_end sub_814A4B8 - - thumb_func_start sub_814A518 -sub_814A518: @ 814A518 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl SkipExtCtrlCodes - adds r0, r4, 0 - bl StringLength - lsls r0, 24 - lsrs r1, r0, 24 - cmp r5, 0xFC - bne _0814A556 - cmp r1, 0x5 - bhi _0814A55A - movs r3, 0xFC - movs r2, 0x7 -_0814A53A: - adds r0, r4, r1 - strb r3, [r0] - strb r2, [r0, 0x1] - adds r0, r1, 0x2 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x5 - bls _0814A53A - b _0814A55A -_0814A54C: - adds r0, r4, r1 - strb r5, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 -_0814A556: - cmp r1, 0x5 - bls _0814A54C -_0814A55A: - adds r1, r4, r1 - movs r0, 0xFF - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_814A518 - - thumb_func_start sub_814A568 -sub_814A568: @ 814A568 - push {r4,lr} - adds r4, r0, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x5 - bhi _0814A582 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString - b _0814A588 -_0814A582: - adds r0, r4, 0 - bl SkipExtCtrlCodes -_0814A588: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_814A568 - - thumb_func_start sub_814A590 -sub_814A590: @ 814A590 - ldr r0, _0814A5AC - movs r1, 0x40 - strb r1, [r0] - ldr r0, _0814A5B0 - strb r1, [r0] - ldr r0, _0814A5B4 - strb r1, [r0] - ldr r0, _0814A5B8 - movs r1, 0 - strb r1, [r0] - ldr r0, _0814A5BC - strb r1, [r0] - bx lr - .align 2, 0 -_0814A5AC: .4byte gUnknown_0203A3D0 -_0814A5B0: .4byte gUnknown_0203A3D1 -_0814A5B4: .4byte gUnknown_0203A3D2 -_0814A5B8: .4byte gUnknown_0203A3D3 -_0814A5BC: .4byte gUnknown_0203A3D4 - thumb_func_end sub_814A590 - - thumb_func_start sub_814A5C0 -sub_814A5C0: @ 814A5C0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 16 - lsrs r7, r3, 16 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - ldr r0, _0814A678 - ldrb r0, [r0] - cmp r0, 0x40 - bne _0814A5F2 - ldr r0, _0814A67C - ldrb r0, [r0] - cmp r0, 0x40 - beq _0814A5F6 -_0814A5F2: - bl sub_814A7FC -_0814A5F6: - movs r4, 0x1 - ldr r0, _0814A680 - cmp r6, r0 - bne _0814A61C - ldr r1, _0814A684 - movs r0, 0xF - ands r0, r5 - lsls r0, 1 - adds r0, r1 - strh r7, [r0] - ldr r0, _0814A688 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0814A61C - ldr r6, _0814A68C - movs r4, 0 -_0814A61C: - movs r7, 0xF - adds r0, r5, 0 - ands r0, r7 - lsls r0, 3 - ldr r1, _0814A690 - adds r0, r1 - bl LoadSpriteSheetDeferred - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r4, _0814A694 - adds r0, r4 - movs r1, 0 - movs r2, 0xA0 - mov r3, r8 - bl CreateSprite - ldr r5, _0814A678 - strb r0, [r5] - adds r4, 0x30 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xA0 - mov r3, r8 - bl CreateSprite - ldr r1, _0814A67C - strb r0, [r1] - ldrb r0, [r5] - cmp r0, 0x40 - beq _0814A6AE - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A698 - adds r4, r0, r1 - ldr r0, _0814A680 - cmp r6, r0 - bne _0814A69C - ldrb r1, [r4, 0x5] - adds r0, r7, 0 - ands r0, r1 - strb r0, [r4, 0x5] - b _0814A6AE - .align 2, 0 -_0814A678: .4byte gUnknown_0203A3D0 -_0814A67C: .4byte gUnknown_0203A3D1 -_0814A680: .4byte 0x0000ffff -_0814A684: .4byte gUnknown_0203A360 -_0814A688: .4byte gUnknown_0842F240 -_0814A68C: .4byte 0x0000fff0 -_0814A690: .4byte gUnknown_0842F140 -_0814A694: .4byte gSpriteTemplate_842F250 -_0814A698: .4byte gSprites -_0814A69C: - adds r0, r6, 0 - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r4, 0x5] - adds r1, r7, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_0814A6AE: - ldr r1, _0814A6D4 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A72C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A6D8 - adds r4, r0, r1 - ldr r0, _0814A6DC - cmp r6, r0 - bne _0814A6E0 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - strb r0, [r4, 0x5] - b _0814A6F2 - .align 2, 0 -_0814A6D4: .4byte gUnknown_0203A3D1 -_0814A6D8: .4byte gSprites -_0814A6DC: .4byte 0x0000ffff -_0814A6E0: - adds r0, r6, 0 - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r4, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_0814A6F2: - movs r3, 0x80 - lsls r3, 19 - ldrh r1, [r3] - movs r0, 0xC0 - lsls r0, 7 - ands r0, r1 - cmp r0, 0 - bne _0814A70C - ldr r0, _0814A744 - ldrb r1, [r0] - movs r2, 0x1F - orrs r1, r2 - strb r1, [r0] -_0814A70C: - ldr r1, _0814A748 - ldrh r0, [r3] - lsrs r0, 15 - strb r0, [r1] - ldr r1, _0814A74C - ldr r2, _0814A750 - ldrb r0, [r2] - strb r0, [r1] - ldrh r0, [r3] - movs r4, 0x80 - lsls r4, 8 - adds r1, r4, 0 - orrs r0, r1 - strh r0, [r3] - movs r0, 0x10 - strb r0, [r2] -_0814A72C: - mov r0, r9 - bl sub_814A958 - ldr r0, _0814A754 - ldrb r0, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0814A744: .4byte REG_WINOUT -_0814A748: .4byte gUnknown_0203A3D3 -_0814A74C: .4byte gUnknown_0203A3D4 -_0814A750: .4byte 0x0400004b -_0814A754: .4byte gUnknown_0203A3D0 - thumb_func_end sub_814A5C0 - - thumb_func_start sub_814A758 -sub_814A758: @ 814A758 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - movs r1, 0 - movs r3, 0 - bl sub_814A5C0 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r4, 0x40 - beq _0814A79A - ldr r0, _0814A7A4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0814A7A8 - adds r1, r0 - lsls r3, r5, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0814A79A: - adds r0, r4, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0814A7A4: .4byte gUnknown_0203A3D0 -_0814A7A8: .4byte gSprites - thumb_func_end sub_814A758 - - thumb_func_start unref_sub_814A7AC -unref_sub_814A7AC: @ 814A7AC - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r7, r2, 24 - movs r3, 0 - movs r2, 0xF - movs r1, 0 - ldr r6, _0814A7F8 - movs r5, 0xF -_0814A7C6: - lsls r0, r1, 1 - adds r0, r6 - ldrh r0, [r0] - cmp r0, r4 - bne _0814A7DA - lsrs r0, r1, 4 - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, r1, 0 - ands r2, r5 -_0814A7DA: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xFF - bls _0814A7C6 - mov r0, r12 - adds r1, r3, 0 - adds r3, r7, 0 - bl sub_814A758 - lsls r0, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0814A7F8: .4byte gPlttBufferUnfaded - thumb_func_end unref_sub_814A7AC - - thumb_func_start sub_814A7FC -sub_814A7FC: @ 814A7FC - push {r4,lr} - ldr r4, _0814A860 - ldrb r0, [r4] - cmp r0, 0x40 - beq _0814A820 - ldr r0, _0814A864 - bl LoadTilesForSpriteSheet - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A868 - adds r0, r1 - bl DestroySpriteAndFreeResources - movs r0, 0x40 - strb r0, [r4] -_0814A820: - ldr r4, _0814A86C - ldrb r0, [r4] - cmp r0, 0x40 - beq _0814A858 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A868 - adds r0, r1 - bl DestroySpriteAndFreeResources - movs r0, 0x40 - strb r0, [r4] - ldr r0, _0814A870 - ldrb r0, [r0] - cmp r0, 0 - bne _0814A850 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0814A874 - ands r0, r1 - strh r0, [r2] -_0814A850: - ldr r0, _0814A878 - ldr r1, _0814A87C - ldrb r1, [r1] - strb r1, [r0] -_0814A858: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814A860: .4byte gUnknown_0203A3D0 -_0814A864: .4byte gUnknown_0842F140 -_0814A868: .4byte gSprites -_0814A86C: .4byte gUnknown_0203A3D1 -_0814A870: .4byte gUnknown_0203A3D3 -_0814A874: .4byte 0x00007fff -_0814A878: .4byte 0x0400004b -_0814A87C: .4byte gUnknown_0203A3D4 - thumb_func_end sub_814A7FC - - thumb_func_start sub_814A880 -sub_814A880: @ 814A880 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - lsls r1, 24 - lsrs r4, r1, 24 - adds r6, r4, 0 - ldr r1, _0814A8F8 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A8C0 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A8FC - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x28 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - strh r5, [r2, 0x20] - strh r4, [r2, 0x22] -_0814A8C0: - ldr r1, _0814A900 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A8F2 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A8FC - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x28 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - strh r7, [r2, 0x20] - strh r6, [r2, 0x22] -_0814A8F2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814A8F8: .4byte gUnknown_0203A3D0 -_0814A8FC: .4byte gSprites -_0814A900: .4byte gUnknown_0203A3D1 - thumb_func_end sub_814A880 - - thumb_func_start sub_814A904 -sub_814A904: @ 814A904 - push {lr} - ldr r1, _0814A94C - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A926 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A950 - adds r0, r1 - adds r2, r0, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0814A926: - ldr r1, _0814A954 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A946 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A950 - adds r0, r1 - adds r2, r0, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0814A946: - pop {r0} - bx r0 - .align 2, 0 -_0814A94C: .4byte gUnknown_0203A3D0 -_0814A950: .4byte gSprites -_0814A954: .4byte gUnknown_0203A3D1 - thumb_func_end sub_814A904 - - thumb_func_start sub_814A958 -sub_814A958: @ 814A958 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _0814A9C4 - ldr r2, _0814A9C8 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r1, 0x2 - str r0, [r4] - str r1, [r4, 0x4] - strh r2, [r4] - adds r4, 0x8 - movs r7, 0x1 - movs r2, 0x1 - ldr r1, [sp] - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _0814AA3A - ldr r0, _0814A9CC - mov r12, r0 - mov r8, r1 - movs r1, 0x8 - negs r1, r1 - mov r10, r1 - ldr r5, _0814A9D0 - mov r9, r5 -_0814A99E: - lsls r0, r3, 16 - asrs r3, r0, 16 - cmp r3, 0x1F - ble _0814A9D4 - mov r6, r12 - ldr r0, [r6] - ldr r1, [r6, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - strh r2, [r4] - lsls r0, r2, 16 - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - lsrs r2, r0, 16 - ldr r3, [sp] - lsls r5, r3, 16 - b _0814AA20 - .align 2, 0 -_0814A9C4: .4byte gSubspriteTable_203A380 -_0814A9C8: .4byte 0x0000ffff -_0814A9CC: .4byte gUnknown_0842F780 -_0814A9D0: .4byte gUnknown_0842F788 -_0814A9D4: - ldr r6, [sp] - lsls r5, r6, 16 - mov r0, r8 - cmp r0, 0x27 - ble _0814AA0A - cmp r3, 0x8 - ble _0814AA0A - mov r6, r12 - ldr r0, [r6] - ldr r1, [r6, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - lsls r1, r2, 16 - asrs r1, 16 - adds r2, r1, 0 - subs r2, 0x20 - adds r0, r3, 0 - mov r6, r10 - ands r0, r6 - adds r2, r0 - strh r2, [r4] - movs r0, 0x18 - ands r0, r3 - adds r1, r0 - lsls r1, 16 - lsrs r2, r1, 16 - b _0814AA20 -_0814AA0A: - mov r3, r9 - ldr r0, [r3] - ldr r1, [r3, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - strh r2, [r4] - lsls r0, r2, 16 - movs r6, 0x80 - lsls r6, 12 - adds r0, r6 - lsrs r2, r0, 16 -_0814AA20: - adds r4, 0x8 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - asrs r1, r5, 16 - lsls r0, r2, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - cmp r1, 0x7 - bgt _0814A99E -_0814AA3A: - ldr r5, _0814AAA8 - ldr r0, [r5] - ldr r1, [r5, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - lsls r1, r2, 16 - asrs r1, 16 - subs r1, 0x7 - lsls r0, r3, 16 - asrs r0, 16 - adds r0, r1 - strh r0, [r4] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, _0814AAAC - ldrb r0, [r6] - cmp r0, 0x40 - beq _0814AA78 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AAB0 - adds r2, r0, r1 - lsls r1, r7, 3 - ldr r0, _0814AAB4 - adds r1, r0 - adds r0, r2, 0 - bl SetSubspriteTables -_0814AA78: - ldr r1, _0814AAB8 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AA98 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AAB0 - adds r2, r0, r1 - lsls r1, r7, 3 - ldr r0, _0814AAB4 - adds r1, r0 - adds r0, r2, 0 - bl SetSubspriteTables -_0814AA98: - 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 -_0814AAA8: .4byte gUnknown_0842F790 -_0814AAAC: .4byte gUnknown_0203A3D0 -_0814AAB0: .4byte gSprites -_0814AAB4: .4byte gSubspriteTables_842F5C0 -_0814AAB8: .4byte gUnknown_0203A3D1 - thumb_func_end sub_814A958 - - thumb_func_start sub_814AABC -sub_814AABC: @ 814AABC - push {lr} - adds r2, r0, 0 - ldr r1, _0814AAEC - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AAD4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0814AAF0 - adds r1, r0 - str r2, [r1, 0x1C] -_0814AAD4: - ldr r1, _0814AAF4 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AAE8 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0814AAF0 - adds r1, r0 - str r2, [r1, 0x1C] -_0814AAE8: - pop {r0} - bx r0 - .align 2, 0 -_0814AAEC: .4byte gUnknown_0203A3D0 -_0814AAF0: .4byte gSprites -_0814AAF4: .4byte gUnknown_0203A3D1 - thumb_func_end sub_814AABC - - thumb_func_start sub_814AAF8 -sub_814AAF8: @ 814AAF8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - ldr r1, _0814AB70 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AB66 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AB74 - adds r4, r0, r1 - ldr r0, [r4, 0x14] - ldrh r1, [r0, 0x2] - ldr r0, _0814AB78 - cmp r1, r0 - bne _0814AB66 - movs r2, 0 - movs r3, 0xF - movs r1, 0 - ldrb r5, [r4, 0x5] - ldr r0, _0814AB7C - mov r8, r0 - ldr r7, _0814AB80 - movs r6, 0xF -_0814AB32: - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r12 - bne _0814AB46 - lsrs r0, r1, 4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r1, 0 - ands r3, r6 -_0814AB46: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xFF - bls _0814AB32 - lsls r2, 4 - movs r1, 0xF - adds r0, r1, 0 - ands r0, r5 - orrs r0, r2 - strb r0, [r4, 0x5] - ands r3, r1 - lsls r0, r3, 3 - add r0, r8 - bl RequestSpriteSheetCopy -_0814AB66: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814AB70: .4byte gUnknown_0203A3D0 -_0814AB74: .4byte gSprites -_0814AB78: .4byte 0x0000ffff -_0814AB7C: .4byte gUnknown_0842F140 -_0814AB80: .4byte gPlttBufferUnfaded - thumb_func_end sub_814AAF8 - - thumb_func_start sub_814AB84 -sub_814AB84: @ 814AB84 - push {r4,r5,lr} - ldr r5, _0814ABCC - ldrb r0, [r5] - cmp r0, 0x40 - beq _0814ABC4 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0814ABD0 - adds r4, r0 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - movs r0, 0x40 - strb r0, [r5] - ldr r0, _0814ABD4 - ldrb r0, [r0] - cmp r0, 0 - bne _0814ABBC - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0814ABD8 - ands r0, r1 - strh r0, [r2] -_0814ABBC: - ldr r0, _0814ABDC - ldr r1, _0814ABE0 - ldrb r1, [r1] - strb r1, [r0] -_0814ABC4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814ABCC: .4byte gUnknown_0203A3D1 -_0814ABD0: .4byte gSprites -_0814ABD4: .4byte gUnknown_0203A3D3 -_0814ABD8: .4byte 0x00007fff -_0814ABDC: .4byte 0x0400004b -_0814ABE0: .4byte gUnknown_0203A3D4 - thumb_func_end sub_814AB84 - - thumb_func_start unref_sub_814ABE4 -unref_sub_814ABE4: @ 814ABE4 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0814AC40 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _0814AC44 - movs r2, 0x28 - bl CpuSet - ldr r1, _0814AC48 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AC18 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AC4C - adds r2, r0, r1 - lsls r1, r4, 3 - ldr r0, _0814AC50 - adds r1, r0 - adds r0, r2, 0 - bl SetSubspriteTables -_0814AC18: - ldr r1, _0814AC54 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AC38 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AC4C - adds r2, r0, r1 - lsls r1, r4, 3 - ldr r0, _0814AC50 - adds r1, r0 - adds r0, r2, 0 - bl SetSubspriteTables -_0814AC38: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814AC40: .4byte gUnknown_0842F5BC -_0814AC44: .4byte gSubspriteTable_203A380 -_0814AC48: .4byte gUnknown_0203A3D0 -_0814AC4C: .4byte gSprites -_0814AC50: .4byte gUnknown_0842F758 -_0814AC54: .4byte gUnknown_0203A3D1 - thumb_func_end unref_sub_814ABE4 - - thumb_func_start sub_814AC58 -sub_814AC58: @ 814AC58 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 16 - lsrs r6, r3, 16 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - ldr r0, _0814ACF8 - ldrb r0, [r0] - cmp r0, 0x40 - beq _0814AC86 - bl sub_814AD44 -_0814AC86: - movs r4, 0x1 - ldr r0, _0814ACFC - cmp r5, r0 - bne _0814ACAC - ldr r1, _0814AD00 - movs r0, 0xF - ands r0, r7 - lsls r0, 1 - adds r0, r1 - strh r6, [r0] - ldr r0, _0814AD04 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0814ACAC - ldr r5, _0814AD08 - movs r4, 0 -_0814ACAC: - movs r6, 0xF - adds r0, r7, 0 - ands r0, r6 - lsls r0, 3 - ldr r1, _0814AD0C - adds r0, r1 - bl LoadSpriteSheetDeferred - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _0814AD10 - adds r0, r1 - movs r1, 0 - movs r2, 0xA0 - mov r3, r8 - bl CreateSprite - ldr r1, _0814ACF8 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0814AD2A - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AD14 - adds r4, r0, r1 - ldr r0, _0814ACFC - cmp r5, r0 - bne _0814AD18 - ldrb r1, [r4, 0x5] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r4, 0x5] - b _0814AD2A - .align 2, 0 -_0814ACF8: .4byte gUnknown_0203A3D2 -_0814ACFC: .4byte 0x0000ffff -_0814AD00: .4byte gUnknown_0203A360 -_0814AD04: .4byte gUnknown_0842F248 -_0814AD08: .4byte 0x0000fff1 -_0814AD0C: .4byte gUnknown_0842F1C0 -_0814AD10: .4byte gSpriteTemplate_842F298 -_0814AD14: .4byte gSprites -_0814AD18: - adds r0, r5, 0 - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r4, 0x5] - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_0814AD2A: - mov r0, r9 - bl sub_814ADF4 - ldr r0, _0814AD40 - ldrb r0, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0814AD40: .4byte gUnknown_0203A3D2 - thumb_func_end sub_814AC58 - - thumb_func_start sub_814AD44 -sub_814AD44: @ 814AD44 - push {r4,lr} - ldr r4, _0814AD70 - ldrb r0, [r4] - cmp r0, 0x40 - beq _0814AD68 - ldr r0, _0814AD74 - bl LoadTilesForSpriteSheet - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AD78 - adds r0, r1 - bl DestroySpriteAndFreeResources - movs r0, 0x40 - strb r0, [r4] -_0814AD68: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814AD70: .4byte gUnknown_0203A3D2 -_0814AD74: .4byte gUnknown_0842F1C0 -_0814AD78: .4byte gSprites - thumb_func_end sub_814AD44 - - thumb_func_start sub_814AD7C -sub_814AD7C: @ 814AD7C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r1, _0814ADC0 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814ADB8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814ADC4 - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x28 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - strh r5, [r2, 0x20] - strh r4, [r2, 0x22] -_0814ADB8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814ADC0: .4byte gUnknown_0203A3D2 -_0814ADC4: .4byte gSprites - thumb_func_end sub_814AD7C - - thumb_func_start sub_814ADC8 -sub_814ADC8: @ 814ADC8 - push {lr} - ldr r1, _0814ADEC - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814ADE8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814ADF0 - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0814ADE8: - pop {r0} - bx r0 - .align 2, 0 -_0814ADEC: .4byte gUnknown_0203A3D2 -_0814ADF0: .4byte gSprites - thumb_func_end sub_814ADC8 - - thumb_func_start sub_814ADF4 -sub_814ADF4: @ 814ADF4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x12 - bls _0814AE00 - movs r2, 0 -_0814AE00: - ldr r1, _0814AE24 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AE1E - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AE28 - adds r0, r1 - lsls r1, r2, 3 - ldr r2, _0814AE2C - adds r1, r2 - bl SetSubspriteTables -_0814AE1E: - pop {r0} - bx r0 - .align 2, 0 -_0814AE24: .4byte gUnknown_0203A3D2 -_0814AE28: .4byte gSprites -_0814AE2C: .4byte gUnknown_0842F6C0 - thumb_func_end sub_814ADF4 + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_813BA94.s b/asm/rom_813BA94.s new file mode 100644 index 000000000..5eb95092e --- /dev/null +++ b/asm/rom_813BA94.s @@ -0,0 +1,30707 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start task_intro_1 +task_intro_1: @ 813BA94 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0 + bl SetVBlankCallback + ldr r4, _0813BC18 + bl Random + movs r1, 0x1 + ands r1, r0 + strh r1, [r4] + bl intro_reset_and_hide_bgs + ldr r0, _0813BC1C + movs r6, 0 + strh r6, [r0] + ldr r1, _0813BC20 + movs r0, 0x50 + strh r0, [r1] + subs r1, 0x4 + movs r0, 0x18 + strh r0, [r1] + subs r1, 0x4 + movs r0, 0x28 + strh r0, [r1] + ldr r0, _0813BC24 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _0813BC28 + ldr r1, _0813BC2C + bl LZ77UnCompVram + ldr r1, _0813BC30 + add r0, sp, 0x8 + strh r6, [r0] + ldr r4, _0813BC34 + str r0, [r4] + str r1, [r4, 0x4] + ldr r5, _0813BC38 + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0813BC3C + ldr r1, _0813BC40 + bl LZ77UnCompVram + ldr r1, _0813BC44 + add r0, sp, 0x8 + strh r6, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0813BC48 + ldr r1, _0813BC4C + bl LZ77UnCompVram + ldr r1, _0813BC50 + add r0, sp, 0x8 + strh r6, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0813BC54 + ldr r1, _0813BC58 + bl LZ77UnCompVram + ldr r1, _0813BC5C + add r0, sp, 0x8 + strh r6, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, _0813BC60 + movs r5, 0x80 + lsls r5, 2 + movs r1, 0 + adds r2, r5, 0 + bl LoadPalette + ldr r1, _0813BC64 + ldr r2, _0813BC68 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r3, _0813BC6C + adds r0, r3, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _0813BC70 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + movs r3, 0x90 + lsls r3, 8 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _0813BC74 + bl LoadCompressedObjectPic + ldr r0, _0813BC78 + bl LoadCompressedObjectPic + ldr r0, _0813BC7C + bl LoadSpritePalettes + ldr r4, _0813BC80 + movs r0, 0xF0 + lsls r0, 1 + adds r1, r4, r0 + adds r0, r4, 0 + movs r2, 0x10 + bl CpuSet + movs r2, 0xE1 + lsls r2, 1 + adds r1, r4, r2 + adds r0, r4, 0 + movs r2, 0xF + bl CpuSet + movs r3, 0xD2 + lsls r3, 1 + adds r1, r4, r3 + adds r0, r4, 0 + movs r2, 0xE + bl CpuSet + movs r0, 0xC3 + lsls r0, 1 + adds r1, r4, r0 + adds r0, r4, 0 + movs r2, 0xD + bl CpuSet + movs r2, 0xB4 + lsls r2, 1 + adds r1, r4, r2 + adds r0, r4, 0 + movs r2, 0xC + bl CpuSet + movs r3, 0xA5 + lsls r3, 1 + adds r1, r4, r3 + adds r0, r4, 0 + movs r2, 0xB + bl CpuSet + movs r0, 0x96 + lsls r0, 1 + adds r1, r4, r0 + adds r0, r4, 0 + movs r2, 0xA + bl CpuSet + movs r1, 0xE + negs r1, r1 + movs r0, 0x78 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + movs r0, 0xEC + adds r2, r5, 0 + movs r3, 0x1 + bl sub_813D584 + ldr r2, _0813BC84 + mov r3, r8 + lsls r1, r3, 2 + add r1, r8 + lsls r1, 3 + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x8] + ldr r0, _0813BC88 + str r0, [r1] + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813BC18: .4byte gUnknown_02039318 +_0813BC1C: .4byte REG_BG3VOFS +_0813BC20: .4byte REG_BG2VOFS +_0813BC24: .4byte gUnknown_08407764 +_0813BC28: .4byte gUnknown_08406B74 +_0813BC2C: .4byte 0x06008000 +_0813BC30: .4byte 0x06008800 +_0813BC34: .4byte 0x040000d4 +_0813BC38: .4byte 0x81000400 +_0813BC3C: .4byte gUnknown_08406F28 +_0813BC40: .4byte 0x06009000 +_0813BC44: .4byte 0x06009800 +_0813BC48: .4byte gUnknown_0840725C +_0813BC4C: .4byte 0x0600a000 +_0813BC50: .4byte 0x0600a800 +_0813BC54: .4byte gUnknown_0840754C +_0813BC58: .4byte 0x0600b000 +_0813BC5C: .4byte 0x0600b800 +_0813BC60: .4byte gUnknown_08406974 +_0813BC64: .4byte REG_BG3CNT +_0813BC68: .4byte 0x00009603 +_0813BC6C: .4byte 0x00009402 +_0813BC70: .4byte 0x00009201 +_0813BC74: .4byte gUnknown_0840B008 +_0813BC78: .4byte gUnknown_0840B018 +_0813BC7C: .4byte gUnknown_0840B028 +_0813BC80: .4byte gPlttBufferUnfaded + 0x200 +_0813BC84: .4byte gTasks +_0813BC88: .4byte task_intro_2 + thumb_func_end task_intro_1 + + thumb_func_start task_intro_2 +task_intro_2: @ 813BC8C + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r5, 0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _0813BCE0 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0813BCE4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0813BCE8 + str r1, [r0] + ldr r0, _0813BCEC + str r5, [r0] + movs r0, 0xCF + lsls r0, 1 + bl m4aSongNumStart + bl ResetSerial + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813BCE0: .4byte sub_813B784 +_0813BCE4: .4byte gTasks +_0813BCE8: .4byte sub_813BCF0 +_0813BCEC: .4byte gUnknown_03005ED0 + thumb_func_end task_intro_2 + + thumb_func_start sub_813BCF0 +sub_813BCF0: @ 813BCF0 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r3, r0, 24 + adds r5, r3, 0 + ldr r4, _0813BDD4 + ldr r0, [r4] + cmp r0, 0x4C + bne _0813BD1E + ldr r2, _0813BDD8 + ldr r1, _0813BDDC + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r6, 0x8 + ldrsh r1, [r0, r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x2E] +_0813BD1E: + ldr r0, [r4] + cmp r0, 0xFB + bne _0813BD40 + ldr r2, _0813BDD8 + ldr r1, _0813BDDC + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r3, 0x8 + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0, 0x2E] +_0813BD40: + ldr r1, [r4] + movs r0, 0xB8 + lsls r0, 1 + cmp r1, r0 + bne _0813BD60 + movs r2, 0x80 + lsls r2, 3 + movs r0, 0x70 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0x30 + movs r1, 0 + movs r3, 0x5 + bl sub_813D584 +_0813BD60: + ldr r1, [r4] + movs r0, 0xC0 + lsls r0, 1 + cmp r1, r0 + bne _0813BD80 + movs r2, 0x80 + lsls r2, 3 + movs r0, 0x80 + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + movs r0, 0xC8 + movs r1, 0x3C + movs r3, 0x9 + bl sub_813D584 +_0813BD80: + ldr r1, [r4] + movs r0, 0x8C + lsls r0, 2 + cmp r1, r0 + bne _0813BDA0 + ldr r0, _0813BDE0 + movs r1, 0 + bl CreateTask + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + movs r0, 0x78 + movs r1, 0x50 + bl sub_813D954 +_0813BDA0: + ldr r1, [r4] + ldr r0, _0813BDE4 + cmp r1, r0 + bls _0813BDCA + ldr r1, _0813BDDC + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + movs r1, 0x50 + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + movs r1, 0x18 + strh r1, [r0, 0xE] + strh r2, [r0, 0x10] + movs r1, 0x28 + strh r1, [r0, 0x12] + strh r2, [r0, 0x14] + ldr r1, _0813BDE8 + str r1, [r0] +_0813BDCA: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813BDD4: .4byte gUnknown_03005ED0 +_0813BDD8: .4byte gSprites +_0813BDDC: .4byte gTasks +_0813BDE0: .4byte sub_813CCE8 +_0813BDE4: .4byte 0x000002e3 +_0813BDE8: .4byte task_intro_4 + thumb_func_end sub_813BCF0 + + thumb_func_start task_intro_4 +task_intro_4: @ 813BDEC + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r4, r2, 0 + ldr r0, _0813BE80 + ldr r3, [r0] + ldr r0, _0813BE84 + cmp r3, r0 + bhi _0813BEAC + ldr r0, _0813BE88 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + movs r2, 0xA + ldrsh r0, [r1, r2] + lsls r0, 16 + ldrh r2, [r1, 0xC] + adds r0, r2 + ldr r2, _0813BE8C + adds r0, r2 + asrs r2, r0, 16 + strh r2, [r1, 0xA] + strh r0, [r1, 0xC] + ldr r0, _0813BE90 + strh r2, [r0] + movs r2, 0xE + ldrsh r0, [r1, r2] + lsls r0, 16 + ldrh r2, [r1, 0x10] + adds r0, r2 + ldr r2, _0813BE94 + adds r0, r2 + asrs r2, r0, 16 + strh r2, [r1, 0xE] + strh r0, [r1, 0x10] + ldr r0, _0813BE98 + strh r2, [r0] + movs r2, 0x12 + ldrsh r0, [r1, r2] + lsls r0, 16 + ldrh r2, [r1, 0x14] + adds r0, r2 + ldr r2, _0813BE9C + adds r0, r2 + asrs r2, r0, 16 + strh r2, [r1, 0x12] + strh r0, [r1, 0x14] + ldr r0, _0813BEA0 + strh r2, [r0] + movs r0, 0xDC + lsls r0, 2 + cmp r3, r0 + bne _0813BED2 + ldr r0, _0813BEA4 + movs r1, 0xC8 + movs r2, 0xA0 + movs r3, 0xA + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0813BEA8 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + b _0813BED2 + .align 2, 0 +_0813BE80: .4byte gUnknown_03005ED0 +_0813BE84: .4byte 0x00000387 +_0813BE88: .4byte gTasks +_0813BE8C: .4byte 0xffff4000 +_0813BE90: .4byte REG_BG2VOFS +_0813BE94: .4byte 0xffff0000 +_0813BE98: .4byte REG_BG1VOFS +_0813BE9C: .4byte 0xfffe8000 +_0813BEA0: .4byte REG_BG0VOFS +_0813BEA4: .4byte gSpriteTemplate_840AFF0 +_0813BEA8: .4byte gSprites +_0813BEAC: + ldr r0, _0813BEDC + cmp r3, r0 + bls _0813BED2 + movs r0, 0x1 + negs r0, r0 + ldr r1, _0813BEE0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0813BEE4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0813BEE8 + str r1, [r0] +_0813BED2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813BEDC: .4byte 0x000003ef +_0813BEE0: .4byte 0x0000ffff +_0813BEE4: .4byte gTasks +_0813BEE8: .4byte sub_813BEEC + thumb_func_end task_intro_4 + + thumb_func_start sub_813BEEC +sub_813BEEC: @ 813BEEC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0813BF10 + ldr r1, [r0] + ldr r0, _0813BF14 + cmp r1, r0 + bls _0813BF0A + ldr r0, _0813BF18 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _0813BF1C + str r0, [r1] +_0813BF0A: + pop {r0} + bx r0 + .align 2, 0 +_0813BF10: .4byte gUnknown_03005ED0 +_0813BF14: .4byte 0x00000402 +_0813BF18: .4byte gTasks +_0813BF1C: .4byte task_intro_6 + thumb_func_end sub_813BEEC + + thumb_func_start task_intro_6 +task_intro_6: @ 813BF20 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl intro_reset_and_hide_bgs + movs r0, 0 + bl SetVBlankCallback + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0813BF60 + movs r1, 0 + strh r1, [r0] + ldr r0, _0813BF64 + strh r1, [r0] + .ifdef SAPPHIRE + movs r0, 0 + .else + movs r0, 0x1 + .endif + bl load_intro_part2_graphics + ldr r1, _0813BF68 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0813BF6C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813BF60: .4byte gUnknown_02039358 +_0813BF64: .4byte gUnknown_0203935A +_0813BF68: .4byte gTasks +_0813BF6C: .4byte sub_813BF70 + thumb_func_end task_intro_6 + + thumb_func_start sub_813BF70 +sub_813BF70: @ 813BF70 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _0813BF88 + ldrh r0, [r0] + cmp r0, 0 + bne _0813BF90 + ldr r0, _0813BF8C + bl LoadCompressedObjectPic + b _0813BF96 + .align 2, 0 +_0813BF88: .4byte gUnknown_02039318 +_0813BF8C: .4byte gIntro2BrendanSpriteSheet +_0813BF90: + ldr r0, _0813BFBC + bl LoadCompressedObjectPic +_0813BF96: + ldr r0, _0813BFC0 + bl LoadCompressedObjectPic + ldr r0, _0813BFC4 + bl LoadCompressedObjectPic + ldr r0, _0813BFC8 + bl LoadSpritePalettes + ldr r0, _0813BFCC + ldrh r0, [r0] + cmp r0, 0 + bne _0813BFD0 + movs r0, 0x88 + lsls r0, 1 + movs r1, 0x64 + bl sub_8149310 + b _0813BFDA + .align 2, 0 +_0813BFBC: .4byte gIntro2MaySpriteSheet +_0813BFC0: .4byte gIntro2BicycleSpriteSheet + .ifdef SAPPHIRE +_0813BFC4: .4byte gIntro2LatiasSpriteSheet + .else +_0813BFC4: .4byte gIntro2LatiosSpriteSheet + .endif +_0813BFC8: .4byte gIntro2SpritePalettes +_0813BFCC: .4byte gUnknown_02039318 +_0813BFD0: + movs r0, 0x88 + lsls r0, 1 + movs r1, 0x64 + bl sub_8149368 +_0813BFDA: + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _0813C060 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r5, r2, 0 + adds r5, 0x1C + adds r3, r0, r5 + ldr r1, _0813C064 + str r1, [r3] + adds r2, 0x8 + adds r0, r2 + ldr r1, _0813C068 + str r1, [r0] + ldr r0, _0813C06C + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + strh r6, [r4, 0xA] + movs r0, 0x40 + negs r0, r0 + movs r1, 0x3C + .ifdef SAPPHIRE + bl sapphire_sub_81494A0 + .else + bl sub_8149424 + .endif + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r5 + ldr r1, _0813C070 + str r1, [r0] + strh r6, [r4, 0xC] + movs r0, 0x1 + negs r0, r0 + ldr r1, _0813C074 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _0813C078 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 7 + .ifdef SAPPHIRE + movs r0, 0 + movs r2, 0x40 + .else + movs r2, 0x80 + lsls r2, 3 + movs r0, 0x1 + .endif + movs r3, 0x10 + bl sub_8148EC0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x8] + .ifdef SAPPHIRE + movs r0, 0 + .else + movs r0, 0x1 + .endif + bl sub_8148C78 + ldr r0, _0813C07C + str r0, [r4] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813C060: .4byte gSprites +_0813C064: .4byte sub_813D788 +_0813C068: .4byte gUnknown_0840AE80 +_0813C06C: .4byte gTasks +_0813C070: .4byte sub_813D880 +_0813C074: .4byte 0x0000ffff +_0813C078: .4byte sub_813B784 +_0813C07C: .4byte sub_813C080 + thumb_func_end sub_813BF70 + + thumb_func_start sub_813C080 +sub_813C080: @ 813C080 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r5, _0813C1BC + ldr r1, [r5] + ldr r0, _0813C1C0 + cmp r1, r0 + bls _0813C0B4 + movs r0, 0x1 + negs r0, r0 + ldr r1, _0813C1C4 + str r1, [sp] + movs r1, 0x10 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0813C1C8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0813C1CC + str r1, [r0] +_0813C0B4: + ldr r1, [r5] + ldr r0, _0813C1D0 + ldr r3, _0813C1C8 + cmp r1, r0 + bne _0813C0D8 + ldr r2, _0813C1D4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r3 + movs r7, 0xA + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x2E] +_0813C0D8: + ldr r1, [r5] + ldr r0, _0813C1D8 + cmp r1, r0 + bne _0813C0FA + ldr r2, _0813C1D4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r3 + movs r7, 0xA + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x2E] +_0813C0FA: + ldr r1, [r5] + ldr r0, _0813C1DC + cmp r1, r0 + bne _0813C11C + ldr r2, _0813C1D4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r3 + movs r7, 0xC + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x2E] +_0813C11C: + ldr r1, [r5] + ldr r0, _0813C1E0 + cmp r1, r0 + bne _0813C13E + ldr r2, _0813C1D4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r3 + movs r7, 0xA + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0, 0x2E] +_0813C13E: + ldr r1, [r5] + ldr r0, _0813C1E4 + cmp r1, r0 + bne _0813C160 + ldr r2, _0813C1D4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r3 + movs r7, 0xA + ldrsh r1, [r0, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x3 + strh r1, [r0, 0x2E] +_0813C160: + ldr r1, [r5] + ldr r0, _0813C1E8 + cmp r1, r0 + bne _0813C182 + ldr r2, _0813C1D4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r3 + movs r4, 0xA + ldrsh r1, [r0, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x4 + strh r1, [r0, 0x2E] +_0813C182: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r3 + ldrh r0, [r4, 0xE] + lsls r0, 16 + asrs r0, 18 + movs r1, 0x7F + ands r0, r1 + movs r1, 0x30 + bl Sin + ldr r1, _0813C1EC + strh r0, [r1] + ldrh r2, [r4, 0xE] + movs r7, 0xE + ldrsh r1, [r4, r7] + ldr r0, _0813C1F0 + cmp r1, r0 + bgt _0813C1AE + adds r0, r2, 0x1 + strh r0, [r4, 0xE] +_0813C1AE: + .ifdef SAPPHIRE + movs r0, 0 + .else + movs r0, 0x1 + .endif + bl sub_8149020 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813C1BC: .4byte gUnknown_03005ED0 +_0813C1C0: .4byte 0x0000071f +_0813C1C4: .4byte 0x0000ffff +_0813C1C8: .4byte gTasks +_0813C1CC: .4byte sub_813C1F4 +_0813C1D0: .4byte 0x00000455 +_0813C1D4: .4byte gSprites +_0813C1D8: .4byte 0x000004be +_0813C1DC: .4byte 0x00000572 +_0813C1E0: .4byte 0x00000576 +_0813C1E4: .4byte 0x00000632 +_0813C1E8: .4byte 0x000006bf +_0813C1EC: .4byte gUnknown_0203935A +_0813C1F0: .4byte 0x000001ff + thumb_func_end sub_813C080 + + thumb_func_start sub_813C1F4 +sub_813C1F4: @ 813C1F4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0813C220 + ldr r1, [r0] + ldr r0, _0813C224 + cmp r1, r0 + bls _0813C218 + ldr r0, _0813C228 + lsls r4, r2, 2 + adds r4, r2 + lsls r4, 3 + adds r4, r0 + ldrb r0, [r4, 0x8] + bl DestroyTask + ldr r0, _0813C22C + str r0, [r4] +_0813C218: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C220: .4byte gUnknown_03005ED0 +_0813C224: .4byte 0x00000814 +_0813C228: .4byte gTasks +_0813C22C: .4byte task_intro_10 + thumb_func_end sub_813C1F4 + + thumb_func_start task_intro_10 +task_intro_10: @ 813C230 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl intro_reset_and_hide_bgs + ldr r0, _0813C2C0 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _0813C2C4 + ldr r1, _0813C2C8 + bl LZ77UnCompVram + ldr r0, _0813C2CC + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl LoadPalette + ldr r0, _0813C2D0 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r5, 0 + strh r5, [r4, 0x8] + strh r5, [r4, 0xA] + strh r5, [r4, 0xC] + strh r5, [r4, 0xE] + movs r0, 0x78 + movs r1, 0x50 + movs r2, 0 + movs r3, 0 + bl sub_813CE30 + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, 0x1 + negs r0, r0 + ldr r1, _0813C2D4 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _0813C2D8 + ldr r2, _0813C2DC + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xC + ldr r2, _0813C2E0 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0813C2E4 + str r0, [r4] + ldr r0, _0813C2E8 + str r5, [r0] + movs r0, 0xDD + lsls r0, 1 + bl m4aSongNumStart + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813C2C0: .4byte gUnknown_08409C04 +_0813C2C4: .4byte gUnknown_08409AD4 +_0813C2C8: .4byte 0x06004000 +_0813C2CC: .4byte gUnknown_084098D4 +_0813C2D0: .4byte gTasks +_0813C2D4: .4byte 0x0000ffff +_0813C2D8: .4byte REG_BG2CNT +_0813C2DC: .4byte 0x00004883 +_0813C2E0: .4byte 0x00001441 +_0813C2E4: .4byte task_intro_11 +_0813C2E8: .4byte gUnknown_03005ED0 + thumb_func_end task_intro_10 + + thumb_func_start task_intro_11 +task_intro_11: @ 813C2EC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _0813C324 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r2 + movs r1, 0x80 + lsls r1, 3 + adds r0, r1, 0 + ldrh r1, [r3, 0x8] + adds r0, r1 + strh r0, [r3, 0x8] + ldrh r4, [r3, 0xA] + movs r0, 0xA + ldrsh r1, [r3, r0] + ldr r0, _0813C328 + cmp r1, r0 + bgt _0813C32C + ldrh r0, [r3, 0xC] + adds r1, r4, r0 + strh r1, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xC] + b _0813C330 + .align 2, 0 +_0813C324: .4byte gTasks +_0813C328: .4byte 0x000006bf +_0813C32C: + ldr r0, _0813C378 + str r0, [r3] +_0813C330: + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r2 + movs r0, 0xA + ldrsh r1, [r4, r0] + movs r0, 0x80 + lsls r0, 9 + bl __divsi3 + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + ldrh r3, [r4, 0x8] + movs r0, 0x78 + movs r1, 0x50 + bl sub_813CE30 + ldr r0, _0813C37C + ldr r0, [r0] + cmp r0, 0x2C + bne _0813C36E + movs r0, 0x1 + negs r0, r0 + ldr r1, _0813C380 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_0813C36E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813C378: .4byte sub_813C384 +_0813C37C: .4byte gUnknown_03005ED0 +_0813C380: .4byte 0x0000ffff + thumb_func_end task_intro_11 + + thumb_func_start sub_813C384 +sub_813C384: @ 813C384 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0813C3A4 + ldr r0, [r0] + cmp r0, 0x3B + bls _0813C3A0 + ldr r0, _0813C3A8 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _0813C3AC + str r0, [r1] +_0813C3A0: + pop {r0} + bx r0 + .align 2, 0 +_0813C3A4: .4byte gUnknown_03005ED0 +_0813C3A8: .4byte gTasks +_0813C3AC: .4byte sub_813C3B0 + thumb_func_end sub_813C384 + + thumb_func_start sub_813C3B0 +sub_813C3B0: @ 813C3B0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + bl intro_reset_and_hide_bgs + movs r1, 0 + ldr r2, _0813C4E4 + movs r7, 0 + adds r6, r2, 0 + adds r6, 0x20 + adds r5, r2, 0 + adds r5, 0x40 + mov r12, r2 + movs r4, 0x11 + movs r3, 0x22 +_0813C3D4: + adds r0, r1, r2 + strb r7, [r0] + adds r0, r1, r6 + strb r4, [r0] + adds r0, r1, r5 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x1F + bls _0813C3D4 + movs r1, 0xC0 + lsls r1, 19 + ldr r0, _0813C4E8 + mov r2, r12 + str r2, [r0] + str r1, [r0, 0x4] + ldr r1, _0813C4EC + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + movs r1, 0 + ldr r5, _0813C4F0 + ldr r6, _0813C4F4 + mov r0, r8 + lsls r7, r0, 2 + ldr r4, _0813C4F8 + ldr r2, _0813C4FC + adds r3, r2, 0 + ldr r2, _0813C500 +_0813C40E: + lsls r0, r1, 1 + adds r0, r4 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bls _0813C40E + movs r1, 0 + ldr r3, _0813C504 + ldr r0, _0813C508 + adds r2, r0, 0 +_0813C426: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x7F + bls _0813C426 + movs r1, 0 + ldr r4, _0813C50C + movs r2, 0xF0 + lsls r2, 8 + adds r3, r2, 0 + ldr r2, _0813C510 +_0813C442: + lsls r0, r1, 1 + adds r0, r4 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bls _0813C442 + movs r1, 0 + ldr r3, _0813C514 + ldr r0, _0813C508 + adds r2, r0, 0 +_0813C45A: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x7F + bls _0813C45A + movs r0, 0xF0 + lsls r0, 1 + adds r2, r5, r0 + movs r4, 0 + ldr r1, _0813C518 + strh r1, [r2] + adds r0, r6, r0 + strh r1, [r0] + movs r0, 0x1 + bl sub_813D084 + movs r0, 0xF2 + lsls r0, 1 + adds r1, r5, r0 + strh r4, [r1] + adds r0, r6, r0 + strh r4, [r0] + ldr r0, _0813C51C + ldr r1, _0813C520 + bl LZ77UnCompVram + ldr r0, _0813C524 + ldr r1, _0813C528 + bl LZ77UnCompVram + ldr r0, _0813C52C + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _0813C530 + movs r0, 0x8 + strb r0, [r1] + ldr r0, _0813C534 + bl LoadCompressedObjectPic + ldr r0, _0813C538 + bl LoadCompressedObjectPic + ldr r0, _0813C53C + bl LoadCompressedObjectPalette + ldr r0, _0813C540 + bl LoadSpritePalettes + ldr r1, _0813C544 + mov r2, r8 + adds r0, r7, r2 + lsls r0, 3 + adds r0, r1 + ldr r1, _0813C548 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813C4E4: .4byte 0x02000000 +_0813C4E8: .4byte 0x040000d4 +_0813C4EC: .4byte 0x80000030 +_0813C4F0: .4byte gPlttBufferUnfaded +_0813C4F4: .4byte gPlttBufferFaded +_0813C4F8: .4byte 0x06003000 +_0813C4FC: .4byte 0x0000f001 +_0813C500: .4byte 0x0000027f +_0813C504: .4byte 0x06003800 +_0813C508: .4byte 0x0000f002 +_0813C50C: .4byte 0x06003900 +_0813C510: .4byte 0x0000017f +_0813C514: .4byte 0x06003c00 +_0813C518: .4byte 0x00007fff +_0813C51C: .4byte gUnknown_0840A778 +_0813C520: .4byte 0x06004000 +_0813C524: .4byte gUnknown_0840A7E4 +_0813C528: .4byte 0x06007000 +_0813C52C: .4byte gUnknown_0840A758 +_0813C530: .4byte gReservedSpritePaletteCount +_0813C534: .4byte gUnknown_0840B20C +_0813C538: .4byte gUnknown_0840B21C +_0813C53C: .4byte gUnknown_0840B22C +_0813C540: .4byte gUnknown_0840B23C +_0813C544: .4byte gTasks +_0813C548: .4byte sub_813C54C + thumb_func_end sub_813C3B0 + + thumb_func_start sub_813C54C +sub_813C54C: @ 813C54C + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _0813C5BC + movs r0, 0xF0 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0xA0 + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x1C + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x1D + strh r0, [r1] + subs r1, 0x3C + ldr r2, _0813C5C0 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x6 + adds r2, 0xFD + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x8 + movs r2, 0xE5 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0813C5C4 + movs r1, 0 + bl CreateTask + ldr r5, _0813C5C8 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0 + strh r0, [r1, 0x26] + movs r0, 0x26 + ldrsh r2, [r1, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r5 + strh r3, [r0, 0x8] + strh r3, [r1, 0x8] + ldr r0, _0813C5CC + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813C5BC: .4byte REG_WIN0H +_0813C5C0: .4byte 0x00000603 +_0813C5C4: .4byte sub_813CAF4 +_0813C5C8: .4byte gTasks +_0813C5CC: .4byte sub_813C5D0 + thumb_func_end sub_813C54C + + thumb_func_start sub_813C5D0 +sub_813C5D0: @ 813C5D0 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0813C600 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r1, [r3, 0x8] + movs r2, 0x8 + ldrsh r0, [r3, r2] + cmp r0, 0x20 + beq _0813C608 + adds r0, r1, 0x4 + strh r0, [r3, 0x8] + ldr r2, _0813C604 + movs r4, 0x8 + ldrsh r0, [r3, r4] + lsls r0, 8 + subs r1, 0x9C + subs r0, r1 + strh r0, [r2] + b _0813C616 + .align 2, 0 +_0813C600: .4byte gTasks +_0813C604: .4byte REG_WIN0V +_0813C608: + ldr r0, _0813C61C + movs r2, 0x82 + lsls r2, 6 + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _0813C620 + str r0, [r3] +_0813C616: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813C61C: .4byte REG_WIN0V +_0813C620: .4byte sub_813C624 + thumb_func_end sub_813C5D0 + + thumb_func_start sub_813C624 +sub_813C624: @ 813C624 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0813C638 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _0813C63C + str r0, [r1] + bx lr + .align 2, 0 +_0813C638: .4byte gTasks +_0813C63C: .4byte sub_813C640 + thumb_func_end sub_813C624 + + thumb_func_start sub_813C640 +sub_813C640: @ 813C640 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0813C65C + movs r1, 0 + strh r1, [r2] + ldr r2, _0813C660 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _0813C664 + str r0, [r1] + bx lr + .align 2, 0 +_0813C65C: .4byte gUnknown_0203931A +_0813C660: .4byte gTasks +_0813C664: .4byte sub_813C668 + thumb_func_end sub_813C640 + + thumb_func_start sub_813C668 +sub_813C668: @ 813C668 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _0813CA24 + mov r8, r0 + ldr r0, [r0] + cmp r0, 0x50 + bne _0813C6AC + ldr r0, _0813CA28 + movs r4, 0x1 + str r4, [sp] + movs r1, 0xF0 + movs r2, 0xA0 + movs r3, 0x5 + bl sub_813CE88 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, _0813CA2C + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _0813CA30 + str r2, [r1] + adds r0, r3 + movs r1, 0 + strh r4, [r0, 0x30] + strh r1, [r0, 0x32] +_0813C6AC: + mov r1, r8 + ldr r0, [r1] + cmp r0, 0x98 + bne _0813C6E2 + ldr r0, _0813CA34 + movs r4, 0x1 + str r4, [sp] + movs r1, 0 + movs r2, 0xA0 + movs r3, 0x4 + bl sub_813CE88 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r3, _0813CA2C + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, r3, 0 + adds r1, 0x1C + adds r1, r0, r1 + ldr r2, _0813CA30 + str r2, [r1] + adds r0, r3 + movs r1, 0x2 + strh r1, [r0, 0x30] + strh r4, [r0, 0x32] +_0813C6E2: + mov r3, r8 + ldr r0, [r3] + cmp r0, 0xDB + bne _0813C720 + movs r0, 0 + bl sub_813D084 + ldr r0, _0813CA38 + ldrh r0, [r0] + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x60 + movs r3, 0x6 + bl sub_813CFA8 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0813CA2C + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0813CA3C + str r1, [r0] + ldr r1, _0813CA40 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0xA] +_0813C720: + mov r0, r8 + ldr r1, [r0] + movs r0, 0x98 + lsls r0, 1 + cmp r1, r0 + bne _0813C758 + ldr r3, _0813CA40 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r3 + movs r0, 0x26 + ldrsh r2, [r1, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r3 + movs r2, 0x4 + strh r2, [r0, 0x8] + ldr r2, _0813CA2C + movs r3, 0xA + ldrsh r1, [r1, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0, 0x2E] +_0813C758: + mov r0, r8 + ldr r1, [r0] + movs r0, 0xC0 + lsls r0, 1 + cmp r1, r0 + bne _0813C790 + ldr r3, _0813CA40 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r3 + movs r0, 0x26 + ldrsh r2, [r1, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r3 + movs r2, 0 + strh r2, [r0, 0x8] + ldr r2, _0813CA2C + movs r3, 0xA + ldrsh r1, [r1, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x4 + strh r1, [r0, 0x2E] +_0813C790: + mov r0, r8 + ldr r1, [r0] + movs r0, 0xC8 + lsls r0, 1 + cmp r1, r0 + bne _0813C7AE + movs r0, 0xFF + lsls r0, 16 + ldr r1, _0813CA44 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_0813C7AE: + mov r3, r8 + ldr r1, [r3] + movs r0, 0xD8 + lsls r0, 1 + cmp r1, r0 + bne _0813C7D6 + ldr r2, _0813CA2C + ldr r1, _0813CA40 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r3, 0xA + ldrsh r1, [r0, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strh r1, [r0, 0x2E] +_0813C7D6: + mov r0, r8 + ldr r1, [r0] + movs r0, 0xE7 + lsls r0, 1 + cmp r1, r0 + bne _0813C80E + ldr r3, _0813CA2C + ldr r4, _0813CA40 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r4 + movs r0, 0xA + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x6 + strh r2, [r0, 0x2E] + movs r3, 0x26 + ldrsh r1, [r1, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x8] +_0813C80E: + mov r0, r8 + ldr r1, [r0] + ldr r0, _0813CA48 + cmp r1, r0 + bne _0813C854 + movs r0, 0x1 + bl sub_813D084 + ldr r0, _0813CA28 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xD0 + movs r2, 0x8 + movs r3, 0x5 + bl sub_813CE88 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0813CA2C + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0813CA4C + str r1, [r0] + ldr r1, _0813CA40 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0xC] + adds r0, r2, 0 + bl sub_813E7C0 +_0813C854: + mov r3, r8 + ldr r1, [r3] + ldr r0, _0813CA50 + cmp r1, r0 + bne _0813C894 + subs r0, 0xB2 + movs r1, 0x1 + str r1, [sp] + movs r1, 0xF8 + movs r2, 0x10 + movs r3, 0x4 + bl sub_813CE88 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0813CA2C + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0813CA4C + str r1, [r0] + ldr r1, _0813CA40 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0xE] + adds r0, r2, 0 + bl sub_813E930 +_0813C894: + mov r0, r8 + ldr r1, [r0] + ldr r0, _0813CA54 + cmp r1, r0 + bne _0813C8D8 + ldr r4, _0813CA2C + ldr r5, _0813CA40 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r5 + movs r3, 0xC + ldrsh r2, [r1, r3] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + movs r3, 0x2 + strh r3, [r0, 0x2E] + movs r0, 0xE + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + strh r3, [r0, 0x2E] + movs r3, 0x26 + ldrsh r1, [r1, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r5 + movs r1, 0x3 + strh r1, [r0, 0x8] +_0813C8D8: + mov r0, r8 + ldr r1, [r0] + movs r0, 0x9C + lsls r0, 2 + cmp r1, r0 + bne _0813C920 + movs r0, 0 + bl sub_813D084 + ldr r0, _0813CA58 + movs r1, 0 + str r1, [sp] + movs r1, 0x20 + movs r2, 0x98 + movs r3, 0 + bl sub_813CE88 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0813CA2C + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0813CA5C + str r1, [r0] + ldr r1, _0813CA40 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x10] + adds r0, r2, 0 + bl sub_813EDBC +_0813C920: + mov r3, r8 + ldr r1, [r3] + movs r0, 0xAF + lsls r0, 2 + cmp r1, r0 + bne _0813C966 + movs r0, 0x8C + lsls r0, 1 + movs r1, 0x8 + negs r1, r1 + movs r2, 0 + str r2, [sp] + movs r2, 0x90 + movs r3, 0x1 + bl sub_813CE88 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0813CA2C + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0813CA5C + str r1, [r0] + ldr r1, _0813CA40 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x12] + adds r0, r2, 0 + bl sub_813EB4C +_0813C966: + mov r0, r8 + ldr r1, [r0] + movs r0, 0xC2 + lsls r0, 2 + cmp r1, r0 + bne _0813C9B2 + ldr r1, _0813CA60 + movs r0, 0x1 + strh r0, [r1] + ldr r4, _0813CA2C + ldr r6, _0813CA40 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r6 + movs r3, 0x10 + ldrsh r2, [r1, r3] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + movs r5, 0 + movs r3, 0x2 + strh r3, [r0, 0x2E] + movs r0, 0x12 + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + strh r3, [r0, 0x2E] + movs r3, 0x26 + ldrsh r1, [r1, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r5, [r0, 0x8] +_0813C9B2: + mov r0, r8 + ldr r1, [r0] + ldr r0, _0813CA64 + cmp r1, r0 + bne _0813CA76 + movs r0, 0x2 + bl sub_813D084 + ldr r4, _0813CA2C + ldr r0, _0813CA40 + lsls r2, r7, 2 + adds r2, r7 + lsls r2, 3 + adds r2, r0 + movs r3, 0xC + ldrsh r1, [r2, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r3, 0x3 + strh r3, [r0, 0x2E] + movs r0, 0xE + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r3, [r0, 0x2E] + movs r0, 0x10 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r3, [r0, 0x2E] + movs r0, 0x12 + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r3, [r0, 0x2E] + ldr r0, _0813CA68 + movs r1, 0x78 + movs r2, 0x50 + movs r3, 0xF + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + b _0813CA6C + .align 2, 0 +_0813CA24: .4byte gUnknown_03005ED0 +_0813CA28: .4byte 0x0000014b +_0813CA2C: .4byte gSprites +_0813CA30: .4byte sub_813DB9C +_0813CA34: .4byte 0x00000169 +_0813CA38: .4byte gUnknown_02039318 +_0813CA3C: .4byte sub_813DE70 +_0813CA40: .4byte gTasks +_0813CA44: .4byte 0x00007eff +_0813CA48: .4byte 0x000001cf +_0813CA4C: .4byte sub_813E10C +_0813CA50: .4byte 0x0000021b +_0813CA54: .4byte 0x0000026f +_0813CA58: .4byte 0x0000011b +_0813CA5C: .4byte sub_813E210 +_0813CA60: .4byte gUnknown_0203931A +_0813CA64: .4byte 0x0000030d +_0813CA68: .4byte gSpriteTemplate_840B1F4 +_0813CA6C: + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0813CA76: + mov r3, r8 + ldr r1, [r3] + movs r0, 0xC8 + lsls r0, 2 + cmp r1, r0 + bne _0813CA88 + movs r0, 0x67 + bl PlaySE +_0813CA88: + mov r0, r8 + ldr r1, [r0] + ldr r0, _0813CAC8 + cmp r1, r0 + bne _0813CAA4 + movs r0, 0x1 + negs r0, r0 + ldr r1, _0813CACC + str r1, [sp] + movs r1, 0x4 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_0813CAA4: + mov r3, r8 + ldr r1, [r3] + ldr r0, _0813CAD0 + cmp r1, r0 + bne _0813CABC + ldr r0, _0813CAD4 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _0813CAD8 + str r0, [r1] +_0813CABC: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813CAC8: .4byte 0x00000352 +_0813CACC: .4byte 0x0000ffff +_0813CAD0: .4byte 0x000003b2 +_0813CAD4: .4byte gTasks +_0813CAD8: .4byte sub_813CADC + thumb_func_end sub_813C668 + + thumb_func_start sub_813CADC +sub_813CADC: @ 813CADC + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r0, _0813CAF0 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0813CAF0: .4byte CB2_813B7EC + thumb_func_end sub_813CADC + + thumb_func_start sub_813CAF4 +sub_813CAF4: @ 813CAF4 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0813CB2C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x26] + adds r0, 0x1 + movs r6, 0 + strh r0, [r4, 0x26] + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bne _0813CB18 + b _0813CC28 +_0813CB18: + cmp r0, 0x4 + bgt _0813CB30 + cmp r0, 0x2 + beq _0813CB60 + cmp r0, 0x2 + bgt _0813CBC4 + cmp r0, 0 + beq _0813CB46 + b _0813CC8E + .align 2, 0 +_0813CB2C: .4byte gTasks +_0813CB30: + cmp r0, 0x1E + beq _0813CBEE + cmp r0, 0x1E + bgt _0813CB3E + cmp r0, 0x14 + beq _0813CB8A + b _0813CC8E +_0813CB3E: + cmp r0, 0x28 + bne _0813CB44 + b _0813CC56 +_0813CB44: + b _0813CC8E +_0813CB46: + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xE5 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0813CB5C + strh r6, [r0] + movs r0, 0xFF + strh r0, [r4, 0x8] + b _0813CC8E + .align 2, 0 +_0813CB5C: .4byte REG_BG2CNT +_0813CB60: + ldr r0, _0813CBB0 + str r0, [sp] + movs r0, 0x1 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _0813CBB4 + ldr r2, _0813CBB8 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xC + movs r2, 0xF5 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + strh r6, [r4, 0xA] + strh r6, [r4, 0xC] + movs r0, 0x14 + strh r0, [r4, 0x8] +_0813CB8A: + ldr r2, _0813CBBC + ldr r0, _0813CBC0 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + strh r0, [r2] + subs r2, 0x2 + ldrh r0, [r1, 0xC] + strh r0, [r2] + ldrh r0, [r1, 0xA] + adds r0, 0x6 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xC] + subs r0, 0x8 + strh r0, [r1, 0xC] + b _0813CC8E + .align 2, 0 +_0813CBB0: .4byte 0x0000ffff +_0813CBB4: .4byte REG_BG2CNT +_0813CBB8: .4byte 0x00000e07 +_0813CBBC: .4byte REG_BG2VOFS +_0813CBC0: .4byte gTasks +_0813CBC4: + ldr r0, _0813CC14 + str r0, [sp] + movs r0, 0x1 + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _0813CC18 + ldr r2, _0813CC1C + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xC + movs r2, 0xF5 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + strh r6, [r4, 0xA] + strh r6, [r4, 0xC] + movs r0, 0x1E + strh r0, [r4, 0x8] +_0813CBEE: + ldr r2, _0813CC20 + ldr r0, _0813CC24 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + strh r0, [r2] + subs r2, 0x2 + ldrh r0, [r1, 0xC] + strh r0, [r2] + ldrh r0, [r1, 0xA] + subs r0, 0x6 + strh r0, [r1, 0xA] + ldrh r0, [r1, 0xC] + adds r0, 0x8 + strh r0, [r1, 0xC] + b _0813CC8E + .align 2, 0 +_0813CC14: .4byte 0x0000ffff +_0813CC18: .4byte REG_BG2CNT +_0813CC1C: .4byte 0x00000e07 +_0813CC20: .4byte REG_BG2VOFS +_0813CC24: .4byte gTasks +_0813CC28: + ldr r0, _0813CC98 + str r0, [sp] + movs r0, 0x1 + movs r1, 0x5 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0813CC9C + ldr r2, _0813CCA0 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xC + movs r2, 0xF5 + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + strh r6, [r4, 0xA] + strh r6, [r4, 0xC] + movs r0, 0x8 + strh r0, [r4, 0xE] + movs r0, 0x28 + strh r0, [r4, 0x8] +_0813CC56: + ldr r2, _0813CCA4 + ldr r1, _0813CCA8 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0xA] + strh r0, [r2] + ldr r1, _0813CCAC + ldrh r0, [r3, 0xC] + strh r0, [r1] + ldrh r0, [r3, 0xA] + ldrh r2, [r3, 0xE] + subs r0, r2 + strh r0, [r3, 0xA] + ldrh r1, [r3, 0xC] + adds r0, r2, r1 + strh r0, [r3, 0xC] + ldrh r1, [r3, 0x26] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0813CC8E + lsls r0, r2, 16 + cmp r0, 0 + beq _0813CC8E + subs r0, r2, 0x1 + strh r0, [r3, 0xE] +_0813CC8E: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813CC98: .4byte 0x000037f7 +_0813CC9C: .4byte REG_BG2CNT +_0813CCA0: .4byte 0x00000e07 +_0813CCA4: .4byte REG_BG2VOFS +_0813CCA8: .4byte gTasks +_0813CCAC: .4byte REG_BG2HOFS + thumb_func_end sub_813CAF4 + + thumb_func_start intro_reset_and_hide_bgs +intro_reset_and_hide_bgs: @ 813CCB0 + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0x1C + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x3E + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bx lr + thumb_func_end intro_reset_and_hide_bgs + + thumb_func_start sub_813CCE8 +sub_813CCE8: @ 813CCE8 + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _0813CD0C + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _0813CD28 + lsls r0, 2 + ldr r1, _0813CD10 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813CD0C: .4byte gTasks +_0813CD10: .4byte _0813CD14 + .align 2, 0 +_0813CD14: + .4byte _0813CD28 + .4byte _0813CD5C + .4byte _0813CD8C + .4byte _0813CDA8 + .4byte _0813CDFC +_0813CD28: + ldr r1, _0813CD54 + ldr r4, _0813CD58 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0x2 + movs r4, 0x80 + lsls r4, 5 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0 + strh r0, [r1] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r2 + movs r1, 0x40 + strh r1, [r0, 0xA] + movs r1, 0x1 + strh r1, [r0, 0x8] + b _0813CE26 + .align 2, 0 +_0813CD54: .4byte REG_BLDCNT +_0813CD58: .4byte 0x00003f50 +_0813CD5C: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r2 + ldrh r1, [r2, 0xA] + movs r3, 0xA + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _0813CD78 + subs r0, r1, 0x1 + strh r0, [r2, 0xA] + movs r4, 0xA + ldrsh r0, [r2, r4] + b _0813CDC2 +_0813CD78: + ldr r1, _0813CD84 + ldr r0, _0813CD88 + ldrh r0, [r0] + strh r0, [r1] + movs r0, 0x80 + b _0813CDEA + .align 2, 0 +_0813CD84: .4byte REG_BLDALPHA +_0813CD88: .4byte gUnknown_08393E64 +_0813CD8C: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0xA] + movs r3, 0xA + ldrsh r2, [r1, r3] + cmp r2, 0 + bne _0813CE0E + strh r2, [r1, 0xA] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0813CE26 +_0813CDA8: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r2 + ldrh r1, [r2, 0xA] + movs r4, 0xA + ldrsh r0, [r2, r4] + cmp r0, 0x3D + bgt _0813CDE0 + adds r0, r1, 0x1 + strh r0, [r2, 0xA] + movs r1, 0xA + ldrsh r0, [r2, r1] +_0813CDC2: + lsrs r1, r0, 31 + adds r0, r1 + movs r2, 0xFF + lsls r2, 1 + ldr r3, _0813CDD8 + ldr r1, _0813CDDC + ands r0, r2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3] + b _0813CE26 + .align 2, 0 +_0813CDD8: .4byte REG_BLDALPHA +_0813CDDC: .4byte gUnknown_08393E64 +_0813CDE0: + ldr r1, _0813CDF4 + ldr r0, _0813CDF8 + ldrh r0, [r0, 0x3E] + strh r0, [r1] + movs r0, 0x10 +_0813CDEA: + strh r0, [r2, 0xA] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _0813CE26 + .align 2, 0 +_0813CDF4: .4byte REG_BLDALPHA +_0813CDF8: .4byte gUnknown_08393E64 +_0813CDFC: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r1, r0, r2 + ldrh r0, [r1, 0xA] + movs r4, 0xA + ldrsh r2, [r1, r4] + cmp r2, 0 + beq _0813CE14 +_0813CE0E: + subs r0, 0x1 + strh r0, [r1, 0xA] + b _0813CE26 +_0813CE14: + ldr r0, _0813CE2C + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, r3, 0 + bl DestroyTask +_0813CE26: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813CE2C: .4byte REG_BLDCNT + thumb_func_end sub_813CCE8 + + thumb_func_start sub_813CE30 +sub_813CE30: @ 813CE30 + push {r4,lr} + sub sp, 0x24 + lsls r2, 16 + lsrs r2, 16 + movs r4, 0x80 + lsls r4, 8 + str r4, [sp] + str r4, [sp, 0x4] + mov r4, sp + strh r0, [r4, 0x8] + mov r0, sp + strh r1, [r0, 0xA] + strh r2, [r0, 0xC] + strh r2, [r0, 0xE] + strh r3, [r0, 0x10] + add r4, sp, 0x14 + adds r1, r4, 0 + movs r2, 0x1 + bl BgAffineSet + ldr r1, _0813CE84 + ldrh r0, [r4] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x2] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x4] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x6] + strh r0, [r1] + adds r1, 0x2 + ldr r0, [r4, 0x8] + str r0, [r1] + adds r1, 0x4 + ldr r0, [r4, 0xC] + str r0, [r1] + add sp, 0x24 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813CE84: .4byte REG_BG2PA + thumb_func_end sub_813CE30 + + thumb_func_start sub_813CE88 +sub_813CE88: @ 813CE88 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r4, [sp, 0x30] + lsls r0, 16 + lsrs r7, r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r2, 16 + lsrs r2, 16 + mov r10, r2 + lsls r3, 16 + lsrs r3, 16 + mov r8, r3 + lsls r4, 24 + lsrs r6, r4, 24 + cmp r6, 0 + beq _0813CEF0 + lsls r0, r7, 3 + ldr r1, _0813CEE4 + adds r0, r1 + ldr r1, _0813CEE8 + lsls r2, r7, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r5, _0813CEEC + mov r6, r8 + lsls r4, r6, 2 + adds r4, r5 + ldr r4, [r4] + str r4, [sp] + str r7, [sp, 0x4] + movs r4, 0 + str r4, [sp, 0x8] + movs r4, 0x1 + str r4, [sp, 0xC] + bl sub_800D378 + b _0813CF1C + .align 2, 0 +_0813CEE4: .4byte gMonFrontPicTable +_0813CEE8: .4byte gMonFrontPicCoords +_0813CEEC: .4byte gUnknown_0840B5A0 +_0813CEF0: + lsls r0, r7, 3 + ldr r1, _0813CF90 + adds r0, r1 + ldr r1, _0813CF94 + lsls r2, r7, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _0813CF98 + mov r12, r4 + mov r5, r8 + lsls r4, r5, 2 + add r4, r12 + ldr r4, [r4] + str r4, [sp] + str r7, [sp, 0x4] + str r6, [sp, 0x8] + str r6, [sp, 0xC] + bl sub_800D378 +_0813CF1C: + ldr r2, _0813CF9C + adds r0, r7, 0 + movs r1, 0 + bl species_and_otid_get_pal + mov r6, r8 + lsls r4, r6, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + lsls r1, r6, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_8143648 + ldr r0, _0813CFA0 + mov r3, r9 + lsls r1, r3, 16 + asrs r1, 16 + mov r5, r10 + lsls r2, r5, 16 + asrs r2, 16 + mov r3, r8 + adds r3, 0x1 + lsls r3, 26 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0813CFA4 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r4 + movs r3, 0xD + negs r3, r3 + ands r1, r3 + movs r3, 0x4 + orrs r1, r3 + strb r1, [r2, 0x5] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0813CF90: .4byte gMonBackPicTable +_0813CF94: .4byte gMonBackPicCoords +_0813CF98: .4byte gUnknown_0840B5A0 +_0813CF9C: .4byte 0x0000ffff +_0813CFA0: .4byte gUnknown_02024E8C +_0813CFA4: .4byte gSprites + thumb_func_end sub_813CE88 + + thumb_func_start sub_813CFA8 +sub_813CFA8: @ 813CFA8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r1 + mov r10, r2 + adds r6, r3, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r2, 16 + lsrs r2, 16 + mov r10, r2 + lsls r6, 16 + lsrs r6, 16 + lsls r7, r0, 3 + ldr r1, _0813D068 + mov r8, r1 + add r8, r7 + ldr r1, _0813D06C + lsls r2, r0, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r5, _0813D070 + lsls r4, r6, 2 + adds r4, r5 + ldr r4, [r4] + str r4, [sp] + str r0, [sp, 0x4] + mov r0, r8 + bl DecompressPicFromTable_2 + ldr r0, _0813D074 + adds r0, r7, r0 + ldr r0, [r0] + lsls r4, r6, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + lsls r1, r6, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8143680 + ldr r0, _0813D078 + ldr r1, _0813D07C + str r1, [r0, 0x8] + mov r1, r9 + lsls r1, 16 + asrs r1, 16 + mov r9, r1 + mov r2, r10 + lsls r2, 16 + asrs r2, 16 + mov r10, r2 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0813D080 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r4 + movs r3, 0xD + negs r3, r3 + ands r1, r3 + movs r3, 0x4 + orrs r1, r3 + strb r1, [r2, 0x5] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0813D068: .4byte gTrainerBackPicTable +_0813D06C: .4byte gTrainerBackPicCoords +_0813D070: .4byte gUnknown_0840B5A0 +_0813D074: .4byte gTrainerBackPicPaletteTable +_0813D078: .4byte gUnknown_02024E8C +_0813D07C: .4byte gUnknown_0840B064 +_0813D080: .4byte gSprites + thumb_func_end sub_813CFA8 + + thumb_func_start sub_813D084 +sub_813D084: @ 813D084 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0813D0A0 + cmp r0, 0x1 + ble _0813D096 + cmp r0, 0x2 + beq _0813D0A8 +_0813D096: + ldr r2, _0813D09C + b _0813D0AA + .align 2, 0 +_0813D09C: .4byte 0x00003ff6 +_0813D0A0: + ldr r2, _0813D0A4 + b _0813D0AA + .align 2, 0 +_0813D0A4: .4byte 0x000031df +_0813D0A8: + ldr r2, _0813D0C0 +_0813D0AA: + ldr r0, _0813D0C4 + movs r1, 0xF1 + lsls r1, 1 + adds r0, r1 + strh r2, [r0] + ldr r0, _0813D0C8 + adds r0, r1 + strh r2, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0813D0C0: .4byte 0x0000518c +_0813D0C4: .4byte gPlttBufferUnfaded +_0813D0C8: .4byte gPlttBufferFaded + thumb_func_end sub_813D084 + + thumb_func_start sub_813D0CC +sub_813D0CC: @ 813D0CC + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0xBF + ble _0813D148 + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0813D0EA + subs r0, r1, 0x1 + strh r0, [r4, 0x34] + b _0813D14E +_0813D0EA: + 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, 0x30] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x32] + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + movs r0, 0x32 + ldrsh r1, [r4, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 5 + subs r0, r1 + movs r1, 0x64 + bl __divsi3 + strh r0, [r4, 0x32] + movs r2, 0x32 + ldrsh r1, [r4, r2] + adds r0, r1, 0 + subs r0, 0xC0 + cmp r0, 0 + bge _0813D12C + adds r0, 0x7F +_0813D12C: + asrs r0, 7 + adds r0, 0x9 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xF + bls _0813D13A + movs r0, 0xF +_0813D13A: + lsls r2, r0, 4 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + b _0813D14E +_0813D148: + adds r0, r4, 0 + bl DestroySprite +_0813D14E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_813D0CC + + thumb_func_start sub_813D158 +sub_813D158: @ 813D158 + push {r4,lr} + adds r4, r0, 0 + ldr r2, _0813D1CC + movs r1, 0x3C + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r3, 0x3C + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0813D1D4 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAnim + movs r0, 0x80 + lsls r0, 3 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x30] + movs r0, 0x3 + ands r0, r1 + lsls r0, 3 + strh r0, [r4, 0x34] + ldr r0, _0813D1D0 + str r0, [r4, 0x1C] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r4, 0x3] + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x3 + movs r3, 0x2 + bl CalcCenterToCornerVec + b _0813D200 + .align 2, 0 +_0813D1CC: .4byte gSprites +_0813D1D0: .4byte sub_813D0CC +_0813D1D4: + ldrh r0, [r1, 0x24] + strh r0, [r4, 0x24] + movs r0, 0x3C + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x26] + strh r0, [r4, 0x26] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x20] + strh r0, [r4, 0x20] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x22] + strh r0, [r4, 0x22] +_0813D200: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_813D158 + + thumb_func_start sub_813D208 +sub_813D208: @ 813D208 + push {lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0813D218 + ldr r0, _0813D21C + str r0, [r1, 0x1C] +_0813D218: + pop {r0} + bx r0 + .align 2, 0 +_0813D21C: .4byte sub_813D220 + thumb_func_end sub_813D208 + + thumb_func_start sub_813D220 +sub_813D220: @ 813D220 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r7, r0, 0 + ldrh r4, [r7, 0x20] + movs r1, 0x20 + ldrsh r0, [r7, r1] + cmp r0, 0x74 + bgt _0813D260 + ldrh r0, [r7, 0x26] + ldrh r1, [r7, 0x22] + adds r0, r1 + movs r1, 0 + strh r0, [r7, 0x22] + strh r1, [r7, 0x26] + adds r0, r4, 0x4 + strh r0, [r7, 0x20] + ldr r0, _0813D258 + strh r0, [r7, 0x24] + movs r0, 0x80 + strh r0, [r7, 0x36] + ldr r0, _0813D25C + str r0, [r7, 0x1C] + b _0813D352 + .align 2, 0 +_0813D258: .4byte 0x0000fffc +_0813D25C: .4byte sub_813D368 +_0813D260: + ldrh r1, [r7, 0x36] + ldr r5, _0813D364 + lsls r0, r1, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r2, [r0] + adds r0, r1, 0 + adds r0, 0x40 + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r3, [r0] + adds r1, 0x2 + strh r1, [r7, 0x36] + lsls r2, 16 + asrs r0, r2, 16 + cmp r0, 0 + bge _0813D286 + adds r0, 0x1F +_0813D286: + asrs r0, 5 + strh r0, [r7, 0x26] + subs r0, r4, 0x1 + strh r0, [r7, 0x20] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0813D29C + ldrh r0, [r7, 0x22] + adds r0, 0x1 + strh r0, [r7, 0x22] +_0813D29C: + lsls r0, r3, 16 + asrs r0, 16 + negs r0, r0 + cmp r0, 0 + bge _0813D2A8 + adds r0, 0xF +_0813D2A8: + lsls r1, r0, 12 + lsrs r1, 16 + ldrh r4, [r7, 0x32] + ldrh r3, [r7, 0x34] + adds r0, r1, 0 + subs r0, 0x10 + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r2, [r0] + adds r1, 0x30 + lsls r1, 24 + lsrs r1, 23 + adds r1, r5 + movs r0, 0 + ldrsh r1, [r1, r0] + adds r0, r1, 0 + muls r0, r4 + cmp r0, 0 + bge _0813D2D2 + adds r0, 0xFF +_0813D2D2: + lsls r0, 8 + lsrs r0, 16 + mov r8, r0 + lsls r0, r2, 16 + asrs r2, r0, 16 + negs r0, r2 + muls r0, r3 + cmp r0, 0 + bge _0813D2E6 + adds r0, 0xFF +_0813D2E6: + lsls r0, 8 + lsrs r0, 16 + mov r10, r0 + adds r0, r2, 0 + muls r0, r4 + cmp r0, 0 + bge _0813D2F6 + adds r0, 0xFF +_0813D2F6: + lsls r0, 8 + lsrs r5, r0, 16 + adds r0, r1, 0 + muls r0, r3 + cmp r0, 0 + bge _0813D304 + adds r0, 0xFF +_0813D304: + lsls r6, r0, 8 + lsrs r6, 16 + ldrh r0, [r7, 0x30] + lsls r0, 24 + lsrs r0, 24 + str r3, [sp] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + ldrh r0, [r7, 0x30] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r5 + mov r1, r10 + lsls r5, r1, 16 + lsrs r3, r5, 16 + lsls r4, r6, 16 + str r6, [sp] + mov r1, r8 + mov r2, r9 + bl SetOamMatrix + ldrh r0, [r7, 0x30] + adds r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + lsls r5, 1 + lsrs r5, 16 + lsls r4, 1 + lsrs r4, 16 + str r4, [sp] + mov r1, r8 + mov r2, r9 + adds r3, r5, 0 + bl SetOamMatrix +_0813D352: + 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 +_0813D364: .4byte gSineTable + thumb_func_end sub_813D220 + + thumb_func_start sub_813D368 +sub_813D368: @ 813D368 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x3A] + adds r1, 0x40 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + ldrh r0, [r4, 0x30] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x3A] + adds r1, 0x40 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + ldrh r0, [r4, 0x30] + adds r0, 0x2 + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x3A] + adds r1, 0x40 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + ldrh r1, [r4, 0x36] + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r0, 0x40 + beq _0813D400 + adds r0, r1, 0 + subs r0, 0x8 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x36] + adds r1, r0, 0 + ldr r2, _0813D3FC + adds r0, 0x40 + lsls r0, 24 + lsrs r0, 23 + adds r0, r2 + movs r3, 0 + ldrsh r0, [r0, r3] + cmp r0, 0 + bge _0813D3E2 + adds r0, 0x3F +_0813D3E2: + asrs r0, 6 + strh r0, [r4, 0x24] + lsls r0, r1, 24 + lsrs r0, 23 + adds r0, r2 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + bge _0813D3F6 + adds r0, 0x3F +_0813D3F6: + asrs r0, 6 + strh r0, [r4, 0x26] + b _0813D408 + .align 2, 0 +_0813D3FC: .4byte gSineTable +_0813D400: + movs r0, 0 + strh r0, [r4, 0x36] + ldr r0, _0813D410 + str r0, [r4, 0x1C] +_0813D408: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813D410: .4byte sub_813D414 + thumb_func_end sub_813D368 + + thumb_func_start sub_813D414 +sub_813D414: @ 813D414 + push {r4,lr} + adds r1, r0, 0 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0x2 + beq _0813D474 + ldrh r0, [r1, 0x36] + adds r0, 0x8 + strh r0, [r1, 0x36] + ldr r3, _0813D470 + lsls r0, 24 + lsrs r0, 23 + adds r0, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r0, 0 + bge _0813D438 + adds r0, 0xF +_0813D438: + asrs r0, 4 + adds r0, 0x40 + lsls r0, 16 + lsrs r2, r0, 16 + adds r0, r2, 0 + adds r0, 0x40 + lsls r0, 24 + lsrs r0, 23 + adds r0, r3 + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r0, 0 + bge _0813D454 + adds r0, 0x3F +_0813D454: + asrs r0, 6 + strh r0, [r1, 0x24] + lsls r0, r2, 24 + lsrs r0, 23 + adds r0, r3 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bge _0813D468 + adds r0, 0x3F +_0813D468: + asrs r0, 6 + strh r0, [r1, 0x26] + b _0813D478 + .align 2, 0 +_0813D470: .4byte gSineTable +_0813D474: + ldr r0, _0813D480 + str r0, [r1, 0x1C] +_0813D478: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813D480: .4byte sub_813D484 + thumb_func_end sub_813D414 + + thumb_func_start sub_813D484 +sub_813D484: @ 813D484 + push {r4,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x22] + movs r0, 0x22 + ldrsh r1, [r4, r0] + movs r3, 0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _0813D49C + adds r0, r2, 0x4 + strh r0, [r4, 0x22] + b _0813D4F8 +_0813D49C: + movs r0, 0x1 + strh r0, [r4, 0x3C] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAnim + movs r0, 0x80 + lsls r0, 3 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x30] + movs r0, 0x3 + ands r0, r1 + lsls r0, 3 + strh r0, [r4, 0x34] + ldr r0, _0813D500 + str r0, [r4, 0x1C] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r4, 0x3] + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x3 + movs r3, 0x2 + bl CalcCenterToCornerVec +_0813D4F8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813D500: .4byte sub_813D0CC + thumb_func_end sub_813D484 + + thumb_func_start sub_813D504 +sub_813D504: @ 813D504 + push {r4,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x22] + movs r0, 0x22 + ldrsh r1, [r4, r0] + movs r3, 0x38 + ldrsh r0, [r4, r3] + cmp r1, r0 + bge _0813D51C + adds r0, r2, 0x4 + strh r0, [r4, 0x22] + b _0813D578 +_0813D51C: + movs r0, 0x1 + strh r0, [r4, 0x3C] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r3, [r4, 0x22] + adds r0, r3 + strh r0, [r4, 0x22] + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAnim + movs r0, 0x80 + lsls r0, 3 + strh r0, [r4, 0x32] + ldrh r1, [r4, 0x30] + movs r0, 0x3 + ands r0, r1 + lsls r0, 3 + strh r0, [r4, 0x34] + ldr r0, _0813D580 + str r0, [r4, 0x1C] + ldrb r1, [r4, 0x1] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r4, 0x3] + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x3 + movs r3, 0x2 + bl CalcCenterToCornerVec +_0813D578: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813D580: .4byte sub_813D0CC + thumb_func_end sub_813D504 + + thumb_func_start sub_813D584 +sub_813D584: @ 813D584 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + adds r4, r0, 0 + adds r5, r1, 0 + ldr r6, [sp, 0x34] + ldr r0, [sp, 0x38] + mov r8, r0 + lsls r4, 16 + lsls r5, 16 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x8] + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0xC] + lsls r6, 16 + lsrs r6, 16 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r0, _0813D640 + lsrs r2, r4, 16 + mov r10, r2 + asrs r4, 16 + lsrs r1, r5, 16 + str r1, [sp, 0x4] + asrs r5, 16 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _0813D644 + mov r9, r2 + lsls r0, r7, 4 + adds r0, r7 + lsls r5, r0, 2 + adds r4, r5, r2 + movs r0, 0 + strh r0, [r4, 0x2E] + strh r0, [r4, 0x3C] + mov r0, sp + ldrh r0, [r0, 0xC] + strh r0, [r4, 0x30] + mov r1, sp + ldrh r1, [r1, 0x8] + strh r1, [r4, 0x32] + mov r2, sp + ldrh r2, [r2, 0x8] + strh r2, [r4, 0x34] + strh r6, [r4, 0x38] + mov r0, sp + ldrh r0, [r0, 0x8] + strh r0, [r4, 0x3A] + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x1F + ldr r1, [sp, 0xC] + ands r1, r0 + lsls r1, 1 + ldrb r2, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x2 + bl CalcCenterToCornerVec + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnim + mov r1, r8 + cmp r1, 0 + bne _0813D64C + mov r0, r9 + adds r0, 0x1C + adds r0, r5, r0 + ldr r1, _0813D648 + b _0813D654 + .align 2, 0 +_0813D640: .4byte gSpriteTemplate_840AE20 +_0813D644: .4byte gSprites +_0813D648: .4byte sub_813D208 +_0813D64C: + mov r0, r9 + adds r0, 0x1C + adds r0, r5, r0 + ldr r1, _0813D774 +_0813D654: + str r1, [r0] + str r7, [sp, 0x10] + mov r2, r10 + lsls r2, 16 + asrs r2, 16 + mov r10, r2 + ldr r0, [sp, 0x4] + lsls r0, 16 + asrs r0, 16 + mov r8, r0 + ldr r0, _0813D778 + mov r1, r10 + mov r2, r8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + ldr r5, _0813D77C + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + adds r0, r4, r5 + mov r1, sp + ldrh r1, [r1, 0x10] + strh r1, [r0, 0x3C] + ldr r2, [sp, 0xC] + adds r2, 0x1 + mov r9, r2 + strh r2, [r0, 0x30] + ldrb r1, [r0, 0x1] + movs r2, 0x3 + orrs r1, r2 + strb r1, [r0, 0x1] + mov r2, r9 + movs r1, 0x1F + ands r2, r1 + lsls r2, 1 + ldrb r3, [r0, 0x3] + movs r6, 0x3F + negs r6, r6 + adds r1, r6, 0 + ands r1, r3 + orrs r1, r2 + strb r1, [r0, 0x3] + movs r1, 0 + movs r2, 0x2 + movs r3, 0x2 + bl CalcCenterToCornerVec + ldr r2, _0813D780 + adds r4, r2 + ldr r0, _0813D784 + str r0, [r4] + ldr r0, _0813D778 + mov r1, r10 + mov r2, r8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r7, r0, 24 + lsls r4, r7, 4 + adds r4, r7 + lsls r4, 2 + adds r5, r4, r5 + mov r1, sp + ldrh r1, [r1, 0x10] + strh r1, [r5, 0x3C] + ldr r2, [sp, 0xC] + adds r2, 0x2 + mov r8, r2 + strh r2, [r5, 0x30] + adds r0, r5, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrb r0, [r5, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r5, 0x1] + mov r0, r8 + movs r2, 0x1F + ands r0, r2 + lsls r0, 1 + ldrb r1, [r5, 0x3] + ands r6, r1 + orrs r6, r0 + strb r6, [r5, 0x3] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x2 + movs r3, 0x2 + bl CalcCenterToCornerVec + ldr r0, _0813D780 + adds r4, r0 + ldr r1, _0813D784 + str r1, [r4] + ldr r2, [sp, 0xC] + lsls r0, r2, 24 + lsrs r0, 24 + ldr r5, [sp, 0x8] + adds r5, 0x20 + lsls r4, r5, 16 + lsrs r4, 16 + str r4, [sp] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + mov r0, r9 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + str r4, [sp] + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r5, 17 + lsrs r5, 16 + str r5, [sp] + mov r0, r8 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + ldr r0, [sp, 0x10] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0813D774: .4byte sub_813D504 +_0813D778: .4byte gSpriteTemplate_840AE20 +_0813D77C: .4byte gSprites +_0813D780: .4byte gSprites + 0x1C +_0813D784: .4byte sub_813D158 + thumb_func_end sub_813D584 + + thumb_func_start sub_813D788 +sub_813D788: @ 813D788 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _0813D830 + lsls r0, 2 + ldr r1, _0813D7A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813D7A0: .4byte _0813D7A4 + .align 2, 0 +_0813D7A4: + .4byte _0813D7B8 + .4byte _0813D7C6 + .4byte _0813D7E4 + .4byte _0813D80C + .4byte _0813D816 +_0813D7B8: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + ldrh r0, [r4, 0x20] + subs r0, 0x1 + b _0813D82E +_0813D7C6: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + ldr r0, _0813D7E0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0813D87A + ldrh r0, [r4, 0x20] + adds r0, 0x1 + b _0813D82E + .align 2, 0 +_0813D7E0: .4byte gUnknown_03005ED0 +_0813D7E4: + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnimIfDifferent + ldrh r2, [r4, 0x20] + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r0, 0x78 + ble _0813D802 + ldr r0, _0813D808 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0813D83C +_0813D802: + adds r0, r2, 0x1 + b _0813D82E + .align 2, 0 +_0813D808: .4byte gUnknown_03005ED0 +_0813D80C: + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAnimIfDifferent + b _0813D830 +_0813D816: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + ldrh r2, [r4, 0x20] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r0, 0x20 + negs r0, r0 + cmp r1, r0 + ble _0813D830 + subs r0, r2, 0x2 +_0813D82E: + strh r0, [r4, 0x20] +_0813D830: + ldr r0, _0813D84C + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0813D87A +_0813D83C: + movs r1, 0x26 + ldrsh r5, [r4, r1] + cmp r5, 0 + beq _0813D850 + movs r0, 0 + strh r0, [r4, 0x26] + b _0813D87A + .align 2, 0 +_0813D84C: .4byte gUnknown_03005ED0 +_0813D850: + bl Random + movs r1, 0x3 + ands r1, r0 + cmp r1, 0x1 + beq _0813D878 + cmp r1, 0x1 + bgt _0813D866 + cmp r1, 0 + beq _0813D86E + b _0813D87A +_0813D866: + cmp r1, 0x3 + bgt _0813D87A + strh r5, [r4, 0x26] + b _0813D87A +_0813D86E: + ldr r0, _0813D874 + strh r0, [r4, 0x26] + b _0813D87A + .align 2, 0 +_0813D874: .4byte 0x0000ffff +_0813D878: + strh r1, [r4, 0x26] +_0813D87A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_813D788 + + thumb_func_start sub_813D880 +sub_813D880: @ 813D880 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0813D89A + cmp r0, 0x1 + ble _0813D8E2 + cmp r0, 0x2 + beq _0813D8BA + cmp r0, 0x3 + beq _0813D8D4 + b _0813D8E2 +_0813D89A: + movs r2, 0x24 + ldrsh r0, [r4, r2] + movs r2, 0x20 + ldrsh r1, [r4, r2] + adds r0, r1 + ldr r1, _0813D8B0 + cmp r0, r1 + bgt _0813D8B4 + ldrh r0, [r4, 0x24] + adds r0, 0x8 + b _0813D8E0 + .align 2, 0 +_0813D8B0: .4byte 0x0000012f +_0813D8B4: + movs r0, 0x2 + strh r0, [r4, 0x2E] + b _0813D8E2 +_0813D8BA: + movs r1, 0x24 + ldrsh r0, [r4, r1] + movs r2, 0x20 + ldrsh r1, [r4, r2] + adds r0, r1 + cmp r0, 0x78 + ble _0813D8CE + ldrh r0, [r4, 0x24] + subs r0, 0x1 + b _0813D8E0 +_0813D8CE: + movs r0, 0x3 + strh r0, [r4, 0x2E] + b _0813D8E2 +_0813D8D4: + ldrh r1, [r4, 0x24] + movs r2, 0x24 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _0813D8E2 + subs r0, r1, 0x2 +_0813D8E0: + strh r0, [r4, 0x24] +_0813D8E2: + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x8 + bl Sin + ldr r1, _0813D904 + ldrh r1, [r1] + subs r0, r1 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x4 + strh r0, [r4, 0x30] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813D904: .4byte gUnknown_0203935A + thumb_func_end sub_813D880 + + thumb_func_start sub_813D908 +sub_813D908: @ 813D908 + push {lr} + adds r3, r0, 0 + ldr r2, _0813D930 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _0813D934 + adds r0, r3, 0 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _0813D94E + .align 2, 0 +_0813D930: .4byte gTasks +_0813D934: + cmp r0, 0x4 + beq _0813D948 + adds r2, r3, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + b _0813D94E +_0813D948: + adds r0, r3, 0 + bl DestroySprite +_0813D94E: + pop {r0} + bx r0 + thumb_func_end sub_813D908 + + thumb_func_start sub_813D954 +sub_813D954: @ 813D954 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + movs r5, 0 + ldr r7, _0813DA48 + lsls r0, 16 + mov r9, r0 + lsls r0, r6, 16 + str r0, [sp, 0x4] + mov r1, r9 + asrs r1, 16 + str r1, [sp] +_0813D97C: + lsls r4, r5, 2 + adds r0, r7, 0x2 + adds r0, r4, r0 + ldrh r1, [r0] + ldr r2, [sp] + adds r1, r2, r1 + lsls r1, 16 + asrs r1, 16 + lsls r2, r6, 16 + asrs r3, r2, 16 + mov r10, r3 + ldr r0, _0813DA4C + adds r2, r0 + ldr r0, _0813DA50 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0813DA54 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + mov r1, r8 + strh r1, [r0, 0x2E] + adds r4, r7 + ldrb r1, [r4] + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x8 + bls _0813D97C + movs r5, 0 + ldr r7, _0813DA58 + mov r0, r10 + adds r0, 0xC + lsls r0, 16 + mov r10, r0 +_0813D9D0: + lsls r4, r5, 2 + adds r0, r7, 0x2 + adds r0, r4, r0 + mov r2, r9 + asrs r1, r2, 16 + ldrh r0, [r0] + adds r1, r0 + lsls r1, 16 + asrs r1, 16 + ldr r0, _0813DA5C + mov r3, r10 + asrs r2, r3, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + ldr r6, _0813DA54 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r6 + mov r1, r8 + strh r1, [r0, 0x2E] + adds r4, r7 + ldrb r1, [r4] + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x7 + bls _0813D9D0 + ldr r0, _0813DA60 + ldr r3, [sp, 0x4] + ldr r1, _0813DA4C + adds r2, r3, r1 + asrs r2, 16 + movs r1, 0x78 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r6 + mov r3, r8 + strh r3, [r0, 0x2E] + adds r0, r2, 0 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0813DA48: .4byte gUnknown_0840AF50 +_0813DA4C: .4byte 0xfffc0000 +_0813DA50: .4byte gSpriteTemplate_840AF94 +_0813DA54: .4byte gSprites +_0813DA58: .4byte gUnknown_0840AF74 +_0813DA5C: .4byte gSpriteTemplate_840AFAC +_0813DA60: .4byte gSpriteTemplate_840AFC4 + thumb_func_end sub_813D954 + + thumb_func_start sub_813DA64 +sub_813DA64: @ 813DA64 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0813DA7C + cmp r0, 0x1 + beq _0813DAC0 +_0813DA7C: + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r4, 0x3] + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0x3 + movs r3, 0x3 + bl CalcCenterToCornerVec + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x80 + strh r0, [r4, 0x30] + ldr r0, _0813DABC + strh r0, [r4, 0x32] + movs r0, 0 + b _0813DB92 + .align 2, 0 +_0813DABC: .4byte 0x0000ffe8 +_0813DAC0: + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0x4F + bgt _0813DAF8 + lsls r0, r1, 24 + lsrs r0, 24 + movs r1, 0x78 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x8C + bl Sin + negs r0, r0 + strh r0, [r4, 0x24] + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x40 + ble _0813DAF8 + ldrb r0, [r4, 0x5] + movs r1, 0xC + orrs r0, r1 + strb r0, [r4, 0x5] +_0813DAF8: + ldr r2, _0813DB60 + ldrh r1, [r4, 0x32] + lsls r0, r1, 24 + lsrs r0, 23 + adds r0, r2 + ldrh r3, [r0] + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 23 + adds r1, r2 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r1, 0x30 + ldrsh r2, [r4, r1] + adds r1, r0, 0 + muls r1, r2 + adds r0, r1, 0 + cmp r1, 0 + bge _0813DB20 + adds r0, 0xFF +_0813DB20: + lsls r0, 8 + lsrs r6, r0, 16 + lsls r0, r3, 16 + asrs r3, r0, 16 + negs r0, r3 + muls r0, r2 + cmp r0, 0 + bge _0813DB32 + adds r0, 0xFF +_0813DB32: + lsls r0, 8 + lsrs r5, r0, 16 + adds r0, r3, 0 + muls r0, r2 + cmp r0, 0 + bge _0813DB40 + adds r0, 0xFF +_0813DB40: + lsls r0, 8 + lsrs r2, r0, 16 + adds r1, r6, 0 + adds r3, r5, 0 + str r1, [sp] + movs r0, 0x1 + bl SetOamMatrix + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0xFF + bgt _0813DB64 + adds r0, r1, 0 + adds r0, 0x8 + b _0813DB68 + .align 2, 0 +_0813DB60: .4byte gSineTable +_0813DB64: + adds r0, r1, 0 + adds r0, 0x20 +_0813DB68: + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x32] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0x17 + bgt _0813DB78 + adds r0, r1, 0x1 + strh r0, [r4, 0x32] +_0813DB78: + ldrh r2, [r4, 0x34] + movs r1, 0x34 + ldrsh r0, [r4, r1] + cmp r0, 0x3F + bgt _0813DB86 + adds r0, r2, 0x2 + b _0813DB92 +_0813DB86: + ldrh r1, [r4, 0x3C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0813DB94 + adds r0, r2, 0x1 +_0813DB92: + strh r0, [r4, 0x34] +_0813DB94: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_813DA64 + + thumb_func_start sub_813DB9C +sub_813DB9C: @ 813DB9C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _0813DBCC + lsls r0, 2 + ldr r1, _0813DBB4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813DBB4: .4byte _0813DBB8 + .align 2, 0 +_0813DBB8: + .4byte _0813DBCC + .4byte _0813DBF2 + .4byte _0813DC24 + .4byte _0813DC3E + .4byte _0813DCAA +_0813DBCC: + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0813DBE0 + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + b _0813DBEC +_0813DBE0: + adds r2, r4, 0 + adds r2, 0x3F + ldrb r1, [r2] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 +_0813DBEC: + strb r0, [r2] + movs r0, 0x1 + strh r0, [r4, 0x2E] +_0813DBF2: + ldrh r1, [r4, 0x22] + movs r3, 0x22 + ldrsh r0, [r4, r3] + cmp r0, 0x60 + ble _0813DC18 + subs r0, r1, 0x4 + strh r0, [r4, 0x22] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0813DC10 + ldrh r0, [r4, 0x20] + adds r0, 0x2 + strh r0, [r4, 0x20] + b _0813DD4E +_0813DC10: + ldrh r0, [r4, 0x20] + subs r0, 0x2 + strh r0, [r4, 0x20] + b _0813DD4E +_0813DC18: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x8 + strh r0, [r4, 0x34] + b _0813DD4E +_0813DC24: + ldrh r0, [r4, 0x34] + movs r2, 0x34 + ldrsh r1, [r4, r2] + cmp r1, 0 + beq _0813DC34 + subs r0, 0x1 + strh r0, [r4, 0x34] + b _0813DD4E +_0813DC34: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x34] + b _0813DD4E +_0813DC3E: + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + movs r3, 0x30 + ldrsh r1, [r4, r3] + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r2, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x3 + bl CalcCenterToCornerVec + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0813DC8A + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xFF + lsls r1, 8 + movs r2, 0x80 + lsls r2, 1 + str r2, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + b _0813DC9E +_0813DC8A: + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 1 + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix +_0813DC9E: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + movs r1, 0 + strh r0, [r4, 0x2E] + strh r1, [r4, 0x36] + b _0813DD4E +_0813DCAA: + ldrh r0, [r4, 0x36] + adds r2, r0, 0x1 + strh r2, [r4, 0x36] + movs r3, 0x22 + ldrsh r0, [r4, r3] + movs r3, 0x26 + ldrsh r1, [r4, r3] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + ble _0813DD48 + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r3, 0x24 + ldrsh r1, [r4, r3] + adds r0, r1 + movs r1, 0x40 + negs r1, r1 + cmp r0, r1 + ble _0813DD48 + movs r1, 0x36 + ldrsh r0, [r4, r1] + adds r3, r0, 0 + muls r3, r0 + adds r0, r3, 0 + negs r0, r0 + cmp r0, 0 + bge _0813DCE6 + adds r0, 0x7 +_0813DCE6: + asrs r0, 3 + strh r0, [r4, 0x26] + movs r1, 0x32 + ldrsh r0, [r4, r1] + ldrh r3, [r4, 0x32] + cmp r0, 0 + beq _0813DCFA + ldrh r0, [r4, 0x24] + adds r0, r2 + b _0813DCFE +_0813DCFA: + ldrh r0, [r4, 0x24] + subs r0, r2 +_0813DCFE: + strh r0, [r4, 0x24] + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0x7F + bgt _0813DD10 + adds r0, r1, 0 + adds r0, 0x8 + strh r0, [r4, 0x34] +_0813DD10: + ldrh r0, [r4, 0x34] + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + subs r1, r0 + lsls r1, 16 + lsrs r2, r1, 16 + lsls r0, r3, 16 + cmp r0, 0 + beq _0813DD34 + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + negs r1, r2 + lsls r1, 16 + lsrs r1, 16 + str r2, [sp] + b _0813DD3E +_0813DD34: + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + str r2, [sp] + adds r1, r2, 0 +_0813DD3E: + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + b _0813DD4E +_0813DD48: + adds r0, r4, 0 + bl DestroySprite +_0813DD4E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_813DB9C + + thumb_func_start sub_813DD58 +sub_813DD58: @ 813DD58 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0813DDAE + cmp r0, 0x1 + ble _0813DD72 + cmp r0, 0x2 + beq _0813DE66 + cmp r0, 0x3 + beq _0813DE26 +_0813DD72: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r2, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] + movs r0, 0x80 + lsls r0, 4 + strh r0, [r4, 0x34] + movs r0, 0x1 + strh r0, [r4, 0x2E] +_0813DDAE: + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + movs r2, 0x80 + lsls r2, 1 + cmp r0, r2 + ble _0813DDEE + subs r1, 0x80 + strh r1, [r4, 0x34] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0813DDDA + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + negs r1, r1 + lsls r1, 16 + lsrs r1, 16 + ldrh r2, [r4, 0x34] + str r2, [sp] + b _0813DDE4 +_0813DDDA: + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x34] + str r1, [sp] +_0813DDE4: + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + b _0813DE66 +_0813DDEE: + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0813DE0C + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xFF + lsls r1, 8 + str r2, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + b _0813DE1E +_0813DE0C: + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + str r2, [sp] + adds r1, r2, 0 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix +_0813DE1E: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _0813DE66 +_0813DE26: + ldrh r0, [r4, 0x36] + adds r0, 0x1 + strh r0, [r4, 0x36] + movs r2, 0x36 + ldrsh r0, [r4, r2] + adds r1, r0, 0 + muls r1, r0 + adds r0, r1, 0 + cmp r0, 0 + bge _0813DE3C + adds r0, 0x1F +_0813DE3C: + asrs r0, 5 + strh r0, [r4, 0x26] + movs r2, 0x32 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0813DE56 + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0 + bge _0813DE52 + adds r0, 0x3 +_0813DE52: + asrs r0, 2 + b _0813DE64 +_0813DE56: + movs r2, 0x36 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _0813DE60 + adds r0, 0x3 +_0813DE60: + asrs r0, 2 + negs r0, r0 +_0813DE64: + strh r0, [r4, 0x24] +_0813DE66: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_813DD58 + + thumb_func_start sub_813DE70 +sub_813DE70: @ 813DE70 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r7, r0, 0 + movs r1, 0x2E + ldrsh r0, [r7, r1] + cmp r0, 0x6 + bhi _0813DEB0 + lsls r0, 2 + ldr r1, _0813DE90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813DE90: .4byte _0813DE94 + .align 2, 0 +_0813DE94: + .4byte _0813DEB0 + .4byte _0813E0F8 + .4byte _0813DEF4 + .4byte _0813DF2C + .4byte _0813DF54 + .4byte _0813E0A8 + .4byte _0813E0D0 +_0813DEB0: + ldrh r1, [r7, 0x20] + movs r2, 0x20 + ldrsh r0, [r7, r2] + cmp r0, 0x28 + ble _0813DEC0 + subs r0, r1, 0x4 + strh r0, [r7, 0x20] + b _0813E0F8 +_0813DEC0: + adds r0, r7, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldr r4, _0813DEF0 + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x68 + movs r3, 0x64 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x3A] + adds r0, r4, 0 + movs r1, 0xC + movs r2, 0x6A + movs r3, 0x65 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + strh r0, [r7, 0x3C] + b _0813DF42 + .align 2, 0 +_0813DEF0: .4byte gSpriteTemplate_840B084 +_0813DEF4: + adds r0, r7, 0 + movs r1, 0x2 + bl StartSpriteAnim + ldr r2, _0813DF28 + movs r3, 0x3A + ldrsh r1, [r7, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x2E] + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldrh r0, [r7, 0x2E] + adds r0, 0x1 + strh r0, [r7, 0x2E] + b _0813E0F8 + .align 2, 0 +_0813DF28: .4byte gSprites +_0813DF2C: + ldrh r1, [r7, 0x22] + movs r2, 0x22 + ldrsh r0, [r7, r2] + cmp r0, 0xA0 + ble _0813DF48 + adds r2, r7, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_0813DF42: + movs r0, 0x1 + strh r0, [r7, 0x2E] + b _0813E0F8 +_0813DF48: + adds r0, r1, 0x2 + strh r0, [r7, 0x22] + ldrh r0, [r7, 0x20] + subs r0, 0x1 + strh r0, [r7, 0x20] + b _0813E0F8 +_0813DF54: + ldr r6, _0813E094 + movs r3, 0x3A + ldrsh r1, [r7, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r5, [r0, 0x24] + ldrh r1, [r0, 0x20] + adds r5, r1 + lsls r5, 16 + lsrs r5, 16 + ldrh r4, [r0, 0x26] + ldrh r2, [r0, 0x22] + adds r4, r2 + lsls r4, 16 + lsrs r4, 16 + bl DestroySprite + movs r0, 0x8C + lsls r0, 1 + lsls r5, 16 + asrs r1, r5, 16 + lsls r4, 16 + asrs r2, r4, 16 + movs r3, 0x1 + mov r8, r3 + str r3, [sp] + movs r3, 0x2 + bl sub_813CE88 + strh r0, [r7, 0x3A] + movs r0, 0x3A + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0813E098 + adds r0, r1 + ldr r2, _0813E09C + mov r10, r2 + str r2, [r0] + movs r3, 0x3A + ldrsh r1, [r7, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + mov r9, r2 + mov r3, r9 + orrs r1, r3 + strb r1, [r0] + movs r0, 0x3A + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r1, r8 + strh r1, [r0, 0x30] + movs r2, 0x3A + ldrsh r1, [r7, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + mov r3, r8 + strh r3, [r0, 0x32] + lsrs r5, 16 + lsrs r4, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_813E580 + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r5, [r0, 0x24] + ldrh r1, [r0, 0x20] + adds r5, r1 + lsls r5, 16 + lsrs r5, 16 + ldrh r4, [r0, 0x26] + ldrh r2, [r0, 0x22] + adds r4, r2 + lsls r4, 16 + lsrs r4, 16 + bl DestroySprite + ldr r0, _0813E0A0 + lsls r5, 16 + asrs r1, r5, 16 + lsls r4, 16 + asrs r2, r4, 16 + mov r3, r8 + str r3, [sp] + movs r3, 0x3 + bl sub_813CE88 + strh r0, [r7, 0x3C] + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0813E098 + adds r0, r1 + mov r2, r10 + str r2, [r0] + movs r3, 0x3C + ldrsh r1, [r7, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + mov r2, r9 + orrs r1, r2 + strb r1, [r0] + movs r3, 0x3C + ldrsh r1, [r7, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x2 + strh r1, [r0, 0x30] + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0 + strh r1, [r0, 0x32] + lsrs r5, 16 + lsrs r4, 16 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_813E580 + movs r0, 0xFF + lsls r0, 16 + ldr r1, _0813E0A4 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0x10 + bl BeginNormalPaletteFade + mov r2, r8 + strh r2, [r7, 0x2E] + b _0813E0F8 + .align 2, 0 +_0813E094: .4byte gSprites +_0813E098: .4byte gSprites + 0x1C +_0813E09C: .4byte sub_813DD58 +_0813E0A0: .4byte 0x0000011b +_0813E0A4: .4byte 0x00007eff +_0813E0A8: + ldr r3, _0813E0CC + movs r0, 0x3A + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r2, 0x3 + strh r2, [r0, 0x2E] + movs r0, 0x3C + ldrsh r1, [r7, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + strh r2, [r0, 0x2E] + b _0813E0F8 + .align 2, 0 +_0813E0CC: .4byte gSprites +_0813E0D0: + movs r2, 0x3A + ldrsh r1, [r7, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0813E108 + adds r0, r4 + bl DestroySprite + movs r3, 0x3C + ldrsh r1, [r7, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + adds r0, r7, 0 + bl DestroySprite +_0813E0F8: + 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 +_0813E108: .4byte gSprites + thumb_func_end sub_813DE70 + + thumb_func_start sub_813E10C +sub_813E10C: @ 813E10C + push {r4,lr} + adds r3, r0, 0 + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0x4 + bhi _0813E13C + lsls r0, 2 + ldr r1, _0813E124 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813E124: .4byte _0813E128 + .align 2, 0 +_0813E128: + .4byte _0813E13C + .4byte _0813E178 + .4byte _0813E1A6 + .4byte _0813E1C2 + .4byte _0813E1D6 +_0813E13C: + ldrh r4, [r3, 0x24] + movs r2, 0x24 + ldrsh r1, [r3, r2] + movs r0, 0x38 + negs r0, r0 + cmp r1, r0 + ble _0813E158 + adds r0, r4, 0 + subs r0, 0x8 + strh r0, [r3, 0x24] + ldrh r0, [r3, 0x26] + adds r0, 0x6 + strh r0, [r3, 0x26] + b _0813E208 +_0813E158: + ldrh r0, [r3, 0x20] + movs r2, 0 + strh r0, [r3, 0x3A] + ldrh r1, [r3, 0x22] + strh r1, [r3, 0x3C] + adds r0, r4 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x26] + adds r1, r0 + strh r1, [r3, 0x22] + strh r2, [r3, 0x24] + strh r2, [r3, 0x26] + movs r0, 0x1 + strh r0, [r3, 0x2E] + strh r2, [r3, 0x30] + b _0813E208 +_0813E178: + ldrh r1, [r3, 0x30] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0813E1A0 + movs r0, 0x2 + ands r0, r1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _0813E19C + ldr r0, _0813E198 + strh r0, [r3, 0x24] + strh r2, [r3, 0x26] + b _0813E1A0 + .align 2, 0 +_0813E198: .4byte 0x0000ffff +_0813E19C: + strh r0, [r3, 0x24] + strh r0, [r3, 0x26] +_0813E1A0: + adds r0, r1, 0x1 + strh r0, [r3, 0x30] + b _0813E208 +_0813E1A6: + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, 0x3A] + movs r1, 0 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x3C] + strh r0, [r3, 0x22] + strh r1, [r3, 0x24] + strh r1, [r3, 0x26] + b _0813E208 +_0813E1C2: + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] +_0813E1D6: + ldrh r2, [r3, 0x24] + movs r0, 0x24 + ldrsh r1, [r3, r0] + movs r0, 0x38 + negs r0, r0 + cmp r1, r0 + ble _0813E1F0 + subs r0, r2, 0x4 + strh r0, [r3, 0x24] + ldrh r0, [r3, 0x26] + adds r0, 0x3 + strh r0, [r3, 0x26] + b _0813E208 +_0813E1F0: + ldrh r1, [r3, 0x20] + adds r0, r2, r1 + movs r1, 0 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x26] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r3, 0x22] + strh r1, [r3, 0x24] + strh r1, [r3, 0x26] + movs r0, 0x1 + strh r0, [r3, 0x2E] +_0813E208: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_813E10C + + thumb_func_start sub_813E210 +sub_813E210: @ 813E210 + push {r4,lr} + adds r3, r0, 0 + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0x4 + bhi _0813E240 + lsls r0, 2 + ldr r1, _0813E228 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813E228: .4byte _0813E22C + .align 2, 0 +_0813E22C: + .4byte _0813E240 + .4byte _0813E278 + .4byte _0813E2A6 + .4byte _0813E2C2 + .4byte _0813E2D6 +_0813E240: + ldrh r4, [r3, 0x24] + movs r2, 0x24 + ldrsh r0, [r3, r2] + cmp r0, 0x37 + bgt _0813E258 + adds r0, r4, 0 + adds r0, 0x8 + strh r0, [r3, 0x24] + ldrh r0, [r3, 0x26] + subs r0, 0x6 + strh r0, [r3, 0x26] + b _0813E304 +_0813E258: + ldrh r0, [r3, 0x20] + movs r2, 0 + strh r0, [r3, 0x3A] + ldrh r1, [r3, 0x22] + strh r1, [r3, 0x3C] + adds r0, r4 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x26] + adds r1, r0 + strh r1, [r3, 0x22] + strh r2, [r3, 0x24] + strh r2, [r3, 0x26] + movs r0, 0x1 + strh r0, [r3, 0x2E] + strh r2, [r3, 0x30] + b _0813E304 +_0813E278: + ldrh r1, [r3, 0x30] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0813E2A0 + movs r0, 0x2 + ands r0, r1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _0813E29C + strh r2, [r3, 0x24] + ldr r0, _0813E298 + b _0813E29E + .align 2, 0 +_0813E298: .4byte 0x0000ffff +_0813E29C: + strh r0, [r3, 0x24] +_0813E29E: + strh r0, [r3, 0x26] +_0813E2A0: + adds r0, r1, 0x1 + strh r0, [r3, 0x30] + b _0813E304 +_0813E2A6: + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r3, 0x3A] + movs r1, 0 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x3C] + strh r0, [r3, 0x22] + strh r1, [r3, 0x24] + strh r1, [r3, 0x26] + b _0813E304 +_0813E2C2: + adds r2, r3, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + ldrh r0, [r3, 0x30] + adds r0, 0x1 + strh r0, [r3, 0x30] +_0813E2D6: + ldrh r1, [r3, 0x24] + movs r2, 0x24 + ldrsh r0, [r3, r2] + cmp r0, 0x37 + bgt _0813E2EC + adds r0, r1, 0x4 + strh r0, [r3, 0x24] + ldrh r0, [r3, 0x26] + subs r0, 0x3 + strh r0, [r3, 0x26] + b _0813E304 +_0813E2EC: + ldrh r2, [r3, 0x20] + adds r0, r1, r2 + movs r1, 0 + strh r0, [r3, 0x20] + ldrh r0, [r3, 0x26] + ldrh r2, [r3, 0x22] + adds r0, r2 + strh r0, [r3, 0x22] + strh r1, [r3, 0x24] + strh r1, [r3, 0x26] + movs r0, 0x1 + strh r0, [r3, 0x2E] +_0813E304: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_813E210 + + thumb_func_start sub_813E30C +sub_813E30C: @ 813E30C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x14 + bls _0813E322 + b _0813E4AC +_0813E322: + lsls r0, 2 + ldr r1, _0813E32C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813E32C: .4byte _0813E330 + .align 2, 0 +_0813E330: + .4byte _0813E4AC + .4byte _0813E384 + .4byte _0813E41C + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E3A8 + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E4AC + .4byte _0813E440 +_0813E384: + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r4, 0x3] + movs r0, 0xA + strh r0, [r4, 0x2E] + movs r0, 0x24 + strh r0, [r4, 0x36] +_0813E3A8: + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x90 + bgt _0813E3D2 + adds r0, r1, 0x4 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x22] + subs r0, 0x1 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x18 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x4 + strh r0, [r4, 0x32] +_0813E3D2: + ldrh r0, [r4, 0x34] + ldrh r2, [r4, 0x36] + subs r0, r2 + strh r0, [r4, 0x34] + ldrh r1, [r4, 0x3C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0813E3EE + lsls r0, r2, 16 + cmp r0, 0 + beq _0813E3EE + subs r0, r2, 0x1 + strh r0, [r4, 0x36] +_0813E3EE: + ldr r2, _0813E418 + ldrh r1, [r4, 0x34] + lsls r0, r1, 24 + lsrs r0, 23 + adds r0, r2 + ldrh r4, [r0] + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 23 + adds r1, r2 + ldrh r1, [r1] + negs r3, r4 + lsls r3, 16 + lsrs r3, 16 + str r1, [sp] + movs r0, 0x1 + adds r2, r4, 0 + bl SetOamMatrix + b _0813E4AC + .align 2, 0 +_0813E418: .4byte gSineTable +_0813E41C: + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4, 0x3] + movs r0, 0x14 + strh r0, [r4, 0x2E] + movs r0, 0x24 + strh r0, [r4, 0x36] +_0813E440: + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x60 + bgt _0813E46A + adds r0, r1, 0x3 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x22] + subs r0, 0x1 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x18 + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x4 + strh r0, [r4, 0x32] +_0813E46A: + ldrh r0, [r4, 0x34] + ldrh r2, [r4, 0x36] + subs r0, r2 + strh r0, [r4, 0x34] + ldrh r1, [r4, 0x3C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0813E486 + lsls r0, r2, 16 + cmp r0, 0 + beq _0813E486 + subs r0, r2, 0x1 + strh r0, [r4, 0x36] +_0813E486: + ldr r2, _0813E4B4 + ldrh r1, [r4, 0x34] + lsls r0, r1, 24 + lsrs r0, 23 + adds r0, r2 + ldrh r4, [r0] + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 23 + adds r1, r2 + ldrh r1, [r1] + negs r3, r4 + lsls r3, 16 + lsrs r3, 16 + str r1, [sp] + movs r0, 0x2 + adds r2, r4, 0 + bl SetOamMatrix +_0813E4AC: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813E4B4: .4byte gSineTable + thumb_func_end sub_813E30C + + thumb_func_start sub_813E4B8 +sub_813E4B8: @ 813E4B8 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldrh r0, [r5, 0x3C] + adds r0, 0x1 + strh r0, [r5, 0x3C] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0813E4DA + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + b _0813E4E4 +_0813E4DA: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 +_0813E4E4: + strb r0, [r2] + ldrh r1, [r5, 0x32] + movs r2, 0x32 + ldrsh r0, [r5, r2] + cmp r0, 0x3F + ble _0813E4F8 + adds r0, r5, 0 + bl DestroySprite + b _0813E574 +_0813E4F8: + adds r0, r1, 0x2 + strh r0, [r5, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x28 + bl Sin + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + lsls r0, 29 + lsrs r0, 24 + lsls r4, 16 + asrs r4, 16 + adds r1, r4, 0 + bl Cos + strh r0, [r5, 0x24] + movs r2, 0x2E + ldrsh r0, [r5, r2] + lsls r0, 29 + lsrs r0, 24 + adds r1, r4, 0 + bl Sin + strh r0, [r5, 0x26] + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _0813E574 + ldrh r0, [r5, 0x34] + ldrh r2, [r5, 0x30] + subs r0, r2 + strh r0, [r5, 0x34] + ldrh r1, [r5, 0x3C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0813E550 + lsls r0, r2, 16 + cmp r0, 0 + beq _0813E550 + subs r0, r2, 0x1 + strh r0, [r5, 0x30] +_0813E550: + ldr r3, _0813E57C + ldrh r1, [r5, 0x34] + lsls r0, r1, 24 + lsrs r0, 23 + adds r0, r3 + ldrh r2, [r0] + adds r1, 0x40 + lsls r1, 24 + lsrs r1, 23 + adds r1, r3 + ldrh r1, [r1] + negs r3, r2 + lsls r3, 16 + lsrs r3, 16 + str r1, [sp] + movs r0, 0x10 + bl SetOamMatrix +_0813E574: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813E57C: .4byte gSineTable + thumb_func_end sub_813E4B8 + + thumb_func_start sub_813E580 +sub_813E580: @ 813E580 + push {r4-r7,lr} + movs r4, 0 + ldr r7, _0813E5D8 + lsls r6, r0, 16 + lsls r5, r1, 16 +_0813E58A: + ldr r0, _0813E5DC + asrs r1, r6, 16 + asrs r2, r5, 16 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r7 + ldrb r1, [r2, 0x1] + movs r3, 0x4 + negs r3, r3 + adds r0, r3, 0 + ands r1, r0 + movs r0, 0x1 + orrs r1, r0 + strb r1, [r2, 0x1] + ldrb r1, [r2, 0x3] + subs r3, 0x3B + adds r0, r3, 0 + ands r1, r0 + movs r0, 0x20 + orrs r1, r0 + strb r1, [r2, 0x3] + strh r4, [r2, 0x2E] + movs r0, 0x20 + strh r0, [r2, 0x30] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _0813E58A + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813E5D8: .4byte gSprites +_0813E5DC: .4byte gSpriteTemplate_840B0B0 + thumb_func_end sub_813E580 + + thumb_func_start sub_813E5E0 +sub_813E5E0: @ 813E5E0 + push {r4,lr} + adds r3, r0, 0 + ldr r0, _0813E5F4 + ldrh r0, [r0] + cmp r0, 0 + beq _0813E5F8 + adds r0, r3, 0 + bl DestroySprite + b _0813E6B2 + .align 2, 0 +_0813E5F4: .4byte gUnknown_0203931A +_0813E5F8: + ldr r2, _0813E6B8 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r1, 0x4 + ands r1, r0 + mov r4, r12 + ldrb r2, [r4] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r1, [r3, 0x3C] + movs r2, 0x3C + ldrsh r0, [r3, r2] + cmp r0, 0xB + bgt _0813E630 + adds r0, r1, 0x1 + strh r0, [r3, 0x3C] +_0813E630: + ldrh r0, [r3, 0x3A] + adds r0, 0x4 + strh r0, [r3, 0x3A] + ldr r4, _0813E6BC + ldrh r0, [r3, 0x34] + adds r0, 0x40 + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x3A + ldrsh r0, [r3, r2] + muls r0, r1 + cmp r0, 0 + bge _0813E652 + adds r0, 0xFF +_0813E652: + asrs r0, 8 + ldrh r1, [r3, 0x36] + adds r0, r1 + strh r0, [r3, 0x20] + movs r2, 0x34 + ldrsh r0, [r3, r2] + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r2, 0x3A + ldrsh r0, [r3, r2] + muls r0, r1 + cmp r0, 0 + bge _0813E674 + adds r0, 0xFF +_0813E674: + asrs r0, 8 + ldrh r1, [r3, 0x38] + adds r2, r0, r1 + strh r2, [r3, 0x22] + movs r1, 0x30 + ldrsh r0, [r3, r1] + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + movs r4, 0 + ldrsh r1, [r0, r4] + movs r4, 0x3C + ldrsh r0, [r3, r4] + muls r0, r1 + cmp r0, 0 + bge _0813E696 + adds r0, 0xFF +_0813E696: + asrs r0, 8 + strh r0, [r3, 0x26] + ldrh r0, [r3, 0x30] + adds r0, 0x10 + strh r0, [r3, 0x30] + lsls r0, r2, 16 + asrs r0, 16 + movs r2, 0x32 + ldrsh r1, [r3, r2] + cmp r0, r1 + ble _0813E6B2 + adds r0, r3, 0 + bl DestroySprite +_0813E6B2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813E6B8: .4byte gSprites +_0813E6BC: .4byte gSineTable + thumb_func_end sub_813E5E0 + + thumb_func_start sub_813E6C0 +sub_813E6C0: @ 813E6C0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r4, r0, 0 + ldr r0, _0813E6E0 + ldrh r0, [r0] + cmp r0, 0 + beq _0813E6E4 + adds r0, r4, 0 + bl DestroySprite + b _0813E7A8 + .align 2, 0 +_0813E6E0: .4byte gUnknown_0203931A +_0813E6E4: + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r3, _0813E7B8 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r3 + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0x1 + bne _0813E7A8 + ldrh r1, [r4, 0x3C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0813E7A8 + ldrh r0, [r2, 0x20] + ldrh r7, [r4, 0x30] + adds r0, r7 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + ldrh r0, [r2, 0x22] + ldrh r1, [r4, 0x32] + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 + movs r5, 0 + mov r8, r3 + ldr r2, [sp] + lsls r2, 16 + mov r10, r2 + lsls r7, r6, 16 + mov r9, r7 +_0813E73A: + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x43 + ldrb r3, [r0] + subs r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _0813E7BC + mov r2, r10 + asrs r1, r2, 16 + mov r7, r9 + asrs r2, r7, 16 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0813E79E + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + add r3, r8 + ldrh r0, [r4, 0x2E] + strh r0, [r3, 0x2E] + ldrh r1, [r4, 0x3C] + lsls r1, 16 + asrs r1, 18 + movs r0, 0x7 + ands r1, r0 + lsls r1, 5 + lsls r0, r5, 2 + adds r0, r5 + lsls r2, r0, 4 + adds r0, r2 + adds r1, r0 + strh r1, [r3, 0x30] + ldrh r0, [r4, 0x34] + strh r0, [r3, 0x32] + movs r0, 0x68 + strh r0, [r3, 0x34] + mov r0, sp + ldrh r0, [r0] + strh r0, [r3, 0x36] + strh r6, [r3, 0x38] + movs r1, 0 + strh r1, [r3, 0x3A] +_0813E79E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _0813E73A +_0813E7A8: + 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 +_0813E7B8: .4byte gSprites +_0813E7BC: .4byte gSpriteTemplate_840B0DC + thumb_func_end sub_813E6C0 + + thumb_func_start sub_813E7C0 +sub_813E7C0: @ 813E7C0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0813E7F8 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0813E7F2 + ldr r1, _0813E7FC + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r2, 0 + strh r4, [r0, 0x2E] + ldr r1, _0813E800 + strh r1, [r0, 0x30] + strh r2, [r0, 0x32] + movs r1, 0x88 + strh r1, [r0, 0x34] +_0813E7F2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813E7F8: .4byte gSpriteTemplate_840B0F4 +_0813E7FC: .4byte gSprites +_0813E800: .4byte 0x0000fff4 + thumb_func_end sub_813E7C0 + + thumb_func_start sub_813E804 +sub_813E804: @ 813E804 + push {r4-r7,lr} + adds r3, r0, 0 + ldr r0, _0813E818 + ldrh r0, [r0] + cmp r0, 0 + beq _0813E81C + adds r0, r3, 0 + bl DestroySprite + b _0813E928 + .align 2, 0 +_0813E818: .4byte gUnknown_0203931A +_0813E81C: + ldr r6, _0813E904 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r0, [r0] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r1, 0x4 + ands r1, r0 + mov r7, r12 + ldrb r2, [r7] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r7] + ldrh r0, [r3, 0x3C] + adds r0, 0x1 + strh r0, [r3, 0x3C] + ldrh r1, [r3, 0x34] + movs r2, 0x34 + ldrsh r0, [r3, r2] + cmp r0, 0x27 + bgt _0813E85A + adds r0, r1, 0x2 + strh r0, [r3, 0x34] +_0813E85A: + movs r7, 0x2E + ldrsh r1, [r3, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0, 0x24] + ldrh r0, [r0, 0x20] + adds r2, r1, r0 + ldr r4, _0813E908 + ldrh r5, [r3, 0x30] + adds r0, r5, 0 + adds r0, 0x40 + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + movs r7, 0 + ldrsh r1, [r0, r7] + movs r7, 0x34 + ldrsh r0, [r3, r7] + muls r0, r1 + cmp r0, 0 + bge _0813E88A + adds r0, 0xFF +_0813E88A: + asrs r0, 8 + adds r0, r2, r0 + strh r0, [r3, 0x20] + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r2, r1, r0 + movs r1, 0x30 + ldrsh r0, [r3, r1] + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + movs r7, 0 + ldrsh r1, [r0, r7] + movs r7, 0x34 + ldrsh r0, [r3, r7] + muls r0, r1 + cmp r0, 0 + bge _0813E8BE + ldr r1, _0813E90C + adds r0, r1 +_0813E8BE: + asrs r0, 9 + adds r0, r2, r0 + strh r0, [r3, 0x22] + adds r1, r5, 0x2 + strh r1, [r3, 0x30] + movs r2, 0x32 + ldrsh r0, [r3, r2] + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + movs r7, 0 + ldrsh r0, [r0, r7] + cmp r0, 0 + bge _0813E8DC + adds r0, 0x1F +_0813E8DC: + asrs r0, 5 + strh r0, [r3, 0x26] + ldrh r0, [r3, 0x32] + adds r0, 0x8 + strh r0, [r3, 0x32] + movs r0, 0xFF + ands r1, r0 + cmp r1, 0x7F + bgt _0813E910 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x43 + ldrb r0, [r0] + subs r0, 0x1 + b _0813E922 + .align 2, 0 +_0813E904: .4byte gSprites +_0813E908: .4byte gSineTable +_0813E90C: .4byte 0x000001ff +_0813E910: + movs r2, 0x2E + ldrsh r1, [r3, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x43 + ldrb r0, [r0] + adds r0, 0x1 +_0813E922: + adds r1, r3, 0 + adds r1, 0x43 + strb r0, [r1] +_0813E928: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_813E804 + + thumb_func_start sub_813E930 +sub_813E930: @ 813E930 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r7, _0813E978 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r5, r0, r7 +_0813E942: + movs r0, 0x20 + ldrsh r1, [r5, r0] + movs r0, 0x22 + ldrsh r2, [r5, r0] + ldr r0, _0813E97C + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _0813E968 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r6, [r0, 0x2E] + lsls r1, r4, 5 + strh r1, [r0, 0x30] +_0813E968: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _0813E942 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813E978: .4byte gSprites +_0813E97C: .4byte gSpriteTemplate_840B124 + thumb_func_end sub_813E930 + + thumb_func_start GetCurrentTrainerHillMapId +GetCurrentTrainerHillMapId: @ 813E980 + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _0813E994 + ldrh r0, [r0] + cmp r0, 0 + beq _0813E998 + adds r0, r3, 0 + bl DestroySprite + b _0813EA50 + .align 2, 0 +_0813E994: .4byte gUnknown_0203931A +_0813E998: + ldr r2, _0813EA58 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r1, 0x4 + ands r1, r0 + mov r5, r12 + ldrb r2, [r5] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldrh r0, [r3, 0x3C] + adds r0, 0x1 + strh r0, [r3, 0x3C] + ldrh r0, [r3, 0x3A] + adds r4, r0, 0 + adds r4, 0x8 + strh r4, [r3, 0x3A] + ldr r2, _0813EA5C + ldrh r0, [r3, 0x34] + adds r0, 0x40 + lsls r0, 24 + lsrs r0, 23 + adds r0, r2 + movs r5, 0 + ldrsh r1, [r0, r5] + movs r5, 0x3A + ldrsh r0, [r3, r5] + muls r0, r1 + cmp r0, 0 + bge _0813E9EC + adds r0, 0xFF +_0813E9EC: + asrs r0, 8 + ldrh r1, [r3, 0x36] + adds r0, r1 + strh r0, [r3, 0x20] + movs r5, 0x34 + ldrsh r0, [r3, r5] + lsls r0, 24 + lsrs r0, 23 + adds r0, r2 + movs r2, 0 + ldrsh r1, [r0, r2] + movs r5, 0x3A + ldrsh r0, [r3, r5] + muls r0, r1 + cmp r0, 0 + bge _0813EA0E + adds r0, 0xFF +_0813EA0E: + asrs r0, 8 + ldrh r1, [r3, 0x38] + adds r0, r1 + strh r0, [r3, 0x22] + movs r2, 0x3A + ldrsh r0, [r3, r2] + cmp r0, 0 + bge _0813EA20 + adds r0, 0xF +_0813EA20: + asrs r0, 4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x9 + bls _0813EA2C + movs r0, 0x9 +_0813EA2C: + adds r1, r0, 0 + adds r1, 0x12 + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r2, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x3] + lsls r0, r4, 16 + asrs r0, 16 + cmp r0, 0xA0 + ble _0813EA50 + adds r0, r3, 0 + bl DestroySprite +_0813EA50: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813EA58: .4byte gSprites +_0813EA5C: .4byte gSineTable + thumb_func_end GetCurrentTrainerHillMapId + + thumb_func_start sub_813EA60 +sub_813EA60: @ 813EA60 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + ldr r0, _0813EA7C + ldrh r0, [r0] + cmp r0, 0 + beq _0813EA80 + adds r0, r5, 0 + bl DestroySprite + b _0813EB32 + .align 2, 0 +_0813EA7C: .4byte gUnknown_0203931A +_0813EA80: + ldrh r0, [r5, 0x3C] + adds r0, 0x1 + strh r0, [r5, 0x3C] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0813EB40 + mov r9, r0 + movs r4, 0x2E + ldrsh r1, [r5, r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r1, r9 + adds r3, r0, r1 + movs r4, 0x2E + ldrsh r1, [r3, r4] + cmp r1, 0x1 + bne _0813EB32 + ldrh r0, [r5, 0x3C] + ands r1, r0 + lsls r0, r1, 16 + asrs r6, r0, 16 + cmp r6, 0 + bne _0813EB32 + ldrh r1, [r3, 0x20] + ldrh r0, [r5, 0x30] + adds r1, r0 + lsls r1, 16 + ldrh r2, [r3, 0x22] + ldrh r4, [r5, 0x32] + adds r2, r4 + lsls r2, 16 + ldr r0, _0813EB44 + lsrs r4, r1, 16 + mov r8, r4 + asrs r1, 16 + lsrs r7, r2, 16 + asrs r2, 16 + adds r3, 0x43 + ldrb r3, [r3] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0813EB32 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + add r4, r9 + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x24 + orrs r0, r1 + strb r0, [r4, 0x3] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1 + movs r3, 0x3 + bl CalcCenterToCornerVec + ldrh r0, [r5, 0x2E] + strh r0, [r4, 0x2E] + ldr r2, _0813EB48 + ldrh r0, [r5, 0x3C] + lsls r0, 16 + asrs r0, 17 + movs r1, 0x7 + ands r0, r1 + adds r0, r2 + ldrb r0, [r0] + strh r0, [r4, 0x34] + mov r0, r8 + strh r0, [r4, 0x36] + strh r7, [r4, 0x38] + strh r6, [r4, 0x3A] +_0813EB32: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813EB40: .4byte gSprites +_0813EB44: .4byte gSpriteTemplate_840B150 +_0813EB48: .4byte gUnknown_0840B168 + thumb_func_end sub_813EA60 + + thumb_func_start sub_813EB4C +sub_813EB4C: @ 813EB4C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0813EBB0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0813EB80 + ldr r1, _0813EBB4 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0 + strh r4, [r0, 0x2E] + strh r1, [r0, 0x30] + movs r1, 0x8 + strh r1, [r0, 0x32] + movs r1, 0x18 + strh r1, [r0, 0x34] +_0813EB80: + movs r4, 0 + ldr r5, _0813EBB8 +_0813EB84: + adds r0, r4, 0 + adds r0, 0x12 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 1 + adds r1, r5 + ldrh r1, [r1] + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _0813EB84 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813EBB0: .4byte gSpriteTemplate_840B170 +_0813EBB4: .4byte gSprites +_0813EBB8: .4byte gUnknown_0840B188 + thumb_func_end sub_813EB4C + + thumb_func_start sub_813EBBC +sub_813EBBC: @ 813EBBC + push {r4,lr} + adds r3, r0, 0 + ldr r0, _0813EBD0 + ldrh r0, [r0] + cmp r0, 0 + beq _0813EBD4 + adds r0, r3, 0 + bl DestroySprite + b _0813EC80 + .align 2, 0 +_0813EBD0: .4byte gUnknown_0203931A +_0813EBD4: + ldr r2, _0813EC88 + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r1, 0x4 + ands r1, r0 + mov r4, r12 + ldrb r2, [r4] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r4] + ldrh r0, [r3, 0x3C] + adds r0, 0x1 + strh r0, [r3, 0x3C] + ldrh r0, [r3, 0x3A] + adds r0, 0x8 + strh r0, [r3, 0x3A] + ldr r2, _0813EC8C + ldrh r0, [r3, 0x34] + adds r0, 0x40 + lsls r0, 24 + lsrs r0, 23 + adds r0, r2 + movs r4, 0 + ldrsh r1, [r0, r4] + movs r4, 0x3A + ldrsh r0, [r3, r4] + muls r0, r1 + cmp r0, 0 + bge _0813EC26 + adds r0, 0xFF +_0813EC26: + asrs r0, 8 + ldrh r1, [r3, 0x36] + adds r0, r1 + strh r0, [r3, 0x20] + movs r4, 0x34 + ldrsh r0, [r3, r4] + lsls r0, 24 + lsrs r0, 23 + adds r0, r2 + movs r4, 0 + ldrsh r1, [r0, r4] + movs r4, 0x3A + ldrsh r0, [r3, r4] + muls r0, r1 + cmp r0, 0 + bge _0813EC48 + adds r0, 0xFF +_0813EC48: + asrs r0, 8 + ldrh r4, [r3, 0x38] + adds r1, r0, r4 + strh r1, [r3, 0x22] + movs r4, 0x30 + ldrsh r0, [r3, r4] + lsls r0, 24 + lsrs r0, 23 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bge _0813EC64 + adds r0, 0x3F +_0813EC64: + asrs r0, 6 + strh r0, [r3, 0x26] + ldrh r0, [r3, 0x30] + adds r0, 0x10 + strh r0, [r3, 0x30] + lsls r0, r1, 16 + asrs r0, 16 + movs r4, 0x32 + ldrsh r1, [r3, r4] + cmp r0, r1 + bge _0813EC80 + adds r0, r3, 0 + bl DestroySprite +_0813EC80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813EC88: .4byte gSprites +_0813EC8C: .4byte gSineTable + thumb_func_end sub_813EBBC + + thumb_func_start sub_813EC90 +sub_813EC90: @ 813EC90 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r5, r0, 0 + ldr r0, _0813ECAC + ldrh r0, [r0] + cmp r0, 0 + beq _0813ECB0 + adds r0, r5, 0 + bl DestroySprite + b _0813EDA0 + .align 2, 0 +_0813ECAC: .4byte gUnknown_0203931A +_0813ECB0: + ldrh r0, [r5, 0x3C] + adds r0, 0x1 + strh r0, [r5, 0x3C] + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0813EDB0 + mov r9, r0 + movs r2, 0x2E + ldrsh r1, [r5, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r4, r9 + adds r3, r0, r4 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0x1 + bne _0813ED74 + ldrh r0, [r5, 0x3C] + ands r1, r0 + lsls r0, r1, 16 + asrs r6, r0, 16 + cmp r6, 0 + bne _0813ED66 + ldrh r1, [r3, 0x20] + ldrh r2, [r5, 0x30] + adds r1, r2 + lsls r1, 16 + ldrh r2, [r3, 0x22] + ldrh r4, [r5, 0x32] + adds r2, r4 + lsls r2, 16 + ldr r0, _0813EDB4 + lsrs r4, r1, 16 + mov r8, r4 + asrs r1, 16 + lsrs r7, r2, 16 + asrs r2, 16 + adds r3, 0x43 + ldrb r3, [r3] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0813ED66 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + add r4, r9 + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x22 + orrs r0, r1 + strb r0, [r4, 0x3] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1 + movs r3, 0x3 + bl CalcCenterToCornerVec + ldrh r0, [r5, 0x2E] + strh r0, [r4, 0x2E] + ldrh r0, [r5, 0x3C] + lsls r0, 16 + asrs r0, 18 + movs r1, 0x7 + ands r0, r1 + lsls r0, 5 + strh r0, [r4, 0x30] + ldrh r0, [r5, 0x34] + strh r0, [r4, 0x32] + movs r0, 0xE8 + strh r0, [r4, 0x34] + mov r0, r8 + strh r0, [r4, 0x36] + strh r7, [r4, 0x38] + strh r6, [r4, 0x3A] +_0813ED66: + ldrh r1, [r5, 0x3A] + movs r2, 0x3A + ldrsh r0, [r5, r2] + cmp r0, 0x6F + bgt _0813ED74 + adds r0, r1, 0x4 + strh r0, [r5, 0x3A] +_0813ED74: + ldr r1, _0813EDB8 + ldrh r0, [r5, 0x3A] + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + movs r4, 0 + ldrsh r0, [r0, r4] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r0, 0x11 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix +_0813EDA0: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813EDB0: .4byte gSprites +_0813EDB4: .4byte gSpriteTemplate_840B1B0 +_0813EDB8: .4byte gSineTable + thumb_func_end sub_813EC90 + + thumb_func_start sub_813EDBC +sub_813EDBC: @ 813EDBC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0813EDF4 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x40 + beq _0813EDEE + ldr r1, _0813EDF8 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0 + strh r4, [r0, 0x2E] + strh r1, [r0, 0x30] + movs r1, 0xC + strh r1, [r0, 0x32] + movs r1, 0x18 + strh r1, [r0, 0x34] +_0813EDEE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813EDF4: .4byte gSpriteTemplate_840B1C8 +_0813EDF8: .4byte gSprites + thumb_func_end sub_813EDBC + + thumb_func_start sub_813EDFC +sub_813EDFC: @ 813EDFC + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _0813EE12 + adds r4, r5, 0 + adds r4, 0x3E + cmp r0, 0x1 + beq _0813EE4A +_0813EE12: + adds r4, r5, 0 + adds r4, 0x3E + ldrb r1, [r4] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r5, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r5, 0x1] + ldrb r1, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x24 + orrs r0, r1 + strb r0, [r5, 0x3] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0x3 + movs r3, 0x3 + bl CalcCenterToCornerVec + movs r0, 0 + strh r0, [r5, 0x30] + movs r0, 0x1 + strh r0, [r5, 0x2E] +_0813EE4A: + ldrh r0, [r5, 0x3C] + adds r0, 0x1 + strh r0, [r5, 0x3C] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0813EE62 + ldrb r0, [r4] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4] + b _0813EE7A +_0813EE62: + ldrb r0, [r4] + movs r1, 0x5 + negs r1, r1 + ands r1, r0 + strb r1, [r4] + ldrh r1, [r5, 0x30] + movs r2, 0x30 + ldrsh r0, [r5, r2] + cmp r0, 0x3F + bgt _0813EE7A + adds r0, r1, 0x1 + strh r0, [r5, 0x30] +_0813EE7A: + ldr r1, _0813EEB0 + ldrh r0, [r5, 0x30] + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + movs r2, 0x80 + lsls r2, 1 + adds r1, r2, 0 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r0, 0x12 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813EEB0: .4byte gSineTable + thumb_func_end sub_813EDFC + + thumb_func_start sub_813EEB4 +sub_813EEB4: @ 813EEB4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0 + bl SetVBlankCallback + ldr r2, _0813EED8 + ldr r0, _0813EEDC + adds r1, r2, r0 + movs r0, 0 + strh r0, [r1] + str r4, [r2] + ldr r0, _0813EEE0 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813EED8: .4byte 0x02000000 +_0813EEDC: .4byte 0x00000888 +_0813EEE0: .4byte sub_813EEE4 + thumb_func_end sub_813EEB4 + + thumb_func_start sub_813EEE4 +sub_813EEE4: @ 813EEE4 + push {r4,lr} + sub sp, 0x4 + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0x10 + 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] + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r0, _0813EF98 + movs r1, 0 + bl sub_80FA8EC + movs r0, 0 + movs r1, 0 + bl sub_80FBCF0 + movs r0, 0x1 + movs r1, 0x1 + bl sub_80FBB3C + ldr r4, _0813EF9C + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + bl MenuZeroFillScreen + ldr r1, _0813EFA0 + movs r2, 0xF8 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0x15 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x3 + bl MenuDrawTextWindow + ldr r0, _0813EFA4 + movs r1, 0x16 + movs r2, 0x1 + movs r3, 0x38 + bl sub_8072BD8 + movs r0, 0x10 + movs r1, 0x10 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + bl sub_813F0C8 + ldr r0, _0813EFA8 + bl SetMainCallback2 + ldr r0, _0813EFAC + bl SetVBlankCallback + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813EF98: .4byte 0x02000008 +_0813EF9C: .4byte gWindowConfig_81E709C +_0813EFA0: .4byte REG_BG0CNT +_0813EFA4: .4byte gOtherText_Hoenn +_0813EFA8: .4byte sub_813EFC4 +_0813EFAC: .4byte sub_813EFB0 + thumb_func_end sub_813EEE4 + + thumb_func_start sub_813EFB0 +sub_813EFB0: @ 813EFB0 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_813EFB0 + + thumb_func_start sub_813EFC4 +sub_813EFC4: @ 813EFC4 + push {lr} + bl sub_813EFDC + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_813EFC4 + + thumb_func_start sub_813EFDC +sub_813EFDC: @ 813EFDC + push {lr} + sub sp, 0x4 + ldr r1, _0813EFF8 + ldr r2, _0813EFFC + adds r0, r1, r2 + ldrh r0, [r0] + adds r2, r1, 0 + cmp r0, 0x4 + bhi _0813F0B8 + lsls r0, 2 + ldr r1, _0813F000 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813EFF8: .4byte 0x02000000 +_0813EFFC: .4byte 0x00000888 +_0813F000: .4byte _0813F004 + .align 2, 0 +_0813F004: + .4byte _0813F018 + .4byte _0813F030 + .4byte _0813F04C + .4byte _0813F078 + .4byte _0813F0A0 +_0813F018: + movs r1, 0x80 + lsls r1, 19 + ldr r3, _0813F028 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _0813F02C + adds r1, r2, r0 + b _0813F08E + .align 2, 0 +_0813F028: .4byte 0x00001541 +_0813F02C: .4byte 0x00000888 +_0813F030: + ldr r0, _0813F044 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0813F0B8 + ldr r3, _0813F048 + adds r1, r2, r3 + b _0813F08E + .align 2, 0 +_0813F044: .4byte gPaletteFade +_0813F048: .4byte 0x00000888 +_0813F04C: + bl sub_80FAB60 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _0813F05E + bl sub_813F0C8 + b _0813F0B8 +_0813F05E: + cmp r0, 0x3 + blt _0813F0B8 + cmp r0, 0x5 + bgt _0813F0B8 + ldr r1, _0813F070 + ldr r0, _0813F074 + adds r1, r0 + b _0813F08E + .align 2, 0 +_0813F070: .4byte 0x02000000 +_0813F074: .4byte 0x00000888 +_0813F078: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0813F098 + ldr r2, _0813F09C + adds r1, r2 +_0813F08E: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _0813F0B8 + .align 2, 0 +_0813F098: .4byte 0x02000000 +_0813F09C: .4byte 0x00000888 +_0813F0A0: + ldr r0, _0813F0C0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0813F0B8 + bl sub_80FAB10 + ldr r0, _0813F0C4 + ldr r0, [r0] + bl SetMainCallback2 +_0813F0B8: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0813F0C0: .4byte gPaletteFade +_0813F0C4: .4byte 0x02000000 + thumb_func_end sub_813EFDC + + thumb_func_start sub_813F0C8 +sub_813F0C8: @ 813F0C8 + push {lr} + movs r0, 0x11 + movs r1, 0x11 + movs r2, 0x1C + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + ldr r1, _0813F0F0 + ldrb r0, [r1, 0x1E] + cmp r0, 0 + beq _0813F0EA + adds r0, r1, 0 + adds r0, 0x8 + movs r1, 0x11 + movs r2, 0x11 + bl MenuPrint +_0813F0EA: + pop {r0} + bx r0 + .align 2, 0 +_0813F0F0: .4byte 0x02000000 + thumb_func_end sub_813F0C8 + + thumb_func_start unref_sub_813F0F4 +unref_sub_813F0F4: @ 813F0F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] + ldr r0, _0813F2AC + ldrb r3, [r0] + ldr r0, _0813F2B0 + movs r1, 0 + strh r1, [r0] + ldr r0, _0813F2B4 + strh r1, [r0] + ldr r1, _0813F2B8 + ldr r2, _0813F2BC + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r4, _0813F2C0 + adds r0, r4, 0 + strh r0, [r1] + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r4, 0x80 + lsls r4, 8 + adds r1, r4, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0813F2C4 + ldr r2, _0813F2C8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r4, 0x80 + lsls r4, 5 + adds r0, r4, 0 + strh r0, [r1] + ldr r2, _0813F2CC + ldrb r1, [r2] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrb r1, [r2, 0x1] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + mov r9, r0 + ands r0, r1 + movs r1, 0x4 + mov r8, r1 + mov r4, r8 + orrs r0, r4 + strb r0, [r2] + ldr r0, _0813F2D0 + adds r3, r0 + ldrb r0, [r3] + ldr r1, _0813F2D4 + mov r10, r1 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + add r4, r10 + ldrb r7, [r4, 0x6] + ldrh r6, [r4, 0x38] + lsls r6, 24 + lsrs r6, 24 + ldr r0, _0813F2D8 + bl object_new_hidden_with_callback + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x14] + ldr r0, _0813F2D8 + bl object_new_hidden_with_callback + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x18] + ldrb r1, [r4, 0x5] + mov r0, r9 + ands r0, r1 + mov r2, r8 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r5, r7, 4 + adds r5, r7 + lsls r5, 2 + add r5, r10 + ldrb r1, [r5, 0x5] + mov r0, r9 + ands r0, r1 + orrs r0, r2 + strb r0, [r5, 0x5] + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + add r1, r10 + ldrb r2, [r1, 0x5] + mov r0, r9 + ands r0, r2 + mov r2, r8 + orrs r0, r2 + strb r0, [r1, 0x5] + ldr r0, [sp, 0x14] + lsls r6, r0, 4 + adds r6, r0 + lsls r6, 2 + mov r1, r10 + adds r7, r6, r1 + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0x44 + bl memcpy + ldr r2, [sp, 0x18] + lsls r4, r2, 4 + adds r4, r2 + lsls r4, 2 + adds r0, r4, 0 + add r0, r10 + mov r8, r0 + adds r1, r5, 0 + movs r2, 0x44 + bl memcpy + ldrb r1, [r7, 0x1] + mov r0, r9 + ands r0, r1 + movs r1, 0x8 + orrs r0, r1 + strb r0, [r7, 0x1] + mov r2, r8 + ldrb r0, [r2, 0x1] + mov r2, r9 + ands r2, r0 + orrs r2, r1 + mov r0, r8 + strb r2, [r0, 0x1] + movs r1, 0x1C + add r10, r1 + add r6, r10 + ldr r2, _0813F2D8 + str r2, [r6] + add r4, r10 + str r2, [r4] + mov r0, sp + bl sub_8078914 + ldr r1, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0xC] + ldr r2, _0813F2DC + add r0, sp, 0xC + str r0, [r2] + str r1, [r2, 0x4] + ldr r0, _0813F2E0 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _0813F2E4 + bl LZDecompressVram + ldr r0, _0813F2E8 + ldr r1, [sp] + bl LZDecompressVram + ldr r0, _0813F2EC + mov r1, sp + ldrb r1, [r1, 0x8] + lsls r1, 4 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r1, _0813F2F0 + ldrh r0, [r7, 0x20] + negs r0, r0 + adds r0, 0x20 + strh r0, [r1] + ldr r1, _0813F2F4 + ldrh r0, [r7, 0x22] + negs r0, r0 + subs r0, 0x20 + strh r0, [r1] + ldr r1, _0813F2F8 + ldr r4, [sp, 0x10] + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0xA0 + lsls r1, 2 + strh r1, [r0, 0xA] + mov r1, sp + ldrh r1, [r1, 0x14] + strh r1, [r0, 0x8] + mov r2, sp + ldrh r2, [r2, 0x18] + strh r2, [r0, 0xC] + ldr r1, _0813F2FC + str r1, [r0] + 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 +_0813F2AC: .4byte gUnknown_0202F7C8 +_0813F2B0: .4byte gUnknown_030042C4 +_0813F2B4: .4byte gUnknown_03004240 +_0813F2B8: .4byte REG_WININ +_0813F2BC: .4byte 0x00003f3f +_0813F2C0: .4byte 0x00003f3d +_0813F2C4: .4byte REG_BLDCNT +_0813F2C8: .4byte 0x00003f42 +_0813F2CC: .4byte REG_BG1CNT +_0813F2D0: .4byte gUnknown_03004340 +_0813F2D4: .4byte gSprites +_0813F2D8: .4byte SpriteCallbackDummy +_0813F2DC: .4byte 0x040000d4 +_0813F2E0: .4byte 0x85000400 +_0813F2E4: .4byte gUnknown_08D2EE48 +_0813F2E8: .4byte gUnknown_08D2EDFC +_0813F2EC: .4byte gUnknown_08D2E150 +_0813F2F0: .4byte gUnknown_030042C0 +_0813F2F4: .4byte gUnknown_030041B4 +_0813F2F8: .4byte gTasks +_0813F2FC: .4byte sub_813F300 + thumb_func_end unref_sub_813F0F4 + + thumb_func_start sub_813F300 +sub_813F300: @ 813F300 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _0813F34C + ldrb r0, [r0] + mov r9, r0 + ldr r1, _0813F350 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0xA] + ldrh r0, [r4, 0x22] + adds r1, r0 + movs r3, 0 + strh r1, [r4, 0x22] + ldr r2, _0813F354 + lsls r0, r1, 16 + lsrs r0, 24 + ldrh r5, [r2] + adds r0, r5 + strh r0, [r2] + movs r0, 0xFF + ands r1, r0 + strh r1, [r4, 0x22] + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0813F394 + cmp r0, 0x1 + bgt _0813F358 + cmp r0, 0 + beq _0813F35E + b _0813F4B2 + .align 2, 0 +_0813F34C: .4byte gUnknown_0202F7C8 +_0813F350: .4byte gTasks +_0813F354: .4byte gUnknown_030041B4 +_0813F358: + cmp r0, 0x2 + beq _0813F3AC + b _0813F4B2 +_0813F35E: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bgt _0813F36E + b _0813F4B2 +_0813F36E: + strh r3, [r4, 0x1E] + ldrh r1, [r4, 0x20] + adds r1, 0x1 + strh r1, [r4, 0x20] + ldr r2, _0813F390 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r2] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x8 + beq _0813F38C + b _0813F4B2 +_0813F38C: + b _0813F3A4 + .align 2, 0 +_0813F390: .4byte REG_BLDALPHA +_0813F394: + ldrh r0, [r4, 0x1C] + adds r0, 0x1 + strh r0, [r4, 0x1C] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1E + beq _0813F3A4 + b _0813F4B2 +_0813F3A4: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _0813F4B2 +_0813F3AC: + ldrh r0, [r4, 0x1E] + adds r1, r0, 0x1 + strh r1, [r4, 0x1E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _0813F4B2 + strh r3, [r4, 0x1E] + ldrh r1, [r4, 0x20] + subs r1, 0x1 + strh r1, [r4, 0x20] + ldr r6, _0813F4C0 + movs r0, 0x10 + subs r0, r1 + lsls r0, 8 + orrs r1, r0 + strh r1, [r6] + movs r3, 0x20 + ldrsh r5, [r4, r3] + cmp r5, 0 + bne _0813F4B2 + movs r0, 0 + bl sub_8076464 + ldr r0, _0813F4C4 + strh r5, [r0] + ldr r0, _0813F4C8 + strh r5, [r0] + ldr r0, _0813F4CC + ldr r2, _0813F4D0 + adds r1, r2, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _0813F406 + ldr r2, _0813F4D4 + ldrb r1, [r2] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_0813F406: + 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, _0813F4D8 + strh r5, [r0] + strh r5, [r6] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0813F4DC + mov r8, r1 + add r0, r8 + bl DestroySprite + movs r2, 0xC + ldrsh r1, [r4, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + bl DestroySprite + mov r0, sp + bl sub_8078914 + ldr r2, [sp, 0x4] + str r5, [sp, 0xC] + ldr r1, _0813F4E0 + add r0, sp, 0xC + str r0, [r1] + str r2, [r1, 0x4] + ldr r0, _0813F4E4 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldr r2, _0813F4D4 + ldrb r1, [r2, 0x1] + movs r0, 0x21 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x1] + ldr r0, _0813F4E8 + add r0, r9 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r6, [r1, 0x6] + ldrh r4, [r1, 0x38] + lsls r4, 24 + lsrs r4, 24 + ldrb r3, [r1, 0x5] + movs r2, 0xD + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + movs r5, 0x4 + orrs r0, r5 + strb r0, [r1, 0x5] + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + add r1, r8 + ldrb r3, [r1, 0x5] + adds r0, r2, 0 + ands r0, r3 + orrs r0, r5 + strb r0, [r1, 0x5] + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + add r0, r8 + ldrb r1, [r0, 0x5] + ands r2, r1 + orrs r2, r5 + strb r2, [r0, 0x5] + adds r0, r7, 0 + bl move_anim_task_del +_0813F4B2: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813F4C0: .4byte REG_BLDALPHA +_0813F4C4: .4byte gUnknown_030042C4 +_0813F4C8: .4byte gUnknown_03004240 +_0813F4CC: .4byte REG_WININ +_0813F4D0: .4byte 0x00003f3f +_0813F4D4: .4byte REG_BG1CNT +_0813F4D8: .4byte REG_BLDCNT +_0813F4DC: .4byte gSprites +_0813F4E0: .4byte 0x040000d4 +_0813F4E4: .4byte 0x85000200 +_0813F4E8: .4byte gUnknown_03004340 + thumb_func_end sub_813F300 + + thumb_func_start sub_813F4EC +sub_813F4EC: @ 813F4EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldr r1, _0813F5D0 + ldr r0, _0813F5D4 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + ldr r7, _0813F5D8 + lsls r6, r0, 4 + adds r6, r0 + lsls r6, 2 + adds r6, r7 + ldrb r0, [r6, 0x6] + str r0, [sp, 0x4] + ldrh r4, [r6, 0x38] + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0813F5DC + bl AllocSpritePalette + mov r8, r0 + mov r1, r8 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r0, _0813F5E0 + bl AllocSpritePalette + mov r9, r0 + mov r2, r9 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + ldrb r0, [r6, 0x5] + lsrs r0, 4 + lsls r0, 4 + movs r1, 0x80 + lsls r1, 1 + adds r3, r1, 0 + orrs r0, r3 + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + adds r5, r7 + ldrb r4, [r5, 0x5] + lsrs r4, 4 + lsls r4, 4 + orrs r4, r3 + lsls r0, 1 + ldr r2, _0813F5E4 + mov r10, r2 + add r0, r10 + mov r1, r8 + lsls r1, 4 + mov r8, r1 + adds r1, r3, r1 + movs r2, 0x20 + str r3, [sp, 0x8] + bl LoadPalette + lsls r4, 1 + add r4, r10 + mov r2, r9 + lsls r2, 4 + mov r9, r2 + ldr r3, [sp, 0x8] + add r3, r9 + adds r0, r4, 0 + adds r1, r3, 0 + movs r2, 0x20 + bl LoadPalette + ldrb r1, [r6, 0x5] + movs r2, 0xF + adds r0, r2, 0 + ands r0, r1 + mov r3, r8 + orrs r0, r3 + strb r0, [r6, 0x5] + ldr r0, [sp, 0x4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r3, [r1, 0x5] + adds r0, r2, 0 + ands r0, r3 + mov r3, r8 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r5, 0x5] + ands r2, r0 + mov r0, r9 + orrs r2, r0 + strb r2, [r5, 0x5] + ldr r0, [sp] + bl move_anim_task_del + 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 +_0813F5D0: .4byte gUnknown_03004340 +_0813F5D4: .4byte gUnknown_0202F7C8 +_0813F5D8: .4byte gSprites +_0813F5DC: .4byte 0x0000d709 +_0813F5E0: .4byte 0x0000d70a +_0813F5E4: .4byte gPlttBufferUnfaded + thumb_func_end sub_813F4EC + + thumb_func_start sub_813F5E8 +sub_813F5E8: @ 813F5E8 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + mov r8, r0 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _0813F684 + ldr r0, _0813F688 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + ldr r1, _0813F68C + mov r9, r1 + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + add r5, r9 + ldrb r0, [r5, 0x6] + mov r10, r0 + ldrh r6, [r5, 0x38] + lsls r6, 24 + lsrs r6, 24 + ldr r0, _0813F690 + bl FreeSpritePaletteByTag + ldr r0, _0813F694 + bl FreeSpritePaletteByTag + ldr r0, _0813F698 + bl IndexOfSpritePaletteTag + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0813F69C + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsls r4, 4 + ldrb r2, [r5, 0x5] + movs r3, 0xF + adds r1, r3, 0 + ands r1, r2 + orrs r1, r4 + strb r1, [r5, 0x5] + mov r1, r10 + lsls r2, r1, 4 + add r2, r10 + lsls r2, 2 + add r2, r9 + ldrb r5, [r2, 0x5] + adds r1, r3, 0 + ands r1, r5 + orrs r1, r4 + strb r1, [r2, 0x5] + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + add r1, r9 + lsrs r0, 20 + ldrb r2, [r1, 0x5] + ands r3, r2 + orrs r3, r0 + strb r3, [r1, 0x5] + mov r0, r8 + bl move_anim_task_del + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813F684: .4byte gUnknown_03004340 +_0813F688: .4byte gUnknown_0202F7C8 +_0813F68C: .4byte gSprites +_0813F690: .4byte 0x0000d709 +_0813F694: .4byte 0x0000d70a +_0813F698: .4byte 0x0000d6ff +_0813F69C: .4byte 0x0000d704 + thumb_func_end sub_813F5E8 + + thumb_func_start sub_813F6A0 +sub_813F6A0: @ 813F6A0 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0813F6C0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _0813F6C4 + ldrh r0, [r2] + strh r0, [r1, 0x1C] + ldrh r0, [r2, 0x2] + strh r0, [r1, 0x1E] + ldr r0, _0813F6C8 + str r0, [r1] + bx lr + .align 2, 0 +_0813F6C0: .4byte gTasks +_0813F6C4: .4byte gUnknown_03004B00 +_0813F6C8: .4byte sub_813F6CC + thumb_func_end sub_813F6A0 + + thumb_func_start sub_813F6CC +sub_813F6CC: @ 813F6CC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0813F718 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x8] + adds r0, 0x1 + movs r6, 0 + adds r1, r0, 0x1 + strh r1, [r4, 0x8] + lsls r0, 16 + asrs r0, 16 + movs r2, 0x1E + ldrsh r1, [r4, r2] + cmp r0, r1 + blt _0813F78C + strh r6, [r4, 0x8] + ldr r0, _0813F71C + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r2, r0, 24 + movs r3, 0x1C + ldrsh r0, [r4, r3] + movs r1, 0x2 + cmp r0, 0 + bne _0813F70A + movs r1, 0x6 +_0813F70A: + movs r3, 0xA + ldrsh r0, [r4, r3] + cmp r0, 0 + beq _0813F720 + cmp r0, 0x1 + beq _0813F75C + b _0813F78C + .align 2, 0 +_0813F718: .4byte gTasks +_0813F71C: .4byte 0x0000d709 +_0813F720: + ldrh r0, [r4, 0xC] + adds r0, 0x2 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + ble _0813F732 + movs r0, 0x10 + strh r0, [r4, 0xC] +_0813F732: + lsls r0, r2, 4 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2 + orrs r0, r1 + ldrb r2, [r4, 0xC] + ldr r3, _0813F758 + movs r1, 0x1 + bl BlendPalette + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0x10 + bne _0813F78C + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _0813F78C + .align 2, 0 +_0813F758: .4byte 0x00007f74 +_0813F75C: + ldrh r0, [r4, 0xC] + subs r0, 0x2 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bge _0813F76A + strh r6, [r4, 0xC] +_0813F76A: + lsls r0, r2, 4 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2 + orrs r0, r1 + ldrb r2, [r4, 0xC] + ldr r3, _0813F794 + movs r1, 0x1 + bl BlendPalette + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _0813F78C + adds r0, r5, 0 + bl move_anim_task_del +_0813F78C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813F794: .4byte 0x00007f74 + thumb_func_end sub_813F6CC + + thumb_func_start sub_813F798 +sub_813F798: @ 813F798 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0813F7C4 + ldr r0, _0813F7C8 + ldrb r0, [r0] + adds r0, r1 + ldrb r5, [r0] + ldr r1, _0813F7CC + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0813F7E6 + cmp r0, 0x1 + bgt _0813F7D0 + cmp r0, 0 + beq _0813F7D6 + b _0813F838 + .align 2, 0 +_0813F7C4: .4byte gUnknown_02024BE0 +_0813F7C8: .4byte gUnknown_0202F7C8 +_0813F7CC: .4byte gTasks +_0813F7D0: + cmp r0, 0x2 + beq _0813F818 + b _0813F838 +_0813F7D6: + adds r0, r5, 0 + movs r1, 0 + bl sub_8078E70 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x1C] + b _0813F80A +_0813F7E6: + ldrh r0, [r4, 0x1C] + adds r0, 0x30 + strh r0, [r4, 0x1C] + movs r0, 0x1C + ldrsh r2, [r4, r0] + adds r0, r5, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + adds r0, r5, 0 + bl sub_8079A64 + movs r0, 0x1C + ldrsh r1, [r4, r0] + ldr r0, _0813F814 + cmp r1, r0 + ble _0813F838 +_0813F80A: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0813F838 + .align 2, 0 +_0813F814: .4byte 0x000002cf +_0813F818: + adds r0, r5, 0 + bl sub_8078F40 + ldr r1, _0813F840 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r6, 0 + bl move_anim_task_del +_0813F838: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813F840: .4byte gSprites + thumb_func_end sub_813F798 + + thumb_func_start sub_813F844 +sub_813F844: @ 813F844 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0813F87C + ldr r4, _0813F880 + ldrb r0, [r4] + adds r1, r0, r1 + ldrb r1, [r1] + mov r9, r1 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0813F88C + ldr r1, _0813F884 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0813F888 + b _0813F89C + .align 2, 0 +_0813F87C: .4byte gUnknown_02024BE0 +_0813F880: .4byte gUnknown_0202F7C8 +_0813F884: .4byte gUnknown_02024A6A +_0813F888: .4byte gPlayerParty +_0813F88C: + ldr r1, _0813F8CC + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0813F8D0 +_0813F89C: + adds r0, r1 + movs r1, 0x26 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r2, _0813F8D4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r6, r0, r2 + movs r0, 0x8 + ldrsh r7, [r6, r0] + cmp r7, 0 + beq _0813F8D8 + cmp r7, 0x1 + beq _0813F958 + b _0813F982 + .align 2, 0 +_0813F8CC: .4byte gUnknown_02024A6A +_0813F8D0: .4byte gEnemyParty +_0813F8D4: .4byte gTasks +_0813F8D8: + ldr r5, _0813F950 + ldrb r0, [r5] + movs r1, 0 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r5] + movs r1, 0x1 + bl sub_8077ABC + adds r1, r0, 0 + lsls r1, 24 + ldr r2, _0813F954 + mov r3, r9 + lsls r0, r3, 4 + add r0, r9 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x5] + lsls r2, 28 + lsrs r2, 30 + adds r0, 0x43 + ldrb r3, [r0] + movs r0, 0x80 + lsls r0, 22 + adds r1, r0 + lsrs r1, 24 + mov r0, r8 + str r0, [sp] + adds r0, r4, 0 + bl sub_814086C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x1C] + str r7, [sp] + str r7, [sp, 0x4] + str r7, [sp, 0x8] + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80791A8 + adds r2, r0, 0 + ldrb r1, [r5] + movs r0, 0 + mov r3, r8 + bl sub_8141314 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x1E] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _0813F982 + .align 2, 0 +_0813F950: .4byte gUnknown_0202F7C8 +_0813F954: .4byte gSprites +_0813F958: + movs r1, 0x1C + ldrsh r0, [r6, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _0813F982 + movs r3, 0x1E + ldrsh r0, [r6, r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrb r0, [r1, 0x4] + cmp r0, 0 + bne _0813F982 + adds r0, r5, 0 + bl move_anim_task_del +_0813F982: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_813F844 + + thumb_func_start sub_813F990 +sub_813F990: @ 813F990 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0813F9B4 + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r0, 24 + bl sub_80478DC + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813F9B4: .4byte gUnknown_02024C04 + thumb_func_end sub_813F990 + + thumb_func_start sub_813F9B8 +sub_813F9B8: @ 813F9B8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0813F9DC + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r0, 24 + bl sub_804794C + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813F9DC: .4byte gUnknown_02024C04 + thumb_func_end sub_813F9B8 + + thumb_func_start sub_813F9E0 +sub_813F9E0: @ 813F9E0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0813F9F4 + ldrb r0, [r0, 0x8] + cmp r0, 0x5 + bne _0813FA00 + ldr r1, _0813F9F8 + ldr r0, _0813F9FC + b _0813FA04 + .align 2, 0 +_0813F9F4: .4byte 0x02017840 +_0813F9F8: .4byte gUnknown_03004B00 +_0813F9FC: .4byte 0x0000ffff +_0813FA00: + ldr r1, _0813FA10 + movs r0, 0 +_0813FA04: + strh r0, [r1, 0xE] + adds r0, r2, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_0813FA10: .4byte gUnknown_03004B00 + thumb_func_end sub_813F9E0 + + thumb_func_start ball_number_to_ball_processing_index +ball_number_to_ball_processing_index: @ 813FA14 + push {lr} + lsls r0, 16 + lsrs r0, 16 + subs r0, 0x1 + cmp r0, 0xB + bhi _0813FA8C + lsls r0, 2 + ldr r1, _0813FA2C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0813FA2C: .4byte _0813FA30 + .align 2, 0 +_0813FA30: + .4byte _0813FA60 + .4byte _0813FA64 + .4byte _0813FA68 + .4byte _0813FA8C + .4byte _0813FA6C + .4byte _0813FA70 + .4byte _0813FA74 + .4byte _0813FA78 + .4byte _0813FA7C + .4byte _0813FA80 + .4byte _0813FA84 + .4byte _0813FA88 +_0813FA60: + movs r0, 0x4 + b _0813FA8E +_0813FA64: + movs r0, 0x3 + b _0813FA8E +_0813FA68: + movs r0, 0x1 + b _0813FA8E +_0813FA6C: + movs r0, 0x2 + b _0813FA8E +_0813FA70: + movs r0, 0x5 + b _0813FA8E +_0813FA74: + movs r0, 0x6 + b _0813FA8E +_0813FA78: + movs r0, 0x7 + b _0813FA8E +_0813FA7C: + movs r0, 0x8 + b _0813FA8E +_0813FA80: + movs r0, 0x9 + b _0813FA8E +_0813FA84: + movs r0, 0xA + b _0813FA8E +_0813FA88: + movs r0, 0xB + b _0813FA8E +_0813FA8C: + movs r0, 0 +_0813FA8E: + pop {r1} + bx r1 + thumb_func_end ball_number_to_ball_processing_index + + thumb_func_start sub_813FA94 +sub_813FA94: @ 813FA94 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + mov r10, r0 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _0813FB58 + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r1, _0813FB5C + adds r0, r1 + movs r1, 0x20 + movs r2, 0x50 + movs r3, 0x1D + bl CreateSprite + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r1, _0813FB60 + mov r9, r1 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r6, r4, r1 + movs r0, 0x22 + strh r0, [r6, 0x2E] + ldr r2, _0813FB64 + mov r8, r2 + ldrb r0, [r2] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x30] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + strh r0, [r6, 0x32] + mov r0, r9 + adds r0, 0x1C + adds r4, r0 + ldr r0, _0813FB68 + str r0, [r4] + ldr r3, _0813FB6C + ldr r1, _0813FB70 + mov r2, r8 + ldrb r0, [r2] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + adds r0, 0x3E + ldrb r1, [r0] + lsls r1, 29 + lsrs r1, 31 + lsls r1, 1 + ldrb r2, [r3, 0x9] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x9] + ldr r1, _0813FB74 + mov r2, r10 + lsls r0, r2, 2 + add r0, r10 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + ldr r1, _0813FB78 + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813FB58: .4byte gUnknown_02024C04 +_0813FB5C: .4byte gSpriteTemplate_820AAB4 +_0813FB60: .4byte gSprites +_0813FB64: .4byte gUnknown_0202F7C9 +_0813FB68: .4byte sub_813FD90 +_0813FB6C: .4byte 0x02017840 +_0813FB70: .4byte gUnknown_02024BE0 +_0813FB74: .4byte gTasks +_0813FB78: .4byte sub_813FB7C + thumb_func_end sub_813FA94 + + thumb_func_start sub_813FB7C +sub_813FB7C: @ 813FB7C + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _0813FBAC + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0x8] + ldr r2, _0813FBB0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x2E] + ldr r0, _0813FBB4 + cmp r1, r0 + bne _0813FBA6 + adds r0, r3, 0 + bl move_anim_task_del +_0813FBA6: + pop {r0} + bx r0 + .align 2, 0 +_0813FBAC: .4byte gTasks +_0813FBB0: .4byte gSprites +_0813FBB4: .4byte 0x0000ffff + thumb_func_end sub_813FB7C + + thumb_func_start sub_813FBB8 +sub_813FBB8: @ 813FBB8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _0813FBD8 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _0813FBDC + movs r6, 0x20 + movs r5, 0xB + b _0813FBE0 + .align 2, 0 +_0813FBD8: .4byte gUnknown_020239F8 +_0813FBDC: + movs r6, 0x17 + movs r5, 0x5 +_0813FBE0: + ldr r0, _0813FC9C + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + bl sub_8079E90 + adds r3, r0, 0 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r1, _0813FCA0 + adds r0, r1 + adds r1, r6, 0 + adds r1, 0x20 + movs r2, 0x50 + orrs r5, r2 + adds r2, r5, 0 + bl CreateSprite + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _0813FCA4 + mov r9, r0 + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r6, r4, r0 + movs r0, 0x22 + strh r0, [r6, 0x2E] + ldr r1, _0813FCA8 + mov r8, r1 + ldrb r0, [r1] + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x30] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x10 + strh r0, [r6, 0x32] + mov r0, r9 + adds r0, 0x1C + adds r4, r0 + ldr r0, _0813FCAC + str r0, [r4] + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _0813FCB0 + lsls r0, 24 + lsrs r0, 24 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r9 + movs r1, 0x1 + bl StartSpriteAnim + ldr r1, _0813FCB4 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + strh r5, [r0, 0x8] + ldr r1, _0813FCB8 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0813FC9C: .4byte gUnknown_02024C04 +_0813FCA0: .4byte gSpriteTemplate_820AAB4 +_0813FCA4: .4byte gSprites +_0813FCA8: .4byte gUnknown_0202F7C9 +_0813FCAC: .4byte SpriteCallbackDummy +_0813FCB0: .4byte gUnknown_02024BE0 +_0813FCB4: .4byte gTasks +_0813FCB8: .4byte sub_813FCBC + thumb_func_end sub_813FBB8 + + thumb_func_start sub_813FCBC +sub_813FCBC: @ 813FCBC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, _0813FD1C + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _0813FD20 + lsls r0, 24 + lsrs r0, 24 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _0813FD16 + movs r0, 0x3D + movs r1, 0 + bl PlaySE12WithPanning + ldr r0, _0813FD24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0813FD28 + str r1, [r0] + ldr r0, _0813FD2C + movs r1, 0xA + bl CreateTask + ldr r0, _0813FD30 + str r0, [r4] +_0813FD16: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813FD1C: .4byte gSprites +_0813FD20: .4byte gUnknown_02024BE0 +_0813FD24: .4byte gTasks +_0813FD28: .4byte sub_813FD90 +_0813FD2C: .4byte sub_813FD34 +_0813FD30: .4byte sub_813FB7C + thumb_func_end sub_813FCBC + + thumb_func_start sub_813FD34 +sub_813FD34: @ 813FD34 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, _0813FD88 + movs r0, 0 + bl battle_get_side_with_given_state + ldr r4, _0813FD8C + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _0813FD80 + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl DestroyTask +_0813FD80: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0813FD88: .4byte gSprites +_0813FD8C: .4byte gUnknown_02024BE0 + thumb_func_end sub_813FD34 + + thumb_func_start sub_813FD90 +sub_813FD90: @ 813FD90 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + ldrh r2, [r4, 0x32] + ldrh r0, [r4, 0x20] + strh r0, [r4, 0x30] + strh r1, [r4, 0x32] + ldrh r0, [r4, 0x22] + strh r0, [r4, 0x34] + strh r2, [r4, 0x36] + ldr r0, _0813FDB8 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r0, _0813FDBC + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813FDB8: .4byte 0x0000ffd8 +_0813FDBC: .4byte sub_813FDC0 + thumb_func_end sub_813FD90 + + thumb_func_start sub_813FDC0 +sub_813FDC0: @ 813FDC0 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _0813FE5A + ldr r0, _0813FDE0 + ldrb r0, [r0, 0x8] + cmp r0, 0x5 + bne _0813FDE8 + ldr r0, _0813FDE4 + str r0, [r4, 0x1C] + b _0813FE5A + .align 2, 0 +_0813FDE0: .4byte 0x02017840 +_0813FDE4: .4byte sub_81407B8 +_0813FDE8: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnim + ldrh r0, [r4, 0x24] + ldrh r1, [r4, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x26] + ldrh r2, [r4, 0x22] + adds r0, r2 + strh r0, [r4, 0x22] + strh r1, [r4, 0x24] + strh r1, [r4, 0x26] + adds r1, r4, 0 + adds r1, 0x2E + movs r2, 0 + adds r0, r4, 0 + adds r0, 0x3C +_0813FE10: + strh r2, [r0] + subs r0, 0x2 + cmp r0, r1 + bge _0813FE10 + movs r0, 0 + strh r0, [r4, 0x38] + ldr r0, _0813FE64 + str r0, [r4, 0x1C] + ldr r0, _0813FE68 + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xB + bgt _0813FE5A + cmp r5, 0 + blt _0813FE5A + ldrh r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + str r5, [sp] + movs r2, 0x1 + movs r3, 0x1C + bl sub_814086C + ldr r0, _0813FE6C + ldrb r1, [r0] + movs r0, 0 + movs r2, 0xE + adds r3, r5, 0 + bl sub_8141314 +_0813FE5A: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0813FE64: .4byte sub_813FE70 +_0813FE68: .4byte gUnknown_02024C04 +_0813FE6C: .4byte gUnknown_0202F7C9 + thumb_func_end sub_813FDC0 + + thumb_func_start sub_813FE70 +sub_813FE70: @ 813FE70 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _0813FEAC + ldr r0, _0813FEB4 + movs r1, 0x32 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x38] + ldr r0, _0813FEB8 + str r0, [r4, 0x1C] + ldr r2, _0813FEBC + ldr r1, _0813FEC0 + ldr r0, _0813FEC4 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x30] +_0813FEAC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0813FEB4: .4byte TaskDummy +_0813FEB8: .4byte sub_813FEC8 +_0813FEBC: .4byte gSprites +_0813FEC0: .4byte gUnknown_02024BE0 +_0813FEC4: .4byte gUnknown_0202F7C9 + thumb_func_end sub_813FE70 + + thumb_func_start sub_813FEC8 +sub_813FEC8: @ 813FEC8 + push {r4-r7,lr} + adds r7, r0, 0 + ldr r1, _0813FF0C + ldr r0, _0813FF10 + ldrb r0, [r0] + adds r0, r1 + ldrb r4, [r0] + ldrh r0, [r7, 0x38] + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0813FF14 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r5, r0, r1 + ldrh r0, [r5, 0xA] + adds r0, 0x1 + strh r0, [r5, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + bne _0813FEFA + movs r0, 0x3C + bl PlaySE +_0813FEFA: + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _0813FF70 + cmp r0, 0x1 + bgt _0813FF18 + cmp r0, 0 + beq _0813FF1E + b _0813FFDC + .align 2, 0 +_0813FF0C: .4byte gUnknown_02024BE0 +_0813FF10: .4byte gUnknown_0202F7C9 +_0813FF14: .4byte gTasks +_0813FF18: + cmp r0, 0x2 + beq _0813FFB4 + b _0813FFDC +_0813FF1E: + adds r0, r4, 0 + movs r1, 0 + bl sub_8078E70 + movs r0, 0x80 + lsls r0, 1 + strh r0, [r5, 0x1C] + ldr r1, _0813FF60 + movs r0, 0x1C + str r0, [r1] + ldr r2, _0813FF64 + ldr r1, _0813FF68 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0, 0x26] + ldrh r0, [r0, 0x22] + adds r1, r0 + ldrh r0, [r7, 0x26] + ldrh r7, [r7, 0x22] + adds r0, r7 + subs r1, r0 + strh r1, [r2] + ldr r4, _0813FF6C + ldrh r0, [r2] + lsls r0, 8 + movs r1, 0x1C + bl __udivsi3 + strh r0, [r4] + strh r0, [r5, 0xC] + b _0813FFCE + .align 2, 0 +_0813FF60: .4byte gUnknown_03005F0C +_0813FF64: .4byte gUnknown_03005F14 +_0813FF68: .4byte gSprites +_0813FF6C: .4byte gUnknown_03005F10 +_0813FF70: + ldrh r0, [r5, 0x1C] + adds r0, 0x20 + strh r0, [r5, 0x1C] + movs r0, 0x1C + ldrsh r2, [r5, r0] + adds r0, r4, 0 + adds r1, r2, 0 + movs r3, 0 + bl obj_id_set_rotscale + ldrh r0, [r5, 0xC] + ldrh r1, [r5, 0xE] + adds r0, r1 + strh r0, [r5, 0xE] + ldr r0, _0813FFAC + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + movs r2, 0xE + ldrsh r0, [r5, r2] + negs r0, r0 + asrs r0, 8 + strh r0, [r1, 0x26] + movs r0, 0x1C + ldrsh r1, [r5, r0] + ldr r0, _0813FFB0 + cmp r1, r0 + ble _08140004 + b _0813FFCE + .align 2, 0 +_0813FFAC: .4byte gSprites +_0813FFB0: .4byte 0x0000047f +_0813FFB4: + adds r0, r4, 0 + bl sub_8078F40 + ldr r1, _0813FFD8 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0813FFCE: + ldrh r0, [r5, 0x8] + adds r0, 0x1 + strh r0, [r5, 0x8] + b _08140004 + .align 2, 0 +_0813FFD8: .4byte gSprites +_0813FFDC: + ldr r0, _0814000C + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0xA + ble _08140004 + adds r0, r6, 0 + bl DestroyTask + adds r0, r7, 0 + movs r1, 0x2 + bl StartSpriteAnim + movs r0, 0 + strh r0, [r7, 0x38] + ldr r0, _08140010 + str r0, [r7, 0x1C] +_08140004: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814000C: .4byte gTasks +_08140010: .4byte sub_8140014 + thumb_func_end sub_813FEC8 + + thumb_func_start sub_8140014 +sub_8140014: @ 8140014 + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0814004E + movs r1, 0 + strh r1, [r4, 0x34] + movs r0, 0x20 + strh r0, [r4, 0x36] + strh r1, [r4, 0x38] + movs r0, 0 + movs r1, 0x20 + bl Cos + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + movs r0, 0x36 + ldrsh r1, [r4, r0] + movs r0, 0 + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldr r0, _08140054 + str r0, [r4, 0x1C] +_0814004E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08140054: .4byte sub_8140058 + thumb_func_end sub_8140014 + + thumb_func_start sub_8140058 +sub_8140058: @ 8140058 + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0 + ldrh r0, [r4, 0x34] + movs r1, 0xFF + ands r1, r0 + cmp r1, 0 + beq _0814006E + cmp r1, 0x1 + beq _081400E2 + b _0814010E +_0814006E: + movs r1, 0x38 + ldrsh r0, [r4, r1] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x38] + adds r1, 0x4 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 24 + adds r1, r0 + strh r1, [r4, 0x38] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x3F + ble _0814010E + ldrh r0, [r4, 0x36] + subs r0, 0xA + strh r0, [r4, 0x36] + ldr r1, _081400B8 + adds r0, r2, r1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 24 + cmp r0, 0x4 + bne _081400AA + movs r5, 0x1 +_081400AA: + cmp r0, 0x2 + beq _081400CA + cmp r0, 0x2 + bgt _081400BC + cmp r0, 0x1 + beq _081400C2 + b _081400DA + .align 2, 0 +_081400B8: .4byte 0x00000101 +_081400BC: + cmp r0, 0x3 + beq _081400D2 + b _081400DA +_081400C2: + movs r0, 0x38 + bl PlaySE + b _0814010E +_081400CA: + movs r0, 0x39 + bl PlaySE + b _0814010E +_081400D2: + movs r0, 0x3A + bl PlaySE + b _0814010E +_081400DA: + movs r0, 0x3B + bl PlaySE + b _0814010E +_081400E2: + movs r2, 0x38 + ldrsh r0, [r4, r2] + movs r2, 0x36 + ldrsh r1, [r4, r2] + bl Cos + negs r0, r0 + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x38] + subs r1, 0x4 + ldrh r2, [r4, 0x34] + lsls r0, r2, 16 + asrs r0, 24 + subs r1, r0 + strh r1, [r4, 0x38] + lsls r1, 16 + cmp r1, 0 + bgt _0814010E + strh r5, [r4, 0x38] + ldr r0, _08140138 + ands r0, r2 + strh r0, [r4, 0x34] +_0814010E: + cmp r5, 0 + beq _0814014E + movs r5, 0 + strh r5, [r4, 0x34] + movs r0, 0x40 + movs r1, 0x20 + bl Cos + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + strh r5, [r4, 0x26] + ldr r0, _0814013C + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _08140144 + strh r5, [r4, 0x38] + ldr r0, _08140140 + str r0, [r4, 0x1C] + b _0814014E + .align 2, 0 +_08140138: .4byte 0xffffff00 +_0814013C: .4byte 0x02017840 +_08140140: .4byte sub_8140410 +_08140144: + ldr r0, _08140154 + str r0, [r4, 0x1C] + movs r0, 0x1 + strh r0, [r4, 0x36] + strh r5, [r4, 0x38] +_0814014E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08140154: .4byte sub_8140158 + thumb_func_end sub_8140058 + + thumb_func_start sub_8140158 +sub_8140158: @ 8140158 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + adds r0, 0x1 + movs r5, 0 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _08140190 + strh r5, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _08140198 + strh r5, [r0, 0xC] + ldr r0, _0814019C + str r0, [r4, 0x1C] + movs r0, 0x17 + bl PlaySE +_08140190: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08140198: .4byte 0x02017840 +_0814019C: .4byte sub_81401A0 + thumb_func_end sub_8140158 + + thumb_func_start sub_81401A0 +sub_81401A0: @ 81401A0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + movs r1, 0xFF + ands r1, r0 + cmp r1, 0x6 + bls _081401B0 + b _081403C4 +_081401B0: + lsls r0, r1, 2 + ldr r1, _081401BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081401BC: .4byte _081401C0 + .align 2, 0 +_081401C0: + .4byte _081401DC + .4byte _08140226 + .4byte _0814026C + .4byte _081402C0 + .4byte _08140310 + .4byte _08140368 + .4byte _081403C4 +_081401DC: + ldr r0, _081401F8 + ldrh r2, [r0, 0xC] + movs r3, 0xC + ldrsh r1, [r0, r3] + adds r5, r0, 0 + cmp r1, 0xFF + ble _081401FC + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r2 + b _08140200 + .align 2, 0 +_081401F8: .4byte 0x02017840 +_081401FC: + adds r0, r2, 0 + adds r0, 0xB0 +_08140200: + strh r0, [r5, 0xC] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r3, 0 + strh r0, [r4, 0x38] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + adds r0, 0x7 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xE + bhi _08140224 + b _0814040A +_08140224: + b _081402B4 +_08140226: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bne _081402CC + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x36] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r3, 0x36 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _08140262 + adds r0, r4, 0 + movs r1, 0x2 + bl ChangeSpriteAffineAnim + b _0814040A +_08140262: + adds r0, r4, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim + b _0814040A +_0814026C: + ldr r0, _08140288 + ldrh r2, [r0, 0xC] + movs r3, 0xC + ldrsh r1, [r0, r3] + adds r5, r0, 0 + cmp r1, 0xFF + ble _0814028C + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r2 + b _08140290 + .align 2, 0 +_08140288: .4byte 0x02017840 +_0814028C: + adds r0, r2, 0 + adds r0, 0xB0 +_08140290: + strh r0, [r5, 0xC] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r3, 0 + strh r0, [r4, 0x38] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + adds r0, 0xC + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x18 + bhi _081402B4 + b _0814040A +_081402B4: + strh r3, [r5, 0xC] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + strh r3, [r4, 0x38] + b _0814040A +_081402C0: + ldrh r0, [r4, 0x38] + adds r1, r0, 0x1 + strh r1, [r4, 0x38] + lsls r0, 16 + cmp r0, 0 + bge _081402DA +_081402CC: + adds r0, r4, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + b _0814040A +_081402DA: + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x36] + negs r0, r0 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + movs r3, 0x36 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _08140308 + adds r0, r4, 0 + movs r1, 0x2 + bl ChangeSpriteAffineAnim + b _08140310 +_08140308: + adds r0, r4, 0 + movs r1, 0x1 + bl ChangeSpriteAffineAnim +_08140310: + ldr r0, _0814032C + ldrh r2, [r0, 0xC] + movs r3, 0xC + ldrsh r1, [r0, r3] + adds r5, r0, 0 + cmp r1, 0xFF + ble _08140330 + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x24] + adds r0, r1 + strh r0, [r4, 0x24] + movs r0, 0xFF + ands r0, r2 + b _08140334 + .align 2, 0 +_0814032C: .4byte 0x02017840 +_08140330: + adds r0, r2, 0 + adds r0, 0xB0 +_08140334: + strh r0, [r5, 0xC] + ldrh r0, [r4, 0x38] + adds r0, 0x1 + movs r3, 0 + strh r0, [r4, 0x38] + adds r2, r4, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x38] + adds r0, 0x4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bls _0814040A + strh r3, [r5, 0xC] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + strh r3, [r4, 0x38] + ldrh r0, [r4, 0x36] + negs r0, r0 + strh r0, [r4, 0x36] + b _0814040A +_08140368: + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + ldrh r1, [r4, 0x34] + adds r0, r1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r1, r0, 24 + ldr r0, _08140394 + ldrb r0, [r0, 0x8] + cmp r1, r0 + bne _0814039C + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08140398 + str r0, [r4, 0x1C] + b _0814040A + .align 2, 0 +_08140394: .4byte 0x02017840 +_08140398: .4byte sub_8140410 +_0814039C: + cmp r0, 0x4 + bne _081403B0 + cmp r1, 0x3 + bne _081403B0 + ldr r0, _081403AC + str r0, [r4, 0x1C] + b _081403B6 + .align 2, 0 +_081403AC: .4byte sub_8140434 +_081403B0: + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] +_081403B6: + adds r2, r4, 0 + adds r2, 0x2C + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + b _0814040A +_081403C4: + ldrh r0, [r4, 0x38] + adds r0, 0x1 + strh r0, [r4, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _0814040A + movs r0, 0 + strh r0, [r4, 0x38] + ldrh r1, [r4, 0x34] + ldr r0, _081403F8 + ands r0, r1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAffineAnim + movs r3, 0x36 + ldrsh r0, [r4, r3] + cmp r0, 0 + bge _081403FC + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAffineAnim + b _08140404 + .align 2, 0 +_081403F8: .4byte 0xffffff00 +_081403FC: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_08140404: + movs r0, 0x17 + bl PlaySE +_0814040A: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81401A0 + + thumb_func_start sub_8140410 +sub_8140410: @ 8140410 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x38] + adds r0, 0x1 + strh r0, [r1, 0x38] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1F + bne _0814042A + movs r0, 0 + strh r0, [r1, 0x38] + ldr r0, _08140430 + str r0, [r1, 0x1C] +_0814042A: + pop {r0} + bx r0 + .align 2, 0 +_08140430: .4byte sub_81405F4 + thumb_func_end sub_8140410 + + thumb_func_start sub_8140434 +sub_8140434: @ 8140434 + adds r3, r0, 0 + adds r3, 0x2C + ldrb r1, [r3] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r3] + ldr r1, _08140450 + str r1, [r0, 0x1C] + movs r1, 0 + strh r1, [r0, 0x34] + strh r1, [r0, 0x36] + strh r1, [r0, 0x38] + bx lr + .align 2, 0 +_08140450: .4byte sub_8140454 + thumb_func_end sub_8140434 + + thumb_func_start sub_8140454 +sub_8140454: @ 8140454 + push {r4-r7,lr} + adds r6, r0, 0 + ldr r7, _08140484 + ldrh r0, [r6, 0x36] + adds r0, 0x1 + strh r0, [r6, 0x36] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0x28 + beq _081404CC + cmp r1, 0x5F + bne _08140490 + ldr r0, _08140488 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + bl sub_8043EB4 + bl m4aMPlayAllStop + ldr r0, _0814048C + bl PlaySE + b _081404CC + .align 2, 0 +_08140484: .4byte gUnknown_0202F7C9 +_08140488: .4byte gUnknown_02024E6D +_0814048C: .4byte 0x00000173 +_08140490: + ldr r0, _081404D4 + cmp r1, r0 + bne _081404CC + ldr r5, _081404D8 + ldr r4, _081404DC + ldrb r0, [r7] + adds r0, r4 + ldrb r1, [r0] + 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 r0, [r7] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite + movs r0, 0 + strh r0, [r6, 0x2E] + ldr r0, _081404E0 + str r0, [r6, 0x1C] +_081404CC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081404D4: .4byte 0x0000013b +_081404D8: .4byte gSprites +_081404DC: .4byte gUnknown_02024BE0 +_081404E0: .4byte sub_81404E4 + thumb_func_end sub_8140454 + + thumb_func_start sub_81404E4 +sub_81404E4: @ 81404E4 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08140550 + cmp r0, 0x1 + bgt _081404FC + cmp r0, 0 + beq _08140502 + b _08140594 +_081404FC: + cmp r0, 0x2 + beq _08140580 + b _08140594 +_08140502: + strh r0, [r4, 0x30] + strh r0, [r4, 0x32] + ldrb r1, [r4, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r1, _08140548 + movs r2, 0xFD + lsls r2, 6 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] + ldr r0, [r4, 0x14] + ldrh r0, [r0, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + adds r0, 0x10 + movs r1, 0x1 + lsls r1, r0 + ldr r0, _0814054C + str r0, [sp] + adds r0, r1, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _0814058C + .align 2, 0 +_08140548: .4byte REG_BLDCNT +_0814054C: .4byte 0x00007fff +_08140550: + ldrh r0, [r4, 0x30] + adds r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + ble _081405B2 + movs r0, 0 + strh r0, [r4, 0x30] + ldrh r1, [r4, 0x32] + adds r1, 0x1 + strh r1, [r4, 0x32] + ldr r3, _0814057C + lsls r2, r1, 8 + movs r0, 0x10 + subs r0, r1 + orrs r2, r0 + strh r2, [r3] + movs r1, 0x32 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _081405B2 + b _0814058C + .align 2, 0 +_0814057C: .4byte REG_BLDALPHA +_08140580: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_0814058C: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _081405B2 +_08140594: + ldr r0, _081405BC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _081405B2 + ldr r0, _081405C0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + strh r1, [r4, 0x2E] + ldr r0, _081405C4 + str r0, [r4, 0x1C] +_081405B2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081405BC: .4byte gPaletteFade +_081405C0: .4byte REG_BLDCNT +_081405C4: .4byte sub_81405C8 + thumb_func_end sub_81404E4 + + thumb_func_start sub_81405C8 +sub_81405C8: @ 81405C8 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x2E] + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _081405E0 + ldr r0, _081405DC + strh r0, [r4, 0x2E] + b _081405EC + .align 2, 0 +_081405DC: .4byte 0x0000ffff +_081405E0: + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_081405EC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81405C8 + + thumb_func_start sub_81405F4 +sub_81405F4: @ 81405F4 + push {r4-r6,lr} + sub sp, 0x4 + adds r4, r0, 0 + movs r1, 0x1 + bl StartSpriteAnim + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAffineAnim + ldr r0, _081406A8 + str r0, [r4, 0x1C] + ldr r0, _081406AC + ldrh r0, [r0] + bl ball_number_to_ball_processing_index + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0xB + bgt _08140646 + cmp r5, 0 + blt _08140646 + ldrh r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x22] + subs r1, 0x5 + lsls r1, 24 + lsrs r1, 24 + str r5, [sp] + movs r2, 0x1 + movs r3, 0x1C + bl sub_814086C + ldr r0, _081406B0 + ldrb r1, [r0] + movs r0, 0x1 + movs r2, 0xE + adds r3, r5, 0 + bl sub_8141314 +_08140646: + ldr r6, _081406B4 + ldr r5, _081406B8 + ldr r4, _081406B0 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl AnimateSprite + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x80 + lsls r1, 5 + strh r1, [r0, 0x30] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081406A8: .4byte sub_81406BC +_081406AC: .4byte gUnknown_02024C04 +_081406B0: .4byte gUnknown_0202F7C9 +_081406B4: .4byte gSprites +_081406B8: .4byte gUnknown_02024BE0 + thumb_func_end sub_81405F4 + + thumb_func_start sub_81406BC +sub_81406BC: @ 81406BC + push {r4-r7,lr} + adds r7, r0, 0 + movs r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _081406DA + adds r2, r7, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_081406DA: + ldr r4, _08140708 + ldr r3, _0814070C + ldr r2, _08140710 + ldrb r0, [r2] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r4 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _08140714 + adds r0, r1, 0 + movs r1, 0 + bl StartSpriteAffineAnim + movs r5, 0x1 + b _08140734 + .align 2, 0 +_08140708: .4byte gSprites +_0814070C: .4byte gUnknown_02024BE0 +_08140710: .4byte gUnknown_0202F7C9 +_08140714: + ldr r6, _0814079C + adds r0, r6, 0 + ldrh r6, [r1, 0x30] + adds r0, r6 + strh r0, [r1, 0x30] + ldrb r0, [r2] + adds r0, r3 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x30] + lsls r0, 16 + asrs r0, 24 + strh r0, [r1, 0x26] +_08140734: + adds r0, r7, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08140796 + cmp r5, 0 + beq _08140796 + ldr r4, _081407A0 + ldr r3, _081407A4 + ldr r2, _081407A8 + ldrb r0, [r2] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r6, 0 + movs r5, 0 + strh r5, [r0, 0x26] + ldrb r0, [r2] + adds r0, r3 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldr r0, _081407AC + ldrb r1, [r0, 0x9] + lsls r1, 30 + adds r2, 0x3E + lsrs r1, 31 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + strh r5, [r7, 0x2E] + ldr r0, _081407B0 + str r0, [r7, 0x1C] + ldr r0, _081407B4 + strb r6, [r0] + movs r0, 0x1 + bl sub_8043EB4 +_08140796: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814079C: .4byte 0xfffffee0 +_081407A0: .4byte gSprites +_081407A4: .4byte gUnknown_02024BE0 +_081407A8: .4byte gUnknown_0202F7C9 +_081407AC: .4byte 0x02017840 +_081407B0: .4byte sub_81405C8 +_081407B4: .4byte gUnknown_02024E6D + thumb_func_end sub_81406BC + + thumb_func_start sub_81407B8 +sub_81407B8: @ 81407B8 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x24] + ldrh r1, [r2, 0x20] + adds r0, r1 + movs r1, 0 + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x26] + ldrh r3, [r2, 0x22] + adds r0, r3 + strh r0, [r2, 0x22] + strh r1, [r2, 0x26] + strh r1, [r2, 0x24] + ldr r4, _081407F0 + movs r3, 0 + movs r1, 0x5 + adds r0, r2, 0 + adds r0, 0x38 +_081407DC: + strh r3, [r0] + subs r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _081407DC + str r4, [r2, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081407F0: .4byte sub_81407F4 + thumb_func_end sub_81407B8 + + thumb_func_start sub_81407F4 +sub_81407F4: @ 81407F4 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x80 + lsls r0, 4 + adds r2, r0, 0 + ldrh r1, [r4, 0x2E] + adds r2, r1 + movs r0, 0xD0 + lsls r0, 3 + adds r3, r0, 0 + ldrh r1, [r4, 0x30] + adds r3, r1 + lsls r1, r3, 16 + asrs r1, 24 + ldrh r0, [r4, 0x24] + subs r0, r1 + strh r0, [r4, 0x24] + lsls r0, r2, 16 + asrs r0, 24 + ldrh r1, [r4, 0x26] + adds r0, r1 + strh r0, [r4, 0x26] + movs r0, 0xFF + ands r2, r0 + strh r2, [r4, 0x2E] + ands r3, r0 + strh r3, [r4, 0x30] + movs r2, 0x22 + ldrsh r0, [r4, r2] + movs r2, 0x26 + ldrsh r1, [r4, r2] + adds r0, r1 + cmp r0, 0xA0 + bgt _0814084A + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x8 + negs r1, r1 + cmp r0, r1 + bge _0814085E +_0814084A: + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _08140864 + str r0, [r4, 0x1C] + ldr r1, _08140868 + movs r0, 0 + strb r0, [r1] + movs r0, 0x1 + bl sub_8043EB4 +_0814085E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08140864: .4byte sub_81405C8 +_08140868: .4byte gUnknown_02024E6D + thumb_func_end sub_81407F4 + + thumb_func_start sub_814086C +sub_814086C: @ 814086C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, [sp, 0x20] + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + lsls r3, 24 + lsrs r7, r3, 24 + lsls r4, 24 + lsrs r4, 24 + adds r5, r4, 0 + ldr r0, _08140910 + lsls r6, r5, 3 + adds r4, r6, r0 + ldrh r0, [r4, 0x6] + bl GetSpriteTileStartByTag + lsls r0, 16 + ldr r1, _08140914 + cmp r0, r1 + bne _081408B6 + adds r0, r4, 0 + bl LoadCompressedObjectPic + ldr r0, _08140918 + adds r0, r6, r0 + bl LoadCompressedObjectPalette +_081408B6: + ldr r1, _0814091C + lsls r0, r5, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08140920 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + mov r1, r10 + strh r1, [r0, 0xA] + mov r1, r9 + strh r1, [r0, 0xC] + mov r1, r8 + strh r1, [r0, 0xE] + strh r7, [r0, 0x10] + strh r5, [r0, 0x26] + movs r0, 0xF + bl PlaySE + ldr r0, _08140924 + ldr r1, _08140928 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08140900 + ldr r1, _0814092C + ldrb r0, [r1, 0xA] + adds r0, 0x1 + strb r0, [r1, 0xA] +_08140900: + adds r0, r4, 0 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08140910: .4byte gUnknown_0840B258 +_08140914: .4byte 0xffff0000 +_08140918: .4byte gUnknown_0840B2B8 +_0814091C: .4byte gUnknown_0840B384 +_08140920: .4byte gTasks +_08140924: .4byte gMain +_08140928: .4byte 0x0000043d +_0814092C: .4byte 0x02017840 + thumb_func_end sub_814086C + + thumb_func_start sub_8140930 +sub_8140930: @ 8140930 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _081409D0 + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r7, r0, r1 + ldrh r0, [r7, 0x26] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0xF + bgt _081409E4 + ldrb r1, [r7, 0xA] + ldrb r2, [r7, 0xC] + ldrb r6, [r7, 0xE] + ldrb r3, [r7, 0x10] + mov r4, r8 + lsls r0, r4, 1 + add r0, r8 + lsls r0, 3 + ldr r4, _081409D4 + adds r0, r4 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r5, _081409D8 + adds r2, r4, r5 + ldr r0, _081409DC + add r0, r8 + ldrb r1, [r0] + adds r0, r2, 0 + str r2, [sp] + bl StartSpriteAnim + adds r5, 0x1C + adds r4, r5 + ldr r0, _081409E0 + str r0, [r4] + movs r0, 0x3 + ands r6, r0 + lsls r6, 2 + ldr r2, [sp] + ldrb r1, [r2, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + orrs r0, r6 + strb r0, [r2, 0x5] + ldrb r0, [r7, 0x8] + cmp r0, 0x7 + bls _081409B6 + subs r0, 0x8 + lsls r0, 24 + lsrs r0, 24 +_081409B6: + lsls r0, 5 + strh r0, [r2, 0x2E] + movs r1, 0x8 + ldrsh r0, [r7, r1] + cmp r0, 0xF + bne _081409E4 + movs r0, 0x1 + strh r0, [r2, 0x3C] + mov r0, r9 + bl DestroyTask + b _081409F6 + .align 2, 0 +_081409D0: .4byte gTasks +_081409D4: .4byte gSpriteTemplate_840B3B4 +_081409D8: .4byte gSprites +_081409DC: .4byte gUnknown_0840B378 +_081409E0: .4byte sub_8140A08 +_081409E4: + ldr r0, _08140A04 + mov r2, r9 + lsls r1, r2, 2 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_081409F6: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08140A04: .4byte gTasks + thumb_func_end sub_8140930 + + thumb_func_start sub_8140A08 +sub_8140A08: @ 8140A08 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x30] + movs r3, 0x30 + ldrsh r0, [r1, r3] + cmp r0, 0 + bne _08140A20 + ldr r0, _08140A1C + str r0, [r1, 0x1C] + b _08140A24 + .align 2, 0 +_08140A1C: .4byte sub_8140A28 +_08140A20: + subs r0, r2, 0x1 + strh r0, [r1, 0x30] +_08140A24: + pop {r0} + bx r0 + thumb_func_end sub_8140A08 + + thumb_func_start sub_8140A28 +sub_8140A28: @ 8140A28 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0x2 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x32 + bne _08140A5C + adds r0, r4, 0 + bl sub_8141294 +_08140A5C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8140A28 + + thumb_func_start sub_8140A64 +sub_8140A64: @ 8140A64 + 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, _08140B24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140B28 + mov r8, r3 + ldr r0, _08140B2C + adds r1, r0 + mov r9, r1 +_08140AA8: + ldr r0, _08140B30 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140B34 + adds r1, r5, r3 + ldr r0, _08140B38 + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x36] + movs r0, 0x2 + strh r0, [r4, 0x38] + movs r2, 0x1 + strh r2, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _08140AA8 + ldr r0, _08140B28 + adds r0, r5, r0 + strh r2, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + 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 +_08140B24: .4byte gTasks +_08140B28: .4byte gSprites +_08140B2C: .4byte gUnknown_0840B378 +_08140B30: .4byte gSpriteTemplate_840B3B4 +_08140B34: .4byte gSprites + 0x1C +_08140B38: .4byte sub_8140ECC + thumb_func_end sub_8140A64 + + thumb_func_start sub_8140B3C +sub_8140B3C: @ 8140B3C + 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, _08140BFC + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140C00 + mov r8, r3 + ldr r0, _08140C04 + adds r1, r0 + mov r9, r1 +_08140B80: + ldr r0, _08140C08 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140C0C + adds r1, r5, r3 + ldr r0, _08140C10 + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x36] + movs r1, 0x1 + strh r1, [r4, 0x38] + movs r0, 0x2 + strh r0, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _08140B80 + ldr r0, _08140C00 + adds r0, r5, r0 + strh r1, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + 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 +_08140BFC: .4byte gTasks +_08140C00: .4byte gSprites +_08140C04: .4byte gUnknown_0840B378 +_08140C08: .4byte gSpriteTemplate_840B3B4 +_08140C0C: .4byte gSprites + 0x1C +_08140C10: .4byte sub_8140ECC + thumb_func_end sub_8140B3C + + thumb_func_start sub_8140C14 +sub_8140C14: @ 8140C14 + 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, _08140CD0 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140CD4 + mov r8, r3 + ldr r0, _08140CD8 + adds r1, r0 + mov r9, r1 +_08140C58: + ldr r0, _08140CDC + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140CE0 + adds r1, r5, r3 + ldr r0, _08140CE4 + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + movs r0, 0x4 + strh r0, [r4, 0x36] + movs r2, 0x1 + strh r2, [r4, 0x38] + strh r2, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _08140C58 + ldr r0, _08140CD4 + adds r0, r5, r0 + strh r2, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + 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 +_08140CD0: .4byte gTasks +_08140CD4: .4byte gSprites +_08140CD8: .4byte gUnknown_0840B378 +_08140CDC: .4byte gSpriteTemplate_840B3B4 +_08140CE0: .4byte gSprites + 0x1C +_08140CE4: .4byte sub_8140ECC + thumb_func_end sub_8140C14 + + thumb_func_start sub_8140CE8 +sub_8140CE8: @ 8140CE8 + 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, _08140DAC + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140DB0 + mov r8, r3 + ldr r0, _08140DB4 + adds r1, r0 + mov r9, r1 +_08140D2C: + ldr r0, _08140DB8 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140DBC + adds r1, r5, r3 + ldr r0, _08140DC0 + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 3 + adds r0, r6 + strh r0, [r4, 0x2E] + movs r0, 0x5 + strh r0, [r4, 0x36] + movs r2, 0x1 + strh r2, [r4, 0x38] + strh r2, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x9 + bls _08140D2C + ldr r0, _08140DB0 + adds r0, r5, r0 + strh r2, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + 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 +_08140DAC: .4byte gTasks +_08140DB0: .4byte gSprites +_08140DB4: .4byte gUnknown_0840B378 +_08140DB8: .4byte gSpriteTemplate_840B3B4 +_08140DBC: .4byte gSprites + 0x1C +_08140DC0: .4byte sub_8140ECC + thumb_func_end sub_8140CE8 + + thumb_func_start sub_8140DC4 +sub_8140DC4: @ 8140DC4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08140DF0 + lsls r2, r7, 2 + adds r0, r2, r7 + lsls r0, 3 + adds r3, r0, r1 + ldrh r1, [r3, 0x16] + movs r4, 0x16 + ldrsh r0, [r3, r4] + cmp r0, 0 + beq _08140DF4 + subs r0, r1, 0x1 + strh r0, [r3, 0x16] + b _08140EA4 + .align 2, 0 +_08140DF0: .4byte gTasks +_08140DF4: + ldrh r0, [r3, 0x26] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r3, 0xA] + str r1, [sp] + ldrb r4, [r3, 0xC] + str r4, [sp, 0x4] + ldrb r1, [r3, 0xE] + str r1, [sp, 0x8] + ldrb r3, [r3, 0x10] + str r3, [sp, 0xC] + movs r6, 0 + str r2, [sp, 0x10] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 3 + mov r10, r1 + ldr r3, _08140EB4 + mov r8, r3 + ldr r1, _08140EB8 + adds r0, r1 + mov r9, r0 +_08140E20: + ldr r0, _08140EBC + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r3, r9 + ldrb r1, [r3] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _08140EC0 + adds r1, r5, r0 + ldr r0, _08140EC4 + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + movs r2, 0x8 + strh r2, [r4, 0x36] + movs r0, 0x2 + strh r0, [r4, 0x38] + strh r0, [r4, 0x3A] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _08140E20 + ldr r0, _08140EC8 + ldr r4, [sp, 0x10] + adds r1, r4, r7 + lsls r1, 3 + adds r1, r0 + strh r2, [r1, 0x16] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2 + bne _08140EA4 + ldr r0, _08140EB4 + adds r0, r5, r0 + movs r1, 0x1 + strh r1, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask +_08140EA4: + 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 +_08140EB4: .4byte gSprites +_08140EB8: .4byte gUnknown_0840B378 +_08140EBC: .4byte gSpriteTemplate_840B3B4 +_08140EC0: .4byte gSprites + 0x1C +_08140EC4: .4byte sub_8140ECC +_08140EC8: .4byte gTasks + thumb_func_end sub_8140DC4 + + thumb_func_start sub_8140ECC +sub_8140ECC: @ 8140ECC + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x30 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x2E + ldrsh r0, [r4, r1] + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x36] + ldrh r1, [r4, 0x2E] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + ldrh r0, [r4, 0x38] + ldrh r2, [r4, 0x30] + adds r0, r2 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x3A] + ldrh r1, [r4, 0x32] + adds r0, r1 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x34] + adds r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _08140F1C + adds r0, r4, 0 + bl sub_8141294 +_08140F1C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8140ECC + + thumb_func_start sub_8140F24 +sub_8140F24: @ 8140F24 + 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, _08140FE0 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _08140FE4 + mov r8, r3 + ldr r0, _08140FE8 + adds r1, r0 + mov r9, r1 +_08140F68: + ldr r0, _08140FEC + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08140FF0 + adds r1, r5, r3 + ldr r0, _08140FF4 + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 2 + adds r0, r6 + strh r0, [r4, 0x2E] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xB + bls _08140F68 + ldr r0, _08140FE4 + adds r0, r5, r0 + movs r1, 0x1 + strh r1, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + 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 +_08140FE0: .4byte gTasks +_08140FE4: .4byte gSprites +_08140FE8: .4byte gUnknown_0840B378 +_08140FEC: .4byte gSpriteTemplate_840B3B4 +_08140FF0: .4byte gSprites + 0x1C +_08140FF4: .4byte sub_8140FF8 + thumb_func_end sub_8140F24 + + thumb_func_start sub_8140FF8 +sub_8140FF8: @ 8140FF8 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] + movs r0, 0x2E + ldrsh r4, [r5, r0] + movs r2, 0x32 + ldrsh r1, [r5, r2] + adds r0, r4, 0 + bl Sin + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl Cos + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x2E] + adds r0, 0x6 + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _08141050 + adds r0, r5, 0 + bl sub_8141294 +_08141050: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8140FF8 + + thumb_func_start sub_8141058 +sub_8141058: @ 8141058 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + ldr r1, _08141104 + lsls r0, 2 + ldr r2, [sp] + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r3, [r0, 0xA] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xC] + str r2, [sp, 0x8] + ldrb r3, [r0, 0xE] + str r3, [sp, 0xC] + ldrb r0, [r0, 0x10] + str r0, [sp, 0x10] + movs r0, 0 + mov r8, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + str r0, [sp, 0x14] + ldr r0, _08141108 + adds r1, r0 + mov r10, r1 +_0814109E: + movs r7, 0 + movs r1, 0x1 + add r1, r8 + mov r9, r1 +_081410A6: + ldr r0, _0814110C + ldr r2, [sp, 0x14] + adds r0, r2, r0 + ldr r1, [sp, 0x4] + ldr r2, [sp, 0x8] + ldr r3, [sp, 0x10] + bl CreateSprite + lsls r0, 24 + lsrs r6, r0, 24 + lsls r4, r6, 4 + adds r4, r6 + lsls r4, 2 + ldr r3, _08141110 + adds r5, r4, r3 + mov r0, r10 + ldrb r1, [r0] + adds r0, r5, 0 + bl StartSpriteAnim + ldr r1, _08141114 + adds r4, r1 + ldr r0, _08141118 + str r0, [r4] + movs r0, 0x3 + ldr r1, [sp, 0xC] + ands r1, r0 + lsls r1, 2 + ldrb r0, [r5, 0x5] + movs r3, 0xD + negs r3, r3 + adds r2, r3, 0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x5] + lsls r0, r7, 5 + strh r0, [r5, 0x2E] + movs r0, 0x8 + strh r0, [r5, 0x36] + mov r0, r8 + cmp r0, 0 + bne _0814111C + movs r0, 0x2 + strh r0, [r5, 0x38] + movs r0, 0x1 + b _08141122 + .align 2, 0 +_08141104: .4byte gTasks +_08141108: .4byte gUnknown_0840B378 +_0814110C: .4byte gSpriteTemplate_840B3B4 +_08141110: .4byte gSprites +_08141114: .4byte gSprites + 0x1C +_08141118: .4byte sub_8140ECC +_0814111C: + movs r0, 0x1 + strh r0, [r5, 0x38] + movs r0, 0x2 +_08141122: + strh r0, [r5, 0x3A] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x7 + bls _081410A6 + mov r1, r9 + lsls r0, r1, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x1 + bls _0814109E + ldr r0, _08141160 + lsls r1, r6, 4 + adds r1, r6 + lsls r1, 2 + adds r1, r0 + movs r0, 0x1 + strh r0, [r1, 0x3C] + ldr r0, [sp] + bl DestroyTask + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08141160: .4byte gSprites + thumb_func_end sub_8141058 + + thumb_func_start sub_8141164 +sub_8141164: @ 8141164 + 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, _08141218 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + lsls r1, 24 + lsrs r1, 24 + ldrb r2, [r0, 0xA] + str r2, [sp] + ldrb r3, [r0, 0xC] + str r3, [sp, 0x4] + ldrb r2, [r0, 0xE] + str r2, [sp, 0x8] + ldrb r0, [r0, 0x10] + str r0, [sp, 0xC] + movs r6, 0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + mov r10, r0 + ldr r3, _0814121C + mov r8, r3 + ldr r0, _08141220 + adds r1, r0 + mov r9, r1 +_081411A8: + ldr r0, _08141224 + add r0, r10 + ldr r1, [sp] + ldr r2, [sp, 0x4] + ldr r3, [sp, 0xC] + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + mov r0, r8 + adds r4, r5, r0 + mov r2, r9 + ldrb r1, [r2] + adds r0, r4, 0 + bl StartSpriteAnim + ldr r3, _08141228 + adds r1, r5, r3 + ldr r0, _0814122C + str r0, [r1] + movs r0, 0x3 + ldr r2, [sp, 0x8] + ands r2, r0 + lsls r2, 2 + ldrb r0, [r4, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x5] + lsls r0, r6, 5 + strh r0, [r4, 0x2E] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x7 + bls _081411A8 + ldr r0, _0814121C + adds r0, r5, r0 + movs r1, 0x1 + strh r1, [r0, 0x3C] + adds r0, r7, 0 + bl DestroyTask + 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 +_08141218: .4byte gTasks +_0814121C: .4byte gSprites +_08141220: .4byte gUnknown_0840B378 +_08141224: .4byte gSpriteTemplate_840B3B4 +_08141228: .4byte gSprites + 0x1C +_0814122C: .4byte sub_8141230 + thumb_func_end sub_8141164 + + thumb_func_start sub_8141230 +sub_8141230: @ 8141230 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + movs r2, 0x30 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x24] + movs r0, 0x2E + ldrsh r4, [r5, r0] + ldrh r1, [r5, 0x2E] + movs r0, 0x3F + ands r0, r1 + movs r2, 0x32 + ldrsh r1, [r5, r2] + bl Sin + adds r1, r0, 0 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl Cos + strh r0, [r5, 0x26] + ldrh r0, [r5, 0x2E] + adds r0, 0xA + movs r1, 0xFF + ands r0, r1 + strh r0, [r5, 0x2E] + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x34] + adds r0, 0x1 + strh r0, [r5, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x33 + bne _0814128C + adds r0, r5, 0 + bl sub_8141294 +_0814128C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8141230 + + thumb_func_start sub_8141294 +sub_8141294: @ 8141294 + push {r4-r7,lr} + adds r5, r0, 0 + ldr r0, _081412B8 + ldr r1, _081412BC + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _081412C0 + movs r1, 0x3C + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _081412F2 + adds r0, r5, 0 + bl DestroySpriteAndFreeResources + b _0814130E + .align 2, 0 +_081412B8: .4byte gMain +_081412BC: .4byte 0x0000043d +_081412C0: + movs r1, 0x3C + ldrsh r0, [r5, r1] + cmp r0, 0x1 + bne _08141308 + ldr r1, _081412FC + ldrb r0, [r1, 0xA] + subs r0, 0x1 + strb r0, [r1, 0xA] + lsls r0, 24 + cmp r0, 0 + bne _081412F2 + movs r7, 0 + ldr r6, _08141300 + ldr r4, _08141304 +_081412DC: + ldrh r0, [r6, 0x6] + bl FreeSpriteTilesByTag + ldrh r0, [r4, 0x4] + bl FreeSpritePaletteByTag + adds r6, 0x8 + adds r4, 0x8 + adds r7, 0x1 + cmp r7, 0xB + ble _081412DC +_081412F2: + adds r0, r5, 0 + bl DestroySprite + b _0814130E + .align 2, 0 +_081412FC: .4byte 0x02017840 +_08141300: .4byte gUnknown_0840B258 +_08141304: .4byte gUnknown_0840B2B8 +_08141308: + adds r0, r5, 0 + bl DestroySprite +_0814130E: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8141294 + + thumb_func_start sub_8141314 +sub_8141314: @ 8141314 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + adds r4, r0, 0 + mov r9, r2 + lsls r4, 24 + lsrs r4, 24 + lsls r1, 24 + lsrs r6, r1, 24 + lsls r3, 24 + lsrs r7, r3, 24 + ldr r0, _08141378 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _0814137C + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r5, r0, r1 + strh r7, [r5, 0x26] + strh r6, [r5, 0xE] + mov r0, r9 + strh r0, [r5, 0x1C] + mov r1, r9 + lsrs r0, r1, 16 + strh r0, [r5, 0x1E] + cmp r4, 0 + bne _08141384 + lsls r0, r6, 20 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r0, 16 + ldr r2, _08141380 + lsls r1, r7, 1 + adds r1, r2 + ldrh r3, [r1] + movs r1, 0x10 + movs r2, 0 + bl BlendPalette + movs r0, 0x1 + strh r0, [r5, 0xA] + b _081413AA + .align 2, 0 +_08141378: .4byte sub_81413DC +_0814137C: .4byte gTasks +_08141380: .4byte gUnknown_0840B4D4 +_08141384: + lsls r0, r6, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r0, 16 + ldr r2, _081413CC + lsls r1, r7, 1 + adds r1, r2 + ldrh r3, [r1] + movs r1, 0x10 + movs r2, 0x10 + bl BlendPalette + movs r0, 0x10 + strh r0, [r5, 0x8] + ldr r0, _081413D0 + strh r0, [r5, 0xA] + ldr r0, _081413D4 + str r0, [r5] +_081413AA: + ldr r0, _081413D8 + str r0, [sp] + mov r0, r9 + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + mov r0, r8 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081413CC: .4byte gUnknown_0840B4D4 +_081413D0: .4byte 0x0000ffff +_081413D4: .4byte sub_814146C +_081413D8: .4byte 0x00007fff + thumb_func_end sub_8141314 + + thumb_func_start sub_81413DC +sub_81413DC: @ 81413DC + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r1, _0814142C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0x10 + bgt _08141434 + movs r2, 0xE + ldrsh r0, [r4, r2] + lsls r0, 20 + movs r2, 0x80 + lsls r2, 17 + adds r0, r2 + lsrs r0, 16 + ldrb r2, [r4, 0x8] + ldr r3, _08141430 + lsls r1, 1 + adds r1, r3 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r4, 0xA] + ldrh r1, [r4, 0x8] + adds r0, r1 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _0814145C + .align 2, 0 +_0814142C: .4byte gTasks +_08141430: .4byte gUnknown_0840B4D4 +_08141434: + ldr r0, _08141464 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0814145C + ldrh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + lsls r1, 16 + orrs r0, r1 + ldr r1, _08141468 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + adds r0, r5, 0 + bl DestroyTask +_0814145C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08141464: .4byte gPaletteFade +_08141468: .4byte 0x00007fff + thumb_func_end sub_81413DC + + thumb_func_start sub_814146C +sub_814146C: @ 814146C + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _081414AC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081414A4 + ldr r0, _081414B0 + lsls r4, r2, 2 + adds r4, r2 + lsls r4, 3 + adds r4, r0 + ldrh r0, [r4, 0x1C] + ldrh r1, [r4, 0x1E] + lsls r1, 16 + orrs r0, r1 + ldr r1, _081414B4 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _081414B8 + str r0, [r4] +_081414A4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081414AC: .4byte gPaletteFade +_081414B0: .4byte gTasks +_081414B4: .4byte 0x00007fff +_081414B8: .4byte sub_81414BC + thumb_func_end sub_814146C + + thumb_func_start sub_81414BC +sub_81414BC: @ 81414BC + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08141508 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0x26] + lsls r0, 24 + lsrs r1, r0, 24 + movs r3, 0xC + ldrsh r0, [r4, r3] + cmp r0, 0x10 + bgt _08141510 + movs r2, 0xE + ldrsh r0, [r4, r2] + lsls r0, 20 + movs r3, 0x80 + lsls r3, 17 + adds r0, r3 + lsrs r0, 16 + ldrb r2, [r4, 0x8] + ldr r3, _0814150C + lsls r1, 1 + adds r1, r3 + ldrh r3, [r1] + movs r1, 0x10 + bl BlendPalette + ldrh r0, [r4, 0xA] + ldrh r1, [r4, 0x8] + adds r0, r1 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + b _08141516 + .align 2, 0 +_08141508: .4byte gTasks +_0814150C: .4byte gUnknown_0840B4D4 +_08141510: + adds r0, r2, 0 + bl DestroyTask +_08141516: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81414BC + + thumb_func_start sub_814151C +sub_814151C: @ 814151C + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r8, r0 + ldr r0, _08141550 + ldr r3, _08141554 + ldrb r2, [r3] + adds r0, r2, r0 + ldrb r6, [r0] + ldr r1, _08141558 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r5, r0, r1 + movs r1, 0x1C + ldrsh r0, [r5, r1] + cmp r0, 0x1 + beq _081415F4 + cmp r0, 0x1 + bgt _0814155C + cmp r0, 0 + beq _08141562 + b _081416B6 + .align 2, 0 +_08141550: .4byte gUnknown_02024BE0 +_08141554: .4byte gUnknown_0202F7C8 +_08141558: .4byte gTasks +_0814155C: + cmp r0, 0x2 + beq _08141606 + b _081416B6 +_08141562: + ldr r0, _0814159C + ldrh r0, [r0] + strh r0, [r5, 0x1E] + movs r2, 0xA0 + lsls r2, 3 + adds r0, r2, 0 + ldrh r4, [r5, 0x8] + adds r0, r4 + strh r0, [r5, 0x8] + ldrb r0, [r3] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _081415A4 + ldr r2, _081415A0 + lsls r3, r6, 4 + adds r1, r3, r6 + lsls r1, 2 + adds r1, r2 + ldrh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 24 + ldrh r4, [r1, 0x24] + adds r0, r4 + strh r0, [r1, 0x24] + adds r4, r3, 0 + b _081415BC + .align 2, 0 +_0814159C: .4byte gUnknown_03004B00 +_081415A0: .4byte gSprites +_081415A4: + ldr r3, _081415EC + lsls r4, r6, 4 + adds r2, r4, r6 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r5, 0x8] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r2, 0x24] + subs r0, r1 + strh r0, [r2, 0x24] + adds r2, r3, 0 +_081415BC: + ldr r1, _081415F0 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r3, r0, r1 + ldrb r0, [r3, 0x8] + strh r0, [r3, 0x8] + adds r0, r4, r6 + lsls r0, 2 + adds r0, r2 + movs r2, 0x20 + ldrsh r1, [r0, r2] + movs r4, 0x24 + ldrsh r0, [r0, r4] + adds r1, r0 + adds r1, 0x20 + movs r0, 0x98 + lsls r0, 1 + cmp r1, r0 + bls _081416B6 + ldrh r0, [r3, 0x1C] + adds r0, 0x1 + strh r0, [r3, 0x1C] + b _081416B6 + .align 2, 0 +_081415EC: .4byte gSprites +_081415F0: .4byte gTasks +_081415F4: + ldrb r1, [r5, 0x1E] + adds r0, r2, 0 + adds r2, r6, 0 + bl refresh_graphics_maybe + ldrh r0, [r5, 0x1C] + adds r0, 0x1 + strh r0, [r5, 0x1C] + b _081416B6 +_08141606: + movs r1, 0xA0 + lsls r1, 3 + adds r0, r1, 0 + ldrh r2, [r5, 0x8] + adds r0, r2 + strh r0, [r5, 0x8] + ldrb r0, [r3] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _0814163C + ldr r0, _08141638 + lsls r3, r6, 4 + adds r2, r3, r6 + lsls r2, 2 + adds r2, r0 + ldrh r1, [r5, 0x8] + lsls r1, 16 + asrs r1, 24 + ldrh r0, [r2, 0x24] + subs r0, r1 + strh r0, [r2, 0x24] + adds r4, r3, 0 + b _08141654 + .align 2, 0 +_08141638: .4byte gSprites +_0814163C: + ldr r0, _08141688 + lsls r2, r6, 4 + adds r1, r2, r6 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r5, 0x8] + lsls r0, 16 + asrs r0, 24 + ldrh r3, [r1, 0x24] + adds r0, r3 + strh r0, [r1, 0x24] + adds r4, r2, 0 +_08141654: + ldr r1, _0814168C + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r0, 0x8] + strh r1, [r0, 0x8] + ldr r0, _08141690 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08141694 + ldr r0, _08141688 + adds r1, r4, r6 + lsls r1, 2 + adds r1, r0 + movs r4, 0x24 + ldrsh r0, [r1, r4] + cmp r0, 0 + bgt _081416AA + movs r0, 0 + strh r0, [r1, 0x24] + b _081416B0 + .align 2, 0 +_08141688: .4byte gSprites +_0814168C: .4byte gTasks +_08141690: .4byte gUnknown_0202F7C8 +_08141694: + ldr r0, _081416C0 + adds r1, r4, r6 + lsls r1, 2 + adds r1, r0 + movs r3, 0x24 + ldrsh r0, [r1, r3] + cmp r0, 0 + blt _081416AA + strh r2, [r1, 0x24] + movs r4, 0x1 + mov r8, r4 +_081416AA: + mov r0, r8 + cmp r0, 0 + beq _081416B6 +_081416B0: + adds r0, r7, 0 + bl move_anim_task_del +_081416B6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081416C0: .4byte gSprites + thumb_func_end sub_814151C + + thumb_func_start sub_81416C4 +sub_81416C4: @ 81416C4 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _081416E8 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08141744 + cmp r0, 0x1 + bgt _081416EC + cmp r0, 0 + beq _081416F2 + b _081417B8 + .align 2, 0 +_081416E8: .4byte gTasks +_081416EC: + cmp r0, 0x2 + beq _0814177C + b _081417B8 +_081416F2: + ldr r0, _08141708 + ldrb r0, [r0] + bl battle_get_per_side_status_permutated + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08141714 + ldr r1, _0814170C + ldr r2, _08141710 + b _08141718 + .align 2, 0 +_08141708: .4byte gUnknown_0202F7C8 +_0814170C: .4byte REG_BLDCNT +_08141710: .4byte 0x00003f42 +_08141714: + ldr r1, _08141734 + ldr r2, _08141738 +_08141718: + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0814173C + movs r0, 0x10 + strh r0, [r1] + ldr r1, _08141740 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x26] + adds r1, 0x1 + strh r1, [r0, 0x26] + b _081417B8 + .align 2, 0 +_08141734: .4byte REG_BLDCNT +_08141738: .4byte 0x00003f44 +_0814173C: .4byte REG_BLDALPHA +_08141740: .4byte gTasks +_08141744: + ldrh r0, [r4, 0xA] + adds r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _081417B8 + movs r0, 0 + strh r0, [r4, 0xA] + ldrh r1, [r4, 0x8] + adds r1, 0x1 + strh r1, [r4, 0x8] + ldr r3, _08141778 + lsls r2, r1, 8 + movs r0, 0x10 + subs r0, r1 + orrs r2, r0 + strh r2, [r3] + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x10 + bne _081417B8 + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _081417B8 + .align 2, 0 +_08141778: .4byte REG_BLDALPHA +_0814177C: + ldr r1, _081417C0 + ldr r3, _081417C4 + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + ldr r2, _081417C8 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldr r1, _081417CC + adds r0, r1 + movs r1, 0 + str r1, [sp] + ldr r1, _081417D0 + mov r2, sp + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, _081417D4 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + ldrb r0, [r3] + bl sub_80324E0 + adds r0, r5, 0 + bl move_anim_task_del +_081417B8: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081417C0: .4byte gUnknown_02024BE0 +_081417C4: .4byte gUnknown_0202F7C8 +_081417C8: .4byte gSprites +_081417CC: .4byte 0x06010000 +_081417D0: .4byte 0x040000d4 +_081417D4: .4byte 0x85000200 + thumb_func_end sub_81416C4 + + thumb_func_start sub_81417D8 +sub_81417D8: @ 81417D8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _081417FC + ldr r1, _08141800 + ldrb r1, [r1] + lsls r1, 2 + ldr r2, _08141804 + adds r1, r2 + ldr r1, [r1] + lsls r1, 29 + lsrs r1, 31 + strh r1, [r3, 0xE] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_081417FC: .4byte gUnknown_03004B00 +_08141800: .4byte gUnknown_0202F7C8 +_08141804: .4byte 0x02017800 + thumb_func_end sub_81417D8 + + thumb_func_start sub_8141808 +sub_8141808: @ 8141808 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08141820 + ldr r1, _08141824 + ldrb r1, [r1] + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_08141820: .4byte gUnknown_0202F7C9 +_08141824: .4byte gUnknown_02024C0A + thumb_func_end sub_8141808 + + thumb_func_start sub_8141828 +sub_8141828: @ 8141828 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r4, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + mov r8, r0 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + ldr r1, _081418E0 + adds r0, r1 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + adds r5, r0, 0 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r4, r0, 0 + adds r0, r6, 0 + bl b_side_obj__get_some_boolean + lsls r0, 24 + cmp r0, 0 + beq _081418FC + lsrs r0, r5, 16 + ldr r7, _081418E4 + ands r5, r7 + eors r0, r5 + lsrs r1, r4, 16 + eors r0, r1 + ands r4, r7 + eors r0, r4 + cmp r0, 0x7 + bhi _08141882 + movs r0, 0x1 + mov r8, r0 +_08141882: + mov r0, r8 + cmp r0, 0 + beq _081418FC + ldr r0, _081418E8 + bl GetSpriteTileStartByTag + lsls r0, 16 + lsrs r0, 16 + cmp r0, r7 + bne _081418A2 + ldr r0, _081418EC + bl LoadCompressedObjectPic + ldr r0, _081418F0 + bl LoadCompressedObjectPalette +_081418A2: + ldr r5, _081418F4 + adds r0, r5, 0 + movs r1, 0xA + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r3, _081418F8 + lsls r2, r4, 2 + adds r2, r4 + lsls r2, 3 + adds r2, r3 + movs r4, 0 + strh r6, [r2, 0x8] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + strh r6, [r1, 0x8] + strh r4, [r2, 0xA] + movs r0, 0x1 + strh r0, [r1, 0xA] + b _0814190E + .align 2, 0 +_081418E0: .4byte 0x02017810 +_081418E4: .4byte 0x0000ffff +_081418E8: .4byte 0x000027f9 +_081418EC: .4byte gBattleAnimPicTable + (233 * 8) +_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8) +_081418F4: .4byte sub_814191C +_081418F8: .4byte gTasks +_081418FC: + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + ldr r1, _08141918 + adds r0, r1 + ldrb r1, [r0, 0x1] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x1] +_0814190E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08141918: .4byte 0x02017810 + thumb_func_end sub_8141828 + + thumb_func_start sub_814191C +sub_814191C: @ 814191C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08141944 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r4, r0, r1 + ldrh r1, [r4, 0x22] + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0x3B + bgt _08141948 + adds r0, r1, 0x1 + strh r0, [r4, 0x22] + b _08141AB8 + .align 2, 0 +_08141944: .4byte gTasks +_08141948: + ldr r0, _08141998 + ldrb r0, [r0, 0xA] + cmp r0, 0 + beq _08141952 + b _08141AB8 +_08141952: + ldrh r0, [r4, 0x1C] + adds r1, r0, 0x1 + strh r1, [r4, 0x1C] + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + cmp r1, 0 + beq _08141966 + b _08141AB8 +_08141966: + ldrb r0, [r4, 0x8] + mov r8, r0 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r8 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081419A0 + ldr r0, _0814199C + adds r1, r5, 0 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + b _08141A02 + .align 2, 0 +_08141998: .4byte 0x02017840 +_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8 +_081419A0: + cmp r0, 0 + blt _081419D4 + cmp r0, 0x3 + bgt _081419D4 + ldr r0, _081419CC + adds r1, r5, 0 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _081419D0 + lsls r2, r5, 4 + adds r2, r5 + lsls r2, 2 + adds r2, r0 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x4 + b _081419F4 + .align 2, 0 +_081419CC: .4byte gSpriteTemplate_8402500 +_081419D0: .4byte gSprites +_081419D4: + ldr r0, _08141A2C + adds r1, r5, 0 + movs r3, 0x5 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _08141A30 + lsls r2, r5, 4 + adds r2, r5 + lsls r2, 2 + adds r2, r0 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x5 +_081419F4: + ldr r4, _08141A34 + adds r0, r4, 0 + ands r1, r0 + ldr r0, _08141A38 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] +_08141A02: + ldr r2, _08141A3C + lsls r1, r7, 2 + adds r0, r1, r7 + lsls r0, 3 + adds r6, r0, r2 + movs r2, 0xA + ldrsh r0, [r6, r2] + mov r9, r1 + cmp r0, 0 + bne _08141A44 + ldr r1, _08141A30 + lsls r2, r5, 4 + adds r0, r2, r5 + lsls r0, 2 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08141A40 + str r1, [r0] + adds r4, r2, 0 + b _08141A8C + .align 2, 0 +_08141A2C: .4byte gSpriteTemplate_8402500 +_08141A30: .4byte gSprites +_08141A34: .4byte 0x000003ff +_08141A38: .4byte 0xfffffc00 +_08141A3C: .4byte gTasks +_08141A40: .4byte sub_8141B20 +_08141A44: + ldr r3, _08141AC4 + lsls r4, r5, 4 + adds r1, r4, r5 + lsls r1, 2 + adds r0, r3, 0 + adds r0, 0x1C + adds r0, r1, r0 + ldr r2, _08141AC8 + str r2, [r0] + adds r1, r3 + ldr r0, _08141ACC + strh r0, [r1, 0x24] + movs r0, 0x20 + strh r0, [r1, 0x26] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + movs r1, 0x1E + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08141A8C + mov r0, r8 + bl battle_side_get_owner + lsls r0, 24 + movs r1, 0x3F + cmp r0, 0 + bne _08141A82 + movs r1, 0xC0 +_08141A82: + lsls r1, 24 + asrs r1, 24 + movs r0, 0x66 + bl PlaySE12WithPanning +_08141A8C: + ldr r1, _08141AC4 + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + strh r7, [r0, 0x2E] + ldr r1, _08141AD0 + mov r2, r9 + adds r0, r2, r7 + lsls r0, 3 + adds r2, r0, r1 + ldrh r1, [r2, 0x1E] + adds r1, 0x1 + strh r1, [r2, 0x1E] + ldrh r0, [r2, 0x20] + adds r0, 0x1 + strh r0, [r2, 0x20] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x5 + bne _08141AB8 + ldr r0, _08141AD4 + str r0, [r2] +_08141AB8: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08141AC4: .4byte gSprites +_08141AC8: .4byte sub_8141B74 +_08141ACC: .4byte 0x0000ffe0 +_08141AD0: .4byte gTasks +_08141AD4: .4byte sub_8141AD8 + thumb_func_end sub_814191C + + thumb_func_start sub_8141AD8 +sub_8141AD8: @ 8141AD8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + adds r3, r0, 0 + ldr r1, _08141B18 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r1, r0, r1 + movs r2, 0x20 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08141B14 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0x1 + bne _08141B0E + ldrb r1, [r1, 0x8] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08141B1C + adds r0, r1 + ldrb r1, [r0, 0x1] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x1] +_08141B0E: + adds r0, r3, 0 + bl DestroyTask +_08141B14: + pop {r0} + bx r0 + .align 2, 0 +_08141B18: .4byte gTasks +_08141B1C: .4byte 0x02017810 + thumb_func_end sub_8141AD8 + + thumb_func_start sub_8141B20 +sub_8141B20: @ 8141B20 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x18 + bl Sin + strh r0, [r4, 0x24] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x18 + bl Cos + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + adds r0, 0xC + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xFF + ble _08141B6A + ldr r2, _08141B70 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_08141B6A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141B70: .4byte gTasks + thumb_func_end sub_8141B20 + + thumb_func_start sub_8141B74 +sub_8141B74: @ 8141B74 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0x3 + bgt _08141B88 + adds r0, r1, 0x1 + strh r0, [r4, 0x30] + b _08141BCA +_08141B88: + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r1, [r4, 0x24] + adds r1, 0x5 + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x26] + subs r0, 0x5 + strh r0, [r4, 0x26] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x20 + ble _08141BCA + ldr r2, _08141BD0 + movs r0, 0x2E + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r0, 0x20] + subs r1, 0x1 + strh r1, [r0, 0x20] + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite +_08141BCA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141BD0: .4byte gTasks + thumb_func_end sub_8141B74 + + thumb_func_start sub_8141BD4 +sub_8141BD4: @ 8141BD4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08141BFC + bl LoadCompressedObjectPic + ldr r0, _08141C00 + bl LoadCompressedObjectPalette + ldr r0, _08141C04 + bl IndexOfSpritePaletteTag + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141BFC: .4byte gBattleAnimPicTable + (269 * 8) +_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8) +_08141C04: .4byte 0x0000281d + thumb_func_end sub_8141BD4 + + thumb_func_start sub_8141C08 +sub_8141C08: @ 8141C08 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08141C2C + adds r0, r5, 0 + bl FreeSpriteTilesByTag + adds r0, r5, 0 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl move_anim_task_del + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08141C2C: .4byte 0x0000281d + thumb_func_end sub_8141C08 + + thumb_func_start sub_8141C30 +sub_8141C30: @ 8141C30 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0 + bl sub_80787B0 + movs r0, 0x1E + strh r0, [r4, 0x2E] + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + bl sub_8077ABC + lsls r0, 24 + ldr r5, _08141CA4 + lsrs r0, 24 + ldrh r1, [r5, 0x4] + adds r0, r1 + strh r0, [r4, 0x32] + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x1 + bl sub_8077ABC + lsls r0, 24 + lsrs r0, 24 + ldrh r5, [r5, 0x6] + adds r0, r5 + strh r0, [r4, 0x36] + ldr r0, _08141CA8 + strh r0, [r4, 0x38] + adds r0, r4, 0 + bl sub_80786EC + ldr r1, _08141CAC + ldr r0, _08141CB0 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08141CB4 + adds r0, r1 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _08141CB8 + str r0, [r4, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08141CA4: .4byte gUnknown_03004B00 +_08141CA8: .4byte 0x0000ffe0 +_08141CAC: .4byte gUnknown_02024BE0 +_08141CB0: .4byte gUnknown_0202F7C8 +_08141CB4: .4byte gSprites +_08141CB8: .4byte sub_8141CBC + thumb_func_end sub_8141C30 + + thumb_func_start sub_8141CBC +sub_8141CBC: @ 8141CBC + push {lr} + adds r3, r0, 0 + ldr r2, _08141CE4 + ldr r1, _08141CE8 + ldr r0, _08141CEC + ldrb r0, [r0] + adds r0, r1 + 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 _08141CE0 + ldr r0, _08141CF0 + str r0, [r3, 0x1C] +_08141CE0: + pop {r0} + bx r0 + .align 2, 0 +_08141CE4: .4byte gSprites +_08141CE8: .4byte gUnknown_02024BE0 +_08141CEC: .4byte gUnknown_0202F7C8 +_08141CF0: .4byte sub_8141CF4 + thumb_func_end sub_8141CBC + + thumb_func_start sub_8141CF4 +sub_8141CF4: @ 8141CF4 + push {r4,lr} + adds r4, r0, 0 + bl sub_8078718 + lsls r0, 24 + cmp r0, 0 + beq _08141D16 + movs r0, 0 + strh r0, [r4, 0x2E] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08141D1C + str r0, [r4, 0x1C] +_08141D16: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141D1C: .4byte sub_8141D20 + thumb_func_end sub_8141CF4 + + thumb_func_start sub_8141D20 +sub_8141D20: @ 8141D20 + push {r4,r5,lr} + adds r4, r0, 0 + ldr r5, _08141D70 + ldr r3, _08141D74 + ldr r2, _08141D78 + ldrb r0, [r2] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + cmp r0, 0 + bge _08141D68 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + ble _08141D68 + ldrb r0, [r2] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0 + bl StartSpriteAnim + adds r0, r4, 0 + bl move_anim_8072740 +_08141D68: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08141D70: .4byte gSprites +_08141D74: .4byte gUnknown_02024BE0 +_08141D78: .4byte gUnknown_0202F7C8 + thumb_func_end sub_8141D20 + + thumb_func_start sub_8141D7C +sub_8141D7C: @ 8141D7C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _08141DA4 + strb r0, [r1] + movs r0, 0x1 + bl battle_get_side_with_given_state + ldr r1, _08141DA8 + strb r0, [r1] + adds r0, r4, 0 + bl move_anim_task_del + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141DA4: .4byte gUnknown_0202F7C8 +_08141DA8: .4byte gUnknown_0202F7C9 + thumb_func_end sub_8141D7C + + thumb_func_start sub_8141DAC +sub_8141DAC: @ 8141DAC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08141DC0 + ldrh r1, [r0] + cmp r1, 0x53 + bne _08141DC8 + ldr r1, _08141DC4 + movs r0, 0x1 + b _08141E00 + .align 2, 0 +_08141DC0: .4byte 0x02017840 +_08141DC4: .4byte gUnknown_03004B00 +_08141DC8: + cmp r1, 0xFA + bne _08141DD8 + ldr r1, _08141DD4 + movs r0, 0x2 + b _08141E00 + .align 2, 0 +_08141DD4: .4byte gUnknown_03004B00 +_08141DD8: + cmp r1, 0x80 + bne _08141DE8 + ldr r1, _08141DE4 + movs r0, 0x3 + b _08141E00 + .align 2, 0 +_08141DE4: .4byte gUnknown_03004B00 +_08141DE8: + movs r0, 0xA4 + lsls r0, 1 + cmp r1, r0 + bne _08141DFC + ldr r1, _08141DF8 + movs r0, 0x4 + b _08141E00 + .align 2, 0 +_08141DF8: .4byte gUnknown_03004B00 +_08141DFC: + ldr r1, _08141E0C + movs r0, 0 +_08141E00: + strh r0, [r1] + adds r0, r2, 0 + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_08141E0C: .4byte gUnknown_03004B00 + thumb_func_end sub_8141DAC + + thumb_func_start sub_8141E10 +sub_8141E10: @ 8141E10 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08141E2C + ldr r1, _08141E30 + ldrh r1, [r1] + strb r1, [r2] + ldr r2, _08141E34 + lsrs r1, 8 + strb r1, [r2] + bl move_anim_task_del + pop {r0} + bx r0 + .align 2, 0 +_08141E2C: .4byte gUnknown_0202F7C8 +_08141E30: .4byte 0x02017840 +_08141E34: .4byte gUnknown_0202F7C9 + thumb_func_end sub_8141E10 + + thumb_func_start sub_8141E38 +sub_8141E38: @ 8141E38 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8141E38 + + thumb_func_start sub_8141E4C +sub_8141E4C: @ 8141E4C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8141E4C + + thumb_func_start sub_8141E64 +sub_8141E64: @ 8141E64 + push {r4,lr} + sub sp, 0x4 + ldr r0, _08141E80 + ldr r1, _08141E84 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bhi _08141EA0 + lsls r0, 2 + ldr r1, _08141E88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08141E80: .4byte gMain +_08141E84: .4byte 0x0000043c +_08141E88: .4byte _08141E8C + .align 2, 0 +_08141E8C: + .4byte _08141EA0 + .4byte _08141EC0 + .4byte _08141EC6 + .4byte _08141F1C + .4byte _08141F58 +_08141EA0: + movs r0, 0 + bl SetVBlankCallback + bl sub_81433E0 + ldr r0, _08141EB8 + ldr r2, _08141EBC + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + b _08141F84 + .align 2, 0 +_08141EB8: .4byte gMain +_08141EBC: .4byte 0x0000043c +_08141EC0: + bl sub_8143570 + b _08141F38 +_08141EC6: + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _08141F04 + bl SetVBlankCallback + ldr r3, _08141F08 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _08141F0C + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08141F10 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08141F14 + ldr r2, _08141F18 + adds r1, r2 + b _08141F3E + .align 2, 0 +_08141F04: .4byte sub_8141E38 +_08141F08: .4byte 0x04000208 +_08141F0C: .4byte 0x04000200 +_08141F10: .4byte REG_DISPSTAT +_08141F14: .4byte gMain +_08141F18: .4byte 0x0000043c +_08141F1C: + ldr r1, _08141F48 + ldr r2, _08141F4C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r2, 0xE2 + lsls r2, 3 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0 + strh r0, [r1] + bl sub_81435B8 +_08141F38: + ldr r1, _08141F50 + ldr r0, _08141F54 + adds r1, r0 +_08141F3E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08141F84 + .align 2, 0 +_08141F48: .4byte REG_BLDCNT +_08141F4C: .4byte 0x00003f42 +_08141F50: .4byte gMain +_08141F54: .4byte 0x0000043c +_08141F58: + bl UpdatePaletteFade + ldr r0, _08141F7C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08141F84 + ldr r0, _08141F80 + bl SetMainCallback2 + movs r0, 0xDA + lsls r0, 1 + bl PlayBGM + movs r0, 0 + b _08141F86 + .align 2, 0 +_08141F7C: .4byte gPaletteFade +_08141F80: .4byte sub_8141E4C +_08141F84: + movs r0, 0x1 +_08141F86: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8141E64 + + thumb_func_start sub_8141F90 +sub_8141F90: @ 8141F90 + push {r4,lr} + bl sub_8141E64 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08141FB6 + ldr r0, _08141FBC + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08141FC0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] +_08141FB6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08141FBC: .4byte sub_8141FF8 +_08141FC0: .4byte gTasks + thumb_func_end sub_8141F90 + + thumb_func_start sub_8141FC4 +sub_8141FC4: @ 8141FC4 + push {lr} + bl sub_8141E64 + lsls r0, 24 + cmp r0, 0 + bne _08141FEA + ldr r0, _08141FF0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08141FF4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x1 + strh r0, [r1, 0x8] +_08141FEA: + pop {r0} + bx r0 + .align 2, 0 +_08141FF0: .4byte sub_8141FF8 +_08141FF4: .4byte gTasks + thumb_func_end sub_8141FC4 + + thumb_func_start sub_8141FF8 +sub_8141FF8: @ 8141FF8 + 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 r8, r0 + ldr r0, _081420C8 + mov r9, r0 + ldr r1, _081420CC + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xC] + movs r7, 0 + ldr r4, _081420D0 + mov r10, r4 +_08142024: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _081420D4 + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r3, r0, 0 + cmp r3, 0 + beq _081420DC + adds r0, r6, 0 + movs r1, 0x41 + bl GetMonData + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 2 + mov r1, r9 + adds r5, r1, r4 + ldr r2, _081420D8 + adds r1, r2, 0 + ands r0, r1 + ldrh r1, [r5, 0x8] + mov r2, r10 + ands r1, r2 + orrs r1, r0 + strh r1, [r5, 0x8] + adds r0, r6, 0 + movs r1, 0x1 + bl GetMonData + str r0, [r5] + adds r0, r6, 0 + movs r1, 0 + bl GetMonData + mov r1, r9 + adds r1, 0x4 + adds r1, r4 + str r0, [r1] + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + lsls r0, 1 + ldrb r2, [r5, 0x9] + movs r1, 0x1 + ands r1, r2 + orrs r1, r0 + strb r1, [r5, 0x9] + adds r0, r6, 0 + movs r1, 0x2 + mov r2, sp + bl GetMonData + movs r2, 0 + mov r6, r8 + lsls r5, r6, 2 + mov r3, r9 + adds r3, 0xA +_081420A0: + adds r1, r2, r4 + adds r1, r3, r1 + mov r6, sp + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x9 + bls _081420A0 + ldr r0, _081420CC + mov r2, r8 + adds r1, r5, r2 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + adds r0, 0x1 + strh r0, [r1, 0xC] + b _08142108 + .align 2, 0 +_081420C8: .4byte 0x0201c000 +_081420CC: .4byte gTasks +_081420D0: .4byte 0xfffffe00 +_081420D4: .4byte gPlayerParty +_081420D8: .4byte 0x000001ff +_081420DC: + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 2 + mov r4, r9 + adds r2, r4, r1 + ldrh r0, [r2, 0x8] + mov r6, r10 + ands r0, r6 + strh r0, [r2, 0x8] + str r3, [r2] + mov r0, r9 + adds r0, 0x4 + adds r0, r1 + str r3, [r0] + ldrb r1, [r2, 0x9] + movs r0, 0x1 + ands r0, r1 + strb r0, [r2, 0x9] + movs r0, 0xFF + strb r0, [r2, 0xA] + mov r0, r8 + lsls r5, r0, 2 +_08142108: + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x5 + bls _08142024 + ldr r0, _08142158 + movs r3, 0 + str r3, [r0] + ldr r4, _0814215C + mov r2, r8 + adds r1, r5, r2 + lsls r1, 3 + adds r2, r1, r4 + strh r3, [r2, 0xA] + movs r0, 0xFF + strh r0, [r2, 0x10] + movs r7, 0 + adds r3, r4, 0 + adds r3, 0x8 + movs r2, 0xFF +_08142130: + adds r0, r7, 0x5 + lsls r0, 1 + adds r0, r1 + adds r0, r3 + strh r2, [r0] + adds r0, r7, 0x1 + lsls r0, 16 + lsrs r7, r0, 16 + cmp r7, 0x5 + bls _08142130 + mov r6, r8 + adds r0, r5, r6 + lsls r0, 3 + adds r1, r0, r4 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _08142164 + ldr r0, _08142160 + b _08142166 + .align 2, 0 +_08142158: .4byte gUnknown_0203931C +_0814215C: .4byte gTasks +_08142160: .4byte sub_81422E8 +_08142164: + ldr r0, _08142178 +_08142166: + str 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 +_08142178: .4byte sub_814217C + thumb_func_end sub_8141FF8 + + thumb_func_start sub_814217C +sub_814217C: @ 814217C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _081421C4 + mov r9, r0 + movs r7, 0x80 + lsls r7, 6 + add r7, r9 + ldr r0, _081421C8 + ldrb r0, [r0] + cmp r0, 0 + bne _081421D4 + movs r4, 0 + mov r0, r8 + lsls r0, 2 + mov r10, r0 + ldr r5, _081421CC + add r5, r9 + movs r3, 0xF0 + lsls r3, 9 + movs r2, 0 + ldr r1, _081421D0 +_081421B2: + adds r0, r4, r3 + adds r0, r5 + strb r2, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r1 + bls _081421B2 + b _081421E0 + .align 2, 0 +_081421C4: .4byte 0x0201c000 +_081421C8: .4byte gUnknown_02039324 +_081421CC: .4byte 0xfffe4000 +_081421D0: .4byte 0x00001fff +_081421D4: + movs r0, 0x3 + bl sub_8125EC8 + mov r0, r8 + lsls r0, 2 + mov r10, r0 +_081421E0: + movs r4, 0 + ldrh r1, [r7, 0x8] + ldr r2, _081421E8 + b _081421FA + .align 2, 0 +_081421E8: .4byte 0x000001ff +_081421EC: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r7, 0x78 + cmp r4, 0x31 + bhi _08142206 + ldrh r1, [r7, 0x8] +_081421FA: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _081421EC + cmp r4, 0x31 + bls _08142228 +_08142206: + ldr r5, _08142264 + adds r6, r5, 0 + adds r5, 0x78 + movs r4, 0 + subs r7, 0x78 +_08142210: + adds r0, r6, 0 + adds r1, r5, 0 + movs r2, 0x78 + bl memcpy + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r6, 0x78 + adds r5, 0x78 + cmp r4, 0x30 + bls _08142210 +_08142228: + adds r0, r7, 0 + mov r1, r9 + movs r2, 0x78 + bl memcpy + movs r0, 0x2 + movs r1, 0xE + movs r2, 0x1B + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08142268 + movs r1, 0x3 + movs r2, 0xF + bl MenuPrint + ldr r1, _0814226C + mov r0, r10 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldr r1, _08142270 + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142264: .4byte 0x0201e000 +_08142268: .4byte gMenuText_HOFSaving +_0814226C: .4byte gTasks +_08142270: .4byte sub_8142274 + thumb_func_end sub_814217C + + thumb_func_start sub_8142274 +sub_8142274: @ 8142274 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _081422A8 + ldr r0, _081422AC + str r0, [r1] + movs r0, 0x3 + bl sub_8125D44 + movs r0, 0x37 + bl PlaySE + ldr r1, _081422B0 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081422B4 + str r1, [r0] + movs r1, 0x20 + strh r1, [r0, 0xE] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081422A8: .4byte gUnknown_03005EBC +_081422AC: .4byte sub_8141FC4 +_081422B0: .4byte gTasks +_081422B4: .4byte sub_81422B8 + thumb_func_end sub_8142274 + + thumb_func_start sub_81422B8 +sub_81422B8: @ 81422B8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081422D8 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r2, [r1, 0xE] + movs r3, 0xE + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _081422DC + subs r0, r2, 0x1 + strh r0, [r1, 0xE] + b _081422E0 + .align 2, 0 +_081422D8: .4byte gTasks +_081422DC: + ldr r0, _081422E4 + str r0, [r1] +_081422E0: + pop {r0} + bx r0 + .align 2, 0 +_081422E4: .4byte sub_81422E8 + thumb_func_end sub_81422B8 + + thumb_func_start sub_81422E8 +sub_81422E8: @ 81422E8 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08142314 + adds r0, r5, 0 + bl SetUpWindowConfig + adds r0, r5, 0 + bl InitMenuWindow + ldr r1, _08142318 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0814231C + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08142314: .4byte gWindowConfig_81E7198 +_08142318: .4byte gTasks +_0814231C: .4byte sub_8142320 + thumb_func_end sub_81422E8 + + thumb_func_start sub_8142320 +sub_8142320: @ 8142320 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r2, _08142350 + ldr r0, _08142354 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldrh r6, [r1, 0xA] + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 2 + adds r4, r0, r2 + movs r2, 0xC + ldrsh r0, [r1, r2] + cmp r0, 0x3 + ble _0814235C + ldr r1, _08142358 + b _0814235E + .align 2, 0 +_08142350: .4byte 0x0201c000 +_08142354: .4byte gTasks +_08142358: .4byte gUnknown_0840B534 +_0814235C: + ldr r1, _081423F0 +_0814235E: + lsls r2, r6, 3 + adds r0, r2, r1 + ldrh r5, [r0] + adds r0, r1, 0x2 + adds r0, r2, r0 + ldrh r3, [r0] + adds r0, r1, 0x4 + adds r0, r2, r0 + ldrh r0, [r0] + mov r9, r0 + adds r1, 0x6 + adds r2, r1 + ldrh r2, [r2] + mov r8, r2 + ldrh r0, [r4, 0x8] + lsls r0, 23 + lsrs r0, 23 + lsls r1, r5, 16 + asrs r1, 16 + lsls r2, r3, 16 + asrs r2, 16 + ldr r3, [r4] + str r3, [sp] + ldr r3, [r4, 0x4] + str r3, [sp, 0x4] + adds r3, r6, 0 + bl sub_81436BC + lsls r0, 24 + lsrs r0, 24 + ldr r3, _081423F4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r2, r1, r3 + movs r4, 0 + mov r5, r9 + strh r5, [r2, 0x30] + mov r5, r8 + strh r5, [r2, 0x32] + strh r4, [r2, 0x2E] + adds r3, 0x1C + adds r1, r3 + ldr r2, _081423F8 + str r2, [r1] + ldr r5, _081423FC + adds r1, r6, 0x5 + lsls r1, 1 + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r1, r4 + adds r2, r5, 0 + adds r2, 0x8 + adds r1, r2 + strh r0, [r1] + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r4, r5 + ldr r0, _08142400 + str r0, [r4] + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081423F0: .4byte gUnknown_0840B564 +_081423F4: .4byte gSprites +_081423F8: .4byte sub_81435DC +_081423FC: .4byte gTasks +_08142400: .4byte sub_8142404 + thumb_func_end sub_8142320 + + thumb_func_start sub_8142404 +sub_8142404: @ 8142404 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08142470 + ldr r3, _08142474 + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r5, r2, r3 + ldrh r1, [r5, 0xA] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r6, r0, r4 + ldr r4, _08142478 + adds r1, 0x5 + lsls r1, 1 + adds r1, r2 + adds r3, 0x8 + adds r1, r3 + movs r0, 0 + ldrsh r1, [r1, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2E + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _0814246A + ldrh r2, [r6, 0x8] + ldr r0, _0814247C + ands r0, r2 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08142458 + lsls r0, r2, 23 + lsrs r0, 23 + movs r1, 0 + bl PlayCry1 +_08142458: + adds r0, r6, 0 + movs r1, 0 + movs r2, 0xE + bl sub_8143088 + movs r0, 0x78 + strh r0, [r5, 0xE] + ldr r0, _08142480 + str r0, [r5] +_0814246A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08142470: .4byte 0x0201c000 +_08142474: .4byte gTasks +_08142478: .4byte gSprites +_0814247C: .4byte 0x000001ff +_08142480: .4byte sub_8142484 + thumb_func_end sub_8142404 + + thumb_func_start sub_8142484 +sub_8142484: @ 8142484 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _081424BC + ldr r1, _081424C0 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + adds r4, r6, r1 + ldrh r3, [r4, 0xA] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r2 + mov r9, r0 + ldrh r2, [r4, 0xE] + movs r7, 0xE + ldrsh r0, [r4, r7] + mov r12, r1 + cmp r0, 0 + beq _081424C4 + subs r0, r2, 0x1 + strh r0, [r4, 0xE] + b _0814255C + .align 2, 0 +_081424BC: .4byte 0x0201c000 +_081424C0: .4byte gTasks +_081424C4: + ldr r2, _0814253C + ldr r0, _08142540 + mov r8, r0 + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r6 + mov r1, r12 + adds r1, 0x8 + adds r6, r0, r1 + movs r7, 0 + ldrsh r1, [r6, r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + ldr r3, [r2] + orrs r3, r1 + str r3, [r2] + ldrh r2, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bgt _08142550 + mov r7, r9 + ldrh r1, [r7, 0x1C] + ldr r0, _08142544 + ands r0, r1 + cmp r0, 0 + beq _08142550 + adds r0, r2, 0x1 + strh r0, [r4, 0xA] + ldr r0, _08142548 + str r0, [sp] + adds r0, r3, 0 + movs r1, 0 + movs r2, 0xC + movs r3, 0xC + bl BeginNormalPaletteFade + movs r0, 0 + ldrsh r1, [r6, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x5] + ldr r0, _0814254C + str r0, [r4] + b _0814255C + .align 2, 0 +_0814253C: .4byte gUnknown_0203931C +_08142540: .4byte gSprites +_08142544: .4byte 0x000001ff +_08142548: .4byte 0x0000735f +_0814254C: .4byte sub_8142320 +_08142550: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + add r0, r12 + ldr r1, _0814256C + str r1, [r0] +_0814255C: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814256C: .4byte sub_8142570 + thumb_func_end sub_8142484 + + thumb_func_start sub_8142570 +sub_8142570: @ 8142570 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08142604 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl BeginNormalPaletteFade + movs r3, 0 + lsls r1, r4, 2 + adds r0, r1, r4 + lsls r5, r0, 3 + ldr r0, _08142608 + mov r12, r0 + mov r8, r1 + ldr r6, _0814260C + movs r7, 0xD + negs r7, r7 +_0814259E: + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r5 + mov r2, r12 + adds r1, r0, r2 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0xFF + beq _081425C0 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x5] + adds r0, r7, 0 + ands r0, r2 + strb r0, [r1, 0x5] +_081425C0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _0814259E + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xF + bl sub_8143068 + movs r0, 0x69 + bl PlaySE + ldr r1, _08142610 + mov r2, r8 + adds r0, r2, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0xC8 + lsls r1, 1 + strh r1, [r0, 0xE] + ldr r1, _08142614 + str r1, [r0] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142604: .4byte 0xffff0000 +_08142608: .4byte gUnknown_03004B28 +_0814260C: .4byte gSprites +_08142610: .4byte gTasks +_08142614: .4byte sub_8142618 + thumb_func_end sub_8142570 + + thumb_func_start sub_8142618 +sub_8142618: @ 8142618 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r7, _08142658 + lsls r4, r6, 2 + adds r0, r4, r6 + lsls r5, r0, 3 + adds r1, r5, r7 + ldrh r2, [r1, 0xE] + movs r3, 0xE + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0814265C + subs r2, 0x1 + strh r2, [r1, 0xE] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0 + bne _081426D2 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x6E + ble _081426D2 + bl sub_81438C4 + b _081426D2 + .align 2, 0 +_08142658: .4byte gTasks +_0814265C: + movs r3, 0 + mov r9, r4 + ldr r0, _081426E4 + mov r10, r0 + adds r4, r5, 0 + adds r7, 0x8 + mov r8, r7 + ldr r7, _081426E8 + movs r1, 0xD + negs r1, r1 + mov r12, r1 + movs r5, 0x4 +_08142674: + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r4 + mov r2, r8 + adds r1, r0, r2 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0xFF + beq _08142698 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r2, [r1, 0x5] + mov r0, r12 + ands r0, r2 + orrs r0, r5 + strb r0, [r1, 0x5] +_08142698: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _08142674 + mov r3, r10 + ldr r0, [r3] + ldr r1, _081426EC + str r1, [sp] + movs r1, 0 + movs r2, 0xC + movs r3, 0xC + bl BeginNormalPaletteFade + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _081426F0 + mov r2, r9 + adds r0, r2, r6 + lsls r0, 3 + adds r0, r1 + movs r1, 0x7 + strh r1, [r0, 0xE] + ldr r1, _081426F4 + str r1, [r0] +_081426D2: + 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 +_081426E4: .4byte gUnknown_0203931C +_081426E8: .4byte gSprites +_081426EC: .4byte 0x0000735f +_081426F0: .4byte gTasks +_081426F4: .4byte sub_81426F8 + thumb_func_end sub_8142618 + + thumb_func_start sub_81426F8 +sub_81426F8: @ 81426F8 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08142718 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r2, r1, r2 + ldrh r1, [r2, 0xE] + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r0, 0xF + ble _08142720 + ldr r0, _0814271C + str r0, [r2] + b _0814272E + .align 2, 0 +_08142718: .4byte gTasks +_0814271C: .4byte sub_8142738 +_08142720: + adds r0, r1, 0x1 + strh r0, [r2, 0xE] + ldr r1, _08142734 + movs r3, 0xE + ldrsh r0, [r2, r3] + lsls r0, 8 + strh r0, [r1] +_0814272E: + pop {r0} + bx r0 + .align 2, 0 +_08142734: .4byte REG_BLDALPHA + thumb_func_end sub_81426F8 + + thumb_func_start sub_8142738 +sub_8142738: @ 8142738 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xCA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r4, _08142784 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + ldr r0, _08142788 + ldrb r0, [r0, 0x8] + movs r1, 0x78 + movs r2, 0x48 + movs r3, 0x6 + bl sub_81437A4 + ldr r2, _0814278C + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r2 + strh r0, [r1, 0x10] + movs r0, 0x78 + strh r0, [r1, 0xE] + ldr r0, _08142790 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08142784: .4byte gWindowConfig_81E71B4 +_08142788: .4byte gSaveBlock2 +_0814278C: .4byte gTasks +_08142790: .4byte sub_8142794 + thumb_func_end sub_8142738 + + thumb_func_start sub_8142794 +sub_8142794: @ 8142794 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081427B4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081427B8 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _0814280A + .align 2, 0 +_081427B4: .4byte gTasks +_081427B8: + ldr r2, _081427D8 + movs r3, 0x10 + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldrh r2, [r1, 0x20] + movs r3, 0x20 + ldrsh r0, [r1, r3] + cmp r0, 0xA0 + beq _081427DC + adds r0, r2, 0x1 + strh r0, [r1, 0x20] + b _0814280A + .align 2, 0 +_081427D8: .4byte gSprites +_081427DC: + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0xF + movs r3, 0x9 + bl MenuDrawTextWindow + movs r0, 0x1 + movs r1, 0x2 + bl sub_8143300 + movs r0, 0x2 + movs r1, 0xE + movs r2, 0x1B + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08142810 + movs r1, 0x4 + movs r2, 0xF + bl MenuPrint + ldr r0, _08142814 + str r0, [r4] +_0814280A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142810: .4byte gMenuText_HOFCongratulations +_08142814: .4byte sub_8142818 + thumb_func_end sub_8142794 + + thumb_func_start sub_8142818 +sub_8142818: @ 8142818 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08142844 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0814283E + movs r0, 0x4 + bl FadeOutBGM + ldr r0, _08142848 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0814284C + str r0, [r1] +_0814283E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142844: .4byte gMain +_08142848: .4byte gTasks +_0814284C: .4byte sub_8142850 + thumb_func_end sub_8142818 + + thumb_func_start sub_8142850 +sub_8142850: @ 8142850 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08142890 + ldr r1, _08142894 + movs r2, 0x80 + lsls r2, 2 + bl CpuSet + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x8 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08142898 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0814289C + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08142890: .4byte gPlttBufferFaded +_08142894: .4byte gPlttBufferUnfaded +_08142898: .4byte gTasks +_0814289C: .4byte sub_81428A0 + thumb_func_end sub_8142850 + + thumb_func_start sub_81428A0 +sub_81428A0: @ 81428A0 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _081428C4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081428BE + adds r0, r2, 0 + bl DestroyTask + ldr r0, _081428C8 + bl SetMainCallback2 +_081428BE: + pop {r0} + bx r0 + .align 2, 0 +_081428C4: .4byte gPaletteFade +_081428C8: .4byte sub_81439D0 + thumb_func_end sub_81428A0 + + thumb_func_start sub_81428CC +sub_81428CC: @ 81428CC + push {r4,r5,lr} + ldr r0, _081428E4 + ldr r1, _081428E8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x5 + bhi _08142908 + lsls r0, 2 + ldr r1, _081428EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081428E4: .4byte gMain +_081428E8: .4byte 0x0000043c +_081428EC: .4byte _081428F0 + .align 2, 0 +_081428F0: + .4byte _08142908 + .4byte _08142928 + .4byte _0814293C + .4byte _08142980 + .4byte _081429C0 + .4byte _081429EC +_08142908: + movs r0, 0 + bl SetVBlankCallback + bl sub_81433E0 + ldr r0, _08142920 + ldr r2, _08142924 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] + b _08142A12 + .align 2, 0 +_08142920: .4byte gMain +_08142924: .4byte 0x0000043c +_08142928: + bl sub_8143570 + ldr r1, _08142934 + ldr r3, _08142938 + adds r1, r3 + b _081429DC + .align 2, 0 +_08142934: .4byte gMain +_08142938: .4byte 0x0000043c +_0814293C: + ldr r0, _08142968 + bl SetVBlankCallback + ldr r3, _0814296C + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _08142970 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08142974 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08142978 + ldr r4, _0814297C + adds r1, r4 + b _081429DC + .align 2, 0 +_08142968: .4byte sub_8141E38 +_0814296C: .4byte 0x04000208 +_08142970: .4byte 0x04000200 +_08142974: .4byte REG_DISPSTAT +_08142978: .4byte gMain +_0814297C: .4byte 0x0000043c +_08142980: + ldr r0, _081429AC + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl sub_81435B8 + ldr r0, _081429B0 + adds r2, r0, 0 + ldr r1, _081429B4 + ldm r1!, {r3-r5} + stm r2!, {r3-r5} + ldm r1!, {r3,r5} + stm r2!, {r3,r5} + bl sub_80C5CD4 + ldr r1, _081429B8 + ldr r4, _081429BC + adds r1, r4 + b _081429DC + .align 2, 0 +_081429AC: .4byte REG_BLDCNT +_081429B0: .4byte 0x0201c000 +_081429B4: .4byte gUnknown_0840B57C +_081429B8: .4byte gMain +_081429BC: .4byte 0x0000043c +_081429C0: + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + bl sub_80C5DCC + lsls r0, 24 + cmp r0, 0 + beq _08142A12 + ldr r1, _081429E4 + ldr r5, _081429E8 + adds r1, r5 +_081429DC: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08142A12 + .align 2, 0 +_081429E4: .4byte gMain +_081429E8: .4byte 0x0000043c +_081429EC: + ldr r1, _08142A18 + ldr r2, _08142A1C + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r3, 0xE2 + lsls r3, 3 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0 + strh r0, [r1] + ldr r0, _08142A20 + movs r1, 0 + bl CreateTask + ldr r0, _08142A24 + bl SetMainCallback2 +_08142A12: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08142A18: .4byte REG_BLDCNT +_08142A1C: .4byte 0x00003f42 +_08142A20: .4byte sub_8142A28 +_08142A24: .4byte sub_8141E4C + thumb_func_end sub_81428CC + + thumb_func_start sub_8142A28 +sub_8142A28: @ 8142A28 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x3 + bl sub_8125EC8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08142A54 + ldr r0, _08142A4C + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _08142A50 + str r0, [r1] + b _08142AEA + .align 2, 0 +_08142A4C: .4byte gTasks +_08142A50: .4byte sub_8142FEC +_08142A54: + ldr r2, _08142A8C + movs r3, 0 + ldrh r1, [r2, 0x8] + ldr r4, _08142A90 + adds r0, r4, 0 + ands r0, r1 + ldr r7, _08142A94 + lsls r6, r5, 2 + cmp r0, 0 + beq _08142A7E +_08142A68: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + adds r2, 0x78 + cmp r3, 0x31 + bhi _08142A98 + ldrh r1, [r2, 0x8] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _08142A68 +_08142A7E: + cmp r3, 0x31 + bhi _08142A98 + adds r0, r6, r5 + lsls r0, 3 + adds r0, r7 + subs r1, r3, 0x1 + b _08142AA0 + .align 2, 0 +_08142A8C: .4byte 0x0201e000 +_08142A90: .4byte 0x000001ff +_08142A94: .4byte gTasks +_08142A98: + adds r0, r6, r5 + lsls r0, 3 + adds r0, r7 + movs r1, 0x31 +_08142AA0: + strh r1, [r0, 0x8] + movs r0, 0xA + bl sub_8053108 + ldr r2, _08142AF0 + adds r1, r6, r5 + lsls r1, 3 + adds r1, r2 + strh r0, [r1, 0xA] + movs r3, 0 + ldr r7, _08142AF4 + ldr r4, _08142AF8 +_08142AB8: + lsls r1, r3, 1 + adds r2, r1, r7 + adds r0, r3, 0x3 + strh r0, [r2] + adds r1, r4 + adds r0, 0x11 + strh r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x10 + bls _08142AB8 + ldr r4, _08142AFC + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + ldr r1, _08142AF0 + adds r0, r6, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08142B00 + str r1, [r0] +_08142AEA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142AF0: .4byte gTasks +_08142AF4: .4byte 0x0600381a +_08142AF8: .4byte 0x0600385a +_08142AFC: .4byte gWindowConfig_81E7198 +_08142B00: .4byte sub_8142B04 + thumb_func_end sub_8142A28 + + thumb_func_start sub_8142B04 +sub_8142B04: @ 8142B04 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r3, _08142BB8 + movs r5, 0 + ldr r1, _08142BBC + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r6, r1, 0 + ldr r2, _08142BC0 + cmp r5, r0 + bge _08142B3E + adds r1, r0, 0 +_08142B32: + adds r3, 0x78 + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r1 + blt _08142B32 +_08142B3E: + adds r4, r3, 0 + movs r0, 0 + str r0, [r2] + mov r5, r8 + lsls r2, r5, 2 + adds r1, r2, r5 + lsls r1, 3 + adds r1, r6 + strh r0, [r1, 0xC] + strh r0, [r1, 0x10] + movs r5, 0 + str r2, [sp, 0xC] + ldr r6, _08142BC4 + adds r2, r1, 0 +_08142B5A: + ldrh r1, [r4, 0x8] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _08142B6A + ldrh r0, [r2, 0x10] + adds r0, 0x1 + strh r0, [r2, 0x10] +_08142B6A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r4, 0x14 + cmp r5, 0x5 + bls _08142B5A + adds r4, r3, 0 + movs r5, 0 + ldr r1, _08142BBC + ldr r0, [sp, 0xC] + add r0, r8 + lsls r7, r0, 3 + adds r6, r7, r1 + str r6, [sp, 0x8] + adds r1, 0x8 + mov r9, r1 + ldr r0, _08142BC8 + mov r10, r0 +_08142B8E: + ldrh r1, [r4, 0x8] + ldr r2, _08142BC4 + adds r0, r2, 0 + ands r0, r1 + adds r6, r1, 0 + cmp r0, 0 + beq _08142C30 + ldr r1, [sp, 0x8] + movs r2, 0x10 + ldrsh r0, [r1, r2] + cmp r0, 0x3 + ble _08142BD4 + lsls r1, r5, 3 + ldr r0, _08142BCC + adds r0, 0x4 + adds r0, r1, r0 + ldrh r3, [r0] + ldr r0, _08142BD0 + adds r1, r0 + b _08142BE2 + .align 2, 0 +_08142BB8: .4byte 0x0201e000 +_08142BBC: .4byte gTasks +_08142BC0: .4byte gUnknown_0203931C +_08142BC4: .4byte 0x000001ff +_08142BC8: .4byte gUnknown_0840B564 +_08142BCC: .4byte gUnknown_0840B534 +_08142BD0: .4byte gUnknown_0840B53A +_08142BD4: + lsls r1, r5, 3 + mov r0, r10 + adds r0, 0x4 + adds r0, r1, r0 + ldrh r3, [r0] + ldr r2, _08142C28 + adds r1, r2 +_08142BE2: + ldrh r2, [r1] + lsls r0, r6, 23 + lsrs r0, 23 + lsls r1, r3, 16 + asrs r1, 16 + lsls r2, 16 + asrs r2, 16 + ldr r3, [r4] + str r3, [sp] + ldr r3, [r4, 0x4] + str r3, [sp, 0x4] + adds r3, r5, 0 + bl sub_81436BC + lsls r0, 16 + lsrs r0, 16 + ldr r2, _08142C2C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r3, [r1, 0x5] + movs r6, 0xD + negs r6, r6 + adds r2, r6, 0 + ands r3, r2 + movs r2, 0x4 + orrs r3, r2 + strb r3, [r1, 0x5] + adds r1, r5, 0x5 + lsls r1, 1 + adds r1, r7 + add r1, r9 + strh r0, [r1] + b _08142C3C + .align 2, 0 +_08142C28: .4byte gUnknown_0840B56A +_08142C2C: .4byte gSprites +_08142C30: + adds r0, r5, 0x5 + lsls r0, 1 + adds r0, r7 + add r0, r9 + movs r1, 0xFF + strh r1, [r0] +_08142C3C: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + adds r4, 0x14 + cmp r5, 0x5 + bls _08142B8E + ldr r0, _08142CB0 + ldr r2, _08142CB4 + movs r1, 0xC + bl BlendPalettes + ldr r3, _08142CB8 + ldr r1, _08142CBC + adds r0, r3, 0 + bl StringCopy + adds r3, r0, 0 + movs r5, 0xFC + strb r5, [r3] + movs r0, 0x14 + strb r0, [r3, 0x1] + movs r0, 0x6 + strb r0, [r3, 0x2] + adds r3, 0x3 + ldr r0, _08142CC0 + ldr r4, [sp, 0xC] + add r4, r8 + lsls r4, 3 + adds r4, r0 + movs r0, 0xA + ldrsh r1, [r4, r0] + adds r0, r3, 0 + bl ConvertIntToDecimalString + adds r3, r0, 0 + strb r5, [r3] + movs r0, 0x13 + strb r0, [r3, 0x1] + movs r0, 0xF0 + strb r0, [r3, 0x2] + movs r0, 0xFF + strb r0, [r3, 0x3] + ldr r0, _08142CB8 + movs r1, 0 + movs r2, 0 + bl MenuPrint + ldr r0, _08142CC4 + str r0, [r4] + 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 +_08142CB0: .4byte 0xffff0000 +_08142CB4: .4byte 0x0000735f +_08142CB8: .4byte gStringVar1 +_08142CBC: .4byte gMenuText_HOFNumber +_08142CC0: .4byte gTasks +_08142CC4: .4byte sub_8142CC8 + thumb_func_end sub_8142B04 + + thumb_func_start sub_8142CC8 +sub_8142CC8: @ 8142CC8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08142DD0 + mov r8, r0 + movs r3, 0 + ldr r1, _08142DD4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + cmp r3, r0 + bge _08142CFE + adds r1, r0, 0 +_08142CF0: + movs r0, 0x78 + add r8, r0 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + blt _08142CF0 +_08142CFE: + movs r3, 0 + lsls r6, r4, 2 + adds r0, r6, r4 + lsls r5, r0, 3 + ldr r1, _08142DD8 + mov r10, r1 + ldr r2, _08142DDC + mov r12, r2 + movs r0, 0xD + negs r0, r0 + mov r9, r0 + movs r7, 0x4 +_08142D16: + adds r0, r3, 0x5 + lsls r0, 1 + adds r0, r5 + add r0, r10 + ldrh r1, [r0] + cmp r1, 0xFF + beq _08142D36 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r2, [r0, 0x5] + mov r1, r9 + ands r1, r2 + orrs r1, r7 + strb r1, [r0, 0x5] +_08142D36: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x5 + bls _08142D16 + adds r1, r6, r4 + lsls r1, 3 + ldr r2, _08142DD4 + adds r5, r1, r2 + movs r2, 0xC + ldrsh r0, [r5, r2] + adds r0, 0x5 + lsls r0, 1 + adds r0, r1 + ldr r1, _08142DD4 + adds r1, 0x8 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08142DDC + adds r0, r1 + ldrb r2, [r0, 0x5] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + strb r1, [r0, 0x5] + lsrs r1, 4 + movs r0, 0x80 + lsls r0, 9 + lsls r0, r1 + ldr r1, _08142DE0 + eors r0, r1 + ldr r2, _08142DE4 + str r0, [r2] + ldr r2, _08142DE8 + movs r1, 0xC + bl BlendPalettesUnfaded + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + mov r1, r8 + adds r4, r1, r0 + ldrh r1, [r4, 0x8] + ldr r0, _08142DEC + ands r0, r1 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08142DB2 + bl StopCryAndClearCrySongs + ldrh r0, [r4, 0x8] + lsls r0, 23 + lsrs r0, 23 + movs r1, 0 + bl PlayCry1 +_08142DB2: + adds r0, r4, 0 + movs r1, 0 + movs r2, 0xE + bl sub_8143088 + ldr r0, _08142DF0 + str r0, [r5] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142DD0: .4byte 0x0201e000 +_08142DD4: .4byte gTasks +_08142DD8: .4byte gUnknown_03004B28 +_08142DDC: .4byte gSprites +_08142DE0: .4byte 0xffff0000 +_08142DE4: .4byte gUnknown_0203931C +_08142DE8: .4byte 0x0000735f +_08142DEC: .4byte 0x000001ff +_08142DF0: .4byte sub_8142DF4 + thumb_func_end sub_8142CC8 + + thumb_func_start sub_8142DF4 +sub_8142DF4: @ 8142DF4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _08142E88 + ldrh r2, [r1, 0x2E] + movs r0, 0x1 + ands r0, r2 + adds r3, r1, 0 + cmp r0, 0 + beq _08142EC4 + ldr r7, _08142E8C + lsls r0, r6, 2 + adds r1, r0, r6 + lsls r3, r1, 3 + adds r4, r3, r7 + ldrh r2, [r4, 0x8] + movs r5, 0x8 + ldrsh r1, [r4, r5] + mov r8, r0 + cmp r1, 0 + beq _08142E98 + subs r0, r2, 0x1 + strh r0, [r4, 0x8] + movs r5, 0 + adds r7, 0x8 + mov r9, r7 + adds r7, r3, 0 +_08142E30: + adds r0, r5, 0x5 + lsls r0, 1 + adds r0, r7 + add r0, r9 + ldrb r1, [r0] + cmp r1, 0xFF + beq _08142E5E + ldr r0, _08142E90 + lsls r4, r1, 4 + adds r4, r1 + lsls r4, 2 + adds r4, r0 + ldrb r0, [r4, 0x5] + lsrs r0, 4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + adds r0, r4, 0 + bl DestroySprite +_08142E5E: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x5 + bls _08142E30 + ldr r0, _08142E8C + mov r2, r8 + adds r1, r2, r6 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08142E80 + subs r0, r2, 0x1 + strh r0, [r1, 0xA] +_08142E80: + ldr r0, _08142E94 + str r0, [r1] + b _08142F64 + .align 2, 0 +_08142E88: .4byte gMain +_08142E8C: .4byte gTasks +_08142E90: .4byte gSprites +_08142E94: .4byte sub_8142B04 +_08142E98: + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _08142EB2 + bl StopCryAndClearCrySongs + ldr r0, _08142EB8 + ldr r1, _08142EBC + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08142EB2: + ldr r0, _08142EC0 + str r0, [r4] + b _08142F64 + .align 2, 0 +_08142EB8: .4byte gMPlay_BGM +_08142EBC: .4byte 0x0000ffff +_08142EC0: .4byte sub_8142F78 +_08142EC4: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _08142F08 + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _08142EE6 + bl StopCryAndClearCrySongs + ldr r0, _08142EF8 + ldr r1, _08142EFC + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08142EE6: + ldr r0, _08142F00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _08142F04 + str r0, [r1] + b _08142F64 + .align 2, 0 +_08142EF8: .4byte gMPlay_BGM +_08142EFC: .4byte 0x0000ffff +_08142F00: .4byte gTasks +_08142F04: .4byte sub_8142F78 +_08142F08: + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + beq _08142F38 + ldr r0, _08142F30 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldrh r2, [r1, 0xC] + movs r4, 0xC + ldrsh r0, [r1, r4] + cmp r0, 0 + beq _08142F38 + subs r0, r2, 0x1 + strh r0, [r1, 0xC] + ldr r0, _08142F34 + str r0, [r1] + b _08142F64 + .align 2, 0 +_08142F30: .4byte gTasks +_08142F34: .4byte sub_8142CC8 +_08142F38: + ldrh r1, [r3, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08142F64 + ldr r1, _08142F70 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r2, r0, r1 + movs r5, 0xC + ldrsh r1, [r2, r5] + movs r3, 0x10 + ldrsh r0, [r2, r3] + subs r0, 0x1 + cmp r1, r0 + bge _08142F64 + ldrh r0, [r2, 0xC] + adds r0, 0x1 + strh r0, [r2, 0xC] + ldr r0, _08142F74 + str r0, [r2] +_08142F64: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08142F70: .4byte gTasks +_08142F74: .4byte sub_8142CC8 + thumb_func_end sub_8142DF4 + + thumb_func_start sub_8142F78 +sub_8142F78: @ 8142F78 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08142FB4 + ldr r1, _08142FB8 + movs r2, 0x80 + lsls r2, 2 + bl CpuSet + ldr r0, _08142FBC + adds r2, r0, 0 + ldr r1, _08142FC0 + ldm r1!, {r3,r5,r6} + stm r2!, {r3,r5,r6} + ldm r1!, {r3,r5} + stm r2!, {r3,r5} + bl sub_80C5E38 + ldr r1, _08142FC4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08142FC8 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08142FB4: .4byte gPlttBufferFaded +_08142FB8: .4byte gPlttBufferUnfaded +_08142FBC: .4byte 0x0201c000 +_08142FC0: .4byte gUnknown_0840B57C +_08142FC4: .4byte gTasks +_08142FC8: .4byte sub_8142FCC + thumb_func_end sub_8142F78 + + thumb_func_start sub_8142FCC +sub_8142FCC: @ 8142FCC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_80C5F98 + lsls r0, 24 + cmp r0, 0 + beq _08142FE6 + adds r0, r4, 0 + bl DestroyTask + bl sub_810D62C +_08142FE6: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8142FCC + + thumb_func_start sub_8142FEC +sub_8142FEC: @ 8142FEC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2 + movs r1, 0xE + movs r2, 0x1B + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08143020 + movs r1, 0x3 + movs r2, 0xF + bl MenuPrintMessage + ldr r1, _08143024 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08143028 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08143020: .4byte gMenuText_HOFCorrupt +_08143024: .4byte gTasks +_08143028: .4byte sub_814302C + thumb_func_end sub_8142FEC + + thumb_func_start sub_814302C +sub_814302C: @ 814302C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _08143056 + ldr r0, _0814305C + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08143056 + ldr r0, _08143060 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08143064 + str r0, [r1] +_08143056: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814305C: .4byte gMain +_08143060: .4byte gTasks +_08143064: .4byte sub_8142F78 + thumb_func_end sub_814302C + + thumb_func_start sub_8143068 +sub_8143068: @ 8143068 + push {lr} + lsls r2, r1, 24 + ldr r0, _08143084 + movs r1, 0x80 + lsls r1, 17 + adds r2, r1 + lsrs r2, 24 + movs r1, 0 + movs r3, 0xF0 + bl sub_8072BD8 + pop {r0} + bx r0 + .align 2, 0 +_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating + thumb_func_end sub_8143068 + + thumb_func_start sub_8143088 +sub_8143088: @ 8143088 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + ldr r7, _08143188 + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x13 + strb r0, [r7, 0x1] + movs r0, 0x28 + strb r0, [r7, 0x2] + movs r0, 0xFF + strb r0, [r7, 0x3] + mov r0, r9 + ldrh r2, [r0, 0x8] + ldr r0, _0814318C + ands r0, r2 + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _081430EA + lsls r0, r2, 23 + lsrs r0, 23 + bl sub_80406D8 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _08143190 + cmp r6, r0 + beq _081430EA + ldr r1, _08143194 + adds r0, r7, 0 + bl StringCopy + adds r7, r0, 0 + adds r1, r6, 0 + movs r2, 0x2 + movs r3, 0x3 + bl ConvertIntToDecimalStringN +_081430EA: + ldr r5, _08143188 + mov r1, r8 + adds r1, 0x4 + lsls r1, 24 + lsrs r1, 24 + mov r4, r10 + adds r4, 0x1 + lsls r2, r4, 24 + lsrs r2, 24 + adds r0, r5, 0 + bl MenuPrint + adds r7, r5, 0 + movs r3, 0 + mov r1, r9 + ldrb r0, [r1, 0xA] + str r4, [sp] + mov r2, r8 + adds r2, 0x9 + str r2, [sp, 0xC] + mov r6, r10 + adds r6, 0x3 + str r6, [sp, 0x8] + cmp r0, 0xFF + beq _0814313A + mov r2, r9 + adds r2, 0xA +_08143120: + adds r1, r7, r3 + adds r0, r2, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x9 + bhi _0814313A + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08143120 +_0814313A: + adds r7, r3 + movs r2, 0xFF + strb r2, [r7] + mov r1, r9 + ldrh r0, [r1, 0x8] + ldr r1, _0814318C + ands r1, r0 + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + bne _08143198 + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x13 + strb r0, [r7, 0x1] + movs r0, 0xA0 + strb r0, [r7, 0x2] + strb r2, [r7, 0x3] + ldr r0, _08143188 + ldr r2, [sp, 0xC] + lsls r1, r2, 24 + lsrs r1, 24 + ldr r3, [sp] + lsls r2, r3, 24 + lsrs r2, 24 + bl MenuPrint + ldr r6, [sp, 0x8] + lsls r1, r6, 24 + lsrs r1, 24 + mov r3, r10 + adds r3, 0x4 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0 + movs r2, 0x1D + bl MenuZeroFillWindowRect + b _081432E4 + .align 2, 0 +_08143188: .4byte gStringVar1 +_0814318C: .4byte 0x000001ff +_08143190: .4byte 0x0000ffff +_08143194: .4byte gOtherText_Number2 +_08143198: + movs r0, 0xFC + strb r0, [r7] + movs r0, 0x13 + strb r0, [r7, 0x1] + movs r0, 0x3E + strb r0, [r7, 0x2] + adds r7, 0x3 + movs r0, 0xBA + strb r0, [r7] + adds r7, 0x1 + movs r3, 0 + ldr r2, _08143238 + mov r1, r9 + ldrh r0, [r1, 0x8] + lsls r0, 23 + lsrs r0, 23 + movs r1, 0xB + muls r0, r1 + adds r0, r2 + ldrb r0, [r0] + mov r6, r8 + adds r6, 0x7 + str r6, [sp, 0x4] + mov r1, r8 + adds r1, 0xD + str r1, [sp, 0x10] + cmp r0, 0xFF + beq _08143204 + adds r5, r2, 0 + movs r4, 0xB +_081431D4: + adds r1, r7, r3 + mov r6, r9 + ldrh r0, [r6, 0x8] + lsls r0, 23 + lsrs r0, 23 + muls r0, r4 + adds r0, r3, r0 + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x9 + bhi _08143204 + ldrh r0, [r6, 0x8] + lsls r0, 23 + lsrs r0, 23 + muls r0, r4 + adds r0, r3, r0 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0xFF + bne _081431D4 +_08143204: + adds r7, r3 + movs r0, 0 + strb r0, [r7] + adds r7, 0x1 + mov r1, r9 + ldrh r0, [r1, 0x8] + ldr r1, _0814323C + ands r1, r0 + cmp r1, 0x20 + beq _0814324A + cmp r1, 0x1D + beq _0814324A + lsls r0, 23 + lsrs r0, 23 + mov r2, r9 + ldr r1, [r2, 0x4] + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08143240 + cmp r0, 0xFE + beq _08143244 + b _0814324A + .align 2, 0 +_08143238: .4byte gSpeciesNames +_0814323C: .4byte 0x000001ff +_08143240: + movs r0, 0xB5 + b _08143246 +_08143244: + movs r0, 0xB6 +_08143246: + strb r0, [r7] + adds r7, 0x1 +_0814324A: + movs r4, 0xFC + strb r4, [r7] + movs r3, 0x13 + mov r8, r3 + strb r3, [r7, 0x1] + movs r0, 0xA0 + strb r0, [r7, 0x2] + movs r6, 0xFF + mov r10, r6 + strb r6, [r7, 0x3] + ldr r5, _081432F4 + ldr r0, [sp, 0xC] + lsls r1, r0, 24 + lsrs r1, 24 + ldr r3, [sp] + lsls r2, r3, 24 + lsrs r2, 24 + adds r0, r5, 0 + bl MenuPrint + mov r6, r9 + ldrb r0, [r6, 0x9] + lsrs r6, r0, 1 + ldr r1, _081432F8 + adds r0, r5, 0 + bl StringCopy + adds r7, r0, 0 + strb r4, [r7] + movs r0, 0x14 + strb r0, [r7, 0x1] + movs r0, 0x6 + strb r0, [r7, 0x2] + adds r7, 0x3 + adds r0, r7, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r7, r0, 0 + strb r4, [r7] + mov r0, r8 + strb r0, [r7, 0x1] + movs r0, 0x30 + strb r0, [r7, 0x2] + mov r1, r10 + strb r1, [r7, 0x3] + ldr r2, [sp, 0x4] + lsls r1, r2, 24 + lsrs r1, 24 + ldr r3, [sp, 0x8] + lsls r4, r3, 24 + lsrs r4, 24 + adds r0, r5, 0 + adds r2, r4, 0 + bl MenuPrint + mov r0, r9 + ldrh r6, [r0] + ldr r1, _081432FC + adds r0, r5, 0 + bl StringCopy + adds r7, r0, 0 + adds r1, r6, 0 + movs r2, 0x2 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + ldr r2, [sp, 0x10] + lsls r1, r2, 24 + lsrs r1, 24 + adds r0, r5, 0 + adds r2, r4, 0 + bl MenuPrint +_081432E4: + 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 +_081432F4: .4byte gStringVar1 +_081432F8: .4byte gOtherText_Level3 +_081432FC: .4byte gOtherText_IDNumber + thumb_func_end sub_8143088 + + thumb_func_start sub_8143300 +sub_8143300: @ 8143300 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 24 + lsls r4, 24 + ldr r0, _081433CC + lsrs r1, r5, 24 + mov r8, r1 + movs r2, 0x80 + lsls r2, 17 + adds r5, r2 + lsrs r5, 24 + lsrs r6, r4, 24 + adds r4, r2 + lsrs r4, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl MenuPrint + ldr r0, _081433D0 + mov r10, r0 + movs r1, 0xE + add r8, r1 + mov r2, r8 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + mov r1, r8 + adds r2, r4, 0 + bl sub_8072B4C + ldr r0, _081433D4 + adds r4, r6, 0x3 + lsls r4, 24 + lsrs r4, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl MenuPrint + mov r0, r10 + ldrb r1, [r0, 0xA] + ldrb r0, [r0, 0xB] + lsls r0, 8 + orrs r1, r0 + ldr r2, _081433D8 + mov r9, r2 + mov r0, r9 + movs r2, 0x2 + movs r3, 0x5 + bl ConvertIntToDecimalStringN + mov r0, r9 + mov r1, r8 + adds r2, r4, 0 + bl sub_8072B4C + ldr r0, _081433DC + adds r6, 0x5 + lsls r6, 24 + lsrs r6, 24 + adds r1, r5, 0 + adds r2, r6, 0 + bl MenuPrint + mov r0, r10 + ldrh r1, [r0, 0xE] + mov r0, r9 + bl ConvertIntToDecimalString + adds r2, r0, 0 + movs r1, 0 + strb r1, [r2] + movs r0, 0xF0 + strb r0, [r2, 0x1] + strb r1, [r2, 0x2] + adds r2, 0x3 + mov r0, r10 + ldrb r1, [r0, 0x10] + adds r0, r2, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r2, r0, 0 + movs r0, 0xFF + strb r0, [r2] + mov r0, r9 + mov r1, r8 + adds r2, r6, 0 + bl sub_8072B4C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081433CC: .4byte gOtherText_Name +_081433D0: .4byte gSaveBlock2 +_081433D4: .4byte gOtherText_IDNumber2 +_081433D8: .4byte gStringVar1 +_081433DC: .4byte gMainMenuString_Time + thumb_func_end sub_8143300 + + thumb_func_start sub_81433E0 +sub_81433E0: @ 81433E0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0x8 + strh r1, [r0] + adds r0, 0x8 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x8 + strh r1, [r0] + adds r0, 0xA + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0xA + strh r1, [r0] + adds r0, 0xC + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0xC + strh r1, [r0] + adds r0, 0xE + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + movs r3, 0xC0 + lsls r3, 19 + movs r4, 0xC0 + lsls r4, 9 + add r0, sp, 0x4 + mov r8, r0 + ldr r1, _0814354C + mov r9, r1 + mov r2, sp + movs r6, 0 + ldr r1, _08143550 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _08143554 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_08143444: + strh r6, [r2] + mov r0, sp + 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 _08143444 + strh r6, [r2] + mov r2, sp + str r2, [r1] + str r3, [r1, 0x4] + lsrs r0, r4, 1 + mov r2, r12 + 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, 0x4] + ldr r2, _08143550 + mov r1, r8 + 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 + mov r0, sp + strh r4, [r0] + str r0, [r2] + str r1, [r2, 0x4] + lsrs r3, 1 + movs r0, 0x81 + lsls r0, 24 + orrs r3, r0 + str r3, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r1, 0xC0 + lsls r1, 19 + mov r0, r9 + bl LZ77UnCompVram + movs r1, 0 + ldr r3, _08143558 + movs r2, 0x1 +_081434B2: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3F + bls _081434B2 + movs r1, 0 + ldr r5, _0814355C + ldr r3, _08143560 + movs r2, 0x1 +_081434CA: + lsls r0, r1, 1 + adds r0, r3 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xBF + bls _081434CA + movs r1, 0 + ldr r4, _08143564 + movs r3, 0x2 + ldr r2, _08143568 +_081434E2: + lsls r0, r1, 1 + adds r0, r4 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bls _081434E2 + adds r2, r5, 0 + movs r3, 0x80 + lsls r3, 7 + mov r4, sp + movs r6, 0 + ldr r1, _08143550 + movs r5, 0x80 + lsls r5, 5 + ldr r7, _08143554 + movs r0, 0x81 + lsls r0, 24 + mov r12, r0 +_0814350A: + 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 _0814350A + 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] + bl ResetPaletteFade + ldr r0, _0814356C + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814354C: .4byte gHallOfFame_Gfx +_08143550: .4byte 0x040000d4 +_08143554: .4byte 0x81000800 +_08143558: .4byte 0x06003800 +_0814355C: .4byte 0x02000000 +_08143560: .4byte 0x06003b80 +_08143564: .4byte 0x06003000 +_08143568: .4byte 0x000003ff +_0814356C: .4byte gHallOfFame_Pal + thumb_func_end sub_81433E0 + + thumb_func_start sub_8143570 +sub_8143570: @ 8143570 + push {r4,lr} + bl remove_some_task + bl ResetTasks + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _081435A8 + movs r0, 0x8 + strb r0, [r1] + ldr r0, _081435AC + bl LoadCompressedObjectPic + ldr r0, _081435B0 + bl LoadCompressedObjectPalette + ldr r4, _081435B4 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081435A8: .4byte gReservedSpritePaletteCount +_081435AC: .4byte gUnknown_0840B514 +_081435B0: .4byte gUnknown_0840B524 +_081435B4: .4byte gWindowConfig_81E71B4 + thumb_func_end sub_8143570 + + thumb_func_start sub_81435B8 +sub_81435B8: @ 81435B8 + ldr r1, _081435D8 + movs r2, 0xE0 + lsls r2, 3 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x4 + subs r2, 0xFD + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xE + movs r2, 0xDA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_081435D8: .4byte REG_BG1CNT + thumb_func_end sub_81435B8 + + thumb_func_start sub_81435DC +sub_81435DC: @ 81435DC + push {r4,lr} + adds r2, r0, 0 + ldr r1, [r2, 0x20] + ldr r0, [r2, 0x30] + cmp r1, r0 + beq _08143632 + ldrh r3, [r2, 0x20] + movs r1, 0x20 + ldrsh r0, [r2, r1] + movs r4, 0x30 + ldrsh r1, [r2, r4] + cmp r0, r1 + bge _081435FC + adds r0, r3, 0 + adds r0, 0xF + strh r0, [r2, 0x20] +_081435FC: + ldrh r3, [r2, 0x20] + movs r4, 0x20 + ldrsh r0, [r2, r4] + cmp r0, r1 + ble _0814360C + adds r0, r3, 0 + subs r0, 0xF + strh r0, [r2, 0x20] +_0814360C: + ldrh r3, [r2, 0x22] + movs r1, 0x22 + ldrsh r0, [r2, r1] + movs r4, 0x32 + ldrsh r1, [r2, r4] + cmp r0, r1 + bge _08143620 + adds r0, r3, 0 + adds r0, 0xA + strh r0, [r2, 0x22] +_08143620: + ldrh r3, [r2, 0x22] + movs r4, 0x22 + ldrsh r0, [r2, r4] + cmp r0, r1 + ble _0814363A + adds r0, r3, 0 + subs r0, 0xA + strh r0, [r2, 0x22] + b _0814363A +_08143632: + movs r0, 0x1 + strh r0, [r2, 0x2E] + ldr r0, _08143640 + str r0, [r2, 0x1C] +_0814363A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08143640: .4byte nullsub_81 + thumb_func_end sub_81435DC + + thumb_func_start nullsub_81 +nullsub_81: @ 8143644 + bx lr + thumb_func_end nullsub_81 + + thumb_func_start sub_8143648 +sub_8143648: @ 8143648 + push {r4-r7,lr} + lsls r1, 24 + ldr r4, _08143670 + adds r3, r4, 0 + ldr r2, _08143674 + ldm r2!, {r5-r7} + stm r3!, {r5-r7} + ldm r2!, {r5-r7} + stm r3!, {r5-r7} + strh r0, [r4, 0x2] + ldr r0, _08143678 + lsrs r1, 22 + adds r1, r0 + ldr r0, [r1] + str r0, [r4, 0xC] + ldr r0, _0814367C + str r0, [r4, 0x8] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08143670: .4byte gUnknown_02024E8C +_08143674: .4byte gUnknown_0840B6B8 +_08143678: .4byte gUnknown_0840B69C +_0814367C: .4byte gSpriteAnimTable_81E7C64 + thumb_func_end sub_8143648 + + thumb_func_start sub_8143680 +sub_8143680: @ 8143680 + push {r4-r7,lr} + lsls r1, 24 + ldr r4, _081436AC + adds r3, r4, 0 + ldr r2, _081436B0 + ldm r2!, {r5-r7} + stm r3!, {r5-r7} + ldm r2!, {r5-r7} + stm r3!, {r5-r7} + strh r0, [r4, 0x2] + ldr r0, _081436B4 + lsrs r1, 22 + adds r1, r0 + ldr r0, [r1] + str r0, [r4, 0xC] + ldr r0, _081436B8 + ldr r0, [r0] + str r0, [r4, 0x8] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081436AC: .4byte gUnknown_02024E8C +_081436B0: .4byte gUnknown_0840B6B8 +_081436B4: .4byte gUnknown_0840B69C +_081436B8: .4byte gUnknown_081EC2A4 + thumb_func_end sub_8143680 + + thumb_func_start sub_81436BC +sub_81436BC: @ 81436BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + adds r6, r0, 0 + mov r9, r1 + mov r10, r2 + mov r8, r3 + ldr r7, [sp, 0x34] + lsls r6, 16 + lsrs r6, 16 + mov r0, r9 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + mov r1, r10 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + mov r2, r8 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + lsls r0, r6, 3 + ldr r1, _08143790 + adds r0, r1 + ldr r1, _08143794 + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08143798 + mov r12, r4 + mov r5, r8 + lsls r4, r5, 2 + add r4, r12 + ldr r4, [r4] + str r4, [sp] + str r6, [sp, 0x4] + str r7, [sp, 0x8] + movs r4, 0x1 + str r4, [sp, 0xC] + bl sub_800D378 + adds r0, r6, 0 + ldr r1, [sp, 0x30] + adds r2, r7, 0 + bl species_and_otid_get_pal + lsls r4, r5, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + lsls r1, r5, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_8143648 + ldr r0, _0814379C + mov r5, r9 + lsls r5, 16 + asrs r5, 16 + mov r9, r5 + mov r1, r10 + lsls r1, 16 + asrs r1, 16 + mov r10, r1 + movs r3, 0xA + mov r2, r8 + subs r3, r2 + lsls r3, 24 + lsrs r3, 24 + mov r1, r9 + mov r2, r10 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _081437A0 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r4 + strb r1, [r2, 0x5] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08143790: .4byte gMonFrontPicTable +_08143794: .4byte gMonFrontPicCoords +_08143798: .4byte gUnknown_0840B5A0 +_0814379C: .4byte gUnknown_02024E8C +_081437A0: .4byte gSprites + thumb_func_end sub_81436BC + + thumb_func_start sub_81437A4 +sub_81437A4: @ 81437A4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r1 + mov r10, r2 + adds r6, r3, 0 + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r9, r1 + lsls r2, 16 + lsrs r2, 16 + mov r10, r2 + lsls r6, 16 + lsrs r6, 16 + lsls r7, r0, 3 + ldr r1, _08143854 + mov r8, r1 + add r8, r7 + ldr r1, _08143858 + lsls r2, r0, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r5, _0814385C + lsls r4, r6, 2 + adds r4, r5 + ldr r4, [r4] + str r4, [sp] + str r0, [sp, 0x4] + mov r0, r8 + bl DecompressPicFromTable_2 + ldr r0, _08143860 + adds r0, r7, r0 + ldr r0, [r0] + lsls r4, r6, 4 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + lsls r1, r6, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8143680 + ldr r0, _08143864 + mov r1, r9 + lsls r1, 16 + asrs r1, 16 + mov r9, r1 + mov r2, r10 + lsls r2, 16 + asrs r2, 16 + mov r10, r2 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08143868 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r4 + strb r1, [r2, 0x5] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08143854: .4byte gTrainerFrontPicTable +_08143858: .4byte gTrainerFrontPicCoords +_0814385C: .4byte gUnknown_0840B5A0 +_08143860: .4byte gTrainerFrontPicPaletteTable +_08143864: .4byte gUnknown_02024E8C +_08143868: .4byte gSprites + thumb_func_end sub_81437A4 + + thumb_func_start sub_814386C +sub_814386C: @ 814386C + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x26] + movs r2, 0x26 + ldrsh r0, [r5, r2] + cmp r0, 0x78 + ble _08143882 + adds r0, r5, 0 + bl DestroySprite + b _081438BA +_08143882: + adds r0, r1, 0x1 + ldrh r1, [r5, 0x30] + adds r0, r1 + strh r0, [r5, 0x26] + ldrh r4, [r5, 0x2E] + lsls r4, 24 + lsrs r4, 24 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + ands r0, r1 + adds r0, 0x8 + ldr r1, _081438C0 + lsls r4, 1 + adds r4, r1 + movs r2, 0 + ldrsh r1, [r4, r2] + muls r0, r1 + cmp r0, 0 + bge _081438B0 + adds r0, 0xFF +_081438B0: + asrs r0, 8 + strh r0, [r5, 0x24] + ldrh r0, [r5, 0x2E] + adds r0, 0x4 + strh r0, [r5, 0x2E] +_081438BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081438C0: .4byte gSineTable + thumb_func_end sub_814386C + + thumb_func_start sub_81438C4 +sub_81438C4: @ 81438C4 + push {r4,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF0 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl Random + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x7 + ands r2, r0 + negs r2, r2 + ldr r0, _08143934 + lsls r4, 16 + asrs r4, 16 + lsls r2, 16 + asrs r2, 16 + adds r1, r4, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08143938 + adds r4, r1, r0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x11 + bl __umodsi3 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + bl Random + movs r1, 0x3 + ands r1, r0 + cmp r1, 0 + beq _0814393C + movs r0, 0 + b _0814393E + .align 2, 0 +_08143934: .4byte gSpriteTemplate_840B7A4 +_08143938: .4byte gSprites +_0814393C: + movs r0, 0x1 +_0814393E: + strh r0, [r4, 0x30] + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81438C4 + + thumb_func_start sub_8143948 +sub_8143948: @ 8143948 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8143948 + + thumb_func_start sub_814395C +sub_814395C: @ 814395C + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + ldr r0, _081439B8 + ldrh r1, [r0, 0x2C] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081439B2 + ldr r0, _081439BC + ldrb r0, [r0] + cmp r0, 0 + beq _081439B2 + ldr r2, _081439C0 + ldr r0, _081439C4 + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, [r0] + ldr r0, _081439C8 + cmp r1, r0 + bne _081439B2 + bl sub_8143948 + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + ldr r1, _081439CC + movs r0, 0x1 + strb r0, [r1] +_081439B2: + pop {r0} + bx r0 + .align 2, 0 +_081439B8: .4byte gMain +_081439BC: .4byte gUnknown_02039324 +_081439C0: .4byte gTasks +_081439C4: .4byte gUnknown_02039322 +_081439C8: .4byte sub_8143B68 +_081439CC: .4byte gUnknown_02039325 + thumb_func_end sub_814395C + + thumb_func_start sub_81439D0 +sub_81439D0: @ 81439D0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + bl sub_8144130 + movs r0, 0 + bl SetVBlankCallback + bl ResetPaletteFade + bl ResetTasks + ldr r0, _08143AF0 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _08143AF4 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x10] + strh r1, [r0, 0x16] + strh r1, [r0, 0x1E] + movs r1, 0x1 + strh r1, [r0, 0x22] +_08143A0E: + movs r0, 0 + adds r1, r7, 0 + bl sub_8144ECC + lsls r0, 24 + cmp r0, 0 + beq _08143A0E + ldr r6, _08143AF4 + lsls r5, r7, 2 + adds r5, r7 + lsls r5, 3 + adds r5, r6 + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + movs r1, 0 + mov r9, r1 + movs r2, 0 + mov r8, r2 + movs r1, 0x28 + strh r1, [r0, 0x8] + ldr r4, _08143AF8 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + ldr r0, _08143AFC + movs r1, 0x80 + movs r2, 0x40 + bl LoadPalette + ldr r0, _08143B00 + ldr r1, _08143B04 + movs r2, 0x20 + bl CpuSet + ldr r1, _08143B08 + ldr r2, _08143B0C + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08143B10 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r6 + strh r7, [r1, 0xA] + strh r0, [r5, 0x26] + movs r0, 0x1 + negs r0, r0 + mov r1, r8 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r3, _08143B14 + ldrh r2, [r3] + mov r0, r8 + strh r0, [r3] + ldr r4, _08143B18 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08143B1C + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08143B20 + bl SetVBlankCallback + ldr r0, _08143B24 + bl m4aSongNumStart + ldr r0, _08143B28 + bl SetMainCallback2 + ldr r0, _08143B2C + mov r1, r9 + strb r1, [r0] + ldr r4, _08143B30 + bl sub_81458DC + adds r0, r4, 0 + adds r0, 0x88 + mov r2, r8 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + adds r0, 0x2 + strh r2, [r0] + ldr r0, _08143B34 + strh r7, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08143AF0: .4byte sub_8143B38 +_08143AF4: .4byte gTasks +_08143AF8: .4byte gWindowConfig_81E7208 +_08143AFC: .4byte gUnknown_0840B7BC +_08143B00: .4byte gUnknown_0840B7FC +_08143B04: .4byte 0x0600bee0 +_08143B08: .4byte REG_BG0VOFS +_08143B0C: .4byte 0x0000fffc +_08143B10: .4byte sub_81441B8 +_08143B14: .4byte 0x04000208 +_08143B18: .4byte 0x04000200 +_08143B1C: .4byte REG_DISPSTAT +_08143B20: .4byte sub_8143948 +_08143B24: .4byte 0x000001c7 +_08143B28: .4byte sub_814395C +_08143B2C: .4byte gUnknown_02039325 +_08143B30: .4byte 0x0201c000 +_08143B34: .4byte gUnknown_02039322 + thumb_func_end sub_81439D0 + + thumb_func_start sub_8143B38 +sub_8143B38: @ 8143B38 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08143B5C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08143B58 + ldr r0, _08143B60 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _08143B64 + str r0, [r1] +_08143B58: + pop {r0} + bx r0 + .align 2, 0 +_08143B5C: .4byte gPaletteFade +_08143B60: .4byte gTasks +_08143B64: .4byte sub_8143B68 + thumb_func_end sub_8143B38 + + thumb_func_start sub_8143B68 +sub_8143B68: @ 8143B68 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08143B9C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + movs r0, 0x10 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _08143BA4 + movs r3, 0xA + ldrsh r1, [r4, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x1E + strh r1, [r0, 0x8] + movs r0, 0x80 + lsls r0, 1 + strh r0, [r4, 0x20] + ldr r0, _08143BA0 + b _08143BEE + .align 2, 0 +_08143B9C: .4byte gTasks +_08143BA0: .4byte sub_8143EBC +_08143BA4: + ldr r0, _08143BCC + strh r1, [r0] + ldrh r2, [r4, 0x1E] + movs r3, 0x1E + ldrsh r0, [r4, r3] + cmp r0, 0x1 + bne _08143BD4 + strh r2, [r4, 0x22] + strh r1, [r4, 0x1E] + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08143BD0 + b _08143BEE + .align 2, 0 +_08143BCC: .4byte gUnknown_02039320 +_08143BD0: .4byte sub_8143BFC +_08143BD4: + cmp r0, 0x2 + bne _08143BF0 + strh r2, [r4, 0x22] + strh r1, [r4, 0x1E] + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08143BF8 +_08143BEE: + str r0, [r4] +_08143BF0: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08143BF8: .4byte sub_8143CC0 + thumb_func_end sub_8143B68 + + thumb_func_start sub_8143BFC +sub_8143BFC: @ 8143BFC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08143C34 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08143C2C + movs r0, 0x80 + lsls r0, 19 + strh r1, [r0] + adds r0, r4, 0 + bl sub_81450AC + ldr r1, _08143C38 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08143C3C + str r1, [r0] +_08143C2C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08143C34: .4byte gPaletteFade +_08143C38: .4byte gTasks +_08143C3C: .4byte c2_080C9BFC + thumb_func_end sub_8143BFC + + thumb_func_start c2_080C9BFC +c2_080C9BFC: @ 8143C40 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl SetVBlankCallback + ldr r1, _08143CA8 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r5, r0, r1 + ldrb r0, [r5, 0x16] + adds r1, r4, 0 + bl sub_8144ECC + lsls r0, 24 + cmp r0, 0 + beq _08143CA0 + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r3, _08143CAC + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _08143CB0 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08143CB4 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08143CB8 + bl SetVBlankCallback + ldr r0, _08143CBC + str r0, [r5] +_08143CA0: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08143CA8: .4byte gTasks +_08143CAC: .4byte 0x04000208 +_08143CB0: .4byte 0x04000200 +_08143CB4: .4byte REG_DISPSTAT +_08143CB8: .4byte sub_8143948 +_08143CBC: .4byte sub_8143B38 + thumb_func_end c2_080C9BFC + + thumb_func_start sub_8143CC0 +sub_8143CC0: @ 8143CC0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08143CF8 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08143CF0 + movs r0, 0x80 + lsls r0, 19 + strh r1, [r0] + adds r0, r4, 0 + bl sub_81450AC + ldr r1, _08143CFC + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08143D00 + str r1, [r0] +_08143CF0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08143CF8: .4byte gPaletteFade +_08143CFC: .4byte gTasks +_08143D00: .4byte sub_8143D04 + thumb_func_end sub_8143CC0 + + thumb_func_start sub_8143D04 +sub_8143D04: @ 8143D04 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _08143DC8 + ldr r1, _08143DCC + adds r1, r0 + mov r8, r1 + ldrb r7, [r1] + cmp r7, 0 + beq _08143D24 + cmp r7, 0x1 + beq _08143E0C +_08143D24: + bl ResetSpriteData + bl FreeAllSpritePalettes + ldr r1, _08143DD0 + movs r0, 0x8 + strb r0, [r1] + ldr r0, _08143DD4 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08143DD8 + ldr r1, _08143DDC + bl LZ77UnCompVram + ldr r0, _08143DE0 + movs r1, 0x1 + movs r2, 0x3E + bl LoadPalette + movs r1, 0 + ldr r4, _08143DE4 + movs r3, 0x11 + ldr r2, _08143DE8 +_08143D56: + adds r0, r1, r4 + strb r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bls _08143D56 + movs r1, 0 + ldr r2, _08143DEC + ldr r6, _08143DF0 + ldr r0, _08143DF4 + adds r5, r2, r0 + movs r4, 0x22 + ldr r3, _08143DE8 +_08143D72: + adds r0, r1, r5 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r3 + bls _08143D72 + movs r1, 0 + ldr r5, _08143DF8 + movs r4, 0x33 + ldr r3, _08143DE8 +_08143D88: + adds r0, r1, r5 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r3 + bls _08143D88 + movs r0, 0 + strh r0, [r2] + ldr r1, _08143DFC + adds r0, r1, 0 + strh r0, [r2, 0x2] + ldr r1, _08143E00 + adds r0, r1, 0 + strh r0, [r2, 0x4] + ldr r1, _08143E04 + adds r0, r1, 0 + strh r0, [r2, 0x6] + adds r0, r6, 0 + bl LoadSpriteSheet + ldr r0, _08143E08 + bl LoadSpritePalette + ldr r1, _08143DC8 + ldr r2, _08143DCC + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08143E90 + .align 2, 0 +_08143DC8: .4byte gMain +_08143DCC: .4byte 0x0000043c +_08143DD0: .4byte gReservedSpritePaletteCount +_08143DD4: .4byte gUnknown_083F66F0 +_08143DD8: .4byte gBirchGrassTilemap +_08143DDC: .4byte 0x06003800 +_08143DE0: .4byte gUnknown_083F62EC + 0x2 +_08143DE4: .4byte 0x0201e000 +_08143DE8: .4byte 0x000007ff +_08143DEC: .4byte 0x0201f800 +_08143DF0: .4byte gUnknown_0840CAA0 +_08143DF4: .4byte 0xfffff000 +_08143DF8: .4byte 0x0201f000 +_08143DFC: .4byte 0x000053ff +_08143E00: .4byte 0x0000529f +_08143E04: .4byte 0x00007e94 +_08143E08: .4byte gUnknown_0840CAB0 +_08143E0C: + ldr r0, _08143EA0 + movs r1, 0 + bl CreateTask + ldr r2, _08143EA4 + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 3 + adds r4, r2 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0 + mov r9, r1 + movs r5, 0 + strh r0, [r4, 0xE] + movs r0, 0xE + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + strh r7, [r0, 0x8] + movs r0, 0xE + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + strh r6, [r0, 0xA] + movs r0, 0xE + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrh r1, [r4, 0x16] + strh r1, [r0, 0xC] + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r0, _08143EA8 + strh r5, [r0] + ldr r1, _08143EAC + movs r0, 0x20 + strh r0, [r1] + subs r1, 0x10 + ldr r2, _08143EB0 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xE + movs r2, 0xCA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + mov r1, r9 + mov r0, r8 + strb r1, [r0] + ldr r0, _08143EB4 + strh r5, [r0] + ldr r0, _08143EB8 + str r0, [r4] +_08143E90: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08143EA0: .4byte sub_8144514 +_08143EA4: .4byte gTasks +_08143EA8: .4byte REG_BG3HOFS +_08143EAC: .4byte REG_BG3VOFS +_08143EB0: .4byte 0x00000703 +_08143EB4: .4byte gUnknown_0203935C +_08143EB8: .4byte sub_8143B38 + thumb_func_end sub_8143D04 + + thumb_func_start sub_8143EBC +sub_8143EBC: @ 8143EBC + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08143EE0 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x20] + movs r2, 0x20 + ldrsh r1, [r4, r2] + cmp r1, 0 + beq _08143EE4 + subs r0, 0x1 + strh r0, [r4, 0x20] + b _08143EF8 + .align 2, 0 +_08143EE0: .4byte gTasks +_08143EE4: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0xC + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08143F00 + str r0, [r4] +_08143EF8: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08143F00: .4byte sub_8143F04 + thumb_func_end sub_8143EBC + + thumb_func_start sub_8143F04 +sub_8143F04: @ 8143F04 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08143F30 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08143F2A + adds r0, r4, 0 + bl sub_81450AC + ldr r0, _08143F34 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08143F38 + str r0, [r1] +_08143F2A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08143F30: .4byte gPaletteFade +_08143F34: .4byte gTasks +_08143F38: .4byte sub_8143F3C + thumb_func_end sub_8143F04 + + thumb_func_start sub_8143F3C +sub_8143F3C: @ 8143F3C + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + bl sub_8144130 + bl ResetPaletteFade + movs r1, 0xE0 + lsls r1, 6 + movs r0, 0 + movs r2, 0 + bl sub_8145128 + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, 0x1 + negs r0, r0 + movs r4, 0 + str r4, [sp] + movs r1, 0x8 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _08143FC4 + movs r2, 0xE0 + lsls r2, 3 + adds r0, r2, 0 + strh r0, [r1] + ldr r3, _08143FC8 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _08143FCC + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08143FD0 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08143FD4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0x80 + lsls r1, 1 + strh r1, [r0, 0x8] + ldr r1, _08143FD8 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08143FC4: .4byte REG_BG0CNT +_08143FC8: .4byte 0x04000208 +_08143FCC: .4byte 0x04000200 +_08143FD0: .4byte REG_DISPSTAT +_08143FD4: .4byte gTasks +_08143FD8: .4byte sub_8143FDC + thumb_func_end sub_8143F3C + + thumb_func_start sub_8143FDC +sub_8143FDC: @ 8143FDC + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08144000 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0x8] + movs r2, 0x8 + ldrsh r1, [r4, r2] + cmp r1, 0 + beq _08144004 + subs r0, 0x1 + strh r0, [r4, 0x8] + b _08144018 + .align 2, 0 +_08144000: .4byte gTasks +_08144004: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0x6 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08144020 + str r0, [r4] +_08144018: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08144020: .4byte sub_8144024 + thumb_func_end sub_8143FDC + + thumb_func_start sub_8144024 +sub_8144024: @ 8144024 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _08144074 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0814406A + movs r0, 0xE0 + lsls r0, 6 + movs r1, 0 + bl sub_81452D0 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r1, _08144078 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r1, 0xE1 + lsls r1, 5 + strh r1, [r0, 0x8] + ldr r1, _0814407C + str r1, [r0] +_0814406A: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08144074: .4byte gPaletteFade +_08144078: .4byte gTasks +_0814407C: .4byte sub_8144080 + thumb_func_end sub_8144024 + + thumb_func_start sub_8144080 +sub_8144080: @ 8144080 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _081440CC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08144104 + ldr r1, _081440D0 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + cmp r1, 0 + beq _081440AE + ldr r0, _081440D4 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _081440E0 +_081440AE: + movs r0, 0x4 + bl FadeOutBGM + movs r0, 0x1 + negs r0, r0 + ldr r1, _081440D8 + str r1, [sp] + movs r1, 0x8 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _081440DC + str r0, [r4] + b _08144104 + .align 2, 0 +_081440CC: .4byte gPaletteFade +_081440D0: .4byte gTasks +_081440D4: .4byte gMain +_081440D8: .4byte 0x0000ffff +_081440DC: .4byte sub_8144114 +_081440E0: + ldr r0, _0814410C + cmp r1, r0 + bne _081440EC + movs r0, 0x8 + bl FadeOutBGM +_081440EC: + movs r0, 0x8 + ldrsh r1, [r4, r0] + ldr r0, _08144110 + cmp r1, r0 + bne _081440FE + movs r0, 0xE4 + lsls r0, 1 + bl m4aSongNumStart +_081440FE: + ldrh r0, [r4, 0x8] + subs r0, 0x1 + strh r0, [r4, 0x8] +_08144104: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814410C: .4byte 0x00001be8 +_08144110: .4byte 0x00001ab8 + thumb_func_end sub_8144080 + + thumb_func_start sub_8144114 +sub_8144114: @ 8144114 + push {lr} + ldr r0, _0814412C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08144128 + movs r0, 0xFF + bl SoftReset +_08144128: + pop {r0} + bx r0 + .align 2, 0 +_0814412C: .4byte gPaletteFade + thumb_func_end sub_8144114 + + thumb_func_start sub_8144130 +sub_8144130: @ 8144130 + sub sp, 0x8 + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0x1C + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x3E + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + strh r1, [r0] + ldr r1, _081441A4 + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _081441A8 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r2, 0 + str r2, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _081441AC + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + strh r2, [r0] + str r0, [r1] + ldr r0, _081441B0 + str r0, [r1, 0x4] + ldr r0, _081441B4 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add sp, 0x8 + bx lr + .align 2, 0 +_081441A4: .4byte 0x040000d4 +_081441A8: .4byte 0x8100c000 +_081441AC: .4byte 0x85000100 +_081441B0: .4byte 0x05000002 +_081441B4: .4byte 0x810001ff + thumb_func_end sub_8144130 + + thumb_func_start sub_81441B8 +sub_81441B8: @ 81441B8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _081441E4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r6, r1, 0 + cmp r0, 0xA + bhi _08144218 + lsls r0, 2 + ldr r1, _081441E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081441E4: .4byte gTasks +_081441E8: .4byte _081441EC + .align 2, 0 +_081441EC: + .4byte _08144218 + .4byte _08144258 + .4byte _08144278 + .4byte _08144358 + .4byte _0814438C + .4byte _081443F8 + .4byte _08144218 + .4byte _08144218 + .4byte _08144218 + .4byte _08144218 + .4byte _08144428 +_08144218: + ldr r0, _08144250 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _0814422A + b _08144446 +_0814422A: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + movs r1, 0x1 + strh r1, [r0, 0x8] + movs r1, 0x58 + strh r1, [r0, 0xE] + movs r3, 0xA + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r2, [r0, 0x24] + ldr r0, _08144254 + strh r2, [r0] + b _08144446 + .align 2, 0 +_08144250: .4byte gPaletteFade +_08144254: .4byte gUnknown_02039320 +_08144258: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r6 + ldrh r2, [r1, 0xE] + movs r3, 0xE + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08144270 + subs r0, r2, 0x1 + strh r0, [r1, 0xE] + b _08144446 +_08144270: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _08144446 +_08144278: + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _08144320 + ands r0, r1 + strh r0, [r2] + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r3, r0, r6 + movs r0, 0xA + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r4, r0, r6 + ldr r1, [r4] + ldr r0, _08144324 + mov r8, r2 + cmp r1, r0 + bne _08144352 + movs r1, 0xC + ldrsh r0, [r3, r1] + cmp r0, 0x33 + bgt _0814434C + movs r4, 0 + ldr r7, _08144328 + adds r6, r3, 0 +_081442B0: + movs r2, 0xC + ldrsh r1, [r6, r2] + lsls r0, r1, 2 + adds r0, r1 + adds r0, r4 + lsls r0, 2 + adds r0, r7 + ldr r0, [r0] + ldr r0, [r0, 0x4] + lsls r2, r4, 25 + movs r3, 0x90 + lsls r3, 20 + adds r2, r3 + lsrs r2, 24 + movs r1, 0 + movs r3, 0xF0 + bl sub_8072BD8 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x4 + bls _081442B0 + ldr r3, _0814432C + mov r0, r8 + adds r1, r0, r5 + lsls r1, 3 + adds r1, r3 + ldrh r0, [r1, 0xC] + adds r0, 0x1 + strh r0, [r1, 0xC] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + movs r0, 0xA + ldrsh r2, [r1, r0] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r3 + movs r2, 0x1 + strh r2, [r0, 0x24] + movs r2, 0xA + ldrsh r1, [r1, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + movs r3, 0x22 + ldrsh r0, [r0, r3] + cmp r0, 0x1 + bne _08144334 + movs r0, 0xC0 + lsls r0, 2 + ldr r1, _08144330 + b _0814433A + .align 2, 0 +_08144320: .4byte 0x0000feff +_08144324: .4byte sub_8143B68 +_08144328: .4byte gCreditsEntryPointerTable +_0814432C: .4byte gTasks +_08144330: .4byte 0x0000328d +_08144334: + movs r0, 0xC0 + lsls r0, 2 + ldr r1, _08144348 +_0814433A: + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + b _08144446 + .align 2, 0 +_08144348: .4byte 0x00001967 +_0814434C: + movs r0, 0xA + strh r0, [r3, 0x8] + b _08144446 +_08144352: + movs r0, 0 + strh r0, [r4, 0x24] + b _08144446 +_08144358: + movs r2, 0x80 + lsls r2, 19 + ldrh r0, [r2] + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08144388 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08144446 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + movs r1, 0x82 + strh r1, [r0, 0xE] + ldrh r1, [r0, 0x8] + adds r1, 0x1 + strh r1, [r0, 0x8] + b _08144446 + .align 2, 0 +_08144388: .4byte gPaletteFade +_0814438C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r6 + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081443A4 + subs r0, r1, 0x1 + strh r0, [r4, 0xE] + b _08144446 +_081443A4: + ldrb r0, [r4, 0xC] + ldrb r1, [r4, 0xA] + bl sub_8144454 + lsls r0, 24 + cmp r0, 0 + beq _081443BA + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _08144446 +_081443BA: + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + movs r3, 0xA + ldrsh r1, [r4, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + movs r1, 0x22 + ldrsh r0, [r0, r1] + cmp r0, 0x1 + bne _081443E0 + movs r0, 0xC0 + lsls r0, 2 + ldr r1, _081443DC + b _081443E6 + .align 2, 0 +_081443DC: .4byte 0x0000328d +_081443E0: + movs r0, 0xC0 + lsls r0, 2 + ldr r1, _081443F4 +_081443E6: + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + b _08144446 + .align 2, 0 +_081443F4: .4byte 0x00001967 +_081443F8: + ldr r0, _08144420 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08144446 + movs r0, 0 + movs r1, 0x9 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r0, _08144424 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + movs r0, 0x2 + strh r0, [r1, 0x8] + b _08144446 + .align 2, 0 +_08144420: .4byte gPaletteFade +_08144424: .4byte gTasks +_08144428: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + movs r2, 0xA + ldrsh r1, [r0, r2] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + movs r1, 0x1 + strh r1, [r0, 0x10] + adds r0, r5, 0 + bl DestroyTask +_08144446: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81441B8 + + thumb_func_start sub_8144454 +sub_8144454: @ 8144454 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r6, r3, 0 + lsls r1, 24 + lsrs r2, r1, 24 + adds r5, r2, 0 + ldr r4, _08144508 + cmp r3, 0x6 + bne _08144474 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x1E] +_08144474: + cmp r3, 0xC + bne _08144486 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r4 + movs r1, 0x1 + strh r1, [r0, 0x16] + strh r1, [r0, 0x1E] +_08144486: + cmp r3, 0x12 + bne _08144496 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x1E] +_08144496: + cmp r3, 0x18 + bne _081444AA + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x16] + movs r1, 0x1 + strh r1, [r0, 0x1E] +_081444AA: + cmp r3, 0x1E + bne _081444BA + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x1E] +_081444BA: + cmp r3, 0x23 + bne _081444CE + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r4 + movs r1, 0x3 + strh r1, [r0, 0x16] + movs r1, 0x1 + strh r1, [r0, 0x1E] +_081444CE: + cmp r3, 0x28 + bne _081444DE + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x1E] +_081444DE: + cmp r6, 0x2E + bne _081444F2 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r4 + movs r1, 0x4 + strh r1, [r0, 0x16] + movs r1, 0x1 + strh r1, [r0, 0x1E] +_081444F2: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r4 + movs r1, 0x1E + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _0814450C + movs r0, 0 + b _0814450E + .align 2, 0 +_08144508: .4byte gTasks +_0814450C: + movs r0, 0x1 +_0814450E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8144454 + + thumb_func_start sub_8144514 +sub_8144514: @ 8144514 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r6, _08144548 + ldr r3, _0814454C + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r2, r0, r3 + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _08144550 + cmp r0, 0x1 + bgt _0814453C + b _08144658 +_0814453C: + cmp r0, 0x2 + beq _08144584 + cmp r0, 0x3 + bne _08144546 + b _08144644 +_08144546: + b _08144658 + .align 2, 0 +_08144548: .4byte 0x0201c000 +_0814454C: .4byte gTasks +_08144550: + adds r0, r6, 0 + adds r0, 0x8A + ldrh r0, [r0] + cmp r0, 0 + bne _0814456E + movs r4, 0xA + ldrsh r0, [r2, r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + movs r4, 0x24 + ldrsh r0, [r1, r4] + cmp r0, 0 + beq _08144658 +_0814456E: + movs r0, 0xA + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x24] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + b _08144656 +_08144584: + adds r0, r6, 0 + adds r0, 0x88 + ldrh r1, [r0] + mov r9, r0 + cmp r1, 0x44 + beq _08144658 + movs r4, 0xA + ldrsh r1, [r2, r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r3 + ldr r1, [r0] + ldr r0, _081445EC + cmp r1, r0 + bne _08144658 + adds r7, r6, 0 + adds r7, 0x8C + ldrh r0, [r7] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + ldr r4, _081445F0 + adds r5, r6, 0 + adds r5, 0x8A + ldrh r3, [r5] + lsls r2, r3, 1 + adds r1, r2, r4 + ldrb r1, [r1] + adds r4, 0x1 + adds r2, r4 + ldrb r2, [r2] + bl sub_81456B4 + lsls r0, 24 + lsrs r2, r0, 24 + ldrh r1, [r7] + adds r0, r6, 0 + adds r0, 0x8E + ldrh r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bge _081445F8 + adds r0, r1, 0x1 + strh r0, [r7] + ldr r1, _081445F4 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x32 + b _0814460A + .align 2, 0 +_081445EC: .4byte sub_8143B68 +_081445F0: .4byte gUnknown_0840CA00 +_081445F4: .4byte gSprites +_081445F8: + movs r0, 0 + strh r0, [r7] + ldr r1, _08144620 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + movs r1, 0x80 + lsls r1, 2 +_0814460A: + strh r1, [r0, 0x34] + mov r1, r9 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldrh r0, [r5] + cmp r0, 0x2 + bne _08144624 + movs r0, 0 + b _08144626 + .align 2, 0 +_08144620: .4byte gSprites +_08144624: + adds r0, 0x1 +_08144626: + strh r0, [r5] + ldr r0, _08144640 + mov r2, r8 + lsls r1, r2, 2 + add r1, r8 + lsls r1, 3 + adds r1, r0 + movs r0, 0x32 + strh r0, [r1, 0xE] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _08144658 + .align 2, 0 +_08144640: .4byte gTasks +_08144644: + ldrh r1, [r2, 0xE] + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r0, 0 + beq _08144654 + subs r0, r1, 0x1 + strh r0, [r2, 0xE] + b _08144658 +_08144654: + movs r0, 0x1 +_08144656: + strh r0, [r2, 0x8] +_08144658: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8144514 + + thumb_func_start sub_8144664 +sub_8144664: @ 8144664 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0814468C + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + movs r2, 0x8 + ldrsh r0, [r0, r2] + adds r6, r1, 0 + cmp r0, 0x32 + bls _08144680 + b _0814492C +_08144680: + lsls r0, 2 + ldr r1, _08144690 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0814468C: .4byte gTasks +_08144690: .4byte _08144694 + .align 2, 0 +_08144694: + .4byte _08144760 + .4byte _08144784 + .4byte _081447D8 + .4byte _081447F0 + .4byte _0814482C + .4byte _08144850 + .4byte _0814489C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _081448A8 + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _081448C8 + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _081448EC + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _0814492C + .4byte _08144920 +_08144760: + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r6 + ldrh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 17 + movs r1, 0x7F + ands r0, r1 + movs r1, 0xC + bl Sin + ldr r1, _08144780 + strh r0, [r1] + b _081447A8 + .align 2, 0 +_08144780: .4byte gUnknown_0203935A +_08144784: + ldr r7, _081447B0 + movs r3, 0 + ldrsh r4, [r7, r3] + cmp r4, 0 + beq _081447B4 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r6 + ldrh r0, [r4, 0x12] + lsls r0, 16 + asrs r0, 17 + movs r1, 0x7F + ands r0, r1 + movs r1, 0xC + bl Sin + strh r0, [r7] +_081447A8: + ldrh r0, [r4, 0x12] + adds r0, 0x1 + strh r0, [r4, 0x12] + b _0814492C + .align 2, 0 +_081447B0: .4byte gUnknown_0203935A +_081447B4: + ldr r3, _081447D4 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r6 + movs r0, 0xC + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x2 + strh r2, [r0, 0x2E] + strh r4, [r1, 0x12] + b _08144848 + .align 2, 0 +_081447D4: .4byte gSprites +_081447D8: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r6 + ldrh r2, [r1, 0x12] + movs r3, 0x12 + ldrsh r0, [r1, r3] + cmp r0, 0x3F + bgt _08144848 + adds r0, r2, 0x1 + strh r0, [r1, 0x12] + b _08144866 +_081447F0: + ldr r3, _08144828 + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 3 + adds r2, r6 + movs r0, 0xC + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x3 + strh r1, [r0, 0x2E] + movs r0, 0xE + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x1 + strh r1, [r0, 0x2E] + movs r0, 0x78 + strh r0, [r2, 0x10] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] + b _0814492C + .align 2, 0 +_08144828: .4byte gSprites +_0814482C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r1, r0, r6 + ldrh r2, [r1, 0x10] + movs r3, 0x10 + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08144844 + subs r0, r2, 0x1 + strh r0, [r1, 0x10] + b _0814492C +_08144844: + movs r0, 0x40 + strh r0, [r1, 0x12] +_08144848: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0814492C +_08144850: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r6 + ldrh r1, [r4, 0x12] + movs r2, 0x12 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _0814487C + subs r0, r1, 0x1 + strh r0, [r4, 0x12] +_08144866: + movs r1, 0x7F + ands r0, r1 + movs r1, 0x14 + bl Sin + ldr r1, _08144878 + strh r0, [r1] + b _0814492C + .align 2, 0 +_08144878: .4byte gUnknown_0203935A +_0814487C: + ldr r2, _08144898 + movs r3, 0xC + ldrsh r1, [r4, r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x1 + strh r1, [r0, 0x2E] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0814492C + .align 2, 0 +_08144898: .4byte gSprites +_0814489C: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + movs r1, 0x32 + b _0814492A +_081448A8: + ldr r3, _081448C4 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r6 + movs r0, 0xE + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x2 + b _081448E0 + .align 2, 0 +_081448C4: .4byte gSprites +_081448C8: + ldr r3, _081448E8 + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r6 + movs r0, 0xC + ldrsh r2, [r1, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + movs r2, 0x4 +_081448E0: + strh r2, [r0, 0x2E] + movs r0, 0x32 + strh r0, [r1, 0x8] + b _0814492C + .align 2, 0 +_081448E8: .4byte gSprites +_081448EC: + ldr r3, _0814491C + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 3 + adds r2, r6 + movs r0, 0xC + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x5 + strh r1, [r0, 0x2E] + movs r0, 0xE + ldrsh r1, [r2, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x3 + strh r1, [r0, 0x2E] + movs r0, 0x32 + strh r0, [r2, 0x8] + b _0814492C + .align 2, 0 +_0814491C: .4byte gSprites +_08144920: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + movs r1, 0 +_0814492A: + strh r1, [r0, 0x8] +_0814492C: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8144664 + + thumb_func_start sub_8144934 +sub_8144934: @ 8144934 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08144958 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + movs r3, 0x8 + ldrsh r0, [r0, r3] + adds r4, r1, 0 + cmp r0, 0x4 + bhi _08144974 + lsls r0, 2 + ldr r1, _0814495C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08144958: .4byte gTasks +_0814495C: .4byte _08144960 + .align 2, 0 +_08144960: + .4byte _08144974 + .4byte _081449B8 + .4byte _081449C4 + .4byte _08144A0C + .4byte _08144A5C +_08144974: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r2, r0, r4 + movs r1, 0xA + ldrsh r0, [r2, r1] + ldr r5, _081449C0 + cmp r0, r5 + beq _081449B8 + movs r3, 0xC + ldrsh r1, [r2, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r3, r0, r4 + movs r0, 0x26 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0x2 + bne _081449B8 + movs r1, 0xA + ldrsh r0, [r3, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + movs r0, 0x14 + strh r0, [r1, 0x8] + strh r5, [r2, 0xA] +_081449B8: + movs r0, 0 + bl sub_8149020 + b _08144A62 + .align 2, 0 +_081449C0: .4byte 0x00007fff +_081449C4: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r2, r0, r4 + movs r3, 0xA + ldrsh r0, [r2, r3] + ldr r5, _08144A08 + cmp r0, r5 + beq _08144A54 + movs r0, 0xC + ldrsh r1, [r2, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r3, 0xA + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r3, r0, r4 + ldrh r1, [r3, 0x12] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + movs r1, 0xA0 + lsls r1, 2 + cmp r0, r1 + bne _08144A54 + movs r0, 0x1 + strh r0, [r3, 0x8] + strh r5, [r2, 0xA] + b _08144A54 + .align 2, 0 +_08144A08: .4byte 0x00007fff +_08144A0C: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r2, r0, r4 + ldrh r3, [r2, 0xA] + movs r0, 0xA + ldrsh r1, [r2, r0] + ldr r5, _08144A48 + cmp r1, r5 + beq _08144A54 + ldr r0, _08144A4C + cmp r1, r0 + bne _08144A50 + movs r3, 0xC + ldrsh r1, [r2, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r3, 0xA + ldrsh r1, [r0, r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + movs r1, 0xA + strh r1, [r0, 0x8] + strh r5, [r2, 0xA] + b _08144A54 + .align 2, 0 +_08144A48: .4byte 0x00007fff +_08144A4C: .4byte 0x000001f3 +_08144A50: + adds r0, r3, 0x1 + strh r0, [r2, 0xA] +_08144A54: + movs r0, 0x1 + bl sub_8149020 + b _08144A62 +_08144A5C: + movs r0, 0x2 + bl sub_8149020 +_08144A62: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8144934 + + thumb_func_start sub_8144A68 +sub_8144A68: @ 8144A68 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r7, r1, 24 + cmp r0, 0x4 + bls _08144A7E + b _08144DFC +_08144A7E: + lsls r0, 2 + ldr r1, _08144A88 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08144A88: .4byte _08144A8C + .align 2, 0 +_08144A8C: + .4byte _08144AA0 + .4byte _08144B48 + .4byte _08144BF4 + .4byte _08144CA0 + .4byte _08144D50 +_08144AA0: + ldr r5, _08144B40 + ldr r0, _08144B44 + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r2, 0x88 + lsls r2, 1 + strh r2, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + movs r2, 0x20 + b _08144DF0 + .align 2, 0 +_08144B40: .4byte gSprites +_08144B44: .4byte gTasks +_08144B48: + ldr r5, _08144BEC + ldr r0, _08144BF0 + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r1, 0x78 + strh r1, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r0, 0 + movs r2, 0x20 + b _08144DF0 + .align 2, 0 +_08144BEC: .4byte gSprites +_08144BF0: .4byte gTasks +_08144BF4: + ldr r5, _08144C98 + ldr r0, _08144C9C + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r1, 0x78 + strh r1, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x88 + lsls r1, 1 + strh r1, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r2, 0x80 + lsls r2, 2 + movs r0, 0x1 + b _08144DF0 + .align 2, 0 +_08144C98: .4byte gSprites +_08144C9C: .4byte gTasks +_08144CA0: + ldr r5, _08144D44 + ldr r0, _08144D48 + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r1, 0x78 + strh r1, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08144D4C + strh r1, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r2, 0x80 + lsls r2, 2 + movs r0, 0x1 + b _08144DF0 + .align 2, 0 +_08144D44: .4byte gSprites +_08144D48: .4byte gTasks +_08144D4C: .4byte 0x0000ffe0 +_08144D50: + ldr r5, _08144EBC + ldr r0, _08144EC0 + lsls r4, r7, 2 + adds r4, r7 + lsls r4, 3 + adds r4, r0 + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r3, 0 + movs r1, 0x58 + strh r1, [r0, 0x20] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x98 + strh r1, [r0, 0x20] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r2, 0x2E + strh r2, [r0, 0x22] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x22] + movs r0, 0x12 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r0, 0x14 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r3, [r0, 0x2E] + movs r1, 0x80 + lsls r1, 6 + movs r2, 0x80 + lsls r2, 2 + movs r0, 0x2 +_08144DF0: + movs r3, 0x8 + bl sub_8148EC0 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x8] +_08144DFC: + ldr r0, _08144EC4 + movs r1, 0 + bl CreateTask + ldr r6, _08144EC0 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r5, r1, r6 + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + strh r0, [r5, 0xC] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + mov r1, r8 + strh r1, [r0, 0x8] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r4, [r0, 0xA] + movs r0, 0xC + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r7, [r0, 0xC] + ldr r0, _08144EC8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + strh r0, [r5, 0xA] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r4, [r0, 0x8] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r7, [r0, 0xA] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldrh r1, [r5, 0x12] + strh r1, [r0, 0xC] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + ldrh r1, [r5, 0x14] + strh r1, [r0, 0xE] + movs r0, 0xA + ldrsh r1, [r5, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r6 + strh r4, [r0, 0x10] + mov r1, r8 + cmp r1, 0x2 + bne _08144EB0 + movs r1, 0xA + ldrsh r0, [r5, r1] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r6 + movs r0, 0x45 + strh r0, [r1, 0x12] +_08144EB0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08144EBC: .4byte gSprites +_08144EC0: .4byte gTasks +_08144EC4: .4byte sub_8144934 +_08144EC8: .4byte sub_8144664 + thumb_func_end sub_8144A68 + + thumb_func_start sub_8144ECC +sub_8144ECC: @ 8144ECC + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _08144F28 + ldr r1, _08144F2C + adds r6, r0, r1 + ldrb r0, [r6] + cmp r0, 0x1 + beq _08144F38 + cmp r0, 0x1 + ble _08144EF0 + cmp r0, 0x2 + beq _08144F5C + cmp r0, 0x3 + bne _08144EF0 + b _0814508C +_08144EF0: + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + ldr r2, _08144F30 + movs r0, 0x8 + strh r0, [r2] + ldr r0, _08144F34 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x3A + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + bl ResetSpriteData + bl FreeAllSpritePalettes + movs r0, 0x1 + strb r0, [r6] + b _081450A2 + .align 2, 0 +_08144F28: .4byte gMain +_08144F2C: .4byte 0x0000043c +_08144F30: .4byte REG_BG3HOFS +_08144F34: .4byte REG_BG3VOFS +_08144F38: + ldr r1, _08144F54 + movs r0, 0x22 + strh r0, [r1] + ldr r1, _08144F58 + movs r0, 0 + strh r0, [r1] + adds r0, r4, 0 + bl sub_8148CB0 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + b _081450A2 + .align 2, 0 +_08144F54: .4byte gUnknown_02039358 +_08144F58: .4byte gUnknown_0203935A +_08144F5C: + ldr r0, _08144FBC + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _08144FE0 + ldr r0, _08144FC0 + bl LoadCompressedObjectPic + ldr r0, _08144FC4 + bl LoadCompressedObjectPic + ldr r0, _08144FC8 + bl LoadCompressedObjectPic + ldr r0, _08144FCC + bl LoadSpritePalettes + movs r0, 0x78 + movs r1, 0x2E + bl sub_8149310 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08144FD0 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + strh r2, [r4, 0x12] + ldr r6, _08144FD4 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r6, 0 + adds r5, 0x1C + adds r2, r0, r5 + ldr r1, _08144FD8 + str r1, [r2] + adds r6, 0x8 + adds r0, r6 + ldr r1, _08144FDC + str r1, [r0] + movs r0, 0x88 + lsls r0, 1 + movs r1, 0x2E + bl sub_8149368 + b _08145034 + .align 2, 0 +_08144FBC: .4byte gSaveBlock2 +_08144FC0: .4byte gIntro2BrendanSpriteSheet +_08144FC4: .4byte gUnknown_08416E34 +_08144FC8: .4byte gIntro2BicycleSpriteSheet +_08144FCC: .4byte gIntro2SpritePalettes +_08144FD0: .4byte gTasks +_08144FD4: .4byte gSprites +_08144FD8: .4byte sub_8145378 +_08144FDC: .4byte gUnknown_0840CA54 +_08144FE0: + ldr r0, _0814505C + bl LoadCompressedObjectPic + ldr r0, _08145060 + bl LoadCompressedObjectPic + ldr r0, _08145064 + bl LoadCompressedObjectPic + ldr r0, _08145068 + bl LoadSpritePalettes + movs r0, 0x78 + movs r1, 0x2E + bl sub_8149368 + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0814506C + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + strh r2, [r4, 0x12] + ldr r6, _08145070 + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r6, 0 + adds r5, 0x1C + adds r2, r0, r5 + ldr r1, _08145074 + str r1, [r2] + adds r6, 0x8 + adds r0, r6 + ldr r1, _08145078 + str r1, [r0] + movs r0, 0x88 + lsls r0, 1 + movs r1, 0x2E + bl sub_8149310 +_08145034: + lsls r0, 24 + lsrs r2, r0, 24 + strh r2, [r4, 0x14] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r5, r0, r5 + ldr r1, _0814507C + str r1, [r5] + adds r0, r6 + ldr r1, _08145080 + str r1, [r0] + ldr r1, _08145084 + ldr r0, _08145088 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081450A2 + .align 2, 0 +_0814505C: .4byte gIntro2MaySpriteSheet +_08145060: .4byte gUnknown_08416E24 +_08145064: .4byte gIntro2BicycleSpriteSheet +_08145068: .4byte gIntro2SpritePalettes +_0814506C: .4byte gTasks +_08145070: .4byte gSprites +_08145074: .4byte sub_8145378 +_08145078: .4byte gUnknown_0840CA54 +_0814507C: .4byte sub_8145420 +_08145080: .4byte gUnknown_0840CA94 +_08145084: .4byte gMain +_08145088: .4byte 0x0000043c +_0814508C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8144A68 + adds r0, r4, 0 + bl sub_8148E90 + movs r0, 0 + strb r0, [r6] + movs r0, 0x1 + b _081450A4 +_081450A2: + movs r0, 0 +_081450A4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8144ECC + + thumb_func_start sub_81450AC +sub_81450AC: @ 81450AC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08145120 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0x8] + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081450D2 + lsls r0, r1, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + strh r0, [r4, 0x8] +_081450D2: + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081450E8 + lsls r0, r1, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + strh r0, [r4, 0xA] +_081450E8: + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _081450FE + lsls r0, r1, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + strh r0, [r4, 0xC] +_081450FE: + ldrh r1, [r4, 0xE] + movs r2, 0xE + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _08145114 + lsls r0, r1, 24 + lsrs r0, 24 + bl DestroyTask + movs r0, 0 + strh r0, [r4, 0xE] +_08145114: + ldr r1, _08145124 + movs r0, 0x1 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145120: .4byte gTasks +_08145124: .4byte gUnknown_0203935C + thumb_func_end sub_81450AC + + thumb_func_start sub_8145128 +sub_8145128: @ 8145128 + push {r4-r7,lr} + adds r3, r0, 0 + adds r4, r2, 0 + lsls r3, 16 + lsrs r3, 16 + lsls r1, 16 + lsrs r7, r1, 16 + lsls r4, 16 + lsrs r5, r4, 16 + ldr r0, _081451EC + movs r6, 0xC0 + lsls r6, 19 + adds r3, r6 + adds r1, r3, 0 + bl LZ77UnCompVram + ldr r0, _081451F0 + adds r1, r5, 0 + movs r2, 0x20 + bl LoadPalette + lsrs r4, 20 + lsls r4, 28 + lsrs r4, 16 + movs r2, 0 + adds r1, r4, 0x1 + ldr r3, _081451F4 +_0814515E: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r6 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bls _0814515E + movs r2, 0 + adds r0, r4, 0x2 + adds r6, r4, 0 + adds r6, 0x17 + movs r1, 0x2B + adds r1, r4 + mov r12, r1 + adds r4, 0x42 + ldr r5, _081451F8 + adds r3, r0, 0 +_08145184: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r5 + adds r1, r2, r3 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x14 + bls _08145184 + movs r2, 0 + ldr r5, _081451FC + adds r3, r6, 0 +_0814519E: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r5 + adds r1, r2, r3 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x13 + bls _0814519E + movs r2, 0 + ldr r5, _08145200 + mov r3, r12 +_081451B8: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r5 + adds r1, r2, r3 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x16 + bls _081451B8 + movs r2, 0 + ldr r3, _08145204 +_081451D0: + lsls r0, r2, 1 + adds r0, r7 + adds r0, r3 + adds r1, r2, r4 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xB + bls _081451D0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081451EC: .4byte gCreditsCopyrightEnd_Gfx +_081451F0: .4byte gIntroCopyright_Pal +_081451F4: .4byte 0x000003ff +_081451F8: .4byte 0x060001c8 +_081451FC: .4byte 0x06000248 +_08145200: .4byte 0x060002c8 +_08145204: .4byte 0x06000348 + thumb_func_end sub_8145128 + + thumb_func_start sub_8145208 +sub_8145208: @ 8145208 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r2, 0 + movs r0, 0x3F + ands r0, r2 + adds r1, r0, 0 + adds r1, 0x50 + cmp r2, 0xFF + bne _08145220 + movs r0, 0x1 + b _08145246 +_08145220: + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _08145230 + movs r2, 0x80 + lsls r2, 4 + adds r0, r2, 0 + orrs r1, r0 +_08145230: + movs r0, 0x40 + ands r3, r0 + cmp r3, 0 + beq _08145244 + movs r2, 0x80 + lsls r2, 3 + adds r0, r2, 0 + orrs r1, r0 + lsls r0, r1, 16 + lsrs r1, r0, 16 +_08145244: + adds r0, r1, 0 +_08145246: + pop {r1} + bx r1 + thumb_func_end sub_8145208 + + thumb_func_start sub_814524C +sub_814524C: @ 814524C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r0, [sp] + ldr r0, [sp, 0x2C] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + lsls r3, 16 + lsrs r3, 16 + str r3, [sp, 0x8] + lsls r0, 16 + lsrs r0, 20 + lsls r0, 28 + lsrs r0, 16 + mov r9, r0 + movs r5, 0 +_0814527A: + movs r4, 0 + lsls r7, r5, 1 + ldr r1, [sp, 0x4] + adds r0, r1, r5 + adds r2, r5, 0x1 + mov r8, r2 + lsls r0, 6 + ldr r1, [sp, 0x8] + adds r6, r0, r1 +_0814528C: + adds r0, r7, r5 + adds r0, r4 + ldr r2, [sp] + adds r0, r2, r0 + ldrb r0, [r0] + bl sub_8145208 + mov r2, r10 + adds r1, r2, r4 + lsls r1, 1 + adds r1, r6 + movs r2, 0xC0 + lsls r2, 19 + adds r1, r2 + add r0, r9 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _0814528C + mov r1, r8 + lsls r0, r1, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _0814527A + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_814524C + + thumb_func_start sub_81452D0 +sub_81452D0: @ 81452D0 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r1, 16 + lsrs r6, r1, 16 + lsrs r1, 20 + lsls r1, 28 + lsrs r1, 16 + movs r2, 0 + ldr r7, _08145360 + movs r4, 0xC0 + lsls r4, 19 + adds r1, 0x1 + ldr r3, _08145364 +_081452EE: + lsls r0, r2, 1 + adds r0, r5 + adds r0, r4 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r3 + bls _081452EE + str r6, [sp] + adds r0, r7, 0 + movs r1, 0x3 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + ldr r0, _08145368 + str r6, [sp] + movs r1, 0x7 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + ldr r4, _0814536C + str r6, [sp] + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + str r6, [sp] + adds r0, r4, 0 + movs r1, 0x10 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + ldr r0, _08145370 + str r6, [sp] + movs r1, 0x14 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + ldr r0, _08145374 + str r6, [sp] + movs r1, 0x18 + movs r2, 0x7 + adds r3, r5, 0 + bl sub_814524C + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08145360: .4byte gUnknown_0840B83C +_08145364: .4byte 0x000003ff +_08145368: .4byte gUnknown_0840B84B +_0814536C: .4byte gUnknown_0840B85A +_08145370: .4byte gUnknown_0840B869 +_08145374: .4byte gUnknown_0840B878 + thumb_func_end sub_81452D0 + + thumb_func_start sub_8145378 +sub_8145378: @ 8145378 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _08145390 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08145394 + adds r0, r4, 0 + bl DestroySprite + b _08145418 + .align 2, 0 +_08145390: .4byte gUnknown_0203935C +_08145394: + movs r2, 0x2E + ldrsh r0, [r4, r2] + cmp r0, 0x5 + bhi _08145418 + lsls r0, 2 + ldr r1, _081453A8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081453A8: .4byte _081453AC + .align 2, 0 +_081453AC: + .4byte _081453C4 + .4byte _081453CE + .4byte _081453D4 + .4byte _081453DE + .4byte _081453E8 + .4byte _081453FE +_081453C4: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + b _08145418 +_081453CE: + adds r0, r4, 0 + movs r1, 0x1 + b _08145402 +_081453D4: + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnimIfDifferent + b _08145418 +_081453DE: + adds r0, r4, 0 + movs r1, 0x3 + bl StartSpriteAnimIfDifferent + b _08145418 +_081453E8: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x78 + ble _08145418 + subs r0, r1, 0x1 + b _08145416 +_081453FE: + adds r0, r4, 0 + movs r1, 0 +_08145402: + bl StartSpriteAnimIfDifferent + ldrh r2, [r4, 0x20] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r0, 0x20 + negs r0, r0 + cmp r1, r0 + ble _08145418 + subs r0, r2, 0x1 +_08145416: + strh r0, [r4, 0x20] +_08145418: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8145378 + + thumb_func_start sub_8145420 +sub_8145420: @ 8145420 + push {r4,lr} + adds r4, r0, 0 + ldr r0, _08145438 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _0814543C + adds r0, r4, 0 + bl DestroySprite + b _081454D8 + .align 2, 0 +_08145438: .4byte gUnknown_0203935C +_0814543C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08145464 + cmp r0, 0x1 + bgt _0814544E + cmp r0, 0 + beq _08145458 + b _081454D8 +_0814544E: + cmp r0, 0x2 + beq _081454A0 + cmp r0, 0x3 + beq _081454BE + b _081454D8 +_08145458: + strh r0, [r4, 0x26] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + b _081454D8 +_08145464: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r0, 0xC8 + ble _08145476 + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAnimIfDifferent + b _0814547E +_08145476: + adds r0, r4, 0 + movs r1, 0x2 + bl StartSpriteAnimIfDifferent +_0814547E: + ldrh r2, [r4, 0x20] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r0, 0x20 + negs r0, r0 + cmp r1, r0 + ble _08145490 + subs r0, r2, 0x2 + strh r0, [r4, 0x20] +_08145490: + ldr r0, _0814549C + ldrh r0, [r0] + negs r0, r0 + strh r0, [r4, 0x26] + b _081454D8 + .align 2, 0 +_0814549C: .4byte gUnknown_0203935A +_081454A0: + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + ldrh r1, [r4, 0x3C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081454D8 + ldrh r0, [r4, 0x20] + adds r0, 0x1 + b _081454D6 +_081454BE: + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + ldrh r2, [r4, 0x20] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r0, 0x20 + negs r0, r0 + cmp r1, r0 + ble _081454D8 + subs r0, r2, 0x1 +_081454D6: + strh r0, [r4, 0x20] +_081454D8: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8145420 + + thumb_func_start sub_81454E0 +sub_81454E0: @ 81454E0 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + ldr r0, _081454F8 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _081454FC + adds r0, r5, 0 + bl DestroySprite + b _081456A6 + .align 2, 0 +_081454F8: .4byte gUnknown_0203935C +_081454FC: + ldrh r0, [r5, 0x3C] + adds r0, 0x1 + strh r0, [r5, 0x3C] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0xA + bhi _08145544 + lsls r0, 2 + ldr r1, _08145514 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08145514: .4byte _08145518 + .align 2, 0 +_08145518: + .4byte _08145544 + .4byte _0814559E + .4byte _08145620 + .4byte _08145660 + .4byte _08145544 + .4byte _08145544 + .4byte _08145544 + .4byte _08145544 + .4byte _08145544 + .4byte _08145544 + .4byte _08145696 +_08145544: + ldrb r1, [r5, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r5, 0x1] + movs r0, 0x30 + ldrsh r1, [r5, r0] + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r2, [r5, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5, 0x3] + movs r0, 0x10 + strh r0, [r5, 0x32] + ldrh r4, [r5, 0x30] + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x80 + lsls r0, 9 + movs r1, 0x10 + bl __divsi3 + adds r1, r0, 0 + str r1, [sp] + adds r0, r4, 0 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + movs r0, 0x1 + strh r0, [r5, 0x2E] + b _081456A6 +_0814559E: + ldrh r1, [r5, 0x32] + movs r2, 0x32 + ldrsh r0, [r5, r2] + cmp r0, 0xFF + bgt _081455D4 + adds r0, r1, 0 + adds r0, 0x8 + strh r0, [r5, 0x32] + ldrh r4, [r5, 0x30] + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x32 + ldrsh r1, [r5, r0] + movs r0, 0x80 + lsls r0, 9 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + adds r0, r4, 0 + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + b _081455DA +_081455D4: + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] +_081455DA: + movs r2, 0x30 + ldrsh r1, [r5, r2] + cmp r1, 0x2 + beq _081456A6 + cmp r1, 0x2 + bgt _081455EC + cmp r1, 0x1 + beq _081455F2 + b _081456A6 +_081455EC: + cmp r1, 0x3 + beq _0814560A + b _081456A6 +_081455F2: + ldrh r1, [r5, 0x3C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08145602 + ldrh r0, [r5, 0x22] + adds r0, 0x1 + strh r0, [r5, 0x22] +_08145602: + ldrh r0, [r5, 0x20] + subs r0, 0x2 + strh r0, [r5, 0x20] + b _081456A6 +_0814560A: + ldrh r0, [r5, 0x3C] + ands r1, r0 + cmp r1, 0 + bne _08145618 + ldrh r0, [r5, 0x22] + adds r0, 0x1 + strh r0, [r5, 0x22] +_08145618: + ldrh r0, [r5, 0x20] + adds r0, 0x2 + strh r0, [r5, 0x20] + b _081456A6 +_08145620: + ldrh r1, [r5, 0x34] + movs r2, 0x34 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _08145630 + subs r0, r1, 0x1 + strh r0, [r5, 0x34] + b _081456A6 +_08145630: + ldr r1, _0814565C + movs r2, 0xF4 + lsls r2, 4 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + movs r0, 0x10 + strh r0, [r1] + ldrb r1, [r5, 0x1] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r5, 0x1] + movs r0, 0x10 + strh r0, [r5, 0x34] + ldrh r0, [r5, 0x2E] + adds r0, 0x1 + strh r0, [r5, 0x2E] + b _081456A6 + .align 2, 0 +_0814565C: .4byte REG_BLDCNT +_08145660: + ldrh r1, [r5, 0x34] + movs r2, 0x34 + ldrsh r0, [r5, r2] + cmp r0, 0 + beq _08145684 + subs r1, 0x1 + strh r1, [r5, 0x34] + ldr r3, _08145680 + movs r0, 0x34 + ldrsh r2, [r5, r0] + movs r0, 0x10 + subs r0, r2 + lsls r0, 8 + adds r1, r0 + strh r1, [r3] + b _081456A6 + .align 2, 0 +_08145680: .4byte REG_BLDALPHA +_08145684: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + movs r0, 0xA + strh r0, [r5, 0x2E] + b _081456A6 +_08145696: + ldr r0, _081456B0 + movs r1, 0 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, r5, 0 + bl DestroySprite +_081456A6: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081456B0: .4byte REG_BLDCNT + thumb_func_end sub_81454E0 + + thumb_func_start sub_81456B4 +sub_81456B4: @ 81456B4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r1, 16 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + str r2, [sp, 0x10] + lsls r3, 16 + lsrs r3, 16 + mov r9, r3 + adds r0, r6, 0 + bl NationalPokedexNumToSpecies + adds r6, r0, 0 + cmp r6, 0xC9 + beq _081456F8 + movs r0, 0x9A + lsls r0, 1 + cmp r6, r0 + beq _081456EE + movs r7, 0 + b _081456FC +_081456EE: + ldr r0, _081456F4 + ldr r7, [r0, 0x20] + b _081456FC + .align 2, 0 +_081456F4: .4byte gSaveBlock2 +_081456F8: + ldr r0, _081457E8 + ldr r7, [r0, 0x1C] +_081456FC: + lsls r0, r6, 3 + ldr r1, _081457EC + adds r0, r1 + ldr r1, _081457F0 + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _081457F4 + mov r8, r4 + mov r5, r9 + lsls r4, r5, 2 + add r4, r8 + ldr r4, [r4] + str r4, [sp] + str r6, [sp, 0x4] + str r7, [sp, 0x8] + movs r4, 0x1 + str r4, [sp, 0xC] + bl sub_800D378 + ldr r2, _081457F8 + adds r0, r6, 0 + movs r1, 0 + bl species_and_otid_get_pal + lsls r5, 4 + mov r8, r5 + movs r1, 0x80 + lsls r1, 1 + add r1, r8 + lsls r1, 16 + lsrs r1, 16 + movs r2, 0x20 + bl LoadCompressedPalette + mov r7, r9 + lsls r6, r7, 24 + lsrs r6, 24 + mov r0, r9 + adds r1, r6, 0 + bl sub_8143648 + ldr r0, _081457FC + mov r2, r10 + lsls r1, r2, 16 + asrs r1, 16 + ldr r3, [sp, 0x10] + lsls r2, r3, 16 + asrs r2, 16 + movs r3, 0 + bl CreateSprite + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _08145800 + lsls r2, r4, 4 + adds r2, r4 + lsls r2, 2 + adds r3, r2, r5 + ldrb r1, [r3, 0x5] + movs r0, 0xF + ands r0, r1 + mov r7, r8 + orrs r0, r7 + movs r1, 0xD + negs r1, r1 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3, 0x5] + mov r0, r9 + adds r0, 0x1 + strh r0, [r3, 0x30] + movs r0, 0x3E + adds r0, r3 + mov r8, r0 + ldrb r0, [r0] + orrs r0, r1 + mov r1, r8 + strb r0, [r1] + adds r0, r5, 0 + adds r0, 0x1C + adds r2, r0 + ldr r0, _08145804 + str r0, [r2] + ldr r0, _08145808 + movs r2, 0x20 + ldrsh r1, [r3, r2] + movs r7, 0x22 + ldrsh r2, [r3, r7] + movs r3, 0x1 + bl CreateSprite + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r4, [r0, 0x2E] + adds r1, r6, 0 + bl StartSpriteAnimIfDifferent + adds r0, r4, 0 + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_081457E8: .4byte gSaveBlock2 +_081457EC: .4byte gMonFrontPicTable +_081457F0: .4byte gMonFrontPicCoords +_081457F4: .4byte gUnknown_0840B5A0 +_081457F8: .4byte 0x0000ffff +_081457FC: .4byte gUnknown_02024E8C +_08145800: .4byte gSprites +_08145804: .4byte sub_81454E0 +_08145808: .4byte gSpriteTemplate_840CAEC + thumb_func_end sub_81456B4 + + thumb_func_start sub_814580C +sub_814580C: @ 814580C + push {r4,lr} + adds r3, r0, 0 + ldr r4, _08145838 + movs r1, 0x2E + ldrsh r0, [r3, r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0xA + beq _08145830 + ldr r0, _0814583C + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + beq _08145840 +_08145830: + adds r0, r3, 0 + bl DestroySprite + b _081458D4 + .align 2, 0 +_08145838: .4byte gSprites +_0814583C: .4byte gUnknown_0203935C +_08145840: + adds r0, r1, 0 + adds r0, 0x3E + ldrb r0, [r0] + movs r1, 0x3E + adds r1, r3 + mov r12, r1 + movs r1, 0x4 + ands r1, r0 + mov r0, r12 + ldrb r2, [r0] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + movs r2, 0x2E + ldrsh r1, [r3, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + movs r0, 0xC + ands r0, r1 + ldrb r2, [r3, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + movs r0, 0x2E + ldrsh r2, [r3, r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x1] + lsls r0, 30 + lsrs r0, 30 + movs r2, 0x4 + negs r2, r2 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + movs r2, 0x2E + ldrsh r1, [r3, r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x3] + movs r1, 0x3E + ands r1, r0 + ldrb r2, [r3, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x3] + movs r0, 0x2E + ldrsh r1, [r3, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r0, [r0, 0x20] + strh r0, [r3, 0x20] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r0, [r0, 0x22] + strh r0, [r3, 0x22] +_081458D4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_814580C + + thumb_func_start sub_81458DC +sub_81458DC: @ 81458DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r7, _0814597C + ldr r0, _08145980 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + bl GetStarterPokemon + lsls r0, 16 + lsrs r0, 16 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + movs r4, 0x1 + movs r5, 0 + ldr r0, _08145984 + mov r8, r0 +_0814590E: + adds r0, r4, 0 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + adds r6, r7, 0 + adds r6, 0x90 + cmp r0, 0 + beq _0814592C + lsls r0, r5, 1 + adds r0, r6, r0 + strh r4, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_0814592C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bls _0814590E + adds r4, r5, 0 + ldr r0, _08145984 + lsls r1, r4, 16 + mov r9, r1 + movs r2, 0x8E + adds r2, r7 + mov r8, r2 + adds r1, r7, 0 + adds r1, 0x86 + str r1, [sp] + cmp r4, r0 + bhi _08145964 + adds r1, r6, 0 + movs r3, 0 + adds r2, r0, 0 +_08145954: + lsls r0, r4, 1 + adds r0, r1, r0 + strh r3, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r2 + bls _08145954 +_08145964: + movs r2, 0xE5 + lsls r2, 2 + adds r0, r7, r2 + strh r5, [r0] + mov r1, r9 + lsrs r0, r1, 16 + cmp r0, 0x43 + bhi _08145988 + mov r2, r8 + strh r5, [r2] + b _0814598E + .align 2, 0 +_0814597C: .4byte 0x0201c000 +_08145980: .4byte 0x00004023 +_08145984: .4byte 0x00000181 +_08145988: + movs r0, 0x44 + mov r1, r8 + strh r0, [r1] +_0814598E: + movs r5, 0 + movs r2, 0xE5 + lsls r2, 2 + adds r4, r7, r2 + mov r9, r5 + b _0814599E +_0814599A: + cmp r5, 0x43 + bhi _081459EE +_0814599E: + bl Random + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r4] + bl __umodsi3 + lsls r0, 16 + lsrs r2, r0, 16 + lsls r1, r5, 1 + adds r1, r7, r1 + lsls r0, r2, 1 + adds r3, r6, r0 + ldrh r0, [r3] + strh r0, [r1] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + mov r0, r9 + strh r0, [r3] + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r2, r0 + beq _081459E8 + ldrh r0, [r4] + lsls r0, 1 + adds r0, r6, r0 + ldrh r0, [r0] + strh r0, [r3] + ldrh r0, [r4] + lsls r0, 1 + adds r0, r6, r0 + mov r1, r9 + strh r1, [r0] +_081459E8: + ldrh r0, [r4] + cmp r0, 0 + bne _0814599A +_081459EE: + mov r2, r8 + ldrh r0, [r2] + cmp r0, 0x43 + bhi _08145A26 + adds r5, r0, 0 + movs r2, 0 + cmp r5, 0x43 + bhi _08145A5C + mov r3, r8 +_08145A00: + lsls r1, r5, 1 + adds r1, r7, r1 + lsls r0, r2, 1 + adds r0, r7, r0 + ldrh r0, [r0] + strh r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r0, [r3] + cmp r2, r0 + bne _08145A1A + movs r2, 0 +_08145A1A: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x43 + bls _08145A00 + b _08145A5C +_08145A26: + movs r4, 0 + ldrh r0, [r7] + cmp r0, r10 + beq _08145A42 +_08145A2E: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 1 + adds r0, r7, r0 + ldrh r0, [r0] + cmp r0, r10 + beq _08145A42 + cmp r4, 0x43 + bls _08145A2E +_08145A42: + mov r1, r8 + ldrh r0, [r1] + subs r0, 0x1 + cmp r4, r0 + bge _08145A5C + lsls r0, r4, 1 + adds r0, r7, r0 + ldr r2, [sp] + ldrh r1, [r2] + strh r1, [r0] + mov r0, r10 + strh r0, [r2] + b _08145A62 +_08145A5C: + mov r2, r10 + ldr r1, [sp] + strh r2, [r1] +_08145A62: + movs r0, 0x44 + mov r1, r8 + strh r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81458DC + + thumb_func_start sub_8145A78 +sub_8145A78: @ 8145A78 + push {r4,lr} + bl Random + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl Random + lsls r0, 16 + orrs r0, r4 + bl sub_8145D14 + ldr r0, _08145AA0 + movs r1, 0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145AA0: .4byte 0x00004045 + thumb_func_end sub_8145A78 + + thumb_func_start sub_8145AA4 +sub_8145AA4: @ 8145AA4 + push {r4,r5,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl Random + lsls r0, 16 + lsrs r1, r0, 16 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _08145AE0 + cmp r4, r0 + beq _08145AD4 + ldr r5, _08145AE4 + ldr r3, _08145AE8 + adds r2, r0, 0 +_08145AC4: + adds r0, r1, 0 + muls r0, r5 + adds r1, r0, r3 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r2 + bne _08145AC4 +_08145AD4: + adds r0, r1, 0 + bl sub_8145D14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08145AE0: .4byte 0x0000ffff +_08145AE4: .4byte 0x41c64e6d +_08145AE8: .4byte 0x00003039 + thumb_func_end sub_8145AA4 + + thumb_func_start sub_8145AEC +sub_8145AEC: @ 8145AEC + push {lr} + bl sub_8145D3C + ldr r1, _08145AFC + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08145AFC: .4byte gScriptResult + thumb_func_end sub_8145AEC + + thumb_func_start sub_8145B00 +sub_8145B00: @ 8145B00 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r1, _08145C24 + movs r0, 0 + strh r0, [r1] + movs r0, 0 + mov r10, r0 + mov r9, r0 + movs r6, 0 +_08145B18: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _08145C28 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08145B74 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _08145B6A + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + adds r1, r0, 0 + ldr r0, _08145C2C + ldrh r0, [r0] + lsls r1, 16 + lsrs r1, 16 + bl sub_8145C8C + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08145C24 + ldrh r2, [r1] + cmp r0, r2 + bls _08145B6A + cmp r0, 0x1 + bls _08145B6A + subs r0, 0x1 + strh r0, [r1] + movs r0, 0xE + mov r9, r0 + mov r10, r6 +_08145B6A: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _08145B18 +_08145B74: + movs r6, 0 +_08145B76: + movs r5, 0 + adds r1, r6, 0x1 + mov r8, r1 + lsls r0, r6, 2 + adds r7, r0, r6 +_08145B80: + lsls r2, r7, 4 + subs r2, r7 + lsls r2, 5 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 4 + ldr r1, _08145C30 + adds r0, r1 + adds r4, r2, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetBoxMonData + cmp r0, 0 + beq _08145BD8 + adds r0, r4, 0 + movs r1, 0x2D + bl GetBoxMonData + cmp r0, 0 + bne _08145BD8 + adds r0, r4, 0 + movs r1, 0x1 + bl GetBoxMonData + adds r1, r0, 0 + ldr r0, _08145C2C + ldrh r0, [r0] + lsls r1, 16 + lsrs r1, 16 + bl sub_8145C8C + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08145C24 + ldrh r2, [r1] + cmp r0, r2 + bls _08145BD8 + cmp r0, 0x1 + bls _08145BD8 + subs r0, 0x1 + strh r0, [r1] + mov r9, r6 + mov r10, r5 +_08145BD8: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x1D + bls _08145B80 + mov r1, r8 + lsls r0, r1, 16 + lsrs r6, r0, 16 + cmp r6, 0xD + bls _08145B76 + ldr r3, _08145C24 + ldrh r0, [r3] + cmp r0, 0 + beq _08145C72 + ldr r2, _08145C34 + ldr r1, _08145C38 + subs r0, 0x1 + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + mov r2, r9 + cmp r2, 0xE + bne _08145C44 + ldr r1, _08145C3C + movs r0, 0 + strh r0, [r1] + movs r0, 0x64 + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + ldr r1, _08145C28 + adds r0, r1 + ldr r2, _08145C40 + movs r1, 0x2 + bl GetMonData + b _08145C6C + .align 2, 0 +_08145C24: .4byte gUnknown_0202E8CC +_08145C28: .4byte gPlayerParty +_08145C2C: .4byte gScriptResult +_08145C30: .4byte gUnknown_020300A4 +_08145C34: .4byte gUnknown_0202E8CE +_08145C38: .4byte gUnknown_0840CB04 +_08145C3C: .4byte gUnknown_0202E8D0 +_08145C40: .4byte gStringVar1 +_08145C44: + ldr r1, _08145C80 + movs r0, 0x1 + strh r0, [r1] + mov r2, r9 + lsls r1, r2, 2 + add r1, r9 + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 5 + mov r2, r10 + lsls r1, r2, 2 + add r1, r10 + lsls r1, 4 + ldr r2, _08145C84 + adds r1, r2 + adds r0, r1 + ldr r2, _08145C88 + movs r1, 0x2 + bl GetBoxMonData +_08145C6C: + ldr r0, _08145C88 + bl StringGetEnd10 +_08145C72: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08145C80: .4byte gUnknown_0202E8D0 +_08145C84: .4byte gUnknown_020300A4 +_08145C88: .4byte gStringVar1 + thumb_func_end sub_8145B00 + + thumb_func_start sub_8145C8C +sub_8145C8C: @ 8145C8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r5, r1, 16 + movs r0, 0 + mov r8, r0 + movs r7, 0 + ldr r1, _08145D0C + mov r10, r1 + ldr r0, _08145D10 + mov r9, r0 +_08145CAC: + adds r0, r6, 0 + movs r1, 0xA + bl __umodsi3 + adds r4, r0, 0 + mov r1, r10 + strh r4, [r1] + adds r0, r5, 0 + movs r1, 0xA + bl __umodsi3 + mov r1, r9 + strh r0, [r1] + lsls r4, 16 + lsls r0, 16 + cmp r4, r0 + bne _08145CFA + adds r0, r6, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r5, 0 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r5, r0, 16 + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x4 + bls _08145CAC +_08145CFA: + mov r0, r8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08145D0C: .4byte gUnknown_02039328 +_08145D10: .4byte gUnknown_0203932A + thumb_func_end sub_8145C8C + + thumb_func_start sub_8145D14 +sub_8145D14: @ 8145D14 + push {r4,lr} + adds r1, r0, 0 + lsrs r4, r1, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r0, _08145D34 + bl VarSet + ldr r0, _08145D38 + adds r1, r4, 0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145D34: .4byte 0x0000404b +_08145D38: .4byte 0x0000404c + thumb_func_end sub_8145D14 + + thumb_func_start sub_8145D3C +sub_8145D3C: @ 8145D3C + push {r4,lr} + ldr r0, _08145D5C + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08145D60 + bl VarGet + lsls r0, 16 + orrs r0, r4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08145D5C: .4byte 0x0000404b +_08145D60: .4byte 0x0000404c + thumb_func_end sub_8145D3C + + thumb_func_start unref_sub_8145D64 +unref_sub_8145D64: @ 8145D64 + push {lr} + lsls r0, 16 + lsrs r0, 16 + bl sub_8145D14 + pop {r0} + bx r0 + thumb_func_end unref_sub_8145D64 + + thumb_func_start sub_8145D74 +sub_8145D74: @ 8145D74 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8145D74 + + thumb_func_start sub_8145D88 +sub_8145D88: @ 8145D88 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0xC + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 19 + mov r8, r0 + movs r1, 0 + strh r1, [r0] + ldr r6, _08145EB0 + strh r1, [r6] + adds r0, 0xC + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x14 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + add r0, sp, 0x4 + strh r1, [r0] + ldr r2, _08145EB4 + str r0, [r2] + movs r1, 0xC0 + lsls r1, 19 + str r1, [r2, 0x4] + ldr r0, _08145EB8 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r5, 0 + str r5, [sp, 0x8] + add r0, sp, 0x8 + str r0, [r2] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r2, 0x4] + ldr r0, _08145EBC + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + add r0, sp, 0x4 + strh r5, [r0] + str r0, [r2] + movs r0, 0xA0 + lsls r0, 19 + str r0, [r2, 0x4] + ldr r0, _08145EC0 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _08145EC4 + bl LZ77UnCompVram + ldr r0, _08145EC8 + ldr r1, _08145ECC + bl LZ77UnCompVram + bl remove_some_task + bl ResetTasks + bl ResetSpriteData + bl ResetPaletteFade + bl FreeAllSpritePalettes + ldr r0, _08145ED0 + movs r1, 0 + movs r2, 0x40 + bl LoadPalette + ldr r0, _08145ED4 + bl SetUpWindowConfig + ldr r0, _08145ED8 + bl InitMenuWindow + bl pokedex_diploma_something + movs r0, 0x1 + negs r0, r0 + str r5, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r3, _08145EDC + ldrh r2, [r3] + strh r5, [r3] + ldr r4, _08145EE0 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08145EE4 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08145EE8 + bl SetVBlankCallback + ldr r0, _08145EEC + bl SetMainCallback2 + ldr r0, _08145EF0 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + ldr r1, _08145EF4 + adds r0, r1, 0 + strh r0, [r6] + movs r1, 0xCA + lsls r1, 5 + adds r0, r1, 0 + mov r1, r8 + strh r0, [r1] + ldr r0, _08145EF8 + movs r1, 0 + bl CreateTask + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08145EB0: .4byte REG_BG3CNT +_08145EB4: .4byte 0x040000d4 +_08145EB8: .4byte 0x8100c000 +_08145EBC: .4byte 0x85000100 +_08145EC0: .4byte 0x81000200 +_08145EC4: .4byte gUnknown_0840D288 +_08145EC8: .4byte gUnknown_0840CB4C +_08145ECC: .4byte 0x06003000 +_08145ED0: .4byte gUnknown_0840CB0C +_08145ED4: .4byte gWindowConfig_81E6C3C +_08145ED8: .4byte gWindowConfig_81E6CE4 +_08145EDC: .4byte 0x04000208 +_08145EE0: .4byte 0x04000200 +_08145EE4: .4byte REG_DISPSTAT +_08145EE8: .4byte sub_8145D74 +_08145EEC: .4byte sub_8145EFC +_08145EF0: .4byte REG_BLDCNT +_08145EF4: .4byte 0x00004603 +_08145EF8: .4byte sub_8145F14 + thumb_func_end sub_8145D88 + + thumb_func_start sub_8145EFC +sub_8145EFC: @ 8145EFC + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8145EFC + + thumb_func_start sub_8145F14 +sub_8145F14: @ 8145F14 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08145F38 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08145F34 + ldr r0, _08145F3C + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, _08145F40 + str r0, [r1] +_08145F34: + pop {r0} + bx r0 + .align 2, 0 +_08145F38: .4byte gPaletteFade +_08145F3C: .4byte gTasks +_08145F40: .4byte sub_8145F44 + thumb_func_end sub_8145F14 + + thumb_func_start sub_8145F44 +sub_8145F44: @ 8145F44 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08145F80 + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08145F76 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08145F84 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08145F88 + str r1, [r0] +_08145F76: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08145F80: .4byte gMain +_08145F84: .4byte gTasks +_08145F88: .4byte sub_8145F8C + thumb_func_end sub_8145F44 + + thumb_func_start sub_8145F8C +sub_8145F8C: @ 8145F8C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08145FB0 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08145FAA + adds r0, r2, 0 + bl DestroyTask + ldr r0, _08145FB4 + bl SetMainCallback2 +_08145FAA: + pop {r0} + bx r0 + .align 2, 0 +_08145FB0: .4byte gPaletteFade +_08145FB4: .4byte sub_80546F0 + thumb_func_end sub_8145F8C + + thumb_func_start pokedex_diploma_something +pokedex_diploma_something: @ 8145FB8 + push {lr} + bl sub_8090FF4 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _08145FE8 + ldr r1, _08145FDC + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08145FE0 + ldr r1, _08145FE4 + bl StringCopy + b _08145FF4 + .align 2, 0 +_08145FDC: .4byte REG_BG3HOFS +_08145FE0: .4byte gStringVar1 +_08145FE4: .4byte gOtherText_NationalDex +_08145FE8: + ldr r0, _08146004 + strh r1, [r0] + ldr r0, _08146008 + ldr r1, _0814600C + bl StringCopy +_08145FF4: + ldr r0, _08146010 + movs r1, 0x6 + movs r2, 0x2 + bl MenuPrint + pop {r0} + bx r0 + .align 2, 0 +_08146004: .4byte REG_BG3HOFS +_08146008: .4byte gStringVar1 +_0814600C: .4byte gOtherText_HoennDex +_08146010: .4byte gOtherText_DiplomaCertificationGameFreak + thumb_func_end pokedex_diploma_something + + thumb_func_start sub_8146014 +sub_8146014: @ 8146014 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8146014 + + thumb_func_start sub_814602C +sub_814602C: @ 814602C + push {lr} + ldr r2, _0814604C + ldr r0, _08146050 + ldrh r1, [r0] + strh r1, [r2] + ldr r0, _08146054 + strh r1, [r0] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + .align 2, 0 +_0814604C: .4byte REG_BG0VOFS +_08146050: .4byte gUnknown_030041B4 +_08146054: .4byte REG_BG1VOFS + thumb_func_end sub_814602C + + thumb_func_start sub_8146058 +sub_8146058: @ 8146058 + push {r4,lr} + sub sp, 0x4 + ldr r0, _08146074 + ldr r1, _08146078 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xC + bls _0814606A + b _08146250 +_0814606A: + lsls r0, 2 + ldr r1, _0814607C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08146074: .4byte gMain +_08146078: .4byte 0x0000043c +_0814607C: .4byte _08146080 + .align 2, 0 +_08146080: + .4byte _081460B4 + .4byte _081460CC + .4byte _081460F0 + .4byte _081460F6 + .4byte _08146110 + .4byte _0814611C + .4byte _0814613C + .4byte _0814615C + .4byte _08146170 + .4byte _08146190 + .4byte _081461B4 + .4byte _08146204 + .4byte _08146224 +_081460B4: + bl sub_80F9438 + bl sub_80F9368 + bl sub_8146288 + ldr r1, _081460C8 + movs r0, 0 + strh r0, [r1] + b _0814620C + .align 2, 0 +_081460C8: .4byte REG_BLDCNT +_081460CC: + bl ResetPaletteFade + ldr r2, _081460E4 + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r1, _081460E8 + ldr r0, _081460EC + adds r1, r0 + b _08146212 + .align 2, 0 +_081460E4: .4byte gPaletteFade +_081460E8: .4byte gMain +_081460EC: .4byte 0x0000043c +_081460F0: + bl ResetSpriteData + b _0814620C +_081460F6: + ldr r0, _08146104 + bl SetUpWindowConfig + ldr r1, _08146108 + ldr r0, _0814610C + adds r1, r0 + b _08146212 + .align 2, 0 +_08146104: .4byte gWindowConfig_81E6E18 +_08146108: .4byte gMain +_0814610C: .4byte 0x0000043c +_08146110: + ldr r0, _08146118 + bl MultistepInitMenuWindowBegin + b _0814620C + .align 2, 0 +_08146118: .4byte gWindowConfig_81E6E18 +_0814611C: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _08146126 + b _08146250 +_08146126: + ldr r0, _08146134 + ldr r1, _08146138 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + b _0814620C + .align 2, 0 +_08146134: .4byte 0x02000000 +_08146138: .4byte 0x0001ffff +_0814613C: + bl sub_81462B8 + lsls r0, 24 + cmp r0, 0 + bne _08146148 + b _08146250 +_08146148: + ldr r0, _08146154 + ldr r1, _08146158 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + b _0814620C + .align 2, 0 +_08146154: .4byte 0x02000000 +_08146158: .4byte 0x0001ffff +_0814615C: + bl sub_81464E4 + ldr r1, _08146168 + ldr r0, _0814616C + adds r1, r0 + b _08146212 + .align 2, 0 +_08146168: .4byte gMain +_0814616C: .4byte 0x0000043c +_08146170: + ldr r0, _08146188 + ldrb r0, [r0] + adds r0, 0x7B + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x38 + movs r2, 0x40 + bl sub_80A7D8C + ldr r1, _0814618C + strb r0, [r1] + b _0814620C + .align 2, 0 +_08146188: .4byte word_203855E +_0814618C: .4byte gUnknown_0203932C +_08146190: + ldr r0, _081461A8 + ldrb r0, [r0] + adds r0, 0x7B + lsls r0, 24 + lsrs r0, 24 + bl sub_8146600 + ldr r1, _081461AC + ldr r0, _081461B0 + adds r1, r0 + b _08146212 + .align 2, 0 +_081461A8: .4byte word_203855E +_081461AC: .4byte gMain +_081461B0: .4byte 0x0000043c +_081461B4: + ldr r3, _081461EC + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _081461F0 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _081461F4 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _081461F8 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _081461FC + ldr r0, _08146200 + adds r1, r0 + b _08146212 + .align 2, 0 +_081461EC: .4byte 0x04000208 +_081461F0: .4byte 0x04000200 +_081461F4: .4byte REG_DISPSTAT +_081461F8: .4byte sub_814602C +_081461FC: .4byte gMain +_08146200: .4byte 0x0000043c +_08146204: + bl sub_8055870 + cmp r0, 0x1 + beq _08146250 +_0814620C: + ldr r1, _0814621C + ldr r2, _08146220 + adds r1, r2 +_08146212: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08146250 + .align 2, 0 +_0814621C: .4byte gMain +_08146220: .4byte 0x0000043c +_08146224: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _08146248 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _0814624C + bl SetMainCallback2 + movs r0, 0x1 + b _08146252 + .align 2, 0 +_08146248: .4byte gPaletteFade +_0814624C: .4byte sub_8146014 +_08146250: + movs r0, 0 +_08146252: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8146058 + + thumb_func_start sub_814625C +sub_814625C: @ 814625C + push {lr} +_0814625E: + bl sub_8146058 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08146278 + ldr r0, _08146274 + movs r1, 0 + bl CreateTask + b _08146284 + .align 2, 0 +_08146274: .4byte sub_8146480 +_08146278: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0814625E +_08146284: + pop {r0} + bx r0 + thumb_func_end sub_814625C + + thumb_func_start sub_8146288 +sub_8146288: @ 8146288 + ldr r1, _081462A8 + ldr r2, _081462AC + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + adds r2, 0xFE + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _081462B0 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _081462B4 + movs r0, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_081462A8: .4byte REG_BG1CNT +_081462AC: .4byte 0x00000502 +_081462B0: .4byte 0x00000703 +_081462B4: .4byte gUnknown_030041B4 + thumb_func_end sub_8146288 + + thumb_func_start sub_81462B8 +sub_81462B8: @ 81462B8 + push {r4-r7,lr} + ldr r1, _081462D4 + ldr r2, _081462D8 + adds r0, r1, r2 + ldrb r0, [r0] + mov r12, r1 + cmp r0, 0x6 + bls _081462CA + b _08146404 +_081462CA: + lsls r0, 2 + ldr r1, _081462DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081462D4: .4byte 0x02000000 +_081462D8: .4byte 0x0001ffff +_081462DC: .4byte _081462E0 + .align 2, 0 +_081462E0: + .4byte _081462FC + .4byte _0814630C + .4byte _0814632C + .4byte _08146340 + .4byte _081463A4 + .4byte _081463C4 + .4byte _081463E4 +_081462FC: + ldr r0, _08146308 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + b _081463CA + .align 2, 0 +_08146308: .4byte gBerryCheck_Gfx +_0814630C: + ldr r0, _0814631C + ldr r1, _08146320 + bl LZDecompressVram + ldr r1, _08146324 + ldr r2, _08146328 + adds r1, r2 + b _081463D0 + .align 2, 0 +_0814631C: .4byte gUnknown_08E788E4 +_08146320: .4byte 0x06002800 +_08146324: .4byte 0x02000000 +_08146328: .4byte 0x0001ffff +_0814632C: + ldr r0, _08146338 + ldr r1, _0814633C + bl LZDecompressVram + b _081463CA + .align 2, 0 +_08146338: .4byte gUnknown_08E78A84 +_0814633C: .4byte 0x06003000 +_08146340: + movs r1, 0 + ldr r7, _0814635C + adds r2, r7, 0 + ldr r6, _08146360 + ldr r5, _08146364 + ldr r4, _08146368 + ldr r3, _0814636C +_0814634E: + ldrb r0, [r5, 0x8] + cmp r0, 0 + bne _08146370 + lsls r0, r1, 1 + adds r0, r2 + strh r6, [r0] + b _08146376 + .align 2, 0 +_0814635C: .4byte gBG2TilemapBuffer +_08146360: .4byte 0x00004042 +_08146364: .4byte gSaveBlock2 +_08146368: .4byte 0x00005042 +_0814636C: .4byte 0x000003ff +_08146370: + lsls r0, r1, 1 + adds r0, r2 + strh r4, [r0] +_08146376: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r3 + bls _0814634E + ldr r1, _08146394 + ldr r0, _08146398 + str r7, [r0] + str r1, [r0, 0x4] + ldr r1, _0814639C + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + ldr r1, _081463A0 + add r1, r12 + b _081463D0 + .align 2, 0 +_08146394: .4byte 0x06003800 +_08146398: .4byte 0x040000d4 +_0814639C: .4byte 0x80000400 +_081463A0: .4byte 0x0001ffff +_081463A4: + ldr r0, _081463B8 + movs r1, 0 + movs r2, 0xC0 + bl LoadCompressedPalette + ldr r1, _081463BC + ldr r2, _081463C0 + adds r1, r2 + b _081463D0 + .align 2, 0 +_081463B8: .4byte gBerryCheck_Pal +_081463BC: .4byte 0x02000000 +_081463C0: .4byte 0x0001ffff +_081463C4: + ldr r0, _081463D8 + bl LoadCompressedObjectPic +_081463CA: + ldr r1, _081463DC + ldr r0, _081463E0 + adds r1, r0 +_081463D0: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08146404 + .align 2, 0 +_081463D8: .4byte gUnknown_083C1F74 +_081463DC: .4byte 0x02000000 +_081463E0: .4byte 0x0001ffff +_081463E4: + ldr r0, _081463F8 + bl LoadCompressedObjectPalette + ldr r0, _081463FC + ldr r1, _08146400 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + b _08146406 + .align 2, 0 +_081463F8: .4byte gUnknown_083C1F7C +_081463FC: .4byte 0x02000000 +_08146400: .4byte 0x0001ffff +_08146404: + movs r0, 0 +_08146406: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_81462B8 + + thumb_func_start sub_814640C +sub_814640C: @ 814640C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08146438 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08146432 + ldr r0, _0814643C + bl SetMainCallback2 + bl sub_80A7DD4 + bl gpu_pal_allocator_reset__manage_upper_four + adds r0, r4, 0 + bl DestroyTask +_08146432: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08146438: .4byte gPaletteFade +_0814643C: .4byte sub_80A5B40 + thumb_func_end sub_814640C + + thumb_func_start sub_8146440 +sub_8146440: @ 8146440 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08146478 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0814647C + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08146478: .4byte gTasks +_0814647C: .4byte sub_814640C + thumb_func_end sub_8146440 + + thumb_func_start sub_8146480 +sub_8146480: @ 8146480 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r7, r4, 0 + ldr r0, _081464DC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _081464D6 + ldr r5, _081464E0 + ldrh r1, [r5, 0x30] + movs r6, 0xF0 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0x40 + bne _081464AC + movs r1, 0x1 + negs r1, r1 + adds r0, r4, 0 + bl sub_81466E8 +_081464AC: + ldrh r1, [r5, 0x30] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0x80 + bne _081464BE + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81466E8 +_081464BE: + ldrh r1, [r5, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _081464D0 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _081464D6 +_081464D0: + adds r0, r7, 0 + bl sub_8146440 +_081464D6: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081464DC: .4byte gPaletteFade +_081464E0: .4byte gMain + thumb_func_end sub_8146480 + + thumb_func_start sub_81464E4 +sub_81464E4: @ 81464E4 + push {r4-r7,lr} + ldr r4, _0814659C + ldrb r0, [r4] + adds r0, 0x7C + lsls r0, 24 + lsrs r0, 24 + bl GetBerryInfo + adds r5, r0, 0 + ldr r7, _081465A0 + ldrh r1, [r4] + subs r1, 0x84 + adds r0, r7, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r0, r7, 0 + movs r1, 0xC + movs r2, 0x4 + bl MenuPrint + adds r0, r5, 0 + movs r1, 0xE + movs r2, 0x4 + bl MenuPrint + ldr r0, [r5, 0xC] + movs r1, 0x4 + movs r2, 0xE + bl MenuPrint + ldr r0, [r5, 0x10] + movs r1, 0x4 + movs r2, 0x10 + bl MenuPrint + ldrh r1, [r5, 0x8] + lsls r0, r1, 5 + subs r0, r1 + lsls r0, 2 + adds r0, r1 + lsls r0, 3 + movs r1, 0xFE + bl __divsi3 + adds r4, r0, 0 + movs r1, 0xA + bl __umodsi3 + cmp r0, 0x4 + bls _0814654E + adds r4, 0xA +_0814654E: + adds r0, r4, 0 + movs r1, 0x64 + bl __umodsi3 + movs r1, 0xA + bl __udivsi3 + adds r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x64 + bl __udivsi3 + adds r4, r0, 0 + ldr r0, _081465A4 + movs r1, 0xB + movs r2, 0x7 + bl MenuPrint + ldrh r0, [r5, 0x8] + cmp r0, 0 + beq _081465B0 + adds r0, r7, 0 + adds r1, r4, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, _081465A8 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, _081465AC + movs r1, 0x10 + movs r2, 0x7 + bl MenuPrint + b _081465BA + .align 2, 0 +_0814659C: .4byte word_203855E +_081465A0: .4byte gStringVar1 +_081465A4: .4byte gOtherText_Size +_081465A8: .4byte gStringVar2 +_081465AC: .4byte gContestStatsText_Unknown1 +_081465B0: + ldr r0, _081465E0 + movs r1, 0x10 + movs r2, 0x7 + bl MenuPrint +_081465BA: + ldr r0, _081465E4 + movs r1, 0xB + movs r2, 0x9 + bl MenuPrint + ldrb r0, [r5, 0x7] + cmp r0, 0 + beq _081465EC + ldr r0, _081465E8 + ldrb r1, [r5, 0x7] + subs r1, 0x1 + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r1, 0x10 + movs r2, 0x9 + bl MenuPrint + b _081465F6 + .align 2, 0 +_081465E0: .4byte gOtherText_ThreeQuestions2 +_081465E4: .4byte gOtherText_Firm +_081465E8: .4byte gUnknown_0841192C +_081465EC: + ldr r0, _081465FC + movs r1, 0x10 + movs r2, 0x9 + bl MenuPrint +_081465F6: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081465FC: .4byte gOtherText_ThreeQuestions2 + thumb_func_end sub_81464E4 + + thumb_func_start sub_8146600 +sub_8146600: @ 8146600 + push {r4,r5,lr} + lsls r0, 24 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r0, 24 + bl GetBerryInfo + adds r4, r0, 0 + movs r2, 0 + ldr r5, _08146698 + ldr r0, _0814669C + adds r3, r0, 0 +_0814661A: + lsls r0, r2, 1 + adds r0, r5 + ldrh r1, [r0] + orrs r1, r3 + strh r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x4 + bls _0814661A + ldrb r0, [r4, 0x15] + cmp r0, 0 + beq _08146642 + movs r0, 0x30 + bl sub_80A7E5C + ldr r1, _08146698 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1] +_08146642: + ldrb r0, [r4, 0x16] + cmp r0, 0 + beq _08146656 + movs r0, 0x58 + bl sub_80A7E5C + ldr r1, _08146698 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2] +_08146656: + ldrb r0, [r4, 0x17] + cmp r0, 0 + beq _0814666A + movs r0, 0x80 + bl sub_80A7E5C + ldr r1, _08146698 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x4] +_0814666A: + ldrb r0, [r4, 0x18] + cmp r0, 0 + beq _0814667E + movs r0, 0xA8 + bl sub_80A7E5C + ldr r1, _08146698 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x6] +_0814667E: + ldrb r0, [r4, 0x19] + cmp r0, 0 + beq _08146692 + movs r0, 0xD0 + bl sub_80A7E5C + ldr r1, _08146698 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x8] +_08146692: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08146698: .4byte gUnknown_0203932E +_0814669C: .4byte 0x0000ffff + thumb_func_end sub_8146600 + + thumb_func_start sub_81466A0 +sub_81466A0: @ 81466A0 + push {r4-r7,lr} + movs r5, 0 + movs r7, 0x1 + negs r7, r7 + ldr r6, _081466DC +_081466AA: + lsls r0, r5, 1 + adds r4, r0, r6 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, r7 + beq _081466CA + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081466E0 + adds r0, r1 + bl DestroySprite + ldr r0, _081466E4 + strh r0, [r4] +_081466CA: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bls _081466AA + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081466DC: .4byte gUnknown_0203932E +_081466E0: .4byte gSprites +_081466E4: .4byte 0x0000ffff + thumb_func_end sub_81466A0 + + thumb_func_start sub_81466E8 +sub_81466E8: @ 81466E8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08146748 + adds r6, r0, r1 + ldr r4, _0814674C + movs r0, 0xC + adds r0, r4 + mov r8, r0 + ldrb r1, [r0, 0x1] + ldrb r0, [r4, 0xC] + adds r1, r0 + cmp r1, 0 + bne _08146718 + lsls r0, r2, 24 + cmp r0, 0 + blt _0814678C +_08146718: + adds r0, r1, 0x1 + lsls r5, r2, 24 + mov r1, r8 + ldrb r1, [r1, 0x2] + cmp r0, r1 + bne _08146728 + cmp r5, 0 + bgt _0814678C +_08146728: + movs r0, 0x5 + bl PlaySE + mov r2, r8 + ldrb r3, [r2, 0x1] + ldrb r4, [r4, 0xC] + mov r12, r4 + adds r0, r3, r4 + asrs r2, r5, 24 + adds r1, r0, r2 + cmp r1, 0 + bge _08146750 + negs r0, r0 + strh r0, [r6, 0x2] + b _08146766 + .align 2, 0 +_08146748: .4byte gUnknown_03004B28 +_0814674C: .4byte gUnknown_03005D10 +_08146750: + mov r4, r8 + ldrb r0, [r4, 0x2] + cmp r1, r0 + blt _08146764 + subs r0, r3 + mov r1, r12 + subs r0, r1 + subs r0, 0x1 + strh r0, [r6, 0x2] + b _08146766 +_08146764: + strh r2, [r6, 0x2] +_08146766: + ldr r0, _08146780 + lsls r1, r7, 2 + adds r1, r7 + lsls r1, 3 + adds r1, r0 + ldr r0, _08146784 + str r0, [r1] + cmp r5, 0 + bge _08146788 + movs r2, 0x10 + negs r2, r2 + adds r0, r2, 0 + b _0814678A + .align 2, 0 +_08146780: .4byte gTasks +_08146784: .4byte sub_8146798 +_08146788: + movs r0, 0x10 +_0814678A: + strh r0, [r6] +_0814678C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_81466E8 + + thumb_func_start sub_8146798 +sub_8146798: @ 8146798 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + ldr r1, _08146800 + adds r0, r1 + ldr r2, _08146804 + ldrh r1, [r0] + ldrh r5, [r2] + adds r3, r1, r5 + movs r1, 0xFF + ands r3, r1 + strh r3, [r2] + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + ble _081467C2 + cmp r3, 0x90 + beq _081467CA +_081467C2: + cmp r0, 0 + bge _081467E0 + cmp r3, 0x70 + bne _081467E0 +_081467CA: + ldr r0, _08146808 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0xA + ldrsb r0, [r1, r0] + bl sub_8146810 + bl sub_81468BC +_081467E0: + ldr r0, _08146804 + ldrh r2, [r0] + cmp r2, 0 + bne _081467FA + ldr r0, _08146808 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + strh r2, [r1, 0x8] + strh r2, [r1, 0xA] + ldr r0, _0814680C + str r0, [r1] +_081467FA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08146800: .4byte gUnknown_03004B28 +_08146804: .4byte gUnknown_030041B4 +_08146808: .4byte gTasks +_0814680C: .4byte sub_8146480 + thumb_func_end sub_8146798 + + thumb_func_start sub_8146810 +sub_8146810: @ 8146810 + push {r4-r6,lr} + lsls r0, 24 + lsrs r3, r0, 24 + adds r4, r3, 0 + lsls r0, r3, 24 + asrs r1, r0, 24 + cmp r1, 0 + ble _08146848 + ldr r0, _08146840 + adds r4, r0, 0 + adds r4, 0xC + ldrb r2, [r0, 0xC] + adds r1, r2, r1 + adds r6, r0, 0 + cmp r1, 0x7 + ble _08146844 + adds r0, r3, 0 + adds r0, 0xF9 + adds r0, r2, r0 + ldrb r1, [r4, 0x1] + adds r0, r1 + strb r0, [r4, 0x1] + movs r0, 0x7 + b _0814686E + .align 2, 0 +_08146840: .4byte gUnknown_03005D10 +_08146844: + adds r0, r2, r3 + b _0814686E +_08146848: + ldr r0, _08146868 + adds r5, r0, 0 + adds r5, 0xC + ldrb r2, [r0, 0xC] + adds r1, r2, r1 + adds r6, r0, 0 + cmp r1, 0 + bge _0814686C + adds r0, r2, r3 + ldrb r1, [r5, 0x1] + adds r0, r1 + movs r1, 0 + strb r0, [r5, 0x1] + strb r1, [r6, 0xC] + b _08146870 + .align 2, 0 +_08146868: .4byte gUnknown_03005D10 +_0814686C: + adds r0, r2, r4 +_0814686E: + strb r0, [r6, 0xC] +_08146870: + ldr r2, _081468AC + movs r0, 0x3 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0, 0x1] + ldrb r0, [r0] + adds r1, r0 + ldr r0, _081468B0 + ldr r0, [r0] + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1] + strh r0, [r2] + ldr r0, _081468B4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081468B8 + adds r0, r1 + bl DestroySprite + bl sub_81466A0 + bl sub_80A7DD4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081468AC: .4byte word_203855E +_081468B0: .4byte gUnknown_03005D24 +_081468B4: .4byte gUnknown_0203932C +_081468B8: .4byte gSprites + thumb_func_end sub_8146810 + + thumb_func_start sub_81468BC +sub_81468BC: @ 81468BC + push {r4,lr} + movs r0, 0 + movs r1, 0x4 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + bl sub_81464E4 + ldr r4, _081468F8 + ldrb r0, [r4] + adds r0, 0x7B + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x38 + movs r2, 0x40 + bl sub_80A7D8C + ldr r1, _081468FC + strb r0, [r1] + ldrb r0, [r4] + adds r0, 0x7B + lsls r0, 24 + lsrs r0, 24 + bl sub_8146600 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081468F8: .4byte word_203855E +_081468FC: .4byte gUnknown_0203932C + thumb_func_end sub_81468BC + + thumb_func_start sub_8146900 +sub_8146900: @ 8146900 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8146900 + + thumb_func_start sub_8146914 +sub_8146914: @ 8146914 + push {lr} + movs r2, 0 + ldr r1, _0814692C + ldrh r0, [r1, 0x1A] + ldrh r1, [r1, 0x36] + cmp r0, r1 + bne _08146924 + movs r2, 0x1 +_08146924: + adds r0, r2, 0 + pop {r1} + bx r1 + .align 2, 0 +_0814692C: .4byte gLinkPlayers + thumb_func_end sub_8146914 + + thumb_func_start CB2_InitMysteryEventMenu +CB2_InitMysteryEventMenu: @ 8146930 + push {r4,lr} + bl ResetSpriteData + bl FreeAllSpritePalettes + bl ResetTasks + ldr r0, _0814699C + bl SetVBlankCallback + ldr r4, _081469A0 + adds r0, r4, 0 + bl SetUpWindowConfig + adds r0, r4, 0 + bl InitMenuWindow + bl MenuZeroFillScreen + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x50 + movs r0, 0 + strh r0, [r1] + ldr r0, _081469A4 + movs r1, 0 + bl CreateTask + bl StopMapMusic + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + movs r0, 0 + movs r1, 0 + movs r2, 0x2 + bl FillPalette + ldr r0, _081469A8 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814699C: .4byte sub_8146900 +_081469A0: .4byte gWindowConfig_81E6CE4 +_081469A4: .4byte Task_DestroySelf +_081469A8: .4byte sub_81469E4 + thumb_func_end CB2_InitMysteryEventMenu + + thumb_func_start sub_81469AC +sub_81469AC: @ 81469AC + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + movs r5, 0x1 + cmp r4, 0 + bne _081469C0 + ldr r1, _081469DC + bl StringCopy + movs r5, 0 +_081469C0: + cmp r4, 0x2 + bne _081469C6 + movs r5, 0 +_081469C6: + cmp r4, 0x1 + bne _081469D2 + ldr r1, _081469E0 + adds r0, r6, 0 + bl StringCopy +_081469D2: + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_081469DC: .4byte gSystemText_EventLoadSuccess +_081469E0: .4byte gSystemText_LoadingError + thumb_func_end sub_81469AC + + thumb_func_start sub_81469E4 +sub_81469E4: @ 81469E4 + push {r4-r6,lr} + sub sp, 0x8 + ldr r1, _08146A04 + ldr r2, _08146A08 + adds r0, r1, r2 + ldrb r0, [r0] + adds r4, r1, 0 + cmp r0, 0x10 + bls _081469F8 + b _08146DA4 +_081469F8: + lsls r0, 2 + ldr r1, _08146A0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08146A04: .4byte gMain +_08146A08: .4byte 0x0000043c +_08146A0C: .4byte _08146A10 + .align 2, 0 +_08146A10: + .4byte _08146A54 + .4byte _08146A6E + .4byte _08146A9C + .4byte _08146AD4 + .4byte _08146B18 + .4byte _08146B26 + .4byte _08146B90 + .4byte _08146C64 + .4byte _08146C72 + .4byte _08146C94 + .4byte _08146CA0 + .4byte _08146CB4 + .4byte _08146CFC + .4byte _08146D18 + .4byte _08146D50 + .4byte _08146D6C + .4byte _08146D94 +_08146A54: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + b _08146D78 +_08146A6E: + ldr r0, _08146A8C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08146A7C + b _08146DA4 +_08146A7C: + ldr r0, _08146A90 + bl sub_8072044 + ldr r1, _08146A94 + ldr r2, _08146A98 + adds r1, r2 + b _08146D82 + .align 2, 0 +_08146A8C: .4byte gPaletteFade +_08146A90: .4byte gSystemText_LinkStandby +_08146A94: .4byte gMain +_08146A98: .4byte 0x0000043c +_08146A9C: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + bne _08146AA8 + b _08146DA4 +_08146AA8: + ldr r1, _08146AC4 + ldr r0, _08146AC8 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, _08146ACC + ldr r2, _08146AD0 + adds r0, r2, 0 + strh r0, [r1] + bl OpenLink + b _08146DA4 + .align 2, 0 +_08146AC4: .4byte gMain +_08146AC8: .4byte 0x0000043c +_08146ACC: .4byte gLinkType +_08146AD0: .4byte 0x00005501 +_08146AD4: + ldr r0, _08146B08 + ldr r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08146AE2 + b _08146C38 +_08146AE2: + movs r0, 0x1C + ands r1, r0 + cmp r1, 0x4 + bhi _08146AEC + b _08146C38 +_08146AEC: + movs r0, 0x15 + bl PlaySE + ldr r0, _08146B0C + bl sub_8072044 + ldr r1, _08146B10 + ldr r0, _08146B14 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08146C38 + .align 2, 0 +_08146B08: .4byte gLinkStatus +_08146B0C: .4byte gSystemText_LoadEventPressA +_08146B10: .4byte gMain +_08146B14: .4byte 0x0000043c +_08146B18: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + bne _08146B24 + b _08146DA4 +_08146B24: + b _08146D7C +_08146B26: + bl GetLinkPlayerCount_2 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bne _08146C10 + ldr r4, _08146B64 + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08146B70 + movs r0, 0x5 + bl PlaySE + bl sub_8007F4C + movs r0, 0x6 + movs r1, 0x5 + movs r2, 0x17 + movs r3, 0x8 + bl MenuDrawTextWindow + ldr r0, _08146B68 + movs r1, 0x7 + movs r2, 0x6 + bl MenuPrint + ldr r2, _08146B6C + adds r1, r4, r2 + b _08146D82 + .align 2, 0 +_08146B64: .4byte gMain +_08146B68: .4byte gSystemText_LoadingEvent +_08146B6C: .4byte 0x0000043c +_08146B70: + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08146B7A + b _08146DA4 +_08146B7A: + movs r0, 0x5 + bl PlaySE + bl CloseLink + ldr r0, _08146B8C + adds r1, r4, r0 + b _08146C54 + .align 2, 0 +_08146B8C: .4byte 0x0000043c +_08146B90: + bl IsLinkConnectionEstablished + lsls r0, 24 + cmp r0, 0 + beq _08146C38 + ldr r0, _08146BD8 + ldrb r0, [r0] + cmp r0, 0 + bne _08146BA4 + b _08146DA4 +_08146BA4: + bl GetLinkPlayerDataExchangeStatusTimed + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _08146BE8 + bl sub_800832C + movs r0, 0x6 + movs r1, 0x5 + movs r2, 0x17 + movs r3, 0x8 + bl MenuZeroFillWindowRect + ldr r4, _08146BDC + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81469AC + adds r0, r4, 0 + bl sub_8072044 + ldr r0, _08146BE0 + ldr r2, _08146BE4 + adds r0, r2 + b _08146C26 + .align 2, 0 +_08146BD8: .4byte gReceivedRemoteLinkPlayers +_08146BDC: .4byte gStringVar4 +_08146BE0: .4byte gMain +_08146BE4: .4byte 0x0000043c +_08146BE8: + bl sub_8146914 + lsls r0, 24 + cmp r0, 0 + beq _08146C00 + ldr r0, _08146BFC + bl sub_8072044 + b _08146D7C + .align 2, 0 +_08146BFC: .4byte gSystemText_DontCutLink +_08146C00: + bl CloseLink + movs r0, 0x6 + movs r1, 0x5 + movs r2, 0x17 + movs r3, 0x8 + bl MenuZeroFillWindowRect +_08146C10: + ldr r4, _08146C2C + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81469AC + adds r0, r4, 0 + bl sub_8072044 + ldr r0, _08146C30 + ldr r1, _08146C34 + adds r0, r1 +_08146C26: + movs r1, 0xD + strb r1, [r0] + b _08146DA4 + .align 2, 0 +_08146C2C: .4byte gStringVar4 +_08146C30: .4byte gMain +_08146C34: .4byte 0x0000043c +_08146C38: + ldr r4, _08146C5C + ldrh r1, [r4, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08146C46 + b _08146DA4 +_08146C46: + movs r0, 0x5 + bl PlaySE + bl CloseLink + ldr r2, _08146C60 + adds r1, r4, r2 +_08146C54: + movs r0, 0xF + strb r0, [r1] + b _08146DA4 + .align 2, 0 +_08146C5C: .4byte gMain +_08146C60: .4byte 0x0000043c +_08146C64: + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + bne _08146C70 + b _08146DA4 +_08146C70: + b _08146D7C +_08146C72: + bl GetBlockRecievedStatus + lsls r0, 24 + cmp r0, 0 + bne _08146C7E + b _08146DA4 +_08146C7E: + bl ResetBlockReceivedFlags + ldr r1, _08146C8C + ldr r2, _08146C90 + adds r1, r2 + b _08146D82 + .align 2, 0 +_08146C8C: .4byte gMain +_08146C90: .4byte 0x0000043c +_08146C94: + ldr r0, _08146C9C + adds r1, r4, r0 + b _08146D82 + .align 2, 0 +_08146C9C: .4byte 0x0000043c +_08146CA0: + bl sub_800832C + ldr r1, _08146CAC + ldr r2, _08146CB0 + adds r1, r2 + b _08146D82 + .align 2, 0 +_08146CAC: .4byte gMain +_08146CB0: .4byte 0x0000043c +_08146CB4: + ldr r0, _08146CEC + ldrb r6, [r0] + cmp r6, 0 + bne _08146DA4 + ldr r5, _08146CF0 + adds r0, r5, 0 + bl sub_812613C + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + str r6, [sp, 0x4] + ldr r2, _08146CF4 + add r0, sp, 0x4 + adds r1, r5, 0 + bl CpuSet + ldr r0, _08146CF8 + adds r1, r4, 0 + bl sub_81469AC + lsls r0, 24 + cmp r0, 0 + bne _08146D7C + movs r0, 0 + bl sub_8125D44 + b _08146D7C + .align 2, 0 +_08146CEC: .4byte gReceivedRemoteLinkPlayers +_08146CF0: .4byte 0x02000000 +_08146CF4: .4byte 0x050001f5 +_08146CF8: .4byte gStringVar4 +_08146CFC: + ldr r0, _08146D0C + bl sub_8072044 + ldr r1, _08146D10 + ldr r2, _08146D14 + adds r1, r2 + b _08146D82 + .align 2, 0 +_08146D0C: .4byte gStringVar4 +_08146D10: .4byte gMain +_08146D14: .4byte 0x0000043c +_08146D18: + movs r0, 0x6 + movs r1, 0x5 + movs r2, 0x17 + movs r3, 0x8 + bl MenuZeroFillWindowRect + bl MenuUpdateWindowText + lsls r0, 24 + cmp r0, 0 + beq _08146DA4 + ldr r1, _08146D44 + ldr r0, _08146D48 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + ldr r0, _08146D4C + strb r2, [r0] + b _08146DA4 + .align 2, 0 +_08146D44: .4byte gMain +_08146D48: .4byte 0x0000043c +_08146D4C: .4byte gUnknown_02039338 +_08146D50: + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08146DA4 + movs r0, 0x5 + bl PlaySE + ldr r2, _08146D68 + adds r1, r4, r2 + b _08146D82 + .align 2, 0 +_08146D68: .4byte 0x0000043c +_08146D6C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 +_08146D78: + bl BeginNormalPaletteFade +_08146D7C: + ldr r1, _08146D8C + ldr r0, _08146D90 + adds r1, r0 +_08146D82: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08146DA4 + .align 2, 0 +_08146D8C: .4byte gMain +_08146D90: .4byte 0x0000043c +_08146D94: + ldr r0, _08146DFC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08146DA4 + bl DoSoftReset +_08146DA4: + ldr r0, _08146E00 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08146DE4 + bl IsLinkMaster + lsls r0, 24 + cmp r0, 0 + bne _08146DE4 + bl CloseLink + movs r0, 0x6 + movs r1, 0x5 + movs r2, 0x17 + movs r3, 0x8 + bl MenuZeroFillWindowRect + ldr r4, _08146E04 + adds r0, r4, 0 + movs r1, 0x1 + bl sub_81469AC + adds r0, r4, 0 + bl sub_8072044 + ldr r0, _08146E08 + ldr r1, _08146E0C + adds r0, r1 + movs r1, 0xD + strb r1, [r0] +_08146DE4: + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08146DFC: .4byte gPaletteFade +_08146E00: .4byte gLinkStatus +_08146E04: .4byte gStringVar4 +_08146E08: .4byte gMain +_08146E0C: .4byte 0x0000043c + thumb_func_end sub_81469E4 + + thumb_func_start fullscreen_save_activate +fullscreen_save_activate: @ 8146E10 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08146E30 + bl SetMainCallback2 + ldr r0, _08146E34 + strh r4, [r0] + ldr r1, _08146E38 + movs r0, 0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08146E30: .4byte sub_8146E50 +_08146E34: .4byte gUnknown_0203933C +_08146E38: .4byte gUnknown_0203933E + thumb_func_end fullscreen_save_activate + + thumb_func_start sub_8146E3C +sub_8146E3C: @ 8146E3C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8146E3C + + thumb_func_start sub_8146E50 +sub_8146E50: @ 8146E50 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xC + ldr r0, _08146FB0 + ldr r1, _08146FB4 + adds r7, r0, r1 + ldrb r0, [r7] + cmp r0, 0 + beq _08146E6C + cmp r0, 0x1 + bne _08146E6C + b _0814701C +_08146E6C: + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 19 + mov r9, r0 + movs r1, 0 + strh r1, [r0] + ldr r6, _08146FB8 + strh r1, [r6] + adds r0, 0xC + mov r8, r0 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + ldr r5, _08146FBC + strh r1, [r5] + adds r0, 0x12 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + add r0, sp, 0x4 + strh r1, [r0] + ldr r2, _08146FC0 + str r0, [r2] + movs r1, 0xC0 + lsls r1, 19 + str r1, [r2, 0x4] + ldr r0, _08146FC4 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + movs r4, 0 + str r4, [sp, 0x8] + add r0, sp, 0x8 + str r0, [r2] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r2, 0x4] + ldr r0, _08146FC8 + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + add r0, sp, 0x4 + strh r4, [r0] + str r0, [r2] + movs r0, 0xA0 + lsls r0, 19 + str r0, [r2, 0x4] + ldr r0, _08146FCC + str r0, [r2, 0x8] + ldr r0, [r2, 0x8] + ldr r0, _08146FD0 + bl LZ77UnCompVram + ldr r0, _08146FD4 + ldr r1, _08146FD8 + bl LZ77UnCompVram + ldr r0, _08146FDC + ldr r1, _08146FE0 + bl LZ77UnCompVram + ldr r0, _08146FE4 + ldr r1, _08146FE8 + bl LZ77UnCompVram + bl ResetSpriteData + bl ResetTasks + bl ResetPaletteFade + ldr r0, _08146FEC + movs r1, 0 + movs r2, 0x40 + bl LoadPalette + ldr r0, _08146FF0 + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08146FF4 + bl SetUpWindowConfig + ldr r0, _08146FF8 + bl InitMenuWindow + .if REVISION >= 1 + movs r0, 0xD + movs r1, 0x6 + movs r2, 0x10 + movs r3, 0x9 + .else + movs r0, 0xD + movs r1, 0x8 + movs r2, 0x10 + movs r3, 0xB + .endif + bl MenuDrawTextWindow + .if REVISION >= 1 + movs r0, 0x1 + movs r1, 0xA + movs r2, 0x1C + movs r3, 0x13 + .else + movs r0, 0x1 + movs r1, 0xC + movs r2, 0x1C + movs r3, 0x13 + .endif + bl MenuDrawTextWindow + ldr r0, _08146FFC + .if REVISION >= 1 + movs r1, 0x2 + movs r2, 0xB + .else + movs r1, 0x2 + movs r2, 0xD + .endif + bl MenuPrint + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r3, _08147000 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _08147004 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08147008 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0814700C + bl SetVBlankCallback + ldr r1, _08147010 + adds r0, r1, 0 + strh r0, [r6] + ldr r1, _08147014 + adds r0, r1, 0 + mov r1, r8 + strh r0, [r1] + ldr r1, _08147018 + adds r0, r1, 0 + strh r0, [r5] + movs r1, 0xEA + lsls r1, 5 + adds r0, r1, 0 + mov r1, r9 + strh r0, [r1] + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + b _08147032 + .align 2, 0 +_08146FB0: .4byte gMain +_08146FB4: .4byte 0x0000043c +_08146FB8: .4byte REG_BG3CNT +_08146FBC: .4byte REG_BG0CNT +_08146FC0: .4byte 0x040000d4 +_08146FC4: .4byte 0x8100c000 +_08146FC8: .4byte 0x85000100 +_08146FCC: .4byte 0x81000200 +_08146FD0: .4byte gUnknown_083F66F0 +_08146FD4: .4byte gBirchBagTilemap +_08146FD8: .4byte 0x06003000 +_08146FDC: .4byte gBirchGrassTilemap +_08146FE0: .4byte 0x06003800 +_08146FE4: .4byte gUnknown_08411980 +_08146FE8: .4byte 0x06010020 +_08146FEC: .4byte gUnknown_083F62EC +_08146FF0: .4byte gUnknown_08411960 +_08146FF4: .4byte gWindowConfig_81E6C3C +_08146FF8: .4byte gWindowConfig_81E6CE4 +_08146FFC: .4byte gSystemText_SaveFailedBackupCheck +_08147000: .4byte 0x04000208 +_08147004: .4byte 0x04000200 +_08147008: .4byte REG_DISPSTAT +_0814700C: .4byte sub_8146E3C +_08147010: .4byte 0x00000703 +_08147014: .4byte 0x00000602 +_08147018: .4byte 0x00001f08 +_0814701C: + bl UpdatePaletteFade + lsls r0, 24 + cmp r0, 0 + bne _08147032 + ldr r0, _08147040 + bl SetMainCallback2 + ldr r0, _08147044 + bl SetVBlankCallback +_08147032: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08147040: .4byte sub_8147048 +_08147044: .4byte sub_8147218 + thumb_func_end sub_8146E50 + + thumb_func_start sub_8147048 +sub_8147048: @ 8147048 + push {r4,r5,lr} + movs r4, 0 + ldr r0, _081470C8 + movs r1, 0x1 + strh r1, [r0] + ldr r1, _081470CC + ldr r0, [r1] + cmp r0, 0 + beq _081470A6 + adds r5, r1, 0 +_0814705C: + ldr r0, [r5] + bl sub_814737C + lsls r0, 24 + cmp r0, 0 + bne _0814710C + .if REVISION >= 1 + movs r0, 0x1 + movs r1, 0xA + movs r2, 0x1C + movs r3, 0x13 + .else + movs r0, 0x1 + movs r1, 0xC + movs r2, 0x1C + movs r3, 0x13 + .endif + bl MenuDrawTextWindow + ldr r0, _081470D0 + .if REVISION >= 1 + movs r1, 0x2 + movs r2, 0xB + .else + movs r1, 0x2 + movs r2, 0xD + .endif + bl MenuPrint + ldr r0, _081470D4 + ldrb r0, [r0] + bl sub_8125C3C + ldr r0, [r5] + cmp r0, 0 + beq _08147096 + ldr r0, _081470D8 + .if REVISION >= 1 + movs r1, 0x2 + movs r2, 0xB + .else + movs r1, 0x2 + movs r2, 0xD + .endif + bl MenuPrint +_08147096: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, [r5] + cmp r0, 0 + beq _081470A6 + cmp r4, 0x2 + bls _0814705C +_081470A6: + cmp r4, 0x3 + bne _081470E4 + .if REVISION >= 1 + movs r0, 0x1 + movs r1, 0xA + movs r2, 0x1C + movs r3, 0x13 + .else + movs r0, 0x1 + movs r1, 0xC + movs r2, 0x1C + movs r3, 0x13 + .endif + bl MenuDrawTextWindow + ldr r0, _081470DC + .if REVISION >= 1 + movs r1, 0x2 + movs r2, 0xB + .else + movs r1, 0x2 + movs r2, 0xD + .endif + bl MenuPrint + ldr r0, _081470E0 + bl SetMainCallback2 + b _0814713E + .align 2, 0 +_081470C8: .4byte gUnknown_0203933E +_081470CC: .4byte gUnknown_03005EA8 +_081470D0: .4byte gSystemText_CheckCompleteSaveAttempt +_081470D4: .4byte gUnknown_0203933C +_081470D8: .4byte gSystemText_SaveFailedBackupCheck +_081470DC: .4byte gSystemText_BackupDamagedGameContinue +_081470E0: .4byte sub_81471A4 +_081470E4: + .if REVISION >= 1 + movs r0, 0x1 + movs r1, 0xA + movs r2, 0x1C + movs r3, 0x13 + .else + movs r0, 0x1 + movs r1, 0xC + movs r2, 0x1C + movs r3, 0x13 + .endif + bl MenuDrawTextWindow + ldr r0, _08147104 + ldr r0, [r0] + cmp r0, 0 + bne _08147134 + ldr r0, _08147108 + .if REVISION >= 1 + movs r1, 0x2 + movs r2, 0xB + .else + movs r1, 0x2 + movs r2, 0xD + .endif + bl MenuPrint + b _0814713E + .align 2, 0 +_08147104: .4byte gUnknown_03005EBC +_08147108: .4byte gSystemText_SaveCompletedGameEnd +_0814710C: + .if REVISION >= 1 + movs r0, 0x1 + movs r1, 0xA + movs r2, 0x1C + movs r3, 0x13 + .else + movs r0, 0x1 + movs r1, 0xC + movs r2, 0x1C + movs r3, 0x13 + .endif + bl MenuDrawTextWindow + ldr r0, _0814712C + .if REVISION >= 1 + movs r1, 0x2 + movs r2, 0xB + .else + movs r1, 0x2 + movs r2, 0xD + .endif + bl MenuPrint + ldr r0, _08147130 + bl SetMainCallback2 + b _08147144 + .align 2, 0 +_0814712C: .4byte gSystemText_BackupDamagedGameContinue +_08147130: .4byte sub_8147154 +_08147134: + ldr r0, _0814714C + .if REVISION >= 1 + movs r1, 0x2 + movs r2, 0xB + .else + movs r1, 0x2 + movs r2, 0xD + .endif + bl MenuPrint +_0814713E: + ldr r0, _08147150 + bl SetMainCallback2 +_08147144: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814714C: .4byte gSystemText_SaveCompletedPressA +_08147150: .4byte sub_81471A4 + thumb_func_end sub_8147048 + + thumb_func_start sub_8147154 +sub_8147154: @ 8147154 + push {lr} + ldr r1, _08147190 + movs r0, 0 + strh r0, [r1] + ldr r0, _08147194 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0814718A + .if REVISION >= 1 + movs r0, 0x1 + movs r1, 0xA + movs r2, 0x1C + movs r3, 0x13 + .else + movs r0, 0x1 + movs r1, 0xC + movs r2, 0x1C + movs r3, 0x13 + .endif + bl MenuDrawTextWindow + ldr r0, _08147198 + .if REVISION >= 1 + movs r1, 0x2 + movs r2, 0xB + .else + movs r1, 0x2 + movs r2, 0xD + .endif + bl MenuPrint + ldr r0, _0814719C + bl SetVBlankCallback + ldr r0, _081471A0 + bl SetMainCallback2 +_0814718A: + pop {r0} + bx r0 + .align 2, 0 +_08147190: .4byte gUnknown_0203933E +_08147194: .4byte gMain +_08147198: .4byte gSystemText_GameplayEnded +_0814719C: .4byte sub_8146E3C +_081471A0: .4byte sub_81471A4 + thumb_func_end sub_8147154 + + thumb_func_start sub_81471A4 +sub_81471A4: @ 81471A4 + push {lr} + sub sp, 0x4 + ldr r0, _081471DC + movs r2, 0 + strh r2, [r0] + ldr r0, _081471E0 + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081471D4 + movs r0, 0x1 + negs r0, r0 + str r2, [sp] + movs r1, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _081471E4 + bl SetVBlankCallback + ldr r0, _081471E8 + bl SetMainCallback2 +_081471D4: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_081471DC: .4byte gUnknown_0203933E +_081471E0: .4byte gMain +_081471E4: .4byte sub_8146E3C +_081471E8: .4byte sub_81471EC + thumb_func_end sub_81471A4 + + thumb_func_start sub_81471EC +sub_81471EC: @ 81471EC + push {r4,r5,lr} + bl UpdatePaletteFade + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08147212 + ldr r5, _08147208 + ldr r0, [r5] + cmp r0, 0 + bne _0814720C + bl DoSoftReset + b _08147212 + .align 2, 0 +_08147208: .4byte gUnknown_03005EBC +_0814720C: + bl SetMainCallback2 + str r4, [r5] +_08147212: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81471EC + + thumb_func_start sub_8147218 +sub_8147218: @ 8147218 + push {r4,r5,lr} + ldr r0, _08147290 + mov r12, r0 + ldr r0, [r0, 0x24] + lsrs r4, r0, 3 + movs r0, 0x7 + ands r4, r0 + ldr r0, _08147294 + ldr r1, [r0, 0x4] + ldr r0, [r0] + mov r2, r12 + str r0, [r2, 0x3C] + str r1, [r2, 0x40] + ldrh r1, [r2, 0x3E] + ldr r0, _08147298 + ands r0, r1 + movs r1, 0x70 + orrs r0, r1 + strh r0, [r2, 0x3E] + mov r1, r12 + adds r1, 0x3C + .if REVISION >= 1 + movs r0, 0x38 + .else + movs r0, 0x48 + .endif + strb r0, [r1] + ldr r0, _0814729C + ldrh r0, [r0] + cmp r0, 0 + beq _081472A8 + ldr r3, _081472A0 + lsls r2, r4, 1 + adds r2, r4 + adds r0, r2, r3 + mov r4, r12 + adds r4, 0x40 + ldrb r5, [r0] + ldrh r1, [r4] + ldr r0, _081472A4 + ands r0, r1 + orrs r0, r5 + strh r0, [r4] + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r1, 4 + adds r3, 0x1 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 3 + orrs r1, r0 + mov r3, r12 + adds r3, 0x3F + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r2, [r3] + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _081472B8 + .align 2, 0 +_08147290: .4byte gMain +_08147294: .4byte gUnknown_08411940 +_08147298: .4byte 0xfffffe00 +_0814729C: .4byte gUnknown_0203933E +_081472A0: .4byte gUnknown_08411948 +_081472A4: .4byte 0xfffffc00 +_081472A8: + mov r2, r12 + adds r2, 0x40 + ldrh r1, [r2] + ldr r0, _081472D8 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] +_081472B8: + ldr r0, _081472DC + movs r1, 0xE0 + lsls r1, 19 + movs r2, 0x1 + bl CpuFastSet + ldr r1, _081472E0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + beq _081472D0 + subs r0, 0x1 + strh r0, [r1, 0x2] +_081472D0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081472D8: .4byte 0xfffffc00 +_081472DC: .4byte gMain + 0x3C +_081472E0: .4byte gUnknown_0203933E + thumb_func_end sub_8147218 + + thumb_func_start sub_81472E4 +sub_81472E4: @ 81472E4 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, _08147308 + movs r3, 0x80 + lsls r3, 5 + movs r1, 0 + adds r2, r4, 0 + bl ReadFlash + movs r1, 0 + ldr r2, _0814730C +_081472FC: + ldr r0, [r4] + cmp r0, 0 + beq _08147310 + movs r0, 0x1 + b _0814731E + .align 2, 0 +_08147308: .4byte 0x02000000 +_0814730C: .4byte 0x000003ff +_08147310: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + adds r4, 0x4 + cmp r1, r2 + bls _081472FC + movs r0, 0 +_0814731E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81472E4 + + thumb_func_start sub_8147324 +sub_8147324: @ 8147324 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r6, r0, 16 + movs r0, 0 + ldr r1, _08147374 + mov r8, r1 + ldr r7, _08147378 +_08147336: + movs r4, 0 + adds r5, r0, 0x1 +_0814733A: + ldr r3, [r7] + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0 + bl _call_via_r3 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r8 + bls _0814733A + adds r0, r6, 0 + bl sub_81472E4 + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r5, 16 + lsrs r0, 16 + cmp r1, 0 + beq _08147366 + cmp r0, 0x81 + bls _08147336 +_08147366: + adds r0, r1, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08147374: .4byte 0x00000fff +_08147378: .4byte ProgramFlashByte + thumb_func_end sub_8147324 + + thumb_func_start sub_814737C +sub_814737C: @ 814737C + push {r4-r6,lr} + adds r5, r0, 0 + movs r6, 0 +_08147382: + movs r4, 0x1 + lsls r4, r6 + adds r0, r5, 0 + ands r0, r4 + cmp r0, 0 + beq _0814739C + adds r0, r6, 0 + bl sub_8147324 + lsls r0, 24 + cmp r0, 0 + bne _0814739C + bics r5, r4 +_0814739C: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x1F + bls _08147382 + cmp r5, 0 + beq _081473AE + movs r0, 0x1 + b _081473B0 +_081473AE: + movs r0, 0 +_081473B0: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_814737C + + thumb_func_start sub_81473B8 +sub_81473B8: @ 81473B8 + push {lr} + ldr r0, _081473E8 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _08147400 + ldr r2, _081473EC + ldrh r1, [r2, 0x4] + ldr r0, _081473F0 + cmp r1, r0 + bne _08147400 + ldr r1, [r2] + ldr r0, _081473F4 + cmp r1, r0 + beq _081473E4 + ldr r0, _081473F8 + cmp r1, r0 + beq _081473E4 + ldr r0, _081473FC + cmp r1, r0 + bne _08147400 +_081473E4: + movs r0, 0x1 + b _08147402 + .align 2, 0 +_081473E8: .4byte 0x0000084f +_081473EC: .4byte gSaveBlock1 +_081473F0: .4byte 0x00004718 +_081473F4: .4byte 0x0003000a +_081473F8: .4byte 0x00030009 +_081473FC: .4byte 0x0003000b +_08147400: + movs r0, 0 +_08147402: + pop {r1} + bx r1 + thumb_func_end sub_81473B8 + + thumb_func_start sub_8147408 +sub_8147408: @ 8147408 + push {lr} + ldr r2, _08147460 + movs r0, 0x10 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _08147464 + movs r0, 0x11 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + movs r2, 0x8B + lsls r2, 2 + movs r0, 0x12 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _08147468 + movs r0, 0x10 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + ldr r2, _0814746C + movs r0, 0x11 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + ldr r2, _08147470 + movs r0, 0x12 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, 0x14 + bl PlaySE + ldr r0, _08147474 + bl FlagSet + bl ScriptContext2_Disable + pop {r0} + bx r0 + .align 2, 0 +_08147460: .4byte 0x0000022a +_08147464: .4byte 0x0000022b +_08147468: .4byte 0x00000e32 +_0814746C: .4byte 0x00000233 +_08147470: .4byte 0x00000e34 +_08147474: .4byte 0x0000084f + thumb_func_end sub_8147408 + + thumb_func_start sub_8147478 +sub_8147478: @ 8147478 + push {r4,lr} + ldr r4, _081474B4 + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + ldr r1, _081474B8 + cmp r0, r1 + bne _081474C0 + bl CalculatePlayerPartyCount + ldr r0, _081474BC + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + adds r1, r4, 0 + subs r1, 0x64 + adds r0, r1 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + movs r1, 0x9D + lsls r1, 1 + cmp r0, r1 + bne _081474C0 + movs r0, 0x1 + b _081474C2 + .align 2, 0 +_081474B4: .4byte gPlayerParty +_081474B8: .4byte 0x0000017d +_081474BC: .4byte gPlayerPartyCount +_081474C0: + movs r0, 0 +_081474C2: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8147478 + + thumb_func_start sub_81474C8 +sub_81474C8: @ 81474C8 + push {lr} + movs r0, 0x85 + lsls r0, 4 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _0814750C + ldr r2, _081474FC + ldrh r1, [r2, 0x4] + movs r0, 0xC3 + lsls r0, 3 + cmp r1, r0 + bne _0814750C + ldr r1, [r2] + ldr r0, _08147500 + cmp r1, r0 + beq _081474F8 + ldr r0, _08147504 + cmp r1, r0 + beq _081474F8 + ldr r0, _08147508 + cmp r1, r0 + bne _0814750C +_081474F8: + movs r0, 0x1 + b _0814750E + .align 2, 0 +_081474FC: .4byte gSaveBlock1 +_08147500: .4byte 0x0017000a +_08147504: .4byte 0x00170009 +_08147508: .4byte 0x0017000b +_0814750C: + movs r0, 0 +_0814750E: + pop {r1} + bx r1 + thumb_func_end sub_81474C8 + + thumb_func_start sub_8147514 +sub_8147514: @ 8147514 + push {lr} + movs r0, 0x28 + bl FieldEffectActiveListRemove + ldr r2, _08147574 + movs r0, 0xE + movs r1, 0x1A + bl MapGridSetMetatileIdAt + ldr r2, _08147578 + movs r0, 0xF + movs r1, 0x1A + bl MapGridSetMetatileIdAt + movs r2, 0x8B + lsls r2, 2 + movs r0, 0x10 + movs r1, 0x1A + bl MapGridSetMetatileIdAt + ldr r2, _0814757C + movs r0, 0xE + movs r1, 0x1B + bl MapGridSetMetatileIdAt + ldr r2, _08147580 + movs r0, 0xF + movs r1, 0x1B + bl MapGridSetMetatileIdAt + ldr r2, _08147584 + movs r0, 0x10 + movs r1, 0x1B + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, 0x14 + bl PlaySE + movs r0, 0x85 + lsls r0, 4 + bl FlagSet + bl ScriptContext2_Disable + pop {r0} + bx r0 + .align 2, 0 +_08147574: .4byte 0x0000022a +_08147578: .4byte 0x0000022b +_0814757C: .4byte 0x00000e32 +_08147580: .4byte 0x00000233 +_08147584: .4byte 0x00000e34 + thumb_func_end sub_8147514 + + thumb_func_start sub_8147588 +sub_8147588: @ 8147588 + push {lr} + ldr r0, _081475AC + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _081475BC + ldr r2, _081475B0 + ldrh r1, [r2, 0x4] + ldr r0, _081475B4 + cmp r1, r0 + bne _081475BC + ldr r1, [r2] + ldr r0, _081475B8 + cmp r1, r0 + bne _081475BC + movs r0, 0x1 + b _081475BE + .align 2, 0 +_081475AC: .4byte 0x00000852 +_081475B0: .4byte gSaveBlock1 +_081475B4: .4byte 0x00004418 +_081475B8: .4byte 0x00190008 +_081475BC: + movs r0, 0 +_081475BE: + pop {r1} + bx r1 + thumb_func_end sub_8147588 + + thumb_func_start sub_81475C4 +sub_81475C4: @ 81475C4 + push {lr} + ldr r0, _081475D8 + ldr r1, _081475DC + ldrb r1, [r1] + str r1, [r0] + movs r0, 0x3C + bl FieldEffectStart + pop {r0} + bx r0 + .align 2, 0 +_081475D8: .4byte gUnknown_0202FF84 +_081475DC: .4byte gUnknown_03005CE0 + thumb_func_end sub_81475C4 + + thumb_func_start sub_81475E0 +sub_81475E0: @ 81475E0 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08147604 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _08147608 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08147604: .4byte gTasks +_08147608: .4byte sub_814760C + thumb_func_end sub_81475E0 + + thumb_func_start sub_814760C +sub_814760C: @ 814760C + push {lr} + movs r0, 0x3C + bl FieldEffectActiveListRemove + bl sub_814761C + pop {r0} + bx r0 + thumb_func_end sub_814760C + + thumb_func_start sub_814761C +sub_814761C: @ 814761C + push {lr} + ldr r2, _08147674 + movs r0, 0xE + movs r1, 0x1A + bl MapGridSetMetatileIdAt + ldr r2, _08147678 + movs r0, 0xF + movs r1, 0x1A + bl MapGridSetMetatileIdAt + movs r2, 0x8B + lsls r2, 2 + movs r0, 0x10 + movs r1, 0x1A + bl MapGridSetMetatileIdAt + ldr r2, _0814767C + movs r0, 0xE + movs r1, 0x1B + bl MapGridSetMetatileIdAt + ldr r2, _08147680 + movs r0, 0xF + movs r1, 0x1B + bl MapGridSetMetatileIdAt + ldr r2, _08147684 + movs r0, 0x10 + movs r1, 0x1B + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + movs r0, 0x14 + bl PlaySE + ldr r0, _08147688 + bl FlagSet + bl ScriptContext2_Disable + pop {r0} + bx r0 + .align 2, 0 +_08147674: .4byte 0x0000022a +_08147678: .4byte 0x0000022b +_0814767C: .4byte 0x00000e32 +_08147680: .4byte 0x00000233 +_08147684: .4byte 0x00000e34 +_08147688: .4byte 0x00000852 + thumb_func_end sub_814761C + + thumb_func_start sub_814768C +sub_814768C: @ 814768C + push {lr} + ldr r0, _081476A8 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _081476A2 + ldr r0, _081476AC + movs r1, 0x50 + bl CreateTask +_081476A2: + pop {r0} + bx r0 + .align 2, 0 +_081476A8: .4byte 0x00000851 +_081476AC: .4byte sub_81476B0 + thumb_func_end sub_814768C + + thumb_func_start sub_81476B0 +sub_81476B0: @ 81476B0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _081476D4 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x4 + bhi _0814776A + lsls r0, 2 + ldr r1, _081476D8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081476D4: .4byte gUnknown_03004B28 +_081476D8: .4byte _081476DC + .align 2, 0 +_081476DC: + .4byte _081476F0 + .4byte _081476FE + .4byte _08147730 + .4byte _08147748 + .4byte _0814775A +_081476F0: + movs r1, 0xE1 + lsls r1, 5 + adds r0, r1, 0 + strh r0, [r4, 0x2] + movs r0, 0x1 + strh r0, [r4] + b _0814776A +_081476FE: + bl sub_8147774 + cmp r0, 0 + beq _08147716 + bl MenuZeroFillScreen + movs r0, 0x5 + bl PlaySE + movs r0, 0x2 + strh r0, [r4] + b _0814776A +_08147716: + ldrh r0, [r4, 0x2] + subs r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + cmp r0, 0 + bne _0814776A + bl MenuZeroFillScreen + movs r0, 0x3 + strh r0, [r4] + movs r0, 0x1E + strh r0, [r4, 0x2] + b _0814776A +_08147730: + bl sub_8147774 + cmp r0, 0 + beq _08147748 + bl sub_8064E2C + adds r0, r5, 0 + bl DestroyTask + bl ScriptContext2_Disable + b _0814776A +_08147748: + ldrh r0, [r4, 0x2] + subs r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + cmp r0, 0 + bne _0814776A + movs r0, 0x4 + strh r0, [r4] + b _0814776A +_0814775A: + bl sub_8064E2C + ldr r0, _08147770 + bl ScriptContext1_SetupScript + adds r0, r5, 0 + bl DestroyTask +_0814776A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08147770: .4byte gUnknown_0815EF19 + thumb_func_end sub_81476B0 + + thumb_func_start sub_8147774 +sub_8147774: @ 8147774 + push {lr} + movs r1, 0xFF + ldr r0, _081477A4 + ldrb r2, [r0, 0x13] + cmp r2, 0x1 + bne _08147788 + movs r3, 0xC0 + lsls r3, 2 + adds r0, r3, 0 + orrs r1, r0 +_08147788: + cmp r2, 0x2 + bne _08147794 + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + orrs r1, r0 +_08147794: + ldr r0, _081477A8 + ldrh r0, [r0, 0x2E] + ands r1, r0 + cmp r1, 0 + bne _081477AC + movs r0, 0 + b _081477AE + .align 2, 0 +_081477A4: .4byte gSaveBlock2 +_081477A8: .4byte gMain +_081477AC: + movs r0, 0x1 +_081477AE: + pop {r1} + bx r1 + thumb_func_end sub_8147774 + + thumb_func_start sub_81477B4 +sub_81477B4: @ 81477B4 + push {lr} + ldr r0, _081477E8 + movs r1, 0x9 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081477EC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0xA] + strh r0, [r1, 0xC] + movs r0, 0x2 + strh r0, [r1, 0x10] + movs r0, 0x5 + strh r0, [r1, 0x12] + movs r0, 0x32 + strh r0, [r1, 0x14] + movs r0, 0 + bl SetCameraPanningCallback + pop {r0} + bx r0 + .align 2, 0 +_081477E8: .4byte sub_814782C +_081477EC: .4byte gTasks + thumb_func_end sub_81477B4 + + thumb_func_start sub_81477F0 +sub_81477F0: @ 81477F0 + push {lr} + ldr r0, _08147824 + movs r1, 0x9 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08147828 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0xA] + strh r0, [r1, 0xC] + movs r0, 0x3 + strh r0, [r1, 0x10] + movs r0, 0x5 + strh r0, [r1, 0x12] + movs r0, 0x2 + strh r0, [r1, 0x14] + movs r0, 0 + bl SetCameraPanningCallback + pop {r0} + bx r0 + .align 2, 0 +_08147824: .4byte sub_814782C +_08147828: .4byte gTasks + thumb_func_end sub_81477F0 + + thumb_func_start sub_814782C +sub_814782C: @ 814782C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0814788C + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _08147884 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + ldrh r0, [r4, 0x10] + negs r0, r0 + strh r0, [r4, 0x10] + movs r0, 0x10 + ldrsh r1, [r4, r0] + movs r0, 0 + bl SetCameraPanning + movs r2, 0xC + ldrsh r1, [r4, r2] + movs r2, 0x14 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _08147884 + adds r0, r5, 0 + bl DestroyTask + bl EnableBothScriptContexts + bl InstallCameraPanAheadCallback +_08147884: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814788C: .4byte gTasks + thumb_func_end sub_814782C + + thumb_func_start sub_8147890 +sub_8147890: @ 8147890 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8147890 + + thumb_func_start sub_81478A8 +sub_81478A8: @ 81478A8 + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_81478A8 + + thumb_func_start sub_81478BC +sub_81478BC: @ 81478BC + push {r4,lr} + sub sp, 0x4 + ldr r0, _081478D8 + ldr r1, _081478DC + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xD + bls _081478CE + b _08147AD0 +_081478CE: + lsls r0, 2 + ldr r1, _081478E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081478D8: .4byte gMain +_081478DC: .4byte 0x0000043c +_081478E0: .4byte _081478E4 + .align 2, 0 +_081478E4: + .4byte _0814791C + .4byte _08147938 + .4byte _0814794C + .4byte _08147960 + .4byte _08147966 + .4byte _08147980 + .4byte _0814798C + .4byte _081479B8 + .4byte _081479DC + .4byte _081479F4 + .4byte _08147A20 + .4byte _08147A3C + .4byte _08147A5C + .4byte _08147A8C +_0814791C: + bl sub_80F9438 + bl sub_80F9368 + bl sub_8147B04 + ldr r1, _08147930 + ldr r2, _08147934 + adds r1, r2 + b _08147A4A + .align 2, 0 +_08147930: .4byte gMain +_08147934: .4byte 0x0000043c +_08147938: + bl ResetPaletteFade + ldr r2, _08147948 + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + b _08147A44 + .align 2, 0 +_08147948: .4byte gPaletteFade +_0814794C: + bl ResetSpriteData + ldr r1, _08147958 + ldr r2, _0814795C + adds r1, r2 + b _08147A4A + .align 2, 0 +_08147958: .4byte gMain +_0814795C: .4byte 0x0000043c +_08147960: + bl FreeAllSpritePalettes + b _08147A44 +_08147966: + ldr r0, _08147974 + bl SetUpWindowConfig + ldr r1, _08147978 + ldr r2, _0814797C + adds r1, r2 + b _08147A4A + .align 2, 0 +_08147974: .4byte gWindowConfig_81E6E50 +_08147978: .4byte gMain +_0814797C: .4byte 0x0000043c +_08147980: + ldr r0, _08147988 + bl MultistepInitMenuWindowBegin + b _08147A44 + .align 2, 0 +_08147988: .4byte gWindowConfig_81E6E50 +_0814798C: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _08147996 + b _08147AD0 +_08147996: + ldr r0, _081479A8 + ldr r1, _081479AC + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldr r1, _081479B0 + ldr r2, _081479B4 + adds r1, r2 + b _08147A4A + .align 2, 0 +_081479A8: .4byte 0x02000000 +_081479AC: .4byte 0x0001ffff +_081479B0: .4byte gMain +_081479B4: .4byte 0x0000043c +_081479B8: + ldr r0, _081479D4 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _081479D8 + adds r0, r1 + bl sub_8147B20 + lsls r0, 24 + cmp r0, 0 + bne _081479D0 + b _08147AD0 +_081479D0: + b _08147A44 + .align 2, 0 +_081479D4: .4byte gUnknown_02039310 +_081479D8: .4byte gPlayerParty +_081479DC: + bl sub_81480B4 + ldr r1, _081479EC + ldr r2, _081479F0 + adds r1, r2 + strb r0, [r1] + b _08147A44 + .align 2, 0 +_081479EC: .4byte 0x02000000 +_081479F0: .4byte 0x0001fffd +_081479F4: + ldr r0, _08147A10 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08147A14 + adds r0, r1 + bl sub_8147F84 + ldr r1, _08147A18 + ldr r2, _08147A1C + adds r1, r2 + strb r0, [r1] + b _08147A44 + .align 2, 0 +_08147A10: .4byte gUnknown_02039310 +_08147A14: .4byte gPlayerParty +_08147A18: .4byte 0x02000000 +_08147A1C: .4byte 0x0001fffe +_08147A20: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r1, _08147A34 + ldr r2, _08147A38 + adds r1, r2 + b _08147A4A + .align 2, 0 +_08147A34: .4byte gMain +_08147A38: .4byte 0x0000043c +_08147A3C: + bl sub_8055870 + cmp r0, 0x1 + beq _08147AD0 +_08147A44: + ldr r1, _08147A54 + ldr r0, _08147A58 + adds r1, r0 +_08147A4A: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08147AD0 + .align 2, 0 +_08147A54: .4byte gMain +_08147A58: .4byte 0x0000043c +_08147A5C: + ldr r3, _08147AB0 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _08147AB4 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08147AB8 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08147ABC + bl SetVBlankCallback + ldr r1, _08147AC0 + ldr r2, _08147AC4 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08147A8C: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _08147AC8 + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _08147ACC + bl SetMainCallback2 + movs r0, 0x1 + b _08147AD2 + .align 2, 0 +_08147AB0: .4byte 0x04000208 +_08147AB4: .4byte 0x04000200 +_08147AB8: .4byte REG_DISPSTAT +_08147ABC: .4byte sub_81478A8 +_08147AC0: .4byte gMain +_08147AC4: .4byte 0x0000043c +_08147AC8: .4byte gPaletteFade +_08147ACC: .4byte sub_8147890 +_08147AD0: + movs r0, 0 +_08147AD2: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81478BC + + thumb_func_start sub_8147ADC +sub_8147ADC: @ 8147ADC + push {lr} +_08147ADE: + bl sub_81478BC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08147AF2 + movs r0, 0x1 + bl sub_8147DDC + b _08147AFE +_08147AF2: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08147ADE +_08147AFE: + pop {r0} + bx r0 + thumb_func_end sub_8147ADC + + thumb_func_start sub_8147B04 +sub_8147B04: @ 8147B04 + ldr r1, _08147B18 + ldr r2, _08147B1C + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + movs r2, 0x9A + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_08147B18: .4byte REG_BG1CNT +_08147B1C: .4byte 0x00001d02 + thumb_func_end sub_8147B04 + + thumb_func_start sub_8147B20 +sub_8147B20: @ 8147B20 + push {r4-r6,lr} + sub sp, 0xC + adds r4, r0, 0 + ldr r0, _08147B40 + ldr r1, _08147B44 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x8 + bls _08147B34 + b _08147C84 +_08147B34: + lsls r0, 2 + ldr r1, _08147B48 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08147B40: .4byte 0x02000000 +_08147B44: .4byte 0x0001ffff +_08147B48: .4byte _08147B4C + .align 2, 0 +_08147B4C: + .4byte _08147B70 + .4byte _08147BB8 + .4byte _08147BF0 + .4byte _08147BFC + .4byte _08147C08 + .4byte _08147C14 + .4byte _08147C2C + .4byte _08147C38 + .4byte _08147C60 +_08147B70: + 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 r6, r0, 0 + lsls r0, r5, 3 + ldr r1, _08147BAC + adds r0, r1 + ldr r1, _08147BB0 + lsls r2, r5, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08147BB4 + ldr r4, [r4, 0x4] + str r4, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + bl sub_800D334 + b _08147C40 + .align 2, 0 +_08147BAC: .4byte gMonFrontPicTable +_08147BB0: .4byte gMonFrontPicCoords +_08147BB4: .4byte gUnknown_081FAF4C +_08147BB8: + 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 r6, r0, 0 + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + adds r1, r0, 0 + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_80409C8 + adds r4, r0, 0 + bl LoadCompressedObjectPalette + ldrh r0, [r4, 0x4] + movs r1, 0x1 + bl GetMonSpriteTemplate_803C56C + b _08147C40 +_08147BF0: + ldr r0, _08147BF8 + bl LoadCompressedObjectPic + b _08147C40 + .align 2, 0 +_08147BF8: .4byte gUnknown_083F7F74 +_08147BFC: + ldr r0, _08147C04 + bl LoadCompressedObjectPalette + b _08147C40 + .align 2, 0 +_08147C04: .4byte gUnknown_083F7F7C +_08147C08: + ldr r0, _08147C10 + bl LoadCompressedObjectPic + b _08147C40 + .align 2, 0 +_08147C10: .4byte gUnknown_084121DC +_08147C14: + ldr r0, _08147C24 + ldrb r0, [r0] + bl sub_8147C90 + ldr r0, _08147C28 + bl LoadCompressedObjectPalette + b _08147C40 + .align 2, 0 +_08147C24: .4byte word_203855E +_08147C28: .4byte gUnknown_02039350 +_08147C2C: + ldr r0, _08147C34 + movs r1, 0xC0 + lsls r1, 19 + b _08147C3C + .align 2, 0 +_08147C34: .4byte gBattleTerrainTiles_Building +_08147C38: + ldr r0, _08147C50 + ldr r1, _08147C54 +_08147C3C: + bl LZDecompressVram +_08147C40: + ldr r1, _08147C58 + ldr r0, _08147C5C + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08147C84 + .align 2, 0 +_08147C50: .4byte gUnknown_08E782FC +_08147C54: .4byte 0x0600e800 +_08147C58: .4byte 0x02000000 +_08147C5C: .4byte 0x0001ffff +_08147C60: + ldr r0, _08147C78 + movs r1, 0x20 + movs r2, 0x60 + bl LoadCompressedPalette + ldr r0, _08147C7C + ldr r1, _08147C80 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + b _08147C86 + .align 2, 0 +_08147C78: .4byte gBattleTerrainPalette_BattleTower +_08147C7C: .4byte 0x02000000 +_08147C80: .4byte 0x0001ffff +_08147C84: + movs r0, 0 +_08147C86: + add sp, 0xC + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8147B20 + + thumb_func_start sub_8147C90 +sub_8147C90: @ 8147C90 + push {lr} + lsls r0, 24 + lsrs r0, 21 + ldr r1, _08147CB8 + adds r0, r1 + movs r1, 0 + bl sub_810CA9C + lsls r0, 24 + ldr r2, _08147CBC + ldr r1, _08147CC0 + lsrs r0, 22 + subs r0, 0x4 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r0, _08147CC4 + strh r0, [r2, 0x4] + pop {r0} + bx r0 + .align 2, 0 +_08147CB8: .4byte gSaveBlock1 + 0x7F8 +_08147CBC: .4byte gUnknown_02039350 +_08147CC0: .4byte gUnknown_084120A4 +_08147CC4: .4byte 0x000039e2 + thumb_func_end sub_8147C90 + + thumb_func_start sub_8147CC8 +sub_8147CC8: @ 8147CC8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08147D00 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08147CDC + b _08147DCE +_08147CDC: + ldr r0, _08147D04 + lsls r2, r4, 2 + adds r1, r2, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0x8 + ldrsh r3, [r1, r0] + ldr r0, _08147D08 + adds r5, r2, 0 + cmp r3, r0 + beq _08147D50 + cmp r3, r0 + bgt _08147D0C + cmp r3, 0 + beq _08147D20 + cmp r3, 0xFF + beq _08147D38 + b _08147D8C + .align 2, 0 +_08147D00: .4byte gPaletteFade +_08147D04: .4byte gTasks +_08147D08: .4byte 0x0000010d +_08147D0C: + ldr r0, _08147D1C + cmp r3, r0 + beq _08147D68 + adds r0, 0x10 + cmp r3, r0 + beq _08147D80 + b _08147D8C + .align 2, 0 +_08147D1C: .4byte 0x00000119 +_08147D20: + ldr r0, _08147D30 + strb r3, [r0] + ldr r0, _08147D34 + strh r3, [r0] + bl sub_81481DC + b _08147D8C + .align 2, 0 +_08147D30: .4byte gUnknown_03005F3C +_08147D34: .4byte gUnknown_03005F94 +_08147D38: + ldr r0, _08147D48 + ldr r2, _08147D4C + adds r0, r2 + ldrb r0, [r0] + ldrb r1, [r1, 0xA] + bl sub_8148108 + b _08147D8C + .align 2, 0 +_08147D48: .4byte 0x02000000 +_08147D4C: .4byte 0x0001fffd +_08147D50: + bl sub_814817C + ldr r1, _08147D60 + ldr r2, _08147D64 + adds r1, r2 + strb r0, [r1] + b _08147D8C + .align 2, 0 +_08147D60: .4byte 0x02000000 +_08147D64: .4byte 0x0001fffc +_08147D68: + ldr r0, _08147D78 + ldr r1, _08147D7C + adds r0, r1 + ldrb r0, [r0] + bl sub_8148044 + b _08147D8C + .align 2, 0 +_08147D78: .4byte 0x02000000 +_08147D7C: .4byte 0x0001fffe +_08147D80: + ldr r0, _08147D88 + str r0, [r1] + b _08147DCE + .align 2, 0 +_08147D88: .4byte sub_8147E40 +_08147D8C: + ldr r0, _08147DA0 + ldr r1, _08147DA4 + ldrh r2, [r0] + ldrh r0, [r1] + cmp r2, r0 + bcs _08147DA8 + bl sub_814825C + b _08147DB8 + .align 2, 0 +_08147DA0: .4byte gUnknown_03005F94 +_08147DA4: .4byte gUnknown_03005F34 +_08147DA8: + cmp r2, r0 + bne _08147DB8 + ldr r0, _08147DD4 + adds r1, r5, r4 + lsls r1, 3 + adds r1, r0 + movs r0, 0xFE + strh r0, [r1, 0x8] +_08147DB8: + ldr r1, _08147DD8 + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + ldr r0, _08147DD4 + adds r1, r5, r4 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_08147DCE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08147DD4: .4byte gTasks +_08147DD8: .4byte gUnknown_03005F94 + thumb_func_end sub_8147CC8 + + thumb_func_start sub_8147DDC +sub_8147DDC: @ 8147DDC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08147E08 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08147E0C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + strh r4, [r1, 0xA] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147E08: .4byte sub_8147CC8 +_08147E0C: .4byte gTasks + thumb_func_end sub_8147DDC + + thumb_func_start sub_8147E10 +sub_8147E10: @ 8147E10 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl MenuUpdateWindowText + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08147E30 + ldr r0, _08147E38 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _08147E3C + str r0, [r1] +_08147E30: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147E38: .4byte gTasks +_08147E3C: .4byte sub_8147F4C + thumb_func_end sub_8147E10 + + thumb_func_start sub_8147E40 +sub_8147E40: @ 8147E40 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08147E94 + ldrb r1, [r0] + movs r0, 0x64 + adds r5, r1, 0 + muls r5, r0 + ldr r0, _08147E98 + adds r5, r0 + ldr r0, _08147E9C + ldrh r4, [r0] + lsls r4, 3 + ldr r0, _08147EA0 + adds r4, r0 + adds r0, r5, 0 + bl GetNature + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + bl sub_810CAE4 + ldr r6, _08147EA4 + strh r0, [r6] + ldr r1, _08147EA8 + adds r0, r5, 0 + bl GetMonNickname + ldr r1, _08147EAC + adds r0, r4, 0 + bl sub_810CB44 + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08147EB8 + ldr r0, _08147EB0 + ldr r1, _08147EB4 + bl StringExpandPlaceholders + b _08147ED8 + .align 2, 0 +_08147E94: .4byte gUnknown_02039310 +_08147E98: .4byte gPlayerParty +_08147E9C: .4byte word_203855E +_08147EA0: .4byte gSaveBlock1 + 0x7F8 +_08147EA4: .4byte gUnknown_02039312 +_08147EA8: .4byte gStringVar1 +_08147EAC: .4byte gStringVar2 +_08147EB0: .4byte gStringVar4 +_08147EB4: .4byte gContestStatsText_NormallyAte +_08147EB8: + cmp r0, 0 + ble _08147ED0 + ldr r0, _08147EC8 + ldr r1, _08147ECC + bl StringExpandPlaceholders + b _08147ED8 + .align 2, 0 +_08147EC8: .4byte gStringVar4 +_08147ECC: .4byte gContestStatsText_HappilyAte +_08147ED0: + ldr r0, _08147EF8 + ldr r1, _08147EFC + bl StringExpandPlaceholders +_08147ED8: + ldr r0, _08147EF8 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrintMessage + ldr r1, _08147F00 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, _08147F04 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08147EF8: .4byte gStringVar4 +_08147EFC: .4byte gContestStatsText_DisdainfullyAte +_08147F00: .4byte gTasks +_08147F04: .4byte sub_8147E10 + thumb_func_end sub_8147E40 + + thumb_func_start sub_8147F08 +sub_8147F08: @ 8147F08 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08147F3C + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08147F34 + ldr r0, _08147F40 + ldr r1, _08147F44 + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + ldr r0, _08147F48 + ldr r0, [r0, 0x8] + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_08147F34: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147F3C: .4byte gPaletteFade +_08147F40: .4byte gMPlay_BGM +_08147F44: .4byte 0x0000ffff +_08147F48: .4byte gMain + thumb_func_end sub_8147F08 + + thumb_func_start sub_8147F4C +sub_8147F4C: @ 8147F4C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08147F7C + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08147F80 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08147F7C: .4byte gTasks +_08147F80: .4byte sub_8147F08 + thumb_func_end sub_8147F4C + + thumb_func_start sub_8147F84 +sub_8147F84: @ 8147F84 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r5, r0, 0 + movs r1, 0x41 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08148024 + movs r1, 0x30 + movs r2, 0x50 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _08148028 + strh r4, [r0] + ldr r0, _0814802C + mov r1, r8 + strb r1, [r0] + adds r0, r5, 0 + bl GetNature + ldr r1, _08148030 + strb r0, [r1] + ldr r7, _08148034 + mov r1, r8 + lsls r0, r1, 4 + add r0, r8 + lsls r5, r0, 2 + adds r6, r5, r7 + strh r4, [r6, 0x32] + adds r0, r7, 0 + adds r0, 0x1C + adds r0, r5, r0 + ldr r1, _08148038 + str r1, [r0] + ldr r0, _0814803C + mov r9, r0 + movs r0, 0x1 + mov r1, r9 + strb r0, [r1] + adds r0, r4, 0 + bl sub_8040A3C + lsls r0, 24 + cmp r0, 0 + bne _08148016 + adds r0, r7, 0 + adds r0, 0x10 + adds r0, r5, r0 + ldr r1, _08148040 + str r1, [r0] + ldrb r3, [r6, 0x1] + movs r0, 0x3 + orrs r3, r0 + strb r3, [r6, 0x1] + lsrs r1, r3, 6 + ldrb r2, [r6, 0x3] + lsrs r2, 6 + lsls r3, 30 + lsrs r3, 30 + adds r0, r6, 0 + bl CalcCenterToCornerVec + movs r0, 0 + mov r1, r9 + strb r0, [r1] +_08148016: + mov r0, r8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08148024: .4byte gUnknown_02024E8C +_08148028: .4byte gUnknown_03005F24 +_0814802C: .4byte gUnknown_03005F2C +_08148030: .4byte gUnknown_03005F30 +_08148034: .4byte gSprites +_08148038: .4byte SpriteCallbackDummy +_0814803C: .4byte gUnknown_03005F28 +_08148040: .4byte gSpriteAffineAnimTable_84120EC + thumb_func_end sub_8147F84 + + thumb_func_start sub_8148044 +sub_8148044: @ 8148044 + lsls r0, 24 + lsrs r0, 24 + ldr r3, _0814806C + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r2, r1, r3 + movs r0, 0x30 + strh r0, [r2, 0x20] + movs r0, 0x50 + strh r0, [r2, 0x22] + ldr r0, _08148070 + strh r0, [r2, 0x2E] + movs r0, 0x1 + strh r0, [r2, 0x30] + adds r3, 0x1C + adds r1, r3 + ldr r0, _08148074 + str r0, [r1] + bx lr + .align 2, 0 +_0814806C: .4byte gSprites +_08148070: .4byte 0x0000fff8 +_08148074: .4byte sub_8148078 + thumb_func_end sub_8148044 + + thumb_func_start sub_8148078 +sub_8148078: @ 8148078 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x2E] + ldrh r2, [r4, 0x22] + adds r1, r0, r2 + strh r1, [r4, 0x22] + ldrh r1, [r4, 0x30] + adds r0, r1 + strh r0, [r4, 0x2E] + lsls r0, 16 + cmp r0, 0 + bne _0814809E + ldrh r0, [r4, 0x32] + movs r1, 0 + bl PlayCry1 +_0814809E: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x9 + bne _081480AA + ldr r0, _081480B0 + str r0, [r4, 0x1C] +_081480AA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081480B0: .4byte SpriteCallbackDummy + thumb_func_end sub_8148078 + + thumb_func_start sub_81480B4 +sub_81480B4: @ 81480B4 + push {r4,r5,lr} + movs r0, 0xBC + movs r1, 0x64 + movs r2, 0x2 + bl sub_810BA50 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _081480FC + lsls r3, r4, 4 + adds r3, r4 + lsls r3, 2 + adds r0, r3, r5 + ldrb r2, [r0, 0x1] + movs r1, 0x4 + negs r1, r1 + ands r1, r2 + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x1] + adds r1, r5, 0 + adds r1, 0x10 + adds r1, r3, r1 + ldr r2, _08148100 + str r2, [r1] + adds r5, 0x1C + adds r3, r5 + ldr r1, _08148104 + str r1, [r3] + bl InitSpriteAffineAnim + adds r0, r4, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_081480FC: .4byte gSprites +_08148100: .4byte gSpriteAffineAnimTable_84121A0 +_08148104: .4byte SpriteCallbackDummy + thumb_func_end sub_81480B4 + + thumb_func_start sub_8148108 +sub_8148108: @ 8148108 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _08148148 + mov r8, r0 + lsls r0, r7, 4 + adds r0, r7 + lsls r6, r0, 2 + mov r0, r8 + adds r4, r6, r0 + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r0, [r4, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r4, 0x1] + cmp r5, 0 + bne _08148150 + mov r0, r8 + adds r0, 0x10 + adds r0, r6, r0 + ldr r1, _0814814C + b _08148158 + .align 2, 0 +_08148148: .4byte gSprites +_0814814C: .4byte gSpriteAffineAnimTable_84121A4 +_08148150: + mov r0, r8 + adds r0, 0x10 + adds r0, r6, r0 + ldr r1, _08148174 +_08148158: + str r1, [r0] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, _08148178 + adds r0, r1 + bl InitSpriteAffineAnim + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08148174: .4byte gSpriteAffineAnimTable_84121A8 +_08148178: .4byte gSprites + thumb_func_end sub_8148108 + + thumb_func_start sub_814817C +sub_814817C: @ 814817C + push {lr} + ldr r0, _081481A4 + movs r1, 0xAE + movs r2, 0x54 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081481A8 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldr r2, _081481AC + strh r2, [r1, 0x2E] + movs r2, 0x1 + strh r2, [r1, 0x30] + pop {r1} + bx r1 + .align 2, 0 +_081481A4: .4byte gSpriteTemplate_84121E4 +_081481A8: .4byte gSprites +_081481AC: .4byte 0x0000fff4 + thumb_func_end sub_814817C + + thumb_func_start sub_81481B0 +sub_81481B0: @ 81481B0 + push {lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x20] + subs r0, 0x4 + strh r0, [r2, 0x20] + ldrh r0, [r2, 0x2E] + ldrh r3, [r2, 0x22] + adds r1, r0, r3 + strh r1, [r2, 0x22] + ldrh r1, [r2, 0x30] + adds r0, r1 + strh r0, [r2, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA + bne _081481D6 + adds r0, r2, 0 + bl DestroySprite +_081481D6: + pop {r0} + bx r0 + thumb_func_end sub_81481B0 + + thumb_func_start sub_81481DC +sub_81481DC: @ 81481DC + push {r4-r7,lr} + ldr r6, _0814824C + movs r0, 0x1 + strh r0, [r6] + ldr r1, _08148250 + ldr r0, _08148254 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrb r3, [r0] + movs r4, 0 + ldr r2, _08148258 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r7, r2, 0 + adds r7, 0x8 + adds r0, r1, r7 + ldrh r0, [r0] + adds r0, 0x1 + strh r0, [r6] + adds r5, r2, 0 + adds r5, 0x12 + adds r1, r5 + movs r2, 0 + ldrsh r0, [r1, r2] + cmp r0, 0x1 + beq _08148244 + adds r2, r6, 0 + adds r6, r5, 0 + adds r5, r7, 0 +_0814821A: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r4, 0x7 + bhi _08148244 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r0, r1, r5 + ldrh r0, [r0] + ldrh r7, [r2] + adds r0, r7 + strh r0, [r2] + adds r1, r6 + movs r7, 0 + ldrsh r0, [r1, r7] + cmp r0, 0x1 + bne _0814821A +_08148244: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814824C: .4byte gUnknown_03005F34 +_08148250: .4byte gNatureToMonPokeblockAnim +_08148254: .4byte gUnknown_03005F30 +_08148258: .4byte gMonPokeblockAnims + thumb_func_end sub_81481DC + + thumb_func_start sub_814825C +sub_814825C: @ 814825C + push {lr} + ldr r0, _08148274 + ldrb r0, [r0] + cmp r0, 0x5A + bls _08148268 + b _08148532 +_08148268: + lsls r0, 2 + ldr r1, _08148278 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08148274: .4byte gUnknown_03005F3C +_08148278: .4byte _0814827C + .align 2, 0 +_0814827C: + .4byte _081483E8 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _0814843C + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _0814847A + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _081484CC + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148524 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 + .4byte _08148532 +_081483E8: + ldr r2, _0814841C + ldr r1, _08148420 + ldr r0, _08148424 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r2, _08148428 + ldr r0, _0814842C + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _08148430 + adds r1, r0 + str r1, [r2] + ldr r0, _08148434 + movs r2, 0x44 + bl memcpy + ldr r1, _08148438 + movs r0, 0xA + strb r0, [r1] + b _08148532 + .align 2, 0 +_0814841C: .4byte gUnknown_03005F40 +_08148420: .4byte gNatureToMonPokeblockAnim +_08148424: .4byte gUnknown_03005F30 +_08148428: .4byte gUnknown_03005F20 +_0814842C: .4byte gUnknown_03005F2C +_08148430: .4byte gSprites +_08148434: .4byte gUnknown_03005F50 +_08148438: .4byte gUnknown_03005F3C +_0814843C: + bl sub_8148540 + ldr r1, _081484A4 + ldr r0, _081484A8 + ldrb r0, [r0] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08148474 + ldr r3, _081484AC + ldr r2, [r3] + ldrb r0, [r2, 0x1] + movs r1, 0x3 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r2, [r3] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x3] + ldr r0, [r3] + ldr r1, _081484B0 + str r1, [r0, 0x10] + bl InitSpriteAffineAnim +_08148474: + ldr r1, _081484B4 + movs r0, 0x32 + strb r0, [r1] +_0814847A: + ldr r1, _081484A4 + ldr r0, _081484A8 + ldrb r0, [r0] + lsls r0, 1 + adds r1, 0x1 + adds r2, r0, r1 + ldrb r1, [r2] + cmp r1, 0 + beq _081484EE + ldr r0, _081484B8 + ldrb r0, [r0] + cmp r0, 0 + bne _081484BC + ldr r0, _081484AC + ldr r0, [r0] + adds r1, 0xA + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAffineAnim + b _081484EE + .align 2, 0 +_081484A4: .4byte gNatureToMonPokeblockAnim +_081484A8: .4byte gUnknown_03005F30 +_081484AC: .4byte gUnknown_03005F20 +_081484B0: .4byte gSpriteAffineAnimTable_8412050 +_081484B4: .4byte gUnknown_03005F3C +_081484B8: .4byte gUnknown_03005F28 +_081484BC: + ldr r0, _081484C8 + ldr r0, [r0] + ldrb r1, [r2] + bl StartSpriteAffineAnim + b _081484EE + .align 2, 0 +_081484C8: .4byte gUnknown_03005F20 +_081484CC: + bl sub_81485CC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08148532 + ldr r0, _081484F8 + movs r1, 0x12 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _08148504 + ldr r1, _081484FC + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + bl sub_8148540 +_081484EE: + ldr r1, _08148500 + movs r0, 0x3C + strb r0, [r1] + b _08148532 + .align 2, 0 +_081484F8: .4byte gUnknown_03005FA0 +_081484FC: .4byte gUnknown_03005F40 +_08148500: .4byte gUnknown_03005F3C +_08148504: + ldr r0, _0814851C + ldr r0, [r0] + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r1, _08148520 + movs r0, 0x46 + strb r0, [r1] + b _08148532 + .align 2, 0 +_0814851C: .4byte gUnknown_03005F20 +_08148520: .4byte gUnknown_03005F3C +_08148524: + bl sub_8148618 + ldr r0, _08148538 + movs r1, 0 + strb r1, [r0] + ldr r0, _0814853C + strb r1, [r0] +_08148532: + pop {r0} + bx r0 + .align 2, 0 +_08148538: .4byte gUnknown_03005F40 +_0814853C: .4byte gUnknown_03005F3C + thumb_func_end sub_814825C + + thumb_func_start sub_8148540 +sub_8148540: @ 8148540 + push {r4-r7,lr} + movs r4, 0 + ldr r5, _081485B4 + mov r12, r5 + ldr r7, _081485B8 + ldr r6, _081485BC +_0814854C: + lsls r2, r4, 1 + mov r0, r12 + adds r3, r2, r0 + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, r0 + adds r2, r7 + ldrh r0, [r2] + strh r0, [r3] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bls _0814854C + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _081485C4 + movs r2, 0 + ldrsh r0, [r5, r2] + movs r2, 0x4 + ldrsh r1, [r5, r2] + bl Sin + strh r0, [r5, 0x14] + movs r1, 0 + ldrsh r0, [r5, r1] + movs r2, 0x6 + ldrsh r1, [r5, r2] + bl Cos + strh r0, [r5, 0x16] + ldrh r0, [r5, 0x8] + strh r0, [r5, 0x18] + ldr r0, _081485C0 + ldr r1, [r0] + ldrh r0, [r1, 0x24] + strh r0, [r5, 0x1A] + ldrh r0, [r1, 0x26] + strh r0, [r5, 0x1C] + bl sub_8148710 + ldrh r0, [r5, 0x18] + strh r0, [r5, 0x8] + bl sub_814862C + ldrh r0, [r5, 0x18] + strh r0, [r5, 0x8] + movs r0, 0 + b _081485C6 + .align 2, 0 +_081485B4: .4byte gUnknown_03005FA0 +_081485B8: .4byte gMonPokeblockAnims +_081485BC: .4byte gUnknown_03005F40 +_081485C0: .4byte gUnknown_03005F20 +_081485C4: + movs r0, 0x1 +_081485C6: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8148540 + + thumb_func_start sub_81485CC +sub_81485CC: @ 81485CC + push {r4,lr} + ldr r3, _08148604 + ldrh r0, [r3, 0x18] + ldrh r1, [r3, 0x8] + subs r0, r1 + lsls r0, 16 + ldr r1, _08148608 + ldr r4, [r1] + lsrs r0, 15 + ldr r1, _0814860C + adds r2, r0, r1 + ldrh r2, [r2] + strh r2, [r4, 0x24] + movs r2, 0x80 + lsls r2, 3 + adds r1, r2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r4, 0x26] + ldrh r0, [r3, 0x8] + subs r0, 0x1 + strh r0, [r3, 0x8] + lsls r0, 16 + cmp r0, 0 + beq _08148610 + movs r0, 0 + b _08148612 + .align 2, 0 +_08148604: .4byte gUnknown_03005FA0 +_08148608: .4byte gUnknown_03005F20 +_0814860C: .4byte 0x0201d000 +_08148610: + movs r0, 0x1 +_08148612: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81485CC + + thumb_func_start sub_8148618 +sub_8148618: @ 8148618 + push {lr} + ldr r0, _08148628 + ldr r0, [r0] + bl FreeSpriteOamMatrix + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_08148628: .4byte gUnknown_03005F20 + thumb_func_end sub_8148618 + + thumb_func_start sub_814862C +sub_814862C: @ 814862C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r1, _08148700 + ldrh r0, [r1, 0x10] + mov r8, r0 + ldrh r0, [r1, 0x18] + mov r2, r8 + subs r0, r2 + lsls r0, 16 + lsrs r7, r0, 16 + ldrh r0, [r1, 0xC] + ldrh r3, [r1, 0x1A] + adds r0, r3 + lsls r0, 16 + lsrs r0, 16 + str r0, [sp] + ldrh r0, [r1, 0xE] + ldrh r1, [r1, 0x1C] + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + movs r6, 0 + subs r0, r7, 0x1 + ldr r4, _08148704 + mov r10, r4 + cmp r6, r0 + bge _081486D4 + ldr r1, [sp] + lsls r0, r1, 16 + asrs r0, 16 + str r0, [sp, 0x4] +_08148674: + mov r2, r8 + adds r5, r2, r6 + lsls r5, 1 + ldr r4, _08148708 + adds r3, r5, r4 + ldrh r2, [r3] + ldr r0, [sp, 0x4] + subs r1, r2, r0 + ldr r4, _0814870C + adds r5, r4 + ldrh r0, [r5] + mov r12, r0 + mov r4, r9 + lsls r0, r4, 16 + asrs r0, 16 + mov r4, r12 + subs r0, r4, r0 + lsls r4, r0, 16 + lsrs r4, 16 + lsls r1, 16 + asrs r1, 16 + adds r6, 0x1 + adds r0, r1, 0 + muls r0, r6 + adds r1, r7, 0 + str r2, [sp, 0x8] + str r3, [sp, 0xC] + bl __divsi3 + ldr r2, [sp, 0x8] + subs r2, r0 + ldr r3, [sp, 0xC] + strh r2, [r3] + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + muls r0, r6 + adds r1, r7, 0 + bl __divsi3 + ldrh r1, [r5] + subs r1, r0 + strh r1, [r5] + lsls r6, 16 + lsrs r6, 16 + subs r0, r7, 0x1 + cmp r6, r0 + blt _08148674 +_081486D4: + mov r1, r8 + adds r0, r1, r7 + lsls r0, 1 + mov r2, r10 + adds r1, r0, r2 + mov r3, sp + ldrh r3, [r3] + strh r3, [r1] + movs r1, 0x80 + lsls r1, 3 + add r1, r10 + adds r0, r1 + mov r4, r9 + strh r4, [r0] + 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 +_08148700: .4byte gUnknown_03005FA0 +_08148704: .4byte 0x0201cffe +_08148708: .4byte 0x0201d000 +_0814870C: .4byte 0x0201d400 + thumb_func_end sub_814862C + + thumb_func_start sub_8148710 +sub_8148710: @ 8148710 + 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 r1, _081487A4 + ldrh r2, [r1, 0x1A] + ldrh r0, [r1, 0x14] + subs r2, r0 + ldrh r3, [r1, 0x1C] + ldrh r0, [r1, 0x16] + subs r3, r0 + adds r6, r1, 0 + ldr r1, _081487A8 + mov r9, r1 + lsls r2, 16 + asrs r2, 16 + mov r8, r2 + movs r2, 0x80 + lsls r2, 3 + add r2, r9 + mov r10, r2 + lsls r3, 16 + asrs r7, r3, 16 +_08148746: + movs r1, 0xA + ldrsh r0, [r6, r1] + cmp r0, 0 + bge _08148750 + negs r0, r0 +_08148750: + lsls r0, 16 + lsrs r0, 16 + ldrh r2, [r6, 0x6] + adds r0, r2 + lsls r5, r0, 16 + strh r0, [r6, 0x6] + ldrh r2, [r6, 0x4] + movs r1, 0x4 + ldrsh r0, [r6, r1] + cmp r0, 0 + bge _0814876A + movs r0, 0x1 + str r0, [sp] +_0814876A: + ldrh r0, [r6, 0x18] + ldrh r1, [r6, 0x8] + subs r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r1, 0 + beq _081487F0 + ldr r1, [sp] + cmp r1, 0 + bne _081487AC + movs r1, 0 + ldrsh r0, [r6, r1] + lsrs r5, 24 + adds r1, r2, r5 + lsls r1, 16 + asrs r1, 16 + bl Sin + lsls r4, 1 + mov r2, r9 + adds r1, r4, r2 + add r0, r8 + strh r0, [r1] + movs r1, 0 + ldrsh r0, [r6, r1] + ldrh r1, [r6, 0x6] + adds r1, r5 + b _081487CE + .align 2, 0 +_081487A4: .4byte gUnknown_03005FA0 +_081487A8: .4byte 0x0201d000 +_081487AC: + movs r1, 0 + ldrsh r0, [r6, r1] + lsrs r5, 24 + subs r1, r2, r5 + lsls r1, 16 + asrs r1, 16 + bl Sin + lsls r4, 1 + mov r2, r9 + adds r1, r4, r2 + add r0, r8 + strh r0, [r1] + movs r1, 0 + ldrsh r0, [r6, r1] + ldrh r1, [r6, 0x6] + subs r1, r5 +_081487CE: + lsls r1, 16 + asrs r1, 16 + bl Cos + add r4, r10 + adds r0, r7, r0 + strh r0, [r4] + ldrh r0, [r6, 0x2] + ldrh r2, [r6] + adds r0, r2 + movs r1, 0xFF + ands r0, r1 + strh r0, [r6] + ldrh r0, [r6, 0x8] + subs r0, 0x1 + strh r0, [r6, 0x8] + b _08148746 +_081487F0: + 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_8148710 + + thumb_func_start c2_clear_save_data_screen_2 +c2_clear_save_data_screen_2: @ 8148800 + push {lr} + bl sub_8148970 + lsls r0, 24 + cmp r0, 0 + beq _08148814 + ldr r0, _08148818 + movs r1, 0 + bl CreateTask +_08148814: + pop {r0} + bx r0 + .align 2, 0 +_08148818: .4byte sub_8148830 + thumb_func_end c2_clear_save_data_screen_2 + + thumb_func_start sub_814881C +sub_814881C: @ 814881C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_814881C + + thumb_func_start sub_8148830 +sub_8148830: @ 8148830 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetSpriteData + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xCA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _081488A8 + bl SetVBlankCallback + movs r0, 0x2 + movs r1, 0xE + movs r2, 0x1B + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _081488AC + movs r1, 0x3 + movs r2, 0xF + bl MenuPrint + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x8 + movs r3, 0x6 + bl MenuDrawTextWindow + ldr r3, _081488B0 + movs r0, 0x3 + movs r1, 0x2 + movs r2, 0x2 + bl PrintMenuItems + movs r0, 0x1 + str r0, [sp] + movs r0, 0x5 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x3 + movs r2, 0x2 + movs r3, 0x2 + bl InitMenu + ldr r1, _081488B4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081488B8 + str r1, [r0] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081488A8: .4byte sub_814881C +_081488AC: .4byte gSystemText_ClearAllSaveDataPrompt +_081488B0: .4byte gUnknown_08376D74 +_081488B4: .4byte gTasks +_081488B8: .4byte sub_81488BC + thumb_func_end sub_8148830 + + thumb_func_start sub_81488BC +sub_81488BC: @ 81488BC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl ProcessMenuInputNoWrap_ + lsls r0, 24 + asrs r1, r0, 24 + cmp r1, 0 + beq _081488E2 + cmp r1, 0 + bgt _081488DC + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0814890C + b _0814891E +_081488DC: + cmp r1, 0x1 + beq _0814890C + b _0814891E +_081488E2: + movs r0, 0x5 + bl PlaySE + ldr r0, _08148900 + bl sub_8071F40 + ldr r1, _08148904 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _08148908 + str r1, [r0] + b _0814891E + .align 2, 0 +_08148900: .4byte gSystemText_ClearingData +_08148904: .4byte gTasks +_08148908: .4byte sub_8148930 +_0814890C: + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl DestroyTask + ldr r0, _0814892C + bl SetMainCallback2 +_0814891E: + bl AnimateSprites + bl BuildOamBuffer + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814892C: .4byte sub_8148B34 + thumb_func_end sub_81488BC + + thumb_func_start sub_8148930 +sub_8148930: @ 8148930 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl calls_flash_erase_block + adds r0, r4, 0 + bl DestroyTask + ldr r0, _08148950 + bl SetMainCallback2 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148950: .4byte sub_8148B34 + thumb_func_end sub_8148930 + + thumb_func_start sub_8148954 +sub_8148954: @ 8148954 + push {lr} + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_8148954 + + thumb_func_start sub_8148964 +sub_8148964: @ 8148964 + push {lr} + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_8148964 + + thumb_func_start sub_8148970 +sub_8148970: @ 8148970 + push {r4,lr} + sub sp, 0xC + ldr r0, _08148AA4 + ldr r1, _08148AA8 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08148986 + cmp r0, 0x1 + bne _08148986 + b _08148B04 +_08148986: + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 19 + movs r4, 0 + strh r4, [r0] + adds r0, 0x10 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0xA + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x22 + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + adds r0, 0x4 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x6 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + add r0, sp, 0x4 + strh r4, [r0] + ldr r1, _08148AAC + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _08148AB0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r2, 0 + str r2, [sp, 0x8] + add r0, sp, 0x8 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _08148AB4 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + add r0, sp, 0x4 + strh r2, [r0] + str r0, [r1] + ldr r0, _08148AB8 + str r0, [r1, 0x4] + ldr r0, _08148ABC + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetPaletteFade + ldr r2, _08148AC0 + ldr r0, _08148AC4 + strh r0, [r2] + ldr r1, _08148AC8 + strh r0, [r1] + ldr r0, _08148ACC + strh r0, [r2, 0x2] + strh r0, [r1, 0x2] + movs r1, 0 + ldr r3, _08148AD0 + ldr r0, _08148AD4 + adds r2, r0, 0 +_08148A14: + 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 _08148A14 + movs r1, 0 + ldr r4, _08148AD8 + movs r3, 0x1 + ldr r2, _08148ADC +_08148A2C: + lsls r0, r1, 1 + adds r0, r4 + strh r3, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, r2 + bls _08148A2C + bl ResetTasks + bl ResetSpriteData + ldr r0, _08148AE0 + bl SetUpWindowConfig + ldr r0, _08148AE4 + bl InitMenuWindow + movs r0, 0x1 + negs r0, r0 + ldr r1, _08148AE8 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _08148AEC + ldrh r1, [r2] + movs r0, 0 + strh r0, [r2] + ldr r3, _08148AF0 + ldrh r0, [r3] + movs r4, 0x1 + orrs r0, r4 + strh r0, [r3] + strh r1, [r2] + ldr r2, _08148AF4 + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08148AF8 + bl SetVBlankCallback + ldr r1, _08148AFC + ldr r2, _08148B00 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xE + movs r2, 0x90 + lsls r2, 4 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08148AA4 + ldr r1, _08148AA8 + adds r0, r1 + strb r4, [r0] + b _08148B28 + .align 2, 0 +_08148AA4: .4byte gMain +_08148AA8: .4byte 0x0000043c +_08148AAC: .4byte 0x040000d4 +_08148AB0: .4byte 0x8100c000 +_08148AB4: .4byte 0x85000100 +_08148AB8: .4byte 0x05000002 +_08148ABC: .4byte 0x810001ff +_08148AC0: .4byte gPlttBufferUnfaded +_08148AC4: .4byte 0x00007fff +_08148AC8: .4byte gPlttBufferFaded +_08148ACC: .4byte 0x00003945 +_08148AD0: .4byte 0x06000020 +_08148AD4: .4byte 0x00001111 +_08148AD8: .4byte 0x06003800 +_08148ADC: .4byte 0x000004ff +_08148AE0: .4byte gWindowConfig_81E6C3C +_08148AE4: .4byte gWindowConfig_81E6CE4 +_08148AE8: .4byte 0x0000ffff +_08148AEC: .4byte 0x04000208 +_08148AF0: .4byte 0x04000200 +_08148AF4: .4byte REG_DISPSTAT +_08148AF8: .4byte sub_8148964 +_08148AFC: .4byte REG_BG3CNT +_08148B00: .4byte 0x00000703 +_08148B04: + bl UpdatePaletteFade + ldr r0, _08148B20 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08148B28 + ldr r0, _08148B24 + bl SetMainCallback2 + movs r0, 0x1 + b _08148B2A + .align 2, 0 +_08148B20: .4byte gPaletteFade +_08148B24: .4byte sub_8148954 +_08148B28: + movs r0, 0 +_08148B2A: + add sp, 0xC + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8148970 + + thumb_func_start sub_8148B34 +sub_8148B34: @ 8148B34 + push {r4,lr} + sub sp, 0x4 + ldr r0, _08148B60 + ldr r1, _08148B64 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _08148B48 + cmp r0, 0x1 + beq _08148B6C +_08148B48: + movs r0, 0x1 + negs r0, r0 + ldr r1, _08148B68 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + movs r0, 0x1 + strb r0, [r4] + b _08148B80 + .align 2, 0 +_08148B60: .4byte gMain +_08148B64: .4byte 0x0000043c +_08148B68: .4byte 0x0000ffff +_08148B6C: + bl UpdatePaletteFade + ldr r0, _08148B88 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08148B80 + bl DoSoftReset +_08148B80: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148B88: .4byte gPaletteFade + thumb_func_end sub_8148B34 + + thumb_func_start load_intro_part2_graphics +load_intro_part2_graphics: @ 8148B8C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08148BE8 + ldr r1, _08148BEC + bl LZ77UnCompVram + ldr r0, _08148BF0 + ldr r1, _08148BF4 + bl LZ77UnCompVram + ldr r0, _08148BF8 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + cmp r4, 0 + beq _08148BB4 + cmp r4, 0x1 + beq _08148C14 +_08148BB4: + ldr r0, _08148BFC + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148C00 + ldr r1, _08148C04 + bl LZ77UnCompVram + ldr r0, _08148C08 + movs r1, 0 + movs r2, 0x60 + bl LoadPalette + ldr r0, _08148C0C + bl LoadCompressedObjectPic + ldr r0, _08148C10 + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x20 + bl LoadPalette + bl sub_8149248 + b _08148C46 + .align 2, 0 +_08148BE8: .4byte gUnknown_0841225C +_08148BEC: .4byte 0x06004000 +_08148BF0: .4byte gUnknown_084126DC +_08148BF4: .4byte 0x06007800 +_08148BF8: .4byte gUnknown_084121FC +_08148BFC: .4byte gUnknown_084128D8 +_08148C00: .4byte gUnknown_08412EB4 +_08148C04: .4byte 0x06003000 +_08148C08: .4byte gUnknown_08412818 +_08148C0C: .4byte gUnknown_08416B54 +_08148C10: .4byte gUnknown_08413184 +_08148C14: + ldr r0, _08148C58 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148C5C + ldr r1, _08148C60 + bl LZ77UnCompVram + ldr r0, _08148C64 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148C68 + bl LoadCompressedObjectPic + ldr r0, _08148C6C + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x20 + bl LoadPalette + bl sub_8149264 +_08148C46: + ldr r1, _08148C70 + movs r0, 0 + strh r0, [r1] + ldr r1, _08148C74 + movs r0, 0x8 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148C58: .4byte gUnknown_08413340 +_08148C5C: .4byte gUnknown_084139C8 +_08148C60: .4byte 0x06003000 +_08148C64: .4byte gUnknown_08413300 +_08148C68: .4byte gUnknown_08416BDC +_08148C6C: .4byte gUnknown_08413CCC +_08148C70: .4byte gUnknown_0203935C +_08148C74: .4byte gReservedSpritePaletteCount + thumb_func_end load_intro_part2_graphics + + thumb_func_start sub_8148C78 +sub_8148C78: @ 8148C78 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08148CA4 + ldr r2, _08148CA8 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + adds r2, 0xFF + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _08148CAC + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + movs r2, 0xF2 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08148CA4: .4byte REG_BG3CNT +_08148CA8: .4byte 0x00000603 +_08148CAC: .4byte 0x00000f05 + thumb_func_end sub_8148C78 + + thumb_func_start sub_8148CB0 +sub_8148CB0: @ 8148CB0 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08148CD4 + ldr r1, _08148CD8 + bl LZ77UnCompVram + ldr r0, _08148CDC + ldr r1, _08148CE0 + bl LZ77UnCompVram + cmp r4, 0x4 + bhi _08148CFC + lsls r0, r4, 2 + ldr r1, _08148CE4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08148CD4: .4byte gUnknown_0841225C +_08148CD8: .4byte 0x06004000 +_08148CDC: .4byte gUnknown_084126DC +_08148CE0: .4byte 0x06007800 +_08148CE4: .4byte _08148CE8 + .align 2, 0 +_08148CE8: + .4byte _08148CFC + .4byte _08148D58 + .4byte _08148DC4 + .4byte _08148DC4 + .4byte _08148E1C +_08148CFC: + ldr r0, _08148D34 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148D38 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148D3C + ldr r1, _08148D40 + bl LZ77UnCompVram + ldr r0, _08148D44 + movs r1, 0 + movs r2, 0x60 + bl LoadPalette + ldr r0, _08148D48 + bl LoadCompressedObjectPic + ldr r0, _08148D4C + ldr r1, _08148D50 + bl LZ77UnCompVram + ldr r0, _08148D54 + b _08148D8E + .align 2, 0 +_08148D34: .4byte gUnknown_084121FC +_08148D38: .4byte gUnknown_084128D8 +_08148D3C: .4byte gUnknown_08412EB4 +_08148D40: .4byte 0x06003000 +_08148D44: .4byte gUnknown_08412818 +_08148D48: .4byte gUnknown_08416B54 +_08148D4C: .4byte gUnknown_084131C4 +_08148D50: .4byte 0x06010000 +_08148D54: .4byte gUnknown_08413184 +_08148D58: + ldr r0, _08148DA0 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148DA4 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148DA8 + ldr r1, _08148DAC + bl LZ77UnCompVram + ldr r0, _08148DB0 + movs r1, 0 + movs r2, 0x60 + bl LoadPalette + ldr r0, _08148DB4 + bl LoadCompressedObjectPic + ldr r0, _08148DB8 + ldr r1, _08148DBC + bl LZ77UnCompVram + ldr r0, _08148DC0 +_08148D8E: + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x20 + bl LoadPalette + bl sub_8149248 + b _08148E58 + .align 2, 0 +_08148DA0: .4byte gUnknown_0841221C +_08148DA4: .4byte gUnknown_084128D8 +_08148DA8: .4byte gUnknown_08412EB4 +_08148DAC: .4byte 0x06003000 +_08148DB0: .4byte gUnknown_08412878 +_08148DB4: .4byte gUnknown_08416B54 +_08148DB8: .4byte gUnknown_084131C4 +_08148DBC: .4byte 0x06010000 +_08148DC0: .4byte gUnknown_084131A4 +_08148DC4: + ldr r0, _08148E04 + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148E08 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148E0C + ldr r1, _08148E10 + bl LZ77UnCompVram + ldr r4, _08148E14 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148E18 + bl LoadCompressedObjectPic + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, 0 + movs r2, 0x20 + bl LoadPalette + bl sub_8149264 + b _08148E58 + .align 2, 0 +_08148E04: .4byte gUnknown_0841221C +_08148E08: .4byte gUnknown_08413340 +_08148E0C: .4byte gUnknown_084139C8 +_08148E10: .4byte 0x06003000 +_08148E14: .4byte gUnknown_08413320 +_08148E18: .4byte gUnknown_08416BDC +_08148E1C: + ldr r0, _08148E6C + movs r1, 0xF0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08148E70 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08148E74 + ldr r1, _08148E78 + bl LZ77UnCompVram + ldr r0, _08148E7C + movs r1, 0 + movs r2, 0x40 + bl LoadPalette + ldr r0, _08148E80 + bl LoadCompressedObjectPic + ldr r0, _08148E84 + movs r1, 0x80 + lsls r1, 1 + movs r2, 0x20 + bl LoadPalette + bl sub_8149280 +_08148E58: + ldr r1, _08148E88 + movs r0, 0x8 + strb r0, [r1] + ldr r1, _08148E8C + movs r0, 0 + strh r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08148E6C: .4byte gUnknown_0841223C +_08148E70: .4byte gUnknown_08413E78 +_08148E74: .4byte gUnknown_08414084 +_08148E78: .4byte 0x06003000 +_08148E7C: .4byte gUnknown_08413E38 +_08148E80: .4byte gUnknown_08416C70 +_08148E84: .4byte gUnknown_08414064 +_08148E88: .4byte gReservedSpritePaletteCount +_08148E8C: .4byte gUnknown_0203935C + thumb_func_end sub_8148CB0 + + thumb_func_start sub_8148E90 +sub_8148E90: @ 8148E90 + ldr r1, _08148EB4 + ldr r2, _08148EB8 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + adds r2, 0xFF + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _08148EBC + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0xA + movs r2, 0xFA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bx lr + .align 2, 0 +_08148EB4: .4byte REG_BG3CNT +_08148EB8: .4byte 0x00000603 +_08148EBC: .4byte 0x00000f05 + thumb_func_end sub_8148E90 + + thumb_func_start sub_8148EC0 +sub_8148EC0: @ 8148EC0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x4 + adds r5, r0, 0 + adds r6, r1, 0 + mov r8, r2 + lsls r5, 24 + lsrs r5, 24 + lsls r6, 16 + lsrs r6, 16 + mov r0, r8 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + lsls r3, 16 + lsrs r3, 16 + ldr r1, _08148F34 + mov r9, r1 + mov r0, r9 + movs r1, 0 + str r3, [sp] + bl CreateTask + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, _08148F38 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + strh r5, [r0, 0x8] + strh r6, [r0, 0xA] + strh r2, [r0, 0xC] + strh r2, [r0, 0xE] + mov r1, r8 + strh r1, [r0, 0x10] + strh r2, [r0, 0x12] + strh r2, [r0, 0x14] + ldr r3, [sp] + strh r3, [r0, 0x16] + movs r1, 0x8 + strh r1, [r0, 0x18] + strh r2, [r0, 0x1A] + adds r0, r4, 0 + bl _call_via_r9 + adds r0, r4, 0 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08148F34: .4byte sub_8148F3C +_08148F38: .4byte gTasks + thumb_func_end sub_8148EC0 + + thumb_func_start sub_8148F3C +sub_8148F3C: @ 8148F3C + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08148FB4 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r1 + ldrh r0, [r3, 0xA] + lsls r4, r0, 16 + adds r6, r1, 0 + cmp r4, 0 + beq _08148F7C + movs r1, 0xC + ldrsh r0, [r3, r1] + lsls r0, 16 + ldrh r1, [r3, 0xE] + adds r2, r0, r1 + lsrs r0, r4, 12 + subs r2, r0 + asrs r1, r2, 16 + strh r1, [r3, 0xC] + strh r2, [r3, 0xE] + ldr r0, _08148FB8 + strh r1, [r0] + ldr r2, _08148FBC + ldr r1, _08148FC0 + ldr r0, _08148FC4 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r2] +_08148F7C: + ldrh r0, [r3, 0x10] + lsls r4, r0, 16 + cmp r4, 0 + beq _08148FD8 + movs r1, 0x12 + ldrsh r0, [r3, r1] + lsls r0, 16 + ldrh r1, [r3, 0x14] + adds r2, r0, r1 + lsrs r0, r4, 12 + subs r2, r0 + asrs r1, r2, 16 + strh r1, [r3, 0x12] + strh r2, [r3, 0x14] + ldr r0, _08148FC8 + strh r1, [r0] + movs r1, 0x8 + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08148FD0 + ldr r2, _08148FCC + ldr r1, _08148FC0 + ldr r0, _08148FC4 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r1 + strh r0, [r2] + b _08148FD8 + .align 2, 0 +_08148FB4: .4byte gTasks +_08148FB8: .4byte REG_BG1HOFS +_08148FBC: .4byte REG_BG1VOFS +_08148FC0: .4byte gUnknown_02039358 +_08148FC4: .4byte gUnknown_0203935A +_08148FC8: .4byte REG_BG2HOFS +_08148FCC: .4byte REG_BG2VOFS +_08148FD0: + ldr r0, _08149010 + ldr r1, _08149014 + ldrh r1, [r1] + strh r1, [r0] +_08148FD8: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r3, r0, r6 + ldrh r0, [r3, 0x16] + lsls r4, r0, 16 + cmp r4, 0 + beq _08149008 + movs r1, 0x18 + ldrsh r0, [r3, r1] + lsls r0, 16 + ldrh r1, [r3, 0x1A] + adds r2, r0, r1 + lsrs r0, r4, 12 + subs r2, r0 + asrs r1, r2, 16 + strh r1, [r3, 0x18] + strh r2, [r3, 0x1A] + ldr r0, _08149018 + strh r1, [r0] + ldr r1, _0814901C + ldr r0, _08149014 + ldrh r0, [r0] + strh r0, [r1] +_08149008: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149010: .4byte REG_BG2VOFS +_08149014: .4byte gUnknown_02039358 +_08149018: .4byte REG_BG3HOFS +_0814901C: .4byte REG_BG3VOFS + thumb_func_end sub_8148F3C + + thumb_func_start sub_8149020 +sub_8149020: @ 8149020 + push {r4,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _08149100 + cmp r0, 0x1 + ble _08149034 + cmp r0, 0x2 + beq _08149098 +_08149034: + ldr r0, _08149060 + ldr r2, [r0, 0x20] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0 + bne _08149100 + ldr r0, _08149064 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08149100 + movs r0, 0x4 + ands r2, r0 + cmp r2, 0 + beq _0814906C + ldr r2, _08149068 + ldrh r1, [r2, 0x12] + mov r0, sp + strh r1, [r0] + ldrh r1, [r2, 0x14] + b _08149076 + .align 2, 0 +_08149060: .4byte gMain +_08149064: .4byte gPaletteFade +_08149068: .4byte gPlttBufferUnfaded +_0814906C: + ldr r2, _08149094 + ldrh r1, [r2, 0x14] + mov r0, sp + strh r1, [r0] + ldrh r1, [r2, 0x12] +_08149076: + adds r0, 0x2 + strh r1, [r0] + adds r4, r0, 0 + mov r0, sp + movs r1, 0x9 + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0x2 + bl LoadPalette + b _08149100 + .align 2, 0 +_08149094: .4byte gPlttBufferUnfaded +_08149098: + ldr r0, _081490C8 + ldr r2, [r0, 0x20] + movs r0, 0x3 + ands r0, r2 + cmp r0, 0 + bne _08149100 + ldr r0, _081490CC + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08149100 + movs r0, 0x4 + ands r2, r0 + cmp r2, 0 + beq _081490D8 + mov r1, sp + ldr r2, _081490D0 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _081490D4 + b _081490E6 + .align 2, 0 +_081490C8: .4byte gMain +_081490CC: .4byte gPaletteFade +_081490D0: .4byte 0x00003d27 +_081490D4: .4byte 0x00000295 +_081490D8: + mov r1, sp + movs r2, 0xC7 + lsls r2, 2 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _08149108 +_081490E6: + adds r0, r2, 0 + strh r0, [r1] + adds r4, r1, 0 + mov r0, sp + movs r1, 0xC + movs r2, 0x2 + bl LoadPalette + adds r0, r4, 0 + movs r1, 0xD + movs r2, 0x2 + bl LoadPalette +_08149100: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149108: .4byte 0x00003d27 + thumb_func_end sub_8149020 + + thumb_func_start sub_814910C +sub_814910C: @ 814910C + push {lr} + adds r2, r0, 0 + ldr r0, _08149124 + movs r1, 0 + ldrsh r0, [r0, r1] + cmp r0, 0 + beq _08149128 + adds r0, r2, 0 + bl DestroySprite + b _0814916C + .align 2, 0 +_08149124: .4byte gUnknown_0203935C +_08149128: + movs r1, 0x20 + ldrsh r0, [r2, r1] + lsls r0, 16 + ldrh r1, [r2, 0x32] + orrs r0, r1 + ldrh r1, [r2, 0x30] + adds r0, r1 + asrs r1, r0, 16 + strh r1, [r2, 0x20] + strh r0, [r2, 0x32] + cmp r1, 0xFF + ble _08149144 + ldr r0, _08149158 + strh r0, [r2, 0x20] +_08149144: + movs r1, 0x2E + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _08149164 + ldr r1, _0814915C + ldr r0, _08149160 + ldrh r0, [r0] + ldrh r1, [r1] + adds r0, r1 + b _08149168 + .align 2, 0 +_08149158: .4byte 0x0000ffe0 +_0814915C: .4byte gUnknown_02039358 +_08149160: .4byte gUnknown_0203935A +_08149164: + ldr r0, _08149170 + ldrh r0, [r0] +_08149168: + negs r0, r0 + strh r0, [r2, 0x26] +_0814916C: + pop {r0} + bx r0 + .align 2, 0 +_08149170: .4byte gUnknown_02039358 + thumb_func_end sub_814910C + + thumb_func_start sub_8149174 +sub_8149174: @ 8149174 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + str r1, [sp, 0x4] + str r2, [sp, 0x8] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + movs r7, 0 + cmp r7, r8 + bcs _0814922A + ldr r0, _0814923C + mov r10, r0 + movs r2, 0x3F + mov r9, r2 +_0814919E: + lsls r6, r7, 3 + ldr r0, [sp, 0x4] + adds r6, r0 + ldrb r1, [r6, 0x1] + ldrb r2, [r6, 0x2] + ldrb r3, [r6, 0x3] + ldr r0, _08149240 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + lsls r5, r0, 4 + adds r5, r0 + lsls r5, 2 + mov r2, r10 + adds r4, r5, r2 + ldrb r2, [r6] + lsls r1, r2, 26 + lsrs r1, 30 + lsrs r2, 6 + adds r0, r4, 0 + movs r3, 0 + bl CalcCenterToCornerVec + ldrb r3, [r4, 0x5] + movs r0, 0xC + orrs r3, r0 + strb r3, [r4, 0x5] + ldrb r1, [r6] + lsls r1, 26 + lsrs r1, 30 + lsls r1, 6 + ldrb r2, [r4, 0x1] + mov r0, r9 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r1, [r6] + lsrs r1, 6 + lsls r1, 6 + ldrb r2, [r4, 0x3] + mov r0, r9 + ands r0, r2 + orrs r0, r1 + strb r0, [r4, 0x3] + movs r0, 0xF + ands r3, r0 + strb r3, [r4, 0x5] + ldr r0, _08149244 + adds r5, r0 + ldr r2, [sp, 0x8] + str r2, [r5] + ldrb r1, [r6] + lsls r1, 28 + lsrs r1, 28 + adds r0, r4, 0 + bl StartSpriteAnim + movs r1, 0 + mov r0, sp + ldrh r0, [r0] + strh r0, [r4, 0x2E] + ldrh r0, [r6, 0x4] + strh r0, [r4, 0x30] + strh r1, [r4, 0x32] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, r8 + bcc _0814919E +_0814922A: + 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 +_0814923C: .4byte gSprites +_08149240: .4byte gSpriteTemplate_8416B3C +_08149244: .4byte gSprites + 0x8 + thumb_func_end sub_8149174 + + thumb_func_start sub_8149248 +sub_8149248: @ 8149248 + push {lr} + ldr r1, _0814925C + ldr r2, _08149260 + movs r0, 0 + movs r3, 0x9 + bl sub_8149174 + pop {r0} + bx r0 + .align 2, 0 +_0814925C: .4byte gUnknown_08416B94 +_08149260: .4byte gSpriteAnimTable_8416B84 + thumb_func_end sub_8149248 + + thumb_func_start sub_8149264 +sub_8149264: @ 8149264 + push {lr} + ldr r1, _08149278 + ldr r2, _0814927C + movs r0, 0x1 + movs r3, 0xC + bl sub_8149174 + pop {r0} + bx r0 + .align 2, 0 +_08149278: .4byte gUnknown_08416C10 +_0814927C: .4byte gSpriteAnimTable_8416C04 + thumb_func_end sub_8149264 + + thumb_func_start sub_8149280 +sub_8149280: @ 8149280 + push {lr} + ldr r1, _08149294 + ldr r2, _08149298 + movs r0, 0x1 + movs r3, 0x6 + bl sub_8149174 + pop {r0} + bx r0 + .align 2, 0 +_08149294: .4byte gUnknown_08416C8C +_08149298: .4byte gSpriteAnimTable_8416C88 + thumb_func_end sub_8149280 + + thumb_func_start nullsub_82 +nullsub_82: @ 814929C + bx lr + thumb_func_end nullsub_82 + + thumb_func_start sub_81492A0 +sub_81492A0: @ 81492A0 + push {r4,lr} + ldr r4, _0814930C + movs r1, 0x2E + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r1, [r1] + movs r2, 0x3E + adds r2, r0 + mov r12, r2 + movs r2, 0x4 + ands r2, r1 + mov r1, r12 + ldrb r3, [r1] + movs r1, 0x5 + negs r1, r1 + ands r1, r3 + orrs r1, r2 + mov r2, r12 + strb r1, [r2] + movs r1, 0x2E + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x20] + strh r1, [r0, 0x20] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x22] + adds r1, 0x8 + strh r1, [r0, 0x22] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x24] + strh r1, [r0, 0x24] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x26] + strh r1, [r0, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814930C: .4byte gSprites + thumb_func_end sub_81492A0 + + thumb_func_start sub_8149310 +sub_8149310: @ 8149310 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldr r0, _0814935C + lsls r5, 16 + asrs r5, 16 + lsls r4, 16 + asrs r4, 16 + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _08149360 + adds r4, 0x8 + lsls r4, 16 + asrs r4, 16 + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08149364 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + strh r6, [r1, 0x2E] + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0814935C: .4byte gSpriteTemplate_8416CDC +_08149360: .4byte gSpriteTemplate_8416D2C +_08149364: .4byte gSprites + thumb_func_end sub_8149310 + + thumb_func_start sub_8149368 +sub_8149368: @ 8149368 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + ldr r0, _081493B4 + lsls r5, 16 + asrs r5, 16 + lsls r4, 16 + asrs r4, 16 + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + ldr r0, _081493B8 + adds r4, 0x8 + lsls r4, 16 + asrs r4, 16 + adds r1, r5, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _081493BC + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + strh r6, [r1, 0x2E] + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_081493B4: .4byte gSpriteTemplate_8416CF4 +_081493B8: .4byte gSpriteTemplate_8416D44 +_081493BC: .4byte gSprites + thumb_func_end sub_8149368 + + thumb_func_start nullsub_83 +nullsub_83: @ 81493C0 + bx lr + thumb_func_end nullsub_83 + + thumb_func_start sub_81493C4 +sub_81493C4: @ 81493C4 + push {r4,lr} + ldr r4, _08149420 + movs r1, 0x2E + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r1, [r1] + movs r2, 0x3E + adds r2, r0 + mov r12, r2 + movs r2, 0x4 + ands r2, r1 + mov r1, r12 + ldrb r3, [r1] + movs r1, 0x5 + negs r1, r1 + ands r1, r3 + orrs r1, r2 + mov r2, r12 + strb r1, [r2] + movs r1, 0x2E + ldrsh r2, [r0, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x22] + strh r1, [r0, 0x22] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x24] + strh r1, [r0, 0x24] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldrh r1, [r1, 0x26] + strh r1, [r0, 0x26] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149420: .4byte gSprites + thumb_func_end sub_81493C4 + + thumb_func_start sub_8149424 +sub_8149424: @ 8149424 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r2, r0, 0 + adds r5, r1, 0 + ldr r0, _08149490 + mov r8, r0 + lsls r2, 16 + asrs r4, r2, 16 + ldr r0, _08149494 + adds r2, r0 + asrs r2, 16 + lsls r5, 16 + asrs r5, 16 + mov r0, r8 + adds r1, r2, 0 + adds r2, r5, 0 + movs r3, 0x2 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + adds r4, 0x20 + lsls r4, 16 + asrs r4, 16 + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08149498 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r4, r5 + strh r6, [r0, 0x2E] + movs r1, 0x1 + bl StartSpriteAnim + adds r5, 0x1C + adds r4, r5 + ldr r0, _0814949C + str r0, [r4] + adds r0, r6, 0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08149490: .4byte gSpriteTemplate_8416D7C +_08149494: .4byte 0xffe00000 +_08149498: .4byte gSprites +_0814949C: .4byte sub_81493C4 + thumb_func_end sub_8149424 + + thumb_func_start sapphire_sub_81494A0 +sapphire_sub_81494A0: @ 81494A0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r2, r0, 0 + adds r5, r1, 0 + ldr r0, _0814950C + mov r8, r0 + lsls r2, 16 + asrs r4, r2, 16 + ldr r0, _08149510 + adds r2, r0 + asrs r2, 16 + lsls r5, 16 + asrs r5, 16 + mov r0, r8 + adds r1, r2, 0 + adds r2, r5, 0 + movs r3, 0x2 + bl CreateSprite + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + adds r4, 0x20 + lsls r4, 16 + asrs r4, 16 + mov r0, r8 + adds r1, r4, 0 + adds r2, r5, 0 + movs r3, 0x2 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r5, _08149514 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + adds r0, r4, r5 + strh r6, [r0, 0x2E] + movs r1, 0x1 + bl StartSpriteAnim + adds r5, 0x1C + adds r4, r5 + ldr r0, _08149518 + str r0, [r4] + adds r0, r6, 0 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0814950C: .4byte gSpriteTemplate_8416D94 +_08149510: .4byte 0xffe00000 +_08149514: .4byte gSprites +_08149518: .4byte sub_81493C4 + thumb_func_end sapphire_sub_81494A0 + + thumb_func_start nullsub_84 +nullsub_84: @ 814951C + bx lr + thumb_func_end nullsub_84 + + thumb_func_start sub_8149520 +sub_8149520: @ 8149520 + push {r4,r5,lr} + sub sp, 0x4 + movs r4, 0 + ldr r5, _08149554 +_08149528: + adds r0, r4, 0 + adds r0, 0x14 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r4, 1 + adds r1, r5 + ldrh r1, [r1] + str r1, [sp] + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xB + bls _08149528 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149554: .4byte gUnknown_08416ED0 + thumb_func_end sub_8149520 + + thumb_func_start sub_8149558 +sub_8149558: @ 8149558 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0x8 + ble _08149606 + movs r2, 0x3C + ldrsh r0, [r4, r2] + adds r1, r0, 0 + muls r1, r0 + adds r0, r1, 0 + movs r1, 0x50 + bl __divsi3 + movs r1, 0x58 + subs r1, r0 + strh r1, [r4, 0x22] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _08149592 + adds r0, 0x3 +_08149592: + asrs r0, 2 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x3A] + adds r0, 0x4 + strh r0, [r4, 0x3A] + ldrh r1, [r4, 0x3C] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081495BC + ldrh r0, [r4, 0x38] + subs r0, 0x1 + strh r0, [r4, 0x38] +_081495BC: + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r1, 0x26 + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _081495D2 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1 + b _081495D8 +_081495D2: + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x14 +_081495D8: + strb r0, [r1] + movs r2, 0x38 + ldrsh r0, [r4, r2] + cmp r0, 0 + bge _081495E4 + adds r0, 0x3 +_081495E4: + asrs r0, 2 + adds r0, 0x14 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x1F + bls _081495F2 + movs r2, 0x1F +_081495F2: + movs r0, 0x1F + ands r2, r0 + lsls r2, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + b _0814960C +_08149606: + adds r0, r4, 0 + bl DestroySprite +_0814960C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8149558 + + thumb_func_start sub_8149614 +sub_8149614: @ 8149614 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _08149664 + movs r1, 0x78 + movs r2, 0x58 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0814965E + ldr r4, _08149668 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r2, r3, r4 + movs r1, 0 + movs r0, 0x30 + strh r0, [r2, 0x38] + strh r5, [r2, 0x3A] + strh r1, [r2, 0x3C] + ldrb r1, [r2, 0x1] + subs r0, 0x34 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + movs r1, 0x3E + orrs r0, r1 + strb r0, [r2, 0x3] + adds r4, 0x1C + adds r3, r4 + ldr r0, _0814966C + str r0, [r3] +_0814965E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149664: .4byte gSpriteTemplate_8416EB8 +_08149668: .4byte gSprites +_0814966C: .4byte sub_8149558 + thumb_func_end sub_8149614 + + thumb_func_start sub_8149670 +sub_8149670: @ 8149670 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x22 + ldrsh r0, [r4, r1] + cmp r0, 0x57 + bgt _081496D6 + movs r2, 0x3C + ldrsh r0, [r4, r2] + adds r1, r0, 0 + muls r1, r0 + adds r0, r1, 0 + movs r1, 0x5 + bl __divsi3 + adds r0, 0x8 + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _081496A8 + adds r0, 0x3 +_081496A8: + asrs r0, 2 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + movs r1, 0x3C + ldrsh r0, [r4, r1] + lsls r0, 26 + lsrs r0, 24 + movs r1, 0x28 + bl Sin + adds r0, 0x8 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + b _081496DC +_081496D6: + adds r0, r4, 0 + bl DestroySprite +_081496DC: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8149670 + + thumb_func_start sub_81496E4 +sub_81496E4: @ 81496E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _08149740 + movs r1, 0x78 + movs r2, 0x8 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0814973A + ldr r4, _08149744 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r2, r3, r4 + movs r1, 0 + movs r0, 0x8 + strh r0, [r2, 0x38] + strh r5, [r2, 0x3A] + strh r1, [r2, 0x3C] + ldrb r1, [r2, 0x1] + subs r0, 0xC + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x32 + orrs r0, r1 + strb r0, [r2, 0x3] + adds r2, 0x43 + movs r0, 0x1 + strb r0, [r2] + adds r4, 0x1C + adds r3, r4 + ldr r0, _08149748 + str r0, [r3] +_0814973A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149740: .4byte gSpriteTemplate_8416EB8 +_08149744: .4byte gSprites +_08149748: .4byte sub_8149670 + thumb_func_end sub_81496E4 + + thumb_func_start sub_814974C +sub_814974C: @ 814974C + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x38 + ldrsh r0, [r4, r1] + cmp r0, 0x8 + ble _08149788 + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Sin + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x3A] + lsls r0, 24 + lsrs r0, 24 + movs r2, 0x38 + ldrsh r1, [r4, r2] + bl Cos + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + ldrh r1, [r4, 0x34] + subs r0, r1 + strh r0, [r4, 0x38] + ldrh r0, [r4, 0x3A] + adds r0, 0x4 + strh r0, [r4, 0x3A] + b _0814978E +_08149788: + adds r0, r4, 0 + bl DestroySprite +_0814978E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_814974C + + thumb_func_start sub_8149794 +sub_8149794: @ 8149794 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r0, _081497F0 + movs r1, 0x78 + movs r2, 0x38 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _081497EA + ldr r4, _081497F4 + lsls r3, r0, 4 + adds r3, r0 + lsls r3, 2 + adds r2, r3, r4 + movs r1, 0 + strh r5, [r2, 0x34] + movs r0, 0x78 + strh r0, [r2, 0x38] + strh r6, [r2, 0x3A] + strh r1, [r2, 0x3C] + ldrb r1, [r2, 0x1] + subs r0, 0x7C + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r2, 0x3] + movs r1, 0x3E + orrs r0, r1 + strb r0, [r2, 0x3] + adds r2, 0x43 + movs r0, 0x1 + strb r0, [r2] + adds r4, 0x1C + adds r3, r4 + ldr r0, _081497F8 + str r0, [r3] +_081497EA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081497F0: .4byte gSpriteTemplate_8416EB8 +_081497F4: .4byte gSprites +_081497F8: .4byte sub_814974C + thumb_func_end sub_8149794 + + thumb_func_start sub_81497FC +sub_81497FC: @ 81497FC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x3C] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08149810 + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] +_08149810: + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0x7F + bgt _081498C0 + lsls r0, r1, 24 + lsrs r0, 24 + movs r5, 0x38 + ldrsh r1, [r4, r5] + bl Sin + negs r0, r0 + strh r0, [r4, 0x26] + movs r0, 0x34 + ldrsh r1, [r4, r0] + movs r2, 0x3C + ldrsh r0, [r4, r2] + muls r0, r1 + movs r1, 0x3 + bl __divsi3 + adds r0, 0x78 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x3A] + adds r3, r0, 0x1 + strh r3, [r4, 0x3A] + movs r5, 0x3A + ldrsh r1, [r4, r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + cmp r0, 0 + bge _08149854 + adds r0, 0x7F +_08149854: + asrs r0, 7 + movs r1, 0x1F + subs r1, r0 + lsls r1, 24 + lsrs r2, r1, 24 + lsls r0, r3, 16 + asrs r0, 16 + cmp r0, 0x40 + ble _08149870 + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x1 + strb r0, [r1] + b _081498A0 +_08149870: + adds r3, r4, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + adds r1, r4, 0 + adds r1, 0x43 + movs r0, 0x14 + strb r0, [r1] + ldrh r1, [r4, 0x3A] + movs r5, 0x3A + ldrsh r0, [r4, r5] + cmp r0, 0x70 + ble _081498A0 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _081498A0 + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] +_081498A0: + cmp r2, 0x13 + bhi _081498A6 + movs r2, 0x14 +_081498A6: + movs r0, 0x1F + ands r2, r0 + lsls r2, 1 + ldrb r1, [r4, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + orrs r0, r2 + strb r0, [r4, 0x3] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + b _081498C6 +_081498C0: + adds r0, r4, 0 + bl DestroySprite +_081498C6: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_81497FC + + thumb_func_start sub_81498CC +sub_81498CC: @ 81498CC + push {r4-r6,lr} + mov r6, r8 + push {r6} + ldr r0, _08149948 + movs r1, 0x78 + movs r2, 0x38 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x40 + beq _0814993C + bl Random + ldr r6, _0814994C + lsls r5, r4, 4 + adds r5, r4 + lsls r5, 2 + adds r4, r5, r6 + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x7 + bl __umodsi3 + movs r1, 0x3 + subs r1, r0 + movs r0, 0 + mov r8, r0 + strh r1, [r4, 0x34] + bl Random + movs r1, 0x3F + ands r1, r0 + adds r1, 0x30 + strh r1, [r4, 0x38] + mov r0, r8 + strh r0, [r4, 0x3C] + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x3] + movs r1, 0x3E + orrs r0, r1 + strb r0, [r4, 0x3] + adds r4, 0x43 + movs r0, 0x14 + strb r0, [r4] + adds r6, 0x1C + adds r5, r6 + ldr r0, _08149950 + str r0, [r5] +_0814993C: + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149948: .4byte gSpriteTemplate_8416EB8 +_0814994C: .4byte gSprites +_08149950: .4byte sub_81497FC + thumb_func_end sub_81498CC + + thumb_func_start sub_8149954 +sub_8149954: @ 8149954 + push {lr} + ldr r0, _08149968 + bl LoadCompressedObjectPic + ldr r0, _0814996C + bl LoadSpritePalettes + pop {r0} + bx r0 + .align 2, 0 +_08149968: .4byte gUnknown_08416E84 +_0814996C: .4byte gUnknown_08416E94 + thumb_func_end sub_8149954 + + thumb_func_start sub_8149970 +sub_8149970: @ 8149970 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08149998 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0814999C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xA] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149998: .4byte sub_81499A0 +_0814999C: .4byte gTasks + thumb_func_end sub_8149970 + + thumb_func_start sub_81499A0 +sub_81499A0: @ 81499A0 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r0, _081499E4 + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + movs r0, 0 + strh r0, [r5, 0x26] + movs r0, 0xA + ldrsh r1, [r5, r0] + movs r0, 0x3 + lsls r0, r1 + ldr r1, _081499E8 + str r1, [sp] + movs r1, 0xA + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _081499EC + str r0, [r5] + movs r0, 0x8C + bl PlaySE + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_081499E4: .4byte gTasks +_081499E8: .4byte 0x00007fff +_081499EC: .4byte sub_81499F0 + thumb_func_end sub_81499A0 + + thumb_func_start sub_81499F0 +sub_81499F0: @ 81499F0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08149A48 + lsls r3, r5, 2 + adds r0, r3, r5 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x26] + movs r4, 0x26 + ldrsh r0, [r1, r4] + cmp r0, 0x3F + bgt _08149A4C + movs r0, 0x7 + ands r0, r2 + adds r7, r3, 0 + cmp r0, 0 + bne _08149A36 + movs r4, 0 + adds r6, r1, 0 +_08149A18: + ldrh r1, [r6, 0x26] + movs r0, 0x78 + ands r0, r1 + lsls r0, 1 + lsls r1, r4, 6 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_8149614 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _08149A18 +_08149A36: + ldr r0, _08149A48 + adds r1, r7, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149A54 + .align 2, 0 +_08149A48: .4byte gTasks +_08149A4C: + movs r0, 0x60 + strh r0, [r1, 0x26] + ldr r0, _08149A5C + str r0, [r1] +_08149A54: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08149A5C: .4byte sub_8149A60 + thumb_func_end sub_81499F0 + + thumb_func_start sub_8149A60 +sub_8149A60: @ 8149A60 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08149A80 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r1, r0, r1 + ldrh r3, [r1, 0x26] + movs r4, 0x26 + ldrsh r0, [r1, r4] + cmp r0, 0 + beq _08149A84 + subs r0, r3, 0x1 + strh r0, [r1, 0x26] + b _08149A8A + .align 2, 0 +_08149A80: .4byte gTasks +_08149A84: + adds r0, r2, 0 + bl DestroyTask +_08149A8A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8149A60 + + thumb_func_start sub_8149A90 +sub_8149A90: @ 8149A90 + push {lr} + ldr r0, _08149AA4 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08149AA4: .4byte sub_8149AA8 + thumb_func_end sub_8149A90 + + thumb_func_start sub_8149AA8 +sub_8149AA8: @ 8149AA8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r1, _08149AD4 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x26] + ldr r1, _08149AD8 + str r1, [r0] + movs r0, 0xB7 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149AD4: .4byte gTasks +_08149AD8: .4byte sub_8149ADC + thumb_func_end sub_8149AA8 + + thumb_func_start sub_8149ADC +sub_8149ADC: @ 8149ADC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08149B20 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0x26 + ldrsh r0, [r1, r3] + cmp r0, 0x5F + bgt _08149B24 + adds r6, r2, 0 + cmp r0, 0x5 + bgt _08149B0E + movs r4, 0 +_08149AFC: + lsls r0, r4, 28 + lsrs r0, 24 + bl sub_81496E4 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x8 + bls _08149AFC +_08149B0E: + ldr r0, _08149B20 + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149B28 + .align 2, 0 +_08149B20: .4byte gTasks +_08149B24: + ldr r0, _08149B30 + str r0, [r1] +_08149B28: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149B30: .4byte sub_8149B34 + thumb_func_end sub_8149ADC + + thumb_func_start sub_8149B34 +sub_8149B34: @ 8149B34 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + thumb_func_end sub_8149B34 + + thumb_func_start sub_8149B44 +sub_8149B44: @ 8149B44 + push {lr} + ldr r0, _08149B58 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_08149B58: .4byte sub_8149B5C + thumb_func_end sub_8149B44 + + thumb_func_start sub_8149B5C +sub_8149B5C: @ 8149B5C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r1, _08149B88 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0x26] + ldr r1, _08149B8C + str r1, [r0] + movs r0, 0x66 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08149B88: .4byte gTasks +_08149B8C: .4byte sub_8149B90 + thumb_func_end sub_8149B5C + + thumb_func_start sub_8149B90 +sub_8149B90: @ 8149B90 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08149BFC + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 3 + adds r1, r0, r1 + movs r3, 0x26 + ldrsh r0, [r1, r3] + cmp r0, 0x2F + bgt _08149C00 + adds r6, r2, 0 + cmp r0, 0 + bne _08149BC4 + movs r4, 0 +_08149BB0: + lsls r0, r4, 28 + lsrs r0, 24 + movs r1, 0x4 + bl sub_8149794 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _08149BB0 +_08149BC4: + ldr r0, _08149BFC + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + movs r2, 0x26 + ldrsh r0, [r1, r2] + cmp r0, 0x20 + bne _08149BEA + movs r4, 0 +_08149BD6: + lsls r0, r4, 28 + lsrs r0, 24 + movs r1, 0x8 + bl sub_8149794 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bls _08149BD6 +_08149BEA: + ldr r0, _08149BFC + adds r1, r6, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149C04 + .align 2, 0 +_08149BFC: .4byte gTasks +_08149C00: + ldr r0, _08149C0C + str r0, [r1] +_08149C04: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149C0C: .4byte sub_8149C10 + thumb_func_end sub_8149B90 + + thumb_func_start sub_8149C10 +sub_8149C10: @ 8149C10 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + pop {r0} + bx r0 + thumb_func_end sub_8149C10 + + thumb_func_start sub_8149C20 +sub_8149C20: @ 8149C20 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08149C48 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08149C4C + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xC] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149C48: .4byte sub_8149C50 +_08149C4C: .4byte gTasks + thumb_func_end sub_8149C20 + + thumb_func_start sub_8149C50 +sub_8149C50: @ 8149C50 + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r0, _08149C98 + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + movs r0, 0 + strh r0, [r5, 0x26] + ldr r0, _08149C9C + ldr r1, _08149CA0 + movs r2, 0x30 + bl CpuSet + ldr r0, _08149CA4 + ldr r1, _08149CA8 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08149CAC + str r0, [r5] + movs r0, 0xCA + bl PlaySE + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149C98: .4byte gTasks +_08149C9C: .4byte gPlttBufferFaded + 0x40 +_08149CA0: .4byte gPlttBufferUnfaded + 0x40 +_08149CA4: .4byte 0xfff9001c +_08149CA8: .4byte 0x00007fff +_08149CAC: .4byte sub_8149CB0 + thumb_func_end sub_8149C50 + + thumb_func_start sub_8149CB0 +sub_8149CB0: @ 8149CB0 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _08149CE8 + lsls r5, r6, 2 + adds r0, r5, r6 + lsls r0, 3 + adds r1, r0, r1 + movs r0, 0x26 + ldrsh r2, [r1, r0] + cmp r2, 0x7F + bgt _08149D2C + adds r0, r2, 0 + cmp r0, 0 + beq _08149CEC + cmp r0, 0x20 + beq _08149D00 + cmp r2, 0x31 + bgt _08149D10 + bl Random + movs r1, 0x7 + ands r0, r1 + bl sub_81498CC + b _08149D10 + .align 2, 0 +_08149CE8: .4byte gTasks +_08149CEC: + movs r4, 0 +_08149CEE: + adds r0, r4, 0 + bl sub_81498CC + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _08149CEE + b _08149D10 +_08149D00: + ldr r0, _08149D20 + ldr r1, _08149D24 + str r1, [sp] + movs r1, 0x10 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_08149D10: + ldr r0, _08149D28 + adds r1, r5, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149D30 + .align 2, 0 +_08149D20: .4byte 0xffff001c +_08149D24: .4byte 0x00007fff +_08149D28: .4byte gTasks +_08149D2C: + ldr r0, _08149D38 + str r0, [r1] +_08149D30: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149D38: .4byte sub_8149D3C + thumb_func_end sub_8149CB0 + + thumb_func_start sub_8149D3C +sub_8149D3C: @ 8149D3C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08149D58 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08149D54 + adds r0, r2, 0 + bl DestroyTask +_08149D54: + pop {r0} + bx r0 + .align 2, 0 +_08149D58: .4byte gPaletteFade + thumb_func_end sub_8149D3C + + thumb_func_start sub_8149D5C +sub_8149D5C: @ 8149D5C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _08149D84 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08149D88 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0xC] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08149D84: .4byte sub_8149D8C +_08149D88: .4byte gTasks + thumb_func_end sub_8149D5C + + thumb_func_start sub_8149D8C +sub_8149D8C: @ 8149D8C + push {r4,r5,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_8149520 + ldr r0, _08149DD4 + lsls r5, r4, 2 + adds r5, r4 + lsls r5, 3 + adds r5, r0 + movs r0, 0 + strh r0, [r5, 0x26] + ldr r0, _08149DD8 + ldr r1, _08149DDC + movs r2, 0x30 + bl CpuSet + ldr r0, _08149DE0 + ldr r1, _08149DE4 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _08149DE8 + str r0, [r5] + movs r0, 0xCA + bl PlaySE + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08149DD4: .4byte gTasks +_08149DD8: .4byte gPlttBufferFaded + 0x40 +_08149DDC: .4byte gPlttBufferUnfaded + 0x40 +_08149DE0: .4byte 0xfff90001 +_08149DE4: .4byte 0x00007fff +_08149DE8: .4byte sub_8149DEC + thumb_func_end sub_8149D8C + + thumb_func_start sub_8149DEC +sub_8149DEC: @ 8149DEC + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _08149E24 + lsls r5, r6, 2 + adds r0, r5, r6 + lsls r0, 3 + adds r1, r0, r1 + movs r0, 0x26 + ldrsh r2, [r1, r0] + cmp r2, 0x7F + bgt _08149E68 + adds r0, r2, 0 + cmp r0, 0 + beq _08149E28 + cmp r0, 0x20 + beq _08149E3C + cmp r2, 0x31 + bgt _08149E4C + bl Random + movs r1, 0x7 + ands r0, r1 + bl sub_81498CC + b _08149E4C + .align 2, 0 +_08149E24: .4byte gTasks +_08149E28: + movs r4, 0 +_08149E2A: + adds r0, r4, 0 + bl sub_81498CC + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x7 + bls _08149E2A + b _08149E4C +_08149E3C: + ldr r0, _08149E5C + ldr r1, _08149E60 + str r1, [sp] + movs r1, 0x10 + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade +_08149E4C: + ldr r0, _08149E64 + adds r1, r5, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x26] + adds r0, 0x1 + strh r0, [r1, 0x26] + b _08149E6C + .align 2, 0 +_08149E5C: .4byte 0xffff0001 +_08149E60: .4byte 0x00007fff +_08149E64: .4byte gTasks +_08149E68: + ldr r0, _08149E74 + str r0, [r1] +_08149E6C: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08149E74: .4byte sub_8149D3C + thumb_func_end sub_8149DEC + + thumb_func_start nullsub_85 +nullsub_85: @ 8149E78 + bx lr + thumb_func_end nullsub_85 + + thumb_func_start sub_8149E7C +sub_8149E7C: @ 8149E7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + movs r1, 0 + ldr r3, _08149FB0 + ldr r2, _08149FB4 +_08149E96: + lsls r0, r1, 1 + add r0, sp + adds r0, 0x4 + strh r2, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xF + bls _08149E96 + adds r0, r3, 0 + movs r1, 0 + bl CreateTask + mov r8, r0 + mov r0, r8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _08149FB8 + mov r1, r8 + lsls r6, r1, 2 + add r6, r8 + lsls r6, 3 + adds r6, r0 + strh r5, [r6, 0xA] + strh r7, [r6, 0xC] + movs r1, 0x80 + lsls r1, 1 + strh r1, [r6, 0xE] + movs r0, 0x10 + strh r0, [r6, 0x10] + movs r4, 0x80 + lsls r4, 9 + str r1, [sp] + movs r0, 0x1E + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + movs r0, 0x10 + ldrsh r1, [r6, r0] + adds r0, r4, 0 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r0, 0x1F + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + ldr r1, _08149FBC + mov r9, r1 + lsls r2, r5, 4 + adds r2, r5 + lsls r2, 2 + mov r3, r9 + adds r3, 0x1C + adds r0, r2, r3 + ldr r1, _08149FC0 + str r1, [r0] + add r2, r9 + ldrb r1, [r2, 0x1] + movs r4, 0x4 + negs r4, r4 + adds r0, r4, 0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r1, [r2, 0x3] + movs r0, 0x3F + negs r0, r0 + ands r0, r1 + movs r1, 0x3C + orrs r0, r1 + strb r0, [r2, 0x3] + movs r0, 0x3E + adds r0, r2 + mov r10, r0 + ldrb r1, [r0] + movs r5, 0x5 + negs r5, r5 + adds r0, r5, 0 + ands r0, r1 + mov r1, r10 + strb r0, [r1] + ldrb r1, [r2, 0x5] + lsrs r1, 4 + lsls r1, 5 + ldr r0, _08149FC4 + mov r10, r0 + add r1, r10 + add r0, sp, 0x4 + movs r2, 0x10 + str r3, [sp, 0x24] + bl CpuSet + lsls r1, r7, 4 + adds r1, r7 + lsls r1, 2 + ldr r3, [sp, 0x24] + adds r3, r1, r3 + ldr r0, _08149FC0 + str r0, [r3] + add r1, r9 + ldrb r0, [r1, 0x1] + ands r4, r0 + movs r0, 0x1 + orrs r4, r0 + strb r4, [r1, 0x1] + ldrb r0, [r1, 0x3] + movs r2, 0x3E + orrs r0, r2 + strb r0, [r1, 0x3] + adds r2, r1, 0 + adds r2, 0x3E + ldrb r0, [r2] + ands r5, r0 + strb r5, [r2] + ldrb r1, [r1, 0x5] + lsrs r1, 4 + lsls r1, 5 + add r1, r10 + add r0, sp, 0x4 + movs r2, 0x10 + bl CpuSet + movs r1, 0 + strh r1, [r6, 0x18] + mov r0, r8 + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08149FB0: .4byte sub_8149FC8 +_08149FB4: .4byte 0x00007fff +_08149FB8: .4byte gTasks +_08149FBC: .4byte gSprites +_08149FC0: .4byte nullsub_85 +_08149FC4: .4byte gPlttBufferFaded + 0x200 + thumb_func_end sub_8149E7C + + thumb_func_start sub_8149FC8 +sub_8149FC8: @ 8149FC8 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08149FE4 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x12] + movs r0, 0x8 + strh r0, [r1, 0x14] + ldr r0, _08149FE8 + str r0, [r1] + bx lr + .align 2, 0 +_08149FE4: .4byte gTasks +_08149FE8: .4byte sub_8149FEC + thumb_func_end sub_8149FC8 + + thumb_func_start sub_8149FEC +sub_8149FEC: @ 8149FEC + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _0814A00C + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r2, r0, r1 + movs r1, 0x18 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _0814A010 + adds r0, r3, 0 + bl sub_814A208 + b _0814A032 + .align 2, 0 +_0814A00C: .4byte gTasks +_0814A010: + ldrh r1, [r2, 0x14] + movs r4, 0x14 + ldrsh r0, [r2, r4] + cmp r0, 0x80 + bne _0814A022 + adds r0, r3, 0 + bl sub_814A158 + b _0814A032 +_0814A022: + adds r0, r1, 0x2 + strh r0, [r2, 0x14] + ldrh r0, [r2, 0x12] + movs r1, 0x1 + eors r0, r1 + strh r0, [r2, 0x12] + ldr r0, _0814A038 + str r0, [r2] +_0814A032: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814A038: .4byte sub_814A03C + thumb_func_end sub_8149FEC + + thumb_func_start sub_814A03C +sub_814A03C: @ 814A03C + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _0814A060 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r3, 0x18 + ldrsh r0, [r2, r3] + adds r5, r1, 0 + cmp r0, 0 + beq _0814A068 + ldr r0, _0814A064 + str r0, [r2] + b _0814A14C + .align 2, 0 +_0814A060: .4byte gTasks +_0814A064: .4byte sub_814A208 +_0814A068: + movs r6, 0 + movs r7, 0x12 + ldrsh r0, [r2, r7] + cmp r0, 0 + bne _0814A0B8 + movs r0, 0xE + ldrsh r1, [r2, r0] + movs r3, 0x14 + ldrsh r0, [r2, r3] + movs r3, 0x80 + lsls r3, 1 + subs r0, r3, r0 + cmp r1, r0 + bge _0814A08E + ldrh r0, [r2, 0x14] + ldrh r7, [r2, 0xE] + adds r0, r7 + strh r0, [r2, 0xE] + b _0814A092 +_0814A08E: + strh r3, [r2, 0xE] + movs r6, 0x1 +_0814A092: + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r3, r0, r5 + movs r0, 0x10 + ldrsh r1, [r3, r0] + movs r7, 0x14 + ldrsh r0, [r3, r7] + adds r0, 0x10 + cmp r1, r0 + ble _0814A0B2 + ldrh r0, [r3, 0x10] + ldrh r1, [r3, 0x14] + subs r0, r1 + strh r0, [r3, 0x10] + b _0814A102 +_0814A0B2: + movs r0, 0x10 + strh r0, [r3, 0x10] + b _0814A0FC +_0814A0B8: + movs r0, 0x10 + ldrsh r1, [r2, r0] + movs r3, 0x14 + ldrsh r0, [r2, r3] + movs r3, 0x80 + lsls r3, 1 + subs r0, r3, r0 + cmp r1, r0 + bge _0814A0D4 + ldrh r0, [r2, 0x14] + ldrh r7, [r2, 0x10] + adds r0, r7 + strh r0, [r2, 0x10] + b _0814A0D8 +_0814A0D4: + strh r3, [r2, 0x10] + movs r6, 0x1 +_0814A0D8: + lsls r2, r4, 2 + adds r0, r2, r4 + lsls r0, 3 + adds r3, r0, r5 + movs r0, 0xE + ldrsh r1, [r3, r0] + movs r7, 0x14 + ldrsh r0, [r3, r7] + adds r0, 0x10 + cmp r1, r0 + ble _0814A0F8 + ldrh r0, [r3, 0xE] + ldrh r1, [r3, 0x14] + subs r0, r1 + strh r0, [r3, 0xE] + b _0814A102 +_0814A0F8: + movs r0, 0x10 + strh r0, [r3, 0xE] +_0814A0FC: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0814A102: + adds r0, r2, r4 + lsls r0, 3 + adds r5, r0, r5 + movs r0, 0xE + ldrsh r1, [r5, r0] + movs r4, 0x80 + lsls r4, 9 + adds r0, r4, 0 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r0, 0x1E + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + movs r3, 0x10 + ldrsh r1, [r5, r3] + adds r0, r4, 0 + bl __divsi3 + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + str r1, [sp] + movs r0, 0x1F + movs r2, 0 + movs r3, 0 + bl SetOamMatrix + cmp r6, 0x2 + bne _0814A14C + ldr r0, _0814A154 + str r0, [r5] +_0814A14C: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814A154: .4byte sub_8149FEC + thumb_func_end sub_814A03C + + thumb_func_start sub_814A158 +sub_814A158: @ 814A158 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0814A200 + mov r8, r1 + ldr r1, _0814A204 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x1] + movs r6, 0x4 + negs r6, r6 + adds r1, r6, 0 + ands r1, r3 + strb r1, [r2, 0x1] + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x3] + movs r5, 0x3F + negs r5, r5 + adds r1, r5, 0 + ands r1, r3 + strb r1, [r2, 0x3] + movs r1, 0xA + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + adds r1, 0x3E + ldrb r2, [r1] + movs r3, 0x4 + orrs r2, r3 + strb r2, [r1] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x1] + ands r6, r2 + strb r6, [r1, 0x1] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x3] + ands r5, r2 + strb r5, [r1, 0x3] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + ands r2, r3 + strb r2, [r1] + bl DestroyTask + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814A200: .4byte gSprites +_0814A204: .4byte gTasks + thumb_func_end sub_814A158 + + thumb_func_start sub_814A208 +sub_814A208: @ 814A208 + push {r4-r6,lr} + mov r6, r8 + push {r6} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0814A2B0 + mov r8, r1 + ldr r1, _0814A2B4 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x1] + movs r6, 0x4 + negs r6, r6 + adds r1, r6, 0 + ands r1, r3 + strb r1, [r2, 0x1] + movs r2, 0xA + ldrsh r1, [r4, r2] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + add r2, r8 + ldrb r3, [r2, 0x3] + movs r5, 0x3F + negs r5, r5 + adds r1, r5, 0 + ands r1, r3 + strb r1, [r2, 0x3] + movs r1, 0xA + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + ands r2, r3 + strb r2, [r1] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x1] + ands r6, r2 + strb r6, [r1, 0x1] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + ldrb r2, [r1, 0x3] + ands r5, r2 + strb r5, [r1, 0x3] + movs r1, 0xC + ldrsh r2, [r4, r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + add r1, r8 + adds r1, 0x3E + ldrb r2, [r1] + movs r3, 0x4 + orrs r2, r3 + strb r2, [r1] + bl DestroyTask + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0814A2B0: .4byte gSprites +_0814A2B4: .4byte gTasks + thumb_func_end sub_814A208 + + thumb_func_start sub_814A2B8 +sub_814A2B8: @ 814A2B8 + ldr r2, _0814A2CC + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + lsls r1, 1 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + bx lr + .align 2, 0 +_0814A2CC: .4byte gUnknown_08417068 + thumb_func_end sub_814A2B8 + + thumb_func_start sub_814A2D0 +sub_814A2D0: @ 814A2D0 + lsls r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r2, _0814A2E8 + lsrs r0, 14 + adds r0, r2 + ldr r0, [r0] + lsls r2, r1, 1 + adds r2, r1 + lsls r2, 4 + adds r0, r2 + bx lr + .align 2, 0 +_0814A2E8: .4byte gBardMusicTable + thumb_func_end sub_814A2D0 + + thumb_func_start sub_814A2EC +sub_814A2EC: @ 814A2EC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + lsls r2, 16 + lsrs r2, 16 + mov r9, r2 + ldr r4, _0814A370 + adds r2, r1, 0 + adds r3, r6, 0 + adds r3, 0x18 + movs r7, 0x5 +_0814A306: + ldrb r0, [r2] + strh r0, [r3] + ldrb r0, [r2] + cmp r0, 0xFF + beq _0814A328 + movs r1, 0x1 + ldrsb r1, [r2, r1] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + adds r1, r0 + strh r1, [r3, 0x2] + ldrh r0, [r2, 0x4] + strh r0, [r3, 0x6] + ldrh r0, [r6, 0x4] + adds r0, r1 + strh r0, [r6, 0x4] +_0814A328: + adds r2, 0x8 + adds r3, 0x8 + subs r7, 0x1 + cmp r7, 0 + bge _0814A306 + movs r7, 0x6 + movs r5, 0 + movs r0, 0x1E + mov r8, r0 + adds r4, r6, 0 +_0814A33C: + mov r0, r8 + add r0, r9 + adds r1, r5, 0 + bl sub_814A2B8 + adds r1, r0, 0 + strh r1, [r4, 0x1C] + adds r4, 0x8 + adds r5, 0x1 + cmp r5, r7 + blt _0814A33C + ldrb r1, [r6] + adds r1, 0x1 + movs r2, 0 + strb r1, [r6] + strb r2, [r6, 0x1] + strb r2, [r6, 0x2] + strb r2, [r6, 0x3] + strh r2, [r6, 0xA] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0814A370: .4byte gUnknown_084170F4 + thumb_func_end sub_814A2EC + + thumb_func_start sub_814A374 +sub_814A374: @ 814A374 + push {lr} + ldr r0, _0814A38C + ldrb r0, [r0, 0x17] + bl is_light_level_1_2_3_or_6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0814A390 + movs r0, 0 + b _0814A39E + .align 2, 0 +_0814A38C: .4byte gMapHeader +_0814A390: + ldr r1, _0814A3A4 + ldr r0, _0814A3A8 + str r0, [r1] + ldr r1, _0814A3AC + ldr r0, _0814A3B0 + str r0, [r1] + movs r0, 0x1 +_0814A39E: + pop {r1} + bx r1 + .align 2, 0 +_0814A3A4: .4byte gUnknown_0300485C +_0814A3A8: .4byte sub_808AB90 +_0814A3AC: .4byte gUnknown_03005CE4 +_0814A3B0: .4byte hm_teleport_run_dp02scr + thumb_func_end sub_814A374 + + thumb_func_start hm_teleport_run_dp02scr +hm_teleport_run_dp02scr: @ 814A3B4 + push {lr} + bl new_game + movs r0, 0x3F + bl FieldEffectStart + ldr r0, _0814A3CC + ldr r1, _0814A3D0 + ldrb r1, [r1] + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0814A3CC: .4byte gUnknown_0202FF84 +_0814A3D0: .4byte gUnknown_03005CE0 + thumb_func_end hm_teleport_run_dp02scr + + thumb_func_start sub_814A3D4 +sub_814A3D4: @ 814A3D4 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0814A3FC + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _0814A400 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0x1 + bl SetPlayerAvatarTransitionFlags + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0814A3FC: .4byte gTasks +_0814A400: .4byte sub_814A404 + thumb_func_end sub_814A3D4 + + thumb_func_start sub_814A404 +sub_814A404: @ 814A404 + push {lr} + movs r0, 0x3F + bl FieldEffectActiveListRemove + bl sub_8087BA8 + pop {r0} + bx r0 + thumb_func_end sub_814A404 + + thumb_func_start unref_sub_814A414 +unref_sub_814A414: @ 814A414 + push {lr} + sub sp, 0x8 + bl MenuZeroFillScreen + movs r0, 0 + movs r1, 0 + movs r2, 0x10 + movs r3, 0x12 + bl MenuDrawTextWindow + ldr r3, _0814A458 + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x8 + bl PrintMenuItems + movs r0, 0 + str r0, [sp] + movs r0, 0xF + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x8 + bl InitMenu + ldr r1, _0814A45C + ldr r0, _0814A460 + str r0, [r1] + movs r0, 0 + add sp, 0x8 + pop {r1} + bx r1 + .align 2, 0 +_0814A458: .4byte gUnknown_0842C29C +_0814A45C: .4byte gCallback_03004AE8 +_0814A460: .4byte sub_814A464 + thumb_func_end unref_sub_814A414 + + thumb_func_start sub_814A464 +sub_814A464: @ 814A464 + push {lr} + bl ProcessMenuInput + lsls r0, 24 + lsrs r0, 24 + adds r2, r0, 0 + lsls r0, r2, 24 + asrs r1, r0, 24 + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + bne _0814A480 + movs r0, 0 + b _0814A4B2 +_0814A480: + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0814A4AC + ldr r0, _0814A4A0 + strb r2, [r0] + ldr r2, _0814A4A4 + ldr r0, _0814A4A8 + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + str r0, [r2] + movs r0, 0 + b _0814A4B2 + .align 2, 0 +_0814A4A0: .4byte gUnknown_02024D1E +_0814A4A4: .4byte gCallback_03004AE8 +_0814A4A8: .4byte gUnknown_0842C29C +_0814A4AC: + bl sub_8071C20 + movs r0, 0x1 +_0814A4B2: + pop {r1} + bx r1 + thumb_func_end sub_814A464 + + thumb_func_start sub_814A4B8 +sub_814A4B8: @ 814A4B8 + push {r4,lr} + ldr r2, _0814A4FC + ldr r1, _0814A500 + adds r0, r2, r1 + movs r1, 0x3 + strb r1, [r0] + ldr r3, _0814A504 + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _0814A508 + ldrb r0, [r3] + adds r0, 0x1 + ldr r4, _0814A50C + adds r1, r2, r4 + strh r0, [r1] + ldrb r0, [r3] + adds r0, 0x1 + ldr r3, _0814A510 + adds r1, r2, r3 + strh r0, [r1] + subs r4, 0x4 + adds r0, r2, r4 + movs r1, 0x1 + strh r1, [r0] + ldr r0, _0814A514 + adds r2, r0 + strh r1, [r2] + bl sub_8071C20 + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0814A4FC: .4byte gSaveBlock2 +_0814A500: .4byte 0x00000556 +_0814A504: .4byte 0x00000557 +_0814A508: .4byte gUnknown_02024D1E +_0814A50C: .4byte 0x0000055c +_0814A510: .4byte 0x0000055e +_0814A514: .4byte 0x0000055a + thumb_func_end sub_814A4B8 + + thumb_func_start sub_814A518 +sub_814A518: @ 814A518 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + bl SkipExtCtrlCodes + adds r0, r4, 0 + bl StringLength + lsls r0, 24 + lsrs r1, r0, 24 + cmp r5, 0xFC + bne _0814A556 + cmp r1, 0x5 + bhi _0814A55A + movs r3, 0xFC + movs r2, 0x7 +_0814A53A: + adds r0, r4, r1 + strb r3, [r0] + strb r2, [r0, 0x1] + adds r0, r1, 0x2 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x5 + bls _0814A53A + b _0814A55A +_0814A54C: + adds r0, r4, r1 + strb r5, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 +_0814A556: + cmp r1, 0x5 + bls _0814A54C +_0814A55A: + adds r1, r4, r1 + movs r0, 0xFF + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_814A518 + + thumb_func_start sub_814A568 +sub_814A568: @ 814A568 + push {r4,lr} + adds r4, r0, 0 + bl StringLength + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x5 + bhi _0814A582 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString + b _0814A588 +_0814A582: + adds r0, r4, 0 + bl SkipExtCtrlCodes +_0814A588: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_814A568 + + thumb_func_start sub_814A590 +sub_814A590: @ 814A590 + ldr r0, _0814A5AC + movs r1, 0x40 + strb r1, [r0] + ldr r0, _0814A5B0 + strb r1, [r0] + ldr r0, _0814A5B4 + strb r1, [r0] + ldr r0, _0814A5B8 + movs r1, 0 + strb r1, [r0] + ldr r0, _0814A5BC + strb r1, [r0] + bx lr + .align 2, 0 +_0814A5AC: .4byte gUnknown_0203A3D0 +_0814A5B0: .4byte gUnknown_0203A3D1 +_0814A5B4: .4byte gUnknown_0203A3D2 +_0814A5B8: .4byte gUnknown_0203A3D3 +_0814A5BC: .4byte gUnknown_0203A3D4 + thumb_func_end sub_814A590 + + thumb_func_start sub_814A5C0 +sub_814A5C0: @ 814A5C0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, [sp, 0x1C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 16 + lsrs r7, r3, 16 + lsls r4, 24 + lsrs r4, 24 + mov r9, r4 + ldr r0, _0814A678 + ldrb r0, [r0] + cmp r0, 0x40 + bne _0814A5F2 + ldr r0, _0814A67C + ldrb r0, [r0] + cmp r0, 0x40 + beq _0814A5F6 +_0814A5F2: + bl sub_814A7FC +_0814A5F6: + movs r4, 0x1 + ldr r0, _0814A680 + cmp r6, r0 + bne _0814A61C + ldr r1, _0814A684 + movs r0, 0xF + ands r0, r5 + lsls r0, 1 + adds r0, r1 + strh r7, [r0] + ldr r0, _0814A688 + bl LoadSpritePalette + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _0814A61C + ldr r6, _0814A68C + movs r4, 0 +_0814A61C: + movs r7, 0xF + adds r0, r5, 0 + ands r0, r7 + lsls r0, 3 + ldr r1, _0814A690 + adds r0, r1 + bl LoadSpriteSheetDeferred + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r4, _0814A694 + adds r0, r4 + movs r1, 0 + movs r2, 0xA0 + mov r3, r8 + bl CreateSprite + ldr r5, _0814A678 + strb r0, [r5] + adds r4, 0x30 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0xA0 + mov r3, r8 + bl CreateSprite + ldr r1, _0814A67C + strb r0, [r1] + ldrb r0, [r5] + cmp r0, 0x40 + beq _0814A6AE + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A698 + adds r4, r0, r1 + ldr r0, _0814A680 + cmp r6, r0 + bne _0814A69C + ldrb r1, [r4, 0x5] + adds r0, r7, 0 + ands r0, r1 + strb r0, [r4, 0x5] + b _0814A6AE + .align 2, 0 +_0814A678: .4byte gUnknown_0203A3D0 +_0814A67C: .4byte gUnknown_0203A3D1 +_0814A680: .4byte 0x0000ffff +_0814A684: .4byte gUnknown_0203A360 +_0814A688: .4byte gUnknown_0842F240 +_0814A68C: .4byte 0x0000fff0 +_0814A690: .4byte gUnknown_0842F140 +_0814A694: .4byte gSpriteTemplate_842F250 +_0814A698: .4byte gSprites +_0814A69C: + adds r0, r6, 0 + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + adds r1, r7, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_0814A6AE: + ldr r1, _0814A6D4 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A72C + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A6D8 + adds r4, r0, r1 + ldr r0, _0814A6DC + cmp r6, r0 + bne _0814A6E0 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + strb r0, [r4, 0x5] + b _0814A6F2 + .align 2, 0 +_0814A6D4: .4byte gUnknown_0203A3D1 +_0814A6D8: .4byte gSprites +_0814A6DC: .4byte 0x0000ffff +_0814A6E0: + adds r0, r6, 0 + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_0814A6F2: + movs r3, 0x80 + lsls r3, 19 + ldrh r1, [r3] + movs r0, 0xC0 + lsls r0, 7 + ands r0, r1 + cmp r0, 0 + bne _0814A70C + ldr r0, _0814A744 + ldrb r1, [r0] + movs r2, 0x1F + orrs r1, r2 + strb r1, [r0] +_0814A70C: + ldr r1, _0814A748 + ldrh r0, [r3] + lsrs r0, 15 + strb r0, [r1] + ldr r1, _0814A74C + ldr r2, _0814A750 + ldrb r0, [r2] + strb r0, [r1] + ldrh r0, [r3] + movs r4, 0x80 + lsls r4, 8 + adds r1, r4, 0 + orrs r0, r1 + strh r0, [r3] + movs r0, 0x10 + strb r0, [r2] +_0814A72C: + mov r0, r9 + bl sub_814A958 + ldr r0, _0814A754 + ldrb r0, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0814A744: .4byte REG_WINOUT +_0814A748: .4byte gUnknown_0203A3D3 +_0814A74C: .4byte gUnknown_0203A3D4 +_0814A750: .4byte 0x0400004b +_0814A754: .4byte gUnknown_0203A3D0 + thumb_func_end sub_814A5C0 + + thumb_func_start sub_814A758 +sub_814A758: @ 814A758 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + movs r1, 0 + movs r3, 0 + bl sub_814A5C0 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + cmp r4, 0x40 + beq _0814A79A + ldr r0, _0814A7A4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0814A7A8 + adds r1, r0 + lsls r3, r5, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] +_0814A79A: + adds r0, r4, 0 + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0814A7A4: .4byte gUnknown_0203A3D0 +_0814A7A8: .4byte gSprites + thumb_func_end sub_814A758 + + thumb_func_start unref_sub_814A7AC +unref_sub_814A7AC: @ 814A7AC + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + lsrs r7, r2, 24 + movs r3, 0 + movs r2, 0xF + movs r1, 0 + ldr r6, _0814A7F8 + movs r5, 0xF +_0814A7C6: + lsls r0, r1, 1 + adds r0, r6 + ldrh r0, [r0] + cmp r0, r4 + bne _0814A7DA + lsrs r0, r1, 4 + lsls r0, 24 + lsrs r3, r0, 24 + adds r2, r1, 0 + ands r2, r5 +_0814A7DA: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xFF + bls _0814A7C6 + mov r0, r12 + adds r1, r3, 0 + adds r3, r7, 0 + bl sub_814A758 + lsls r0, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0814A7F8: .4byte gPlttBufferUnfaded + thumb_func_end unref_sub_814A7AC + + thumb_func_start sub_814A7FC +sub_814A7FC: @ 814A7FC + push {r4,lr} + ldr r4, _0814A860 + ldrb r0, [r4] + cmp r0, 0x40 + beq _0814A820 + ldr r0, _0814A864 + bl LoadTilesForSpriteSheet + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A868 + adds r0, r1 + bl DestroySpriteAndFreeResources + movs r0, 0x40 + strb r0, [r4] +_0814A820: + ldr r4, _0814A86C + ldrb r0, [r4] + cmp r0, 0x40 + beq _0814A858 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A868 + adds r0, r1 + bl DestroySpriteAndFreeResources + movs r0, 0x40 + strb r0, [r4] + ldr r0, _0814A870 + ldrb r0, [r0] + cmp r0, 0 + bne _0814A850 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _0814A874 + ands r0, r1 + strh r0, [r2] +_0814A850: + ldr r0, _0814A878 + ldr r1, _0814A87C + ldrb r1, [r1] + strb r1, [r0] +_0814A858: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814A860: .4byte gUnknown_0203A3D0 +_0814A864: .4byte gUnknown_0842F140 +_0814A868: .4byte gSprites +_0814A86C: .4byte gUnknown_0203A3D1 +_0814A870: .4byte gUnknown_0203A3D3 +_0814A874: .4byte 0x00007fff +_0814A878: .4byte 0x0400004b +_0814A87C: .4byte gUnknown_0203A3D4 + thumb_func_end sub_814A7FC + + thumb_func_start sub_814A880 +sub_814A880: @ 814A880 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + lsls r1, 24 + lsrs r4, r1, 24 + adds r6, r4, 0 + ldr r1, _0814A8F8 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A8C0 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A8FC + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + adds r0, r2, 0 + adds r0, 0x28 + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + strh r5, [r2, 0x20] + strh r4, [r2, 0x22] +_0814A8C0: + ldr r1, _0814A900 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A8F2 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A8FC + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + adds r0, r2, 0 + adds r0, 0x28 + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + strh r7, [r2, 0x20] + strh r6, [r2, 0x22] +_0814A8F2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814A8F8: .4byte gUnknown_0203A3D0 +_0814A8FC: .4byte gSprites +_0814A900: .4byte gUnknown_0203A3D1 + thumb_func_end sub_814A880 + + thumb_func_start sub_814A904 +sub_814A904: @ 814A904 + push {lr} + ldr r1, _0814A94C + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A926 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A950 + adds r0, r1 + adds r2, r0, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_0814A926: + ldr r1, _0814A954 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A946 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A950 + adds r0, r1 + adds r2, r0, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_0814A946: + pop {r0} + bx r0 + .align 2, 0 +_0814A94C: .4byte gUnknown_0203A3D0 +_0814A950: .4byte gSprites +_0814A954: .4byte gUnknown_0203A3D1 + thumb_func_end sub_814A904 + + thumb_func_start sub_814A958 +sub_814A958: @ 814A958 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + ldr r4, _0814A9C4 + ldr r2, _0814A9C8 + lsrs r0, 24 + str r0, [sp] + movs r0, 0 + movs r1, 0 + movs r1, 0x2 + str r0, [r4] + str r1, [r4, 0x4] + strh r2, [r4] + adds r4, 0x8 + movs r7, 0x1 + movs r2, 0x1 + ldr r1, [sp] + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _0814AA3A + ldr r0, _0814A9CC + mov r12, r0 + mov r8, r1 + movs r1, 0x8 + negs r1, r1 + mov r10, r1 + ldr r5, _0814A9D0 + mov r9, r5 +_0814A99E: + lsls r0, r3, 16 + asrs r3, r0, 16 + cmp r3, 0x1F + ble _0814A9D4 + mov r6, r12 + ldr r0, [r6] + ldr r1, [r6, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + strh r2, [r4] + lsls r0, r2, 16 + movs r1, 0x80 + lsls r1, 14 + adds r0, r1 + lsrs r2, r0, 16 + ldr r3, [sp] + lsls r5, r3, 16 + b _0814AA20 + .align 2, 0 +_0814A9C4: .4byte gSubspriteTable_203A380 +_0814A9C8: .4byte 0x0000ffff +_0814A9CC: .4byte gUnknown_0842F780 +_0814A9D0: .4byte gUnknown_0842F788 +_0814A9D4: + ldr r6, [sp] + lsls r5, r6, 16 + mov r0, r8 + cmp r0, 0x27 + ble _0814AA0A + cmp r3, 0x8 + ble _0814AA0A + mov r6, r12 + ldr r0, [r6] + ldr r1, [r6, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + lsls r1, r2, 16 + asrs r1, 16 + adds r2, r1, 0 + subs r2, 0x20 + adds r0, r3, 0 + mov r6, r10 + ands r0, r6 + adds r2, r0 + strh r2, [r4] + movs r0, 0x18 + ands r0, r3 + adds r1, r0 + lsls r1, 16 + lsrs r2, r1, 16 + b _0814AA20 +_0814AA0A: + mov r3, r9 + ldr r0, [r3] + ldr r1, [r3, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + strh r2, [r4] + lsls r0, r2, 16 + movs r6, 0x80 + lsls r6, 12 + adds r0, r6 + lsrs r2, r0, 16 +_0814AA20: + adds r4, 0x8 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + asrs r1, r5, 16 + lsls r0, r2, 16 + asrs r0, 16 + subs r1, r0 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + cmp r1, 0x7 + bgt _0814A99E +_0814AA3A: + ldr r5, _0814AAA8 + ldr r0, [r5] + ldr r1, [r5, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + lsls r1, r2, 16 + asrs r1, 16 + subs r1, 0x7 + lsls r0, r3, 16 + asrs r0, 16 + adds r0, r1 + strh r0, [r4] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r6, _0814AAAC + ldrb r0, [r6] + cmp r0, 0x40 + beq _0814AA78 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AAB0 + adds r2, r0, r1 + lsls r1, r7, 3 + ldr r0, _0814AAB4 + adds r1, r0 + adds r0, r2, 0 + bl SetSubspriteTables +_0814AA78: + ldr r1, _0814AAB8 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AA98 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AAB0 + adds r2, r0, r1 + lsls r1, r7, 3 + ldr r0, _0814AAB4 + adds r1, r0 + adds r0, r2, 0 + bl SetSubspriteTables +_0814AA98: + 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 +_0814AAA8: .4byte gUnknown_0842F790 +_0814AAAC: .4byte gUnknown_0203A3D0 +_0814AAB0: .4byte gSprites +_0814AAB4: .4byte gSubspriteTables_842F5C0 +_0814AAB8: .4byte gUnknown_0203A3D1 + thumb_func_end sub_814A958 + + thumb_func_start sub_814AABC +sub_814AABC: @ 814AABC + push {lr} + adds r2, r0, 0 + ldr r1, _0814AAEC + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AAD4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0814AAF0 + adds r1, r0 + str r2, [r1, 0x1C] +_0814AAD4: + ldr r1, _0814AAF4 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AAE8 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0814AAF0 + adds r1, r0 + str r2, [r1, 0x1C] +_0814AAE8: + pop {r0} + bx r0 + .align 2, 0 +_0814AAEC: .4byte gUnknown_0203A3D0 +_0814AAF0: .4byte gSprites +_0814AAF4: .4byte gUnknown_0203A3D1 + thumb_func_end sub_814AABC + + thumb_func_start sub_814AAF8 +sub_814AAF8: @ 814AAF8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + ldr r1, _0814AB70 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AB66 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AB74 + adds r4, r0, r1 + ldr r0, [r4, 0x14] + ldrh r1, [r0, 0x2] + ldr r0, _0814AB78 + cmp r1, r0 + bne _0814AB66 + movs r2, 0 + movs r3, 0xF + movs r1, 0 + ldrb r5, [r4, 0x5] + ldr r0, _0814AB7C + mov r8, r0 + ldr r7, _0814AB80 + movs r6, 0xF +_0814AB32: + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + cmp r0, r12 + bne _0814AB46 + lsrs r0, r1, 4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r1, 0 + ands r3, r6 +_0814AB46: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xFF + bls _0814AB32 + lsls r2, 4 + movs r1, 0xF + adds r0, r1, 0 + ands r0, r5 + orrs r0, r2 + strb r0, [r4, 0x5] + ands r3, r1 + lsls r0, r3, 3 + add r0, r8 + bl RequestSpriteSheetCopy +_0814AB66: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814AB70: .4byte gUnknown_0203A3D0 +_0814AB74: .4byte gSprites +_0814AB78: .4byte 0x0000ffff +_0814AB7C: .4byte gUnknown_0842F140 +_0814AB80: .4byte gPlttBufferUnfaded + thumb_func_end sub_814AAF8 + + thumb_func_start sub_814AB84 +sub_814AB84: @ 814AB84 + push {r4,r5,lr} + ldr r5, _0814ABCC + ldrb r0, [r5] + cmp r0, 0x40 + beq _0814ABC4 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0814ABD0 + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + movs r0, 0x40 + strb r0, [r5] + ldr r0, _0814ABD4 + ldrb r0, [r0] + cmp r0, 0 + bne _0814ABBC + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _0814ABD8 + ands r0, r1 + strh r0, [r2] +_0814ABBC: + ldr r0, _0814ABDC + ldr r1, _0814ABE0 + ldrb r1, [r1] + strb r1, [r0] +_0814ABC4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814ABCC: .4byte gUnknown_0203A3D1 +_0814ABD0: .4byte gSprites +_0814ABD4: .4byte gUnknown_0203A3D3 +_0814ABD8: .4byte 0x00007fff +_0814ABDC: .4byte 0x0400004b +_0814ABE0: .4byte gUnknown_0203A3D4 + thumb_func_end sub_814AB84 + + thumb_func_start unref_sub_814ABE4 +unref_sub_814ABE4: @ 814ABE4 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0814AC40 + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _0814AC44 + movs r2, 0x28 + bl CpuSet + ldr r1, _0814AC48 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AC18 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AC4C + adds r2, r0, r1 + lsls r1, r4, 3 + ldr r0, _0814AC50 + adds r1, r0 + adds r0, r2, 0 + bl SetSubspriteTables +_0814AC18: + ldr r1, _0814AC54 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AC38 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AC4C + adds r2, r0, r1 + lsls r1, r4, 3 + ldr r0, _0814AC50 + adds r1, r0 + adds r0, r2, 0 + bl SetSubspriteTables +_0814AC38: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814AC40: .4byte gUnknown_0842F5BC +_0814AC44: .4byte gSubspriteTable_203A380 +_0814AC48: .4byte gUnknown_0203A3D0 +_0814AC4C: .4byte gSprites +_0814AC50: .4byte gUnknown_0842F758 +_0814AC54: .4byte gUnknown_0203A3D1 + thumb_func_end unref_sub_814ABE4 + + thumb_func_start sub_814AC58 +sub_814AC58: @ 814AC58 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, [sp, 0x1C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 16 + lsrs r6, r3, 16 + lsls r4, 24 + lsrs r4, 24 + mov r9, r4 + ldr r0, _0814ACF8 + ldrb r0, [r0] + cmp r0, 0x40 + beq _0814AC86 + bl sub_814AD44 +_0814AC86: + movs r4, 0x1 + ldr r0, _0814ACFC + cmp r5, r0 + bne _0814ACAC + ldr r1, _0814AD00 + movs r0, 0xF + ands r0, r7 + lsls r0, 1 + adds r0, r1 + strh r6, [r0] + ldr r0, _0814AD04 + bl LoadSpritePalette + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _0814ACAC + ldr r5, _0814AD08 + movs r4, 0 +_0814ACAC: + movs r6, 0xF + adds r0, r7, 0 + ands r0, r6 + lsls r0, 3 + ldr r1, _0814AD0C + adds r0, r1 + bl LoadSpriteSheetDeferred + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r1, _0814AD10 + adds r0, r1 + movs r1, 0 + movs r2, 0xA0 + mov r3, r8 + bl CreateSprite + ldr r1, _0814ACF8 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0814AD2A + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AD14 + adds r4, r0, r1 + ldr r0, _0814ACFC + cmp r5, r0 + bne _0814AD18 + ldrb r1, [r4, 0x5] + adds r0, r6, 0 + ands r0, r1 + strb r0, [r4, 0x5] + b _0814AD2A + .align 2, 0 +_0814ACF8: .4byte gUnknown_0203A3D2 +_0814ACFC: .4byte 0x0000ffff +_0814AD00: .4byte gUnknown_0203A360 +_0814AD04: .4byte gUnknown_0842F248 +_0814AD08: .4byte 0x0000fff1 +_0814AD0C: .4byte gUnknown_0842F1C0 +_0814AD10: .4byte gSpriteTemplate_842F298 +_0814AD14: .4byte gSprites +_0814AD18: + adds r0, r5, 0 + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_0814AD2A: + mov r0, r9 + bl sub_814ADF4 + ldr r0, _0814AD40 + ldrb r0, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0814AD40: .4byte gUnknown_0203A3D2 + thumb_func_end sub_814AC58 + + thumb_func_start sub_814AD44 +sub_814AD44: @ 814AD44 + push {r4,lr} + ldr r4, _0814AD70 + ldrb r0, [r4] + cmp r0, 0x40 + beq _0814AD68 + ldr r0, _0814AD74 + bl LoadTilesForSpriteSheet + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AD78 + adds r0, r1 + bl DestroySpriteAndFreeResources + movs r0, 0x40 + strb r0, [r4] +_0814AD68: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814AD70: .4byte gUnknown_0203A3D2 +_0814AD74: .4byte gUnknown_0842F1C0 +_0814AD78: .4byte gSprites + thumb_func_end sub_814AD44 + + thumb_func_start sub_814AD7C +sub_814AD7C: @ 814AD7C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r1, _0814ADC0 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814ADB8 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814ADC4 + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + adds r0, r2, 0 + adds r0, 0x28 + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + strh r5, [r2, 0x20] + strh r4, [r2, 0x22] +_0814ADB8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814ADC0: .4byte gUnknown_0203A3D2 +_0814ADC4: .4byte gSprites + thumb_func_end sub_814AD7C + + thumb_func_start sub_814ADC8 +sub_814ADC8: @ 814ADC8 + push {lr} + ldr r1, _0814ADEC + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814ADE8 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814ADF0 + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0814ADE8: + pop {r0} + bx r0 + .align 2, 0 +_0814ADEC: .4byte gUnknown_0203A3D2 +_0814ADF0: .4byte gSprites + thumb_func_end sub_814ADC8 + + thumb_func_start sub_814ADF4 +sub_814ADF4: @ 814ADF4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x12 + bls _0814AE00 + movs r2, 0 +_0814AE00: + ldr r1, _0814AE24 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AE1E + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AE28 + adds r0, r1 + lsls r1, r2, 3 + ldr r2, _0814AE2C + adds r1, r2 + bl SetSubspriteTables +_0814AE1E: + pop {r0} + bx r0 + .align 2, 0 +_0814AE24: .4byte gUnknown_0203A3D2 +_0814AE28: .4byte gSprites +_0814AE2C: .4byte gUnknown_0842F6C0 + thumb_func_end sub_814ADF4 + + .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index eb1ad1128..3895b46ff 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -76,6 +76,8 @@ SECTIONS { src/starter_choose.o(.text); src/wallclock.o(.text); asm/rom6.o(.text); + src/intro.o(.text); + asm/rom_813BA94.o(.text); } =0 script_data : diff --git a/src/intro.c b/src/intro.c new file mode 100644 index 000000000..0a91a4f93 --- /dev/null +++ b/src/intro.c @@ -0,0 +1,147 @@ +#include "global.h" +#include "main.h" +#include "palette.h" +#include "task.h" +#include "link.h" + +struct GcmbStruct +{ + u16 gcmb_field_0; + u8 gcmb_field_2; +}; + +extern s32 gUnknown_03005ED0; +extern struct GcmbStruct gUnknown_03005EE0; +extern u16 gSaveFileStatus; + +extern const u8 gIntroCopyright_Gfx[]; +extern const u16 gIntroCopyright_Pal[]; +extern const u16 gIntroCopyright_Tilemap[]; + +extern void CB2_InitTitleScreen(void); + +void CB2_813B7EC(void); +void task_intro_1(u8); + +void sub_813B784(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +void CB2_813B798(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + if (gMain.newKeys && !gPaletteFade.active) + SetMainCallback2(CB2_813B7EC); + else if (gUnknown_03005ED0 != -1) + gUnknown_03005ED0++; +} + +void CB2_813B7EC(void) +{ + if (!UpdatePaletteFade()) + SetMainCallback2(CB2_InitTitleScreen); +} + +void sub_813B808(u16 a1, u16 a2, u16 a3) +{ + LZ77UnCompVram(gIntroCopyright_Gfx, (void *)(VRAM + a1)); + LoadPalette(gIntroCopyright_Pal, a3, 0x20); + CpuCopy16(gIntroCopyright_Tilemap, (void *)(VRAM + a2), 0x500); +} + +void SerialCb_CopyrightScreen(void) +{ + GameCubeMultiBoot_HandleSerialInterrupt(&gUnknown_03005EE0); +} + +u8 SetUpCopyrightScreen(void) +{ + u16 ime; + + switch (gMain.state) + { + case 0: + SetVBlankCallback(NULL); + REG_BLDCNT = 0; + REG_BLDALPHA = 0; + REG_BLDY = 0; + *(u16 *)PLTT = 0x7FFF; + REG_DISPCNT = 0; + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + DmaFill16(3, 0, (void *)VRAM, VRAM_SIZE); + DmaFill32(3, 0, (void *)OAM, OAM_SIZE); + DmaFill16(3, 0, (void *)(PLTT + 2), PLTT_SIZE - 2); + ResetPaletteFade(); + sub_813B808(0, 14336, 0); + remove_some_task(); + ResetTasks(); + ResetSpriteData(); + FreeAllSpritePalettes(); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0xFFFF); + REG_BG0CNT = 1792; + ime = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = ime; + REG_DISPSTAT |= 8; + SetVBlankCallback(sub_813B784); + REG_DISPCNT = 320; + SetSerialCallback(SerialCb_CopyrightScreen); + GameCubeMultiBoot_Init(&gUnknown_03005EE0); + default: + UpdatePaletteFade(); + gMain.state++; + GameCubeMultiBoot_Main(&gUnknown_03005EE0); + break; + case 140: + GameCubeMultiBoot_Main(&gUnknown_03005EE0); + if (gUnknown_03005EE0.gcmb_field_2 != 1) + { + BeginNormalPaletteFade(0xFFFFFFFFu, 0, 0, 0x10, 0); + gMain.state++; + } + break; + case 141: + if (UpdatePaletteFade()) + break; + CreateTask(task_intro_1, 0); + SetMainCallback2(CB2_813B798); + if (gUnknown_03005EE0.gcmb_field_2) + { + GameCubeMultiBoot_ExecuteProgram(&gUnknown_03005EE0); + } + else + { + GameCubeMultiBoot_Quit(); + SetSerialCallback(SerialCB); + } + return 0; + } + + return 1; +} + +void c2_copyright_1(void) +{ + if (!SetUpCopyrightScreen()) + { + sub_8052E4C(); + sub_81251B8(); + sub_8125EC8(0); + if (gSaveFileStatus == 0 || gSaveFileStatus == 2) + ClearSav2(); + SetPokemonCryStereo(gSaveBlock2.optionsSound); + } +} + +void sub_813BA88(void) +{ + SetUpCopyrightScreen(); +} |