diff options
author | YamaArashi <shadow962@live.com> | 2016-11-01 10:08:48 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-11-01 10:16:34 -0700 |
commit | 6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (patch) | |
tree | dcea69ec49430f004c17ff71b77587cafd78c69a /asm/intro.s | |
parent | fef81187dce23adc635d7f4b7fd82298eab09ec2 (diff) |
split asm files
Diffstat (limited to 'asm/intro.s')
-rw-r--r-- | asm/intro.s | 4490 |
1 files changed, 4490 insertions, 0 deletions
diff --git a/asm/intro.s b/asm/intro.s new file mode 100644 index 000000000..bcc5fc8f2 --- /dev/null +++ b/asm/intro.s @@ -0,0 +1,4490 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_816CBE8 +sub_816CBE8: @ 816CBE8 + push {lr} + bl LoadOamFromSprites + bl ProcessObjectCopyRequests + bl copy_pal_bg_faded_to_pal_ram + bl sub_80BA0A8 + pop {r0} + bx r0 + thumb_func_end sub_816CBE8 + + thumb_func_start sub_816CC00 +sub_816CC00: @ 816CC00 + push {lr} + bl RunTasks + bl CallObjectCallbacks + bl PrepareSpritesForOamLoad + bl fade_and_return_progress_probably + ldr r0, =0x030022c0 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _0816CC3C + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0816CC3C + ldr r0, =sub_816CC54 + bl SetMainCallback2 + b _0816CC4C + .pool +_0816CC3C: + ldr r2, =0x030062a0 + ldr r1, [r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0816CC4C + adds r0, r1, 0x1 + str r0, [r2] +_0816CC4C: + pop {r0} + bx r0 + .pool + thumb_func_end sub_816CC00 + + thumb_func_start sub_816CC54 +sub_816CC54: @ 816CC54 + push {lr} + bl fade_and_return_progress_probably + lsls r0, 24 + cmp r0, 0 + bne _0816CC66 + ldr r0, =c2_title_screen_1 + bl SetMainCallback2 +_0816CC66: + pop {r0} + bx r0 + .pool + thumb_func_end sub_816CC54 + + thumb_func_start load_copyright_graphics +@ void load_copyright_graphics(u16 tile_patterns_dest, u16 tilemap_dest, u16 unknown_dest) +load_copyright_graphics: @ 816CC70 + 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, =gIntroCopyright_Gfx + movs r6, 0xC0 + lsls r6, 19 + adds r3, r6 + adds r1, r3, 0 + bl LZ77UnCompVram + ldr r0, =gIntroCopyright_Tilemap + adds r4, r6 + adds r1, r4, 0 + bl LZ77UnCompVram + ldr r0, =gIntroCopyright_Pal + adds r1, r5, 0 + movs r2, 0x20 + bl gpu_pal_apply + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end load_copyright_graphics + + thumb_func_start SerialCb_CopyrightScreen +SerialCb_CopyrightScreen: @ 816CCB8 + push {lr} + ldr r0, =0x030062b0 + bl GameCubeMultiBoot_HandleSerialInterrupt + pop {r0} + bx r0 + .pool + thumb_func_end SerialCb_CopyrightScreen + + thumb_func_start do_copyright_screen +do_copyright_screen: @ 816CCC8 + push {r4-r6,lr} + sub sp, 0x10 + ldr r0, =0x030022c0 + movs r1, 0x87 + lsls r1, 3 + adds r5, r0, r1 + ldrb r4, [r5] + cmp r4, 0x8C + bne _0816CCDC + b _0816CE00 +_0816CCDC: + cmp r4, 0x8C + bgt _0816CCEC + cmp r4, 0 + beq _0816CCF4 + b _0816CDBC + .pool +_0816CCEC: + cmp r4, 0x8D + bne _0816CCF2 + b _0816CE2C +_0816CCF2: + b _0816CDBC +_0816CCF4: + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r1, 0xA0 + lsls r1, 19 + ldr r2, =0x00007fff + adds r0, r2, 0 + strh r0, [r1] + movs r0, 0 + movs r1, 0 + bl SetGpuReg + movs r0, 0x10 + movs r1, 0 + bl SetGpuReg + movs r0, 0x12 + movs r1, 0 + bl SetGpuReg + str r4, [sp, 0x4] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, =0x05006000 + add r0, sp, 0x4 + bl CpuSet + str r4, [sp, 0x8] + add r0, sp, 0x8 + movs r1, 0xE0 + lsls r1, 19 + ldr r2, =0x05000100 + bl CpuSet + add r0, sp, 0xC + strh r4, [r0] + ldr r1, =0x05000002 + ldr r2, =0x010001ff + bl CpuSet + bl sub_80A1A74 + movs r1, 0xE0 + lsls r1, 6 + movs r0, 0 + movs r2, 0 + bl load_copyright_graphics + bl remove_some_task + bl ResetTasks + bl ResetAllObjectData + bl ResetObjectPaletteAllocator + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + movs r1, 0xE0 + lsls r1, 3 + movs r0, 0x8 + bl SetGpuReg + movs r0, 0x1 + bl EnableInterrupts + ldr r0, =sub_816CBE8 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, =SerialCb_CopyrightScreen + bl SetSerialCallback + ldr r0, =0x030062b0 + bl GameCubeMultiBoot_Init +_0816CDBC: + bl fade_and_return_progress_probably + ldr r0, =0x030022c0 + movs r1, 0x87 + lsls r1, 3 + adds r0, r1 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r0, =0x030062b0 + bl GameCubeMultiBoot_Main + b _0816CEA0 + .pool +_0816CE00: + ldr r4, =0x030062b0 + adds r0, r4, 0 + bl GameCubeMultiBoot_Main + ldrb r0, [r4, 0x2] + cmp r0, 0x1 + beq _0816CEA0 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0816CEA0 + .pool +_0816CE2C: + bl fade_and_return_progress_probably + lsls r0, 24 + cmp r0, 0 + bne _0816CEA0 + ldr r0, =task_intro_1 + movs r1, 0 + bl CreateTask + ldr r0, =sub_816CC00 + bl SetMainCallback2 + ldr r5, =0x030062b0 + ldrb r0, [r5, 0x2] + cmp r0, 0 + beq _0816CE8C + ldrb r0, [r5, 0x2] + cmp r0, 0x2 + bne _0816CE96 + ldr r6, =0x020000ac + ldr r4, [r6] + ldr r0, =0x65366347 + cmp r4, r0 + bne _0816CE6C + ldr r0, =gMultiBootProgram_PokemonColosseum_Start + movs r1, 0x80 + lsls r1, 18 + movs r2, 0xA0 + lsls r2, 9 + bl CpuSet + str r4, [r6] +_0816CE6C: + adds r0, r5, 0 + bl GameCubeMultiBoot_ExecuteProgram + b _0816CE96 + .pool +_0816CE8C: + bl GameCubeMultiBoot_Quit + ldr r0, =sub_800BA38 + bl SetSerialCallback +_0816CE96: + movs r0, 0 + b _0816CEA2 + .pool +_0816CEA0: + movs r0, 0x1 +_0816CEA2: + add sp, 0x10 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end do_copyright_screen + + thumb_func_start c2_copyright_1 +c2_copyright_1: @ 816CEAC + push {lr} + bl do_copyright_screen + lsls r0, 24 + cmp r0, 0 + bne _0816CEFA + bl sub_815355C + lsls r0, 16 + lsrs r0, 16 + bl InitSaveBlockPointersWithRandomOffset + bl sub_808447C + bl sub_8152680 + movs r0, 0 + bl sub_81534D0 + ldr r0, =0x03006210 + ldrh r0, [r0] + cmp r0, 0 + beq _0816CEDE + cmp r0, 0x2 + bne _0816CEE2 +_0816CEDE: + bl init_sav2 +_0816CEE2: + ldr r0, =0x03005d90 + ldr r0, [r0] + ldrb r0, [r0, 0x15] + lsls r0, 31 + lsrs r0, 31 + bl sub_82E1810 + ldr r0, =0x02000000 + movs r1, 0xE0 + lsls r1, 9 + bl InitHeap +_0816CEFA: + pop {r0} + bx r0 + .pool + thumb_func_end c2_copyright_1 + + thumb_func_start c2_show_copyright_and_intro_again_2 +c2_show_copyright_and_intro_again_2: @ 816CF0C + push {lr} + bl do_copyright_screen + pop {r0} + bx r0 + thumb_func_end c2_show_copyright_and_intro_again_2 + + thumb_func_start task_intro_1 +@ void task_intro_1(int task_id) +task_intro_1: @ 816CF18 + 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, =0x0203bcc8 + bl GenerateRandomNumber + movs r1, 0x1 + ands r1, r0 + strh r1, [r4] + bl intro_reset_and_hide_bgs + movs r0, 0x1E + movs r1, 0 + bl SetGpuReg + movs r0, 0x1A + movs r1, 0x50 + bl SetGpuReg + movs r0, 0x16 + movs r1, 0x18 + bl SetGpuReg + movs r0, 0x12 + movs r1, 0x28 + bl SetGpuReg + ldr r0, =gUnknown_085E13B4 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, =gUnknown_085E07C4 + ldr r1, =0x06008000 + bl LZ77UnCompVram + ldr r1, =0x06008800 + add r0, sp, 0x8 + movs r6, 0 + strh r6, [r0] + ldr r4, =0x040000d4 + str r0, [r4] + str r1, [r4, 0x4] + ldr r5, =0x81000400 + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, =gUnknown_085E0B78 + ldr r1, =0x06009000 + bl LZ77UnCompVram + ldr r1, =0x06009800 + add r0, sp, 0x8 + strh r6, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, =gUnknown_085E0EAC + ldr r1, =0x0600a000 + bl LZ77UnCompVram + ldr r1, =0x0600a800 + add r0, sp, 0x8 + strh r6, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, =gUnknown_085E119C + ldr r1, =0x0600b000 + bl LZ77UnCompVram + ldr r1, =0x0600b800 + add r0, sp, 0x8 + strh r6, [r0] + str r0, [r4] + str r1, [r4, 0x4] + str r5, [r4, 0x8] + ldr r0, [r4, 0x8] + ldr r0, =gUnknown_085E05C4 + movs r5, 0x80 + lsls r5, 2 + movs r1, 0 + adds r2, r5, 0 + bl gpu_pal_apply + ldr r1, =0x00009603 + movs r0, 0xE + bl SetGpuReg + ldr r1, =0x00009402 + movs r0, 0xC + bl SetGpuReg + ldr r1, =0x00009201 + movs r0, 0xA + bl SetGpuReg + movs r1, 0x90 + lsls r1, 8 + movs r0, 0x8 + bl SetGpuReg + ldr r0, =gUnknown_085E4FDC + bl LoadCompressedObjectPic + ldr r0, =gUnknown_085E4FEC + bl LoadCompressedObjectPic + ldr r0, =gUnknown_085E4FFC + bl LoadTaggedObjectPalettes + ldr r0, =gUnknown_085E4A74 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_085E4A84 + bl LoadTaggedObjectPalettes + ldr r4, =0x02037914 + movs r3, 0xF0 + lsls r3, 1 + adds r1, r4, r3 + adds r0, r4, 0 + movs r2, 0x10 + bl CpuSet + movs r0, 0xE1 + lsls r0, 1 + adds r1, r4, r0 + 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 r3, 0xB4 + lsls r3, 1 + adds r1, r4, r3 + adds r0, r4, 0 + movs r2, 0xC + bl CpuSet + movs r0, 0xA5 + lsls r0, 1 + adds r1, r4, r0 + adds r0, r4, 0 + movs r2, 0xB + bl CpuSet + movs r3, 0x96 + lsls r3, 1 + adds r1, r4, r3 + adds r0, r4, 0 + movs r2, 0xA + bl CpuSet + movs r0, 0x78 + movs r1, 0x50 + movs r2, 0 + bl sub_816FDB8 + 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_816F7D0 + ldr r2, =0x03005e00 + 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, =task_intro_2 + str r0, [r1] + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_1 + + thumb_func_start task_intro_2 +task_intro_2: @ 816D12C + 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 pal_fade_maybe + ldr r0, =sub_816CBE8 + bl SetVBlankCallback + movs r1, 0xFA + lsls r1, 5 + movs r0, 0 + bl SetGpuReg + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_3 + str r1, [r0] + ldr r0, =0x030062a0 + str r5, [r0] + movs r0, 0xCF + lsls r0, 1 + bl m4aSongNumStart + bl sub_800B628 + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_2 + + thumb_func_start task_intro_3 +task_intro_3: @ 816D190 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r5, =0x030062a0 + ldr r0, [r5] + cmp r0, 0x4C + bne _0816D1BE + ldr r2, =0x02020630 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + 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, 0x1 + strh r1, [r0, 0x2E] +_0816D1BE: + ldr r0, [r5] + cmp r0, 0x80 + bne _0816D1CC + ldr r0, =task_intro_3_1 + movs r1, 0 + bl CreateTask +_0816D1CC: + ldr r0, [r5] + cmp r0, 0xFB + bne _0816D1EE + ldr r2, =0x02020630 + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + 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] +_0816D1EE: + ldr r1, [r5] + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bne _0816D200 + ldr r0, =task_intro_3_2 + movs r1, 0 + bl CreateTask +_0816D200: + ldr r1, [r5] + movs r0, 0xB8 + lsls r0, 1 + cmp r1, r0 + bne _0816D220 + 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_816F7D0 +_0816D220: + ldr r1, [r5] + movs r0, 0xC0 + lsls r0, 1 + cmp r1, r0 + bne _0816D240 + 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_816F7D0 +_0816D240: + ldr r0, [r5] + movs r4, 0x8C + lsls r4, 2 + cmp r0, r4 + bne _0816D252 + ldr r0, =task_intro_3_3 + movs r1, 0 + bl CreateTask +_0816D252: + ldr r0, [r5] + cmp r0, r4 + bls _0816D27A + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + 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, =task_intro_4 + str r1, [r0] +_0816D27A: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_3 + + thumb_func_start task_intro_3_3 +task_intro_3_3: @ 816D2A0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =0x03005e08 + adds r4, r0, r1 + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0816D2C4 + ldrh r0, [r4, 0x6] + adds r0, 0x1 + strh r0, [r4, 0x6] +_0816D2C4: + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0816D2D8 + cmp r0, 0x1 + beq _0816D314 + b _0816D324 + .pool +_0816D2D8: + ldr r0, =gUnknown_085E4AB8 + ldr r2, =gUnknown_085E4AD0 + movs r1, 0x8 + ldrsh r3, [r4, r1] + lsls r3, 1 + adds r1, r3, r2 + ldrb r1, [r1] + adds r2, 0x1 + adds r3, r2 + ldrh r2, [r4, 0x6] + ldrb r3, [r3] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0 + bl AddObjectToFront + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + movs r0, 0xC + strh r0, [r4, 0x2] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0816D324 + .pool +_0816D314: + ldrh r0, [r4, 0x2] + subs r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _0816D324 + strh r0, [r4] +_0816D324: + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, 0x3C + ble _0816D332 + adds r0, r5, 0 + bl DestroyTask +_0816D332: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task_intro_3_3 + + thumb_func_start sub_816D338 +sub_816D338: @ 816D338 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2E] + adds r0, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bne _0816D350 + adds r0, r1, 0 + bl RemoveObjectAndFreeTiles +_0816D350: + pop {r0} + bx r0 + thumb_func_end sub_816D338 + + thumb_func_start task_intro_4 +task_intro_4: @ 816D354 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r1, r0, 24 + adds r4, r1, 0 + ldr r5, =0x030062a0 + ldr r2, [r5] + ldr r0, =0x00000387 + cmp r2, r0 + bhi _0816D418 + ldr r0, =0x03005e00 + lsls r4, r1, 2 + adds r4, r1 + lsls r4, 3 + adds r4, r0 + movs r1, 0xA + ldrsh r0, [r4, r1] + lsls r0, 16 + ldrh r1, [r4, 0xC] + adds r1, r0, r1 + ldr r0, =0xffffa000 + adds r1, r0 + asrs r0, r1, 16 + strh r0, [r4, 0xA] + strh r1, [r4, 0xC] + ldrh r1, [r4, 0xA] + movs r0, 0x1A + bl SetGpuReg + movs r1, 0xE + ldrsh r0, [r4, r1] + lsls r0, 16 + ldrh r1, [r4, 0x10] + adds r1, r0, r1 + ldr r0, =0xffff8000 + adds r1, r0 + asrs r0, r1, 16 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + ldrh r1, [r4, 0xE] + movs r0, 0x16 + bl SetGpuReg + movs r1, 0x12 + ldrsh r0, [r4, r1] + lsls r0, 16 + ldrh r1, [r4, 0x14] + adds r1, r0, r1 + ldr r0, =0xffff4000 + adds r1, r0 + asrs r0, r1, 16 + strh r0, [r4, 0x12] + strh r1, [r4, 0x14] + ldrh r1, [r4, 0x12] + movs r0, 0x12 + bl SetGpuReg + ldr r1, [r5] + movs r0, 0xD0 + lsls r0, 2 + cmp r1, r0 + bne _0816D43E + ldr r0, =gUnknown_085E4FC4 + movs r1, 0x78 + movs r2, 0xA0 + movs r3, 0xA + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x02020630 + 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 _0816D43E + .pool +_0816D418: + ldr r0, =0x000003ef + cmp r2, r0 + bls _0816D43E + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_5 + str r1, [r0] +_0816D43E: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_4 + + thumb_func_start task_intro_5 +task_intro_5: @ 816D458 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x030062a0 + ldr r1, [r0] + ldr r0, =0x00000402 + cmp r1, r0 + bls _0816D476 + ldr r0, =0x03005e00 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =task_intro_6 + str r0, [r1] +_0816D476: + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_5 + + thumb_func_start task_intro_6 +task_intro_6: @ 816D48C + 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 ResetAllObjectData + bl ResetObjectPaletteAllocator + ldr r0, =0x0203bd24 + movs r1, 0 + strh r1, [r0] + ldr r0, =0x0203bd26 + strh r1, [r0] + ldr r0, =0x0203bccc + strh r1, [r0] + movs r0, 0x1 + bl load_intro_part2_graphics + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_7 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_6 + + thumb_func_start task_intro_7 +task_intro_7: @ 816D4E4 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x0203bcc8 + ldrh r0, [r0] + cmp r0, 0 + bne _0816D504 + ldr r0, =gUnknown_085F52BC + bl LoadCompressedObjectPic + b _0816D50A + .pool +_0816D504: + ldr r0, =gUnknown_085F52CC + bl LoadCompressedObjectPic +_0816D50A: + ldr r0, =gUnknown_085F52DC + bl LoadCompressedObjectPic + ldr r0, =gUnknown_085F52FC + bl LoadCompressedObjectPic + movs r6, 0 + lsls r7, r4, 2 + ldr r5, =gUnknown_085E4AE8 +_0816D51C: + lsls r0, r6, 3 + adds r0, r5 + bl LoadCompressedObjectPic + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x2 + bls _0816D51C + ldr r0, =gUnknown_085F530C + bl LoadTaggedObjectPalettes + ldr r0, =gUnknown_085E4B08 + bl LoadTaggedObjectPalettes + ldr r0, =gUnknown_085E4BDC + movs r5, 0x88 + lsls r5, 1 + adds r1, r5, 0 + movs r2, 0x80 + movs r3, 0 + bl AddObjectToFront + ldr r0, =gUnknown_085E4BA4 + movs r1, 0x90 + lsls r1, 1 + movs r2, 0x6E + movs r3, 0x1 + bl AddObjectToFront + ldr r0, =0x0203bcc8 + ldrh r0, [r0] + cmp r0, 0 + bne _0816D590 + adds r0, r5, 0 + movs r1, 0x64 + bl sub_817B834 + b _0816D598 + .pool +_0816D590: + adds r0, r5, 0 + movs r1, 0x64 + bl sub_817B88C +_0816D598: + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, =0x02020630 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r5, r2, 0 + adds r5, 0x1C + adds r3, r0, r5 + ldr r1, =sub_816F9D4 + str r1, [r3] + adds r2, 0x8 + adds r0, r2 + ldr r1, =gUnknown_085E4DC4 + str r1, [r0] + ldr r0, =0x03005e00 + adds r4, r7, r4 + lsls r4, 3 + adds r4, r0 + strh r6, [r4, 0xA] + ldr r0, =gUnknown_085E4B40 + movs r1, 0x88 + lsls r1, 1 + movs r2, 0x50 + movs r3, 0x4 + bl AddObjectToFront + movs r0, 0x40 + negs r0, r0 + movs r1, 0x3C + bl sub_817B9C4 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 4 + adds r0, r6 + lsls r0, 2 + adds r0, r5 + ldr r1, =sub_816FAB0 + str r1, [r0] + strh r6, [r4, 0xC] + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r0, =sub_816CBE8 + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 7 + movs r2, 0x80 + lsls r2, 3 + movs r0, 0x1 + movs r3, 0x10 + bl sub_817B3DC + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x8] + movs r0, 0x1 + bl sub_817B150 + ldr r0, =task_intro_8 + str r0, [r4] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_7 + + thumb_func_start task_intro_8 +@ void task_intro_8(int task_id) +task_intro_8: @ 816D650 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + ldr r5, =0x030062a0 + ldr r1, [r5] + movs r0, 0xE8 + lsls r0, 3 + cmp r1, r0 + bne _0816D67C + ldr r1, =0x0203bd28 + movs r0, 0x2 + strh r0, [r1] + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x8] + bl DestroyTask +_0816D67C: + ldr r1, [r5] + ldr r0, =0x0000079a + cmp r1, r0 + bls _0816D6A4 + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0x8 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_9 + str r1, [r0] +_0816D6A4: + ldr r1, [r5] + ldr r0, =0x00000455 + ldr r3, =0x03005e00 + cmp r1, r0 + bne _0816D6C8 + ldr r2, =0x02020630 + 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] +_0816D6C8: + ldr r1, [r5] + ldr r0, =0x000004be + cmp r1, r0 + bne _0816D6EA + ldr r2, =0x02020630 + 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] +_0816D6EA: + ldr r1, [r5] + ldr r0, =0x00000572 + cmp r1, r0 + bne _0816D70C + ldr r2, =0x02020630 + 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] +_0816D70C: + ldr r1, [r5] + ldr r0, =0x00000576 + cmp r1, r0 + bne _0816D72E + ldr r2, =0x02020630 + 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] +_0816D72E: + ldr r1, [r5] + movs r0, 0xC5 + lsls r0, 3 + cmp r1, r0 + bne _0816D752 + ldr r2, =0x02020630 + 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] +_0816D752: + ldr r1, [r5] + ldr r0, =0x000006bf + cmp r1, r0 + bne _0816D774 + ldr r2, =0x02020630 + 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] +_0816D774: + 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 sine + ldr r1, =0x0203bccc + strh r0, [r1] + ldrh r2, [r4, 0xE] + movs r7, 0xE + ldrsh r1, [r4, r7] + ldr r0, =0x000001ff + cmp r1, r0 + bgt _0816D7A0 + adds r0, r2, 0x1 + strh r0, [r4, 0xE] +_0816D7A0: + movs r0, 0 + bl sub_817B540 + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_8 + + thumb_func_start task_intro_9 +task_intro_9: @ 816D7E8 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x030062a0 + ldr r1, [r0] + ldr r0, =0x00000814 + cmp r1, r0 + bls _0816D806 + ldr r0, =0x03005e00 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =task_intro_10 + str r0, [r1] +_0816D806: + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_9 + + thumb_func_start sub_816D81C +sub_816D81C: @ 816D81C + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + adds r0, 0x4 + strh r0, [r4, 0x34] + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x8 + bls _0816D830 + b _0816D9BA +_0816D830: + lsls r0, 2 + ldr r1, =_0816D840 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0816D840: + .4byte _0816D864 + .4byte _0816D87A + .4byte _0816D898 + .4byte _0816D8BC + .4byte _0816D8D8 + .4byte _0816D8FA + .4byte _0816D912 + .4byte _0816D96E + .4byte _0816D99C +_0816D864: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB3 + bgt _0816D874 + b _0816D9BA +_0816D874: + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_0816D87A: + ldrh r0, [r4, 0x20] + subs r0, 0x4 + strh r0, [r4, 0x20] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3C + beq _0816D88A + b _0816D9BA +_0816D88A: + movs r0, 0x8 + strh r0, [r4, 0x2E] + movs r0, 0x14 + strh r0, [r4, 0x30] + movs r0, 0x2 + strh r0, [r4, 0x32] + b _0816D9BA +_0816D898: + ldrh r1, [r4, 0x20] + adds r1, 0x8 + strh r1, [r4, 0x20] + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x7C + beq _0816D8AE + b _0816D9BA +_0816D8AE: + movs r0, 0x8 + strh r0, [r4, 0x2E] + movs r0, 0x14 + strh r0, [r4, 0x30] + movs r0, 0x3 + strh r0, [r4, 0x32] + b _0816D9BA +_0816D8BC: + ldrh r0, [r4, 0x22] + adds r0, 0x4 + strh r0, [r4, 0x22] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x50 + bne _0816D9BA + movs r0, 0x8 + strh r0, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x30] + movs r0, 0x4 + strh r0, [r4, 0x32] + b _0816D9BA +_0816D8D8: + ldrh r1, [r4, 0x20] + subs r1, 0x8 + strh r1, [r4, 0x20] + ldrh r0, [r4, 0x22] + subs r0, 0x2 + strh r0, [r4, 0x22] + lsls r1, 16 + asrs r1, 16 + cmp r1, 0x3C + bne _0816D9BA + movs r0, 0x8 + strh r0, [r4, 0x2E] + movs r0, 0xA + strh r0, [r4, 0x30] + movs r0, 0x5 + strh r0, [r4, 0x32] + b _0816D9BA +_0816D8FA: + ldrh r0, [r4, 0x20] + adds r0, 0x3C + strh r0, [r4, 0x20] + movs r0, 0xC0 + strh r0, [r4, 0x36] + movs r0, 0x80 + strh r0, [r4, 0x38] + movs r0, 0x3 + strh r0, [r4, 0x3A] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_0816D912: + ldrh r0, [r4, 0x36] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x3C + bl sine + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x38] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x14 + bl sine + strh r0, [r4, 0x26] + ldrh r1, [r4, 0x36] + adds r1, 0x2 + strh r1, [r4, 0x36] + ldrh r0, [r4, 0x38] + adds r0, 0x4 + strh r0, [r4, 0x38] + movs r0, 0xFF + ands r1, r0 + cmp r1, 0x40 + bne _0816D9BA + adds r2, r4, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x2 + negs r1, r1 + ands r1, r0 + strb r1, [r2] + ldrh r0, [r4, 0x3A] + subs r0, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + bne _0816D9BA + ldrh r0, [r4, 0x24] + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + strh r1, [r4, 0x24] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + b _0816D9B8 +_0816D96E: + ldrh r0, [r4, 0x20] + subs r0, 0x2 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x38] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x14 + bl sine + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x38] + adds r0, 0x4 + strh r0, [r4, 0x38] + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + bge _0816D9BA + adds r0, r4, 0 + bl RemoveObjectAndFreeTiles + b _0816D9BA +_0816D99C: + ldrh r0, [r4, 0x34] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x2 + bl cosine + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x30] + subs r0, 0x1 + strh r0, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + bne _0816D9BA + ldrh r0, [r4, 0x32] +_0816D9B8: + strh r0, [r4, 0x2E] +_0816D9BA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_816D81C + + thumb_func_start sub_816D9C0 +sub_816D9C0: @ 816D9C0 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x5 + bls _0816D9CE + b _0816DADA +_0816D9CE: + lsls r0, 2 + ldr r1, =_0816D9DC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0816D9DC: + .4byte _0816D9F4 + .4byte _0816DA08 + .4byte _0816DA20 + .4byte _0816DA64 + .4byte _0816DA9A + .4byte _0816DACA +_0816D9F4: + ldr r0, =0x030062a0 + ldr r1, [r0] + movs r0, 0x99 + lsls r0, 3 + cmp r1, r0 + bne _0816DADA + b _0816DABA + .pool +_0816DA08: + ldr r0, =0x030062a0 + ldr r1, [r0] + movs r0, 0xC5 + lsls r0, 3 + cmp r1, r0 + bne _0816DA70 + adds r0, r4, 0 + movs r1, 0 + b _0816DABE + .pool +_0816DA20: + ldr r0, =0x030062a0 + ldr r1, [r0] + ldr r0, =0x000006c7 + cmp r1, r0 + beq _0816DA50 + ldrh r0, [r4, 0x30] + adds r2, r0, 0 + adds r2, 0x20 + strh r2, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _0816DADA + ldrh r0, [r4, 0x20] + adds r0, 0x1 + b _0816DA8A + .pool +_0816DA50: + adds r0, r4, 0 + movs r1, 0x1 + bl StartObjectImageAnim + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + movs r0, 0x50 + strh r0, [r4, 0x32] + b _0816DADA +_0816DA64: + ldrh r0, [r4, 0x32] + subs r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + cmp r0, 0 + beq _0816DA94 +_0816DA70: + ldrh r0, [r4, 0x30] + adds r2, r0, 0 + adds r2, 0x40 + strh r2, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + beq _0816DADA + ldrh r0, [r4, 0x20] + subs r0, 0x1 +_0816DA8A: + strh r0, [r4, 0x20] + movs r0, 0xFF + ands r2, r0 + strh r2, [r4, 0x30] + b _0816DADA +_0816DA94: + adds r0, r4, 0 + movs r1, 0x2 + b _0816DABE +_0816DA9A: + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0816DAAE + ldrh r0, [r4, 0x20] + adds r0, 0x4 + strh r0, [r4, 0x20] +_0816DAAE: + movs r0, 0x20 + ldrsh r1, [r4, r0] + movs r0, 0xA8 + lsls r0, 1 + cmp r1, r0 + ble _0816DADA +_0816DABA: + adds r0, r4, 0 + movs r1, 0x1 +_0816DABE: + bl StartObjectImageAnim + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _0816DADA +_0816DACA: + ldr r0, =0x030062a0 + ldr r1, [r0] + ldr r0, =0x0000073f + cmp r1, r0 + bls _0816DADA + ldrh r0, [r4, 0x20] + subs r0, 0x2 + strh r0, [r4, 0x20] +_0816DADA: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816D9C0 + + thumb_func_start sub_816DAE8 +sub_816DAE8: @ 816DAE8 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0816DB1C + cmp r0, 0x1 + bgt _0816DAFE + cmp r0, 0 + beq _0816DB04 + b _0816DBA4 +_0816DAFE: + cmp r0, 0x2 + beq _0816DB42 + b _0816DBA4 +_0816DB04: + ldr r0, =0x030062a0 + ldr r1, [r0] + movs r0, 0x88 + lsls r0, 3 + cmp r1, r0 + bne _0816DBA4 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _0816DBA4 + .pool +_0816DB1C: + ldrh r0, [r4, 0x20] + subs r0, 0x2 + strh r0, [r4, 0x20] + ldr r0, =0x030062a0 + ldr r1, [r0] + movs r0, 0x92 + lsls r0, 3 + cmp r1, r0 + bne _0816DBA4 + ldrh r0, [r4, 0x22] + subs r0, 0xC + strh r0, [r4, 0x22] + movs r0, 0x80 + strh r0, [r4, 0x30] + movs r0, 0 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_0816DB42: + movs r2, 0x20 + ldrsh r0, [r4, r2] + movs r2, 0x24 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r1, 0x20 + negs r1, r1 + cmp r0, r1 + bgt _0816DB60 + adds r0, r4, 0 + bl RemoveObjectAndFreeTiles + b _0816DBA4 + .pool +_0816DB60: + ldrh r0, [r4, 0x30] + movs r1, 0xFF + ands r1, r0 + cmp r1, 0x3F + bgt _0816DB72 + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x10 + b _0816DB84 +_0816DB72: + cmp r1, 0x40 + bne _0816DB7C + ldrh r0, [r4, 0x20] + subs r0, 0x30 + strh r0, [r4, 0x20] +_0816DB7C: + ldrh r0, [r4, 0x30] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x40 +_0816DB84: + bl sine + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x32] + lsls r0, 24 + lsrs r0, 24 + movs r1, 0xC + bl cosine + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x32] + adds r0, 0x1 + strh r0, [r4, 0x32] +_0816DBA4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_816DAE8 + + thumb_func_start task_intro_10 +task_intro_10: @ 816DBAC + 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, =gUnknown_085E3854 + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, =gUnknown_085E3724 + ldr r1, =0x06004000 + bl LZ77UnCompVram + ldr r0, =gUnknown_085E3524 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl gpu_pal_apply + ldr r0, =0x03005e00 + 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_816F2A8 + bl ResetAllObjectData + bl ResetObjectPaletteAllocator + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r1, =0x00004883 + movs r0, 0xC + bl SetGpuReg + ldr r1, =0x00001441 + movs r0, 0 + bl SetGpuReg + ldr r0, =task_intro_11 + str r0, [r4] + ldr r0, =0x030062a0 + str r5, [r0] + movs r0, 0xDD + lsls r0, 1 + bl m4aSongNumStart + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_10 + + thumb_func_start task_intro_11 +task_intro_11: @ 816DC64 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, =0x03005e00 + 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, =0x000006bf + cmp r1, r0 + bgt _0816DCA4 + ldrh r0, [r3, 0xC] + adds r1, r4, r0 + strh r1, [r3, 0xA] + adds r0, 0x2 + strh r0, [r3, 0xC] + b _0816DCA8 + .pool +_0816DCA4: + ldr r0, =task_intro_12 + str r0, [r3] +_0816DCA8: + 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_816F2A8 + ldr r0, =0x030062a0 + ldr r0, [r0] + cmp r0, 0x1C + bne _0816DCE6 + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe +_0816DCE6: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_11 + + thumb_func_start task_intro_12 +task_intro_12: @ 816DCFC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, =0x030062a0 + ldr r0, [r0] + cmp r0, 0x2B + bls _0816DD18 + ldr r0, =0x03005e00 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + ldr r0, =task_intro_13 + str r0, [r1] +_0816DD18: + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_12 + + thumb_func_start task_intro_13 +task_intro_13: @ 816DD28 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0816DD94 + bl intro_reset_and_hide_bgs + bl ResetAllObjectData + bl ResetObjectPaletteAllocator + ldr r1, =0x0300301c + movs r0, 0x8 + strb r0, [r1] + ldr r0, =gUnknown_08D88494 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, =gUnknown_08D88D40 + ldr r1, =0x0600c000 + bl LZDecompressVram + ldr r0, =gUnknown_08D89F7C + ldr r1, =0x06004000 + bl LZDecompressVram + ldr r0, =gUnknown_08D8A818 + ldr r1, =0x0600e000 + bl LZDecompressVram + ldr r0, =gUnknown_08524D14 + bl LoadCompressedObjectPicUsingHeap + ldr r0, =gUnknown_0852561C + bl LoadCompressedObjectPaletteUsingHeap + ldr r0, =gUnknown_08D85CD0 + ldr r1, =0x02037714 + movs r2, 0x80 + lsls r2, 1 + bl CpuSet + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_14 + str r1, [r0] +_0816DD94: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_13 + + thumb_func_start task_intro_14 +task_intro_14: @ 816DDD8 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x40 + movs r1, 0xF0 + bl SetGpuReg + movs r0, 0x44 + movs r1, 0xA0 + bl SetGpuReg + movs r0, 0x48 + movs r1, 0x3F + bl SetGpuReg + movs r0, 0x4A + movs r1, 0 + bl SetGpuReg + ldr r1, =0x0000b880 + movs r0, 0xC + bl SetGpuReg + ldr r1, =0x00001c05 + movs r0, 0xA + bl SetGpuReg + ldr r1, =0x00003641 + movs r0, 0 + bl SetGpuReg + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r0, =0x03005e00 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + movs r0, 0 + strh r0, [r4, 0x8] + ldr r0, =0x0000ffa0 + strh r0, [r4, 0xA] + ldr r1, =0x0000ff51 + strh r1, [r4, 0xC] + movs r2, 0x80 + lsls r2, 1 + strh r2, [r4, 0xE] + movs r3, 0 + bl sub_816F2A8 + ldr r0, =task_intro_15 + str r0, [r4] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_14 + + thumb_func_start task_intro_15 +task_intro_15: @ 816DE7C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r2, [r4, 0x8] + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + beq _0816DEB8 + adds r0, r2, 0x4 + strh r0, [r4, 0x8] + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r1, 8 + adds r0, r2, 0 + subs r0, 0x9C + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x44 + bl SetGpuReg + b _0816DEC6 + .pool +_0816DEB8: + movs r1, 0x82 + lsls r1, 6 + movs r0, 0x44 + bl SetGpuReg + ldr r0, =task_intro_16 + str r0, [r4] +_0816DEC6: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_15 + + thumb_func_start task_intro_16 +task_intro_16: @ 816DED0 + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, =task_intro_17 + str r0, [r1] + bx lr + .pool + thumb_func_end task_intro_16 + + thumb_func_start task_intro_17 +task_intro_17: @ 816DEEC + push {lr} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + ldr r2, =0x03005e00 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + ldr r0, =task_intro_18 + str r0, [r1] + movs r0, 0x1 + str r0, [sp] + movs r0, 0x4 + str r0, [sp, 0x4] + str r2, [sp, 0x8] + movs r0, 0 + movs r1, 0xA0 + movs r2, 0x4 + movs r3, 0x4 + bl sub_80BA384 + add sp, 0xC + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_17 + + thumb_func_start task_intro_18 +task_intro_18: @ 816DF2C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, =0x03005e08 + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + ldrh r0, [r4] + subs r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x6 + bhi _0816DF62 + ldrh r0, [r4, 0xA] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0816DF62 + ldrh r0, [r4, 0x8] + movs r1, 0x3 + eors r0, r1 + strh r0, [r4, 0x8] +_0816DF62: + ldrh r0, [r4, 0x2] + ldrh r1, [r4, 0x8] + ldrh r2, [r4, 0x4] + adds r1, r2 + lsls r1, 16 + lsrs r1, 16 + ldrh r2, [r4, 0x6] + movs r3, 0 + bl sub_816F2A8 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x9 + bls _0816DF80 + b _0816E176 +_0816DF80: + lsls r0, 2 + ldr r1, =_0816DF94 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0816DF94: + .4byte _0816DFBC + .4byte _0816DFE6 + .4byte _0816E024 + .4byte _0816E038 + .4byte _0816E07C + .4byte _0816E09A + .4byte _0816E0C8 + .4byte _0816E0DE + .4byte _0816E13C + .4byte _0816E156 +_0816DFBC: + ldrh r0, [r4, 0x2] + adds r0, 0x10 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xA0 + beq _0816DFCC + b _0816E176 +_0816DFCC: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + movs r0, 0x2 + strh r0, [r4, 0xC] + movs r2, 0xF1 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r4, 0xE] + adds r0, r5, 0 + bl sub_816E190 + b _0816E176 +_0816DFE6: + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816DFF4 + b _0816E176 +_0816DFF4: + movs r0, 0x2 + strh r0, [r4, 0xC] + movs r1, 0xE + ldrsh r0, [r4, r1] + ldr r1, =gUnknown_08D85CD0 + adds r0, r1 + ldr r1, =0x02037b52 + movs r2, 0x1 + bl CpuSet + ldrh r0, [r4, 0xE] + adds r0, 0x2 + strh r0, [r4, 0xE] + lsls r0, 16 + movs r1, 0xF6 + lsls r1, 17 + cmp r0, r1 + beq _0816E01A + b _0816E176 +_0816E01A: + b _0816E14E + .pool +_0816E024: + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E032 + b _0816E176 +_0816E032: + movs r0, 0x2 + strh r0, [r4, 0xC] + b _0816E14E +_0816E038: + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E046 + b _0816E176 +_0816E046: + movs r0, 0x2 + strh r0, [r4, 0xC] + movs r2, 0xE + ldrsh r0, [r4, r2] + ldr r1, =gUnknown_08D85CD0 + adds r0, r1 + ldr r1, =0x02037b52 + movs r2, 0x1 + bl CpuSet + ldrh r0, [r4, 0xE] + subs r0, 0x2 + strh r0, [r4, 0xE] + lsls r0, 16 + movs r1, 0xF0 + lsls r1, 17 + cmp r0, r1 + beq _0816E06C + b _0816E176 +_0816E06C: + movs r0, 0x8 + strh r0, [r4, 0xC] + b _0816E14E + .pool +_0816E07C: + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _0816E176 + movs r1, 0x60 + negs r1, r1 + adds r0, r1, 0 + strh r0, [r4, 0x2] + movs r0, 0xA9 + strh r0, [r4, 0x4] + movs r0, 0x3 + strh r0, [r4, 0xC] + b _0816E14E +_0816E09A: + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + bne _0816E176 + movs r0, 0x50 + strh r0, [r4, 0x2] + movs r0, 0x29 + strh r0, [r4, 0x4] + movs r0, 0x10 + strh r0, [r4, 0xC] + ldr r0, =0x00000195 + str r1, [sp] + movs r1, 0 + movs r2, 0x64 + movs r3, 0xA + bl sub_80A344C + b _0816E14E + .pool +_0816E0C8: + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _0816E176 + movs r0, 0x50 + strh r0, [r4, 0x2] + movs r0, 0x28 + strh r0, [r4, 0x4] + b _0816E14E +_0816E0DE: + ldrh r0, [r4, 0x2] + adds r0, 0x4 + strh r0, [r4, 0x2] + ldrh r0, [r4, 0x4] + adds r0, 0x4 + strh r0, [r4, 0x4] + ldr r2, =0x00000666 + adds r0, r2, 0 + ldrh r1, [r4, 0xC] + adds r0, r1 + strh r0, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + lsrs r0, 8 + movs r1, 0x40 + bl sine + movs r1, 0x80 + lsls r1, 1 + adds r5, r1, 0 + adds r0, r5 + strh r0, [r4, 0x6] + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, 0x78 + bne _0816E176 + movs r0, 0x2 + negs r0, r0 + ldr r1, =0x00007fff + str r1, [sp] + movs r1, 0x3 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + strh r5, [r4, 0x6] + movs r0, 0 + strh r0, [r4, 0x8] + b _0816E14E + .pool +_0816E13C: + ldrh r1, [r4, 0x6] + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0816E14E + adds r0, r1, 0 + subs r0, 0x8 + strh r0, [r4, 0x6] + b _0816E176 +_0816E14E: + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _0816E176 +_0816E156: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0816E176 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_19 + str r1, [r0] + ldr r1, =0x02039b28 + movs r0, 0x3 + strb r0, [r1, 0x15] +_0816E176: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_18 + + thumb_func_start sub_816E190 +sub_816E190: @ 816E190 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + ldr r6, =0x02020630 + ldr r5, =gUnknown_085E4C64 +_0816E19C: + movs r0, 0 + ldrsh r1, [r5, r0] + lsls r3, r4, 24 + lsrs r3, 24 + ldr r0, =gUnknown_08596C10 + movs r2, 0xA0 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r0, r6, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, =sub_816E1F8 + str r1, [r0] + adds r2, r6 + ldrb r0, [r2, 0x5] + movs r3, 0xD + negs r3, r3 + adds r1, r3, 0 + ands r0, r1 + strb r0, [r2, 0x5] + strh r4, [r2, 0x30] + strh r7, [r2, 0x36] + ldrb r1, [r5, 0x2] + adds r0, r2, 0 + bl StartObjectImageAnim + adds r5, 0x6 + adds r4, 0x1 + cmp r4, 0x5 + ble _0816E19C + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816E190 + + thumb_func_start sub_816E1F8 +sub_816E1F8: @ 816E1F8 + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x34] + adds r0, 0x1 + strh r0, [r3, 0x34] + ldrh r0, [r3, 0x34] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0816E214 + ldrh r0, [r3, 0x26] + movs r1, 0x3 + eors r0, r1 + strh r0, [r3, 0x26] +_0816E214: + movs r1, 0x2E + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _0816E222 + cmp r0, 0x1 + beq _0816E278 + b _0816E29C +_0816E222: + ldr r2, =gUnknown_085E4C64 + movs r0, 0x30 + ldrsh r1, [r3, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + adds r2, 0x4 + adds r0, r2 + ldrh r2, [r0] + ldrh r1, [r3, 0x32] + adds r2, r1 + strh r2, [r3, 0x32] + movs r0, 0x32 + ldrsh r1, [r3, r0] + movs r0, 0xFF + lsls r0, 8 + ands r1, r0 + asrs r1, 8 + ldrh r0, [r3, 0x22] + subs r0, r1 + strh r0, [r3, 0x22] + movs r0, 0xFF + ands r2, r0 + strh r2, [r3, 0x32] + ldr r2, =0x03005e00 + movs r0, 0x36 + 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, 0x7 + ble _0816E29C + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + b _0816E29C + .pool +_0816E278: + ldrh r1, [r3, 0x20] + movs r2, 0x20 + ldrsh r0, [r3, r2] + cmp r0, 0x77 + bgt _0816E286 + subs r0, r1, 0x2 + b _0816E288 +_0816E286: + adds r0, r1, 0x2 +_0816E288: + strh r0, [r3, 0x20] + ldrh r1, [r3, 0x22] + movs r2, 0x22 + ldrsh r0, [r3, r2] + cmp r0, 0x4F + bgt _0816E298 + subs r0, r1, 0x2 + b _0816E29A +_0816E298: + adds r0, r1, 0x2 +_0816E29A: + strh r0, [r3, 0x22] +_0816E29C: + pop {r0} + bx r0 + thumb_func_end sub_816E1F8 + + thumb_func_start task_intro_19 +task_intro_19: @ 816E2A0 + push {r4,lr} + sub sp, 0xC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl ResetAllObjectData + ldr r0, =gUnknown_08D89224 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, =gUnknown_08D89ABC + ldr r1, =0x0600c000 + bl LZDecompressVram + ldr r0, =gUnknown_08D8A934 + ldr r1, =0x0600e000 + bl LZDecompressVram + ldr r0, =gUnknown_085E4C88 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_085E4C98 + bl LoadTaggedObjectPalette + movs r0, 0x2 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + ldr r0, =0x03005e00 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, =task_intro_20 + str r0, [r1] + movs r4, 0 + strh r4, [r1, 0x8] + movs r0, 0xA8 + lsls r0, 1 + strh r0, [r1, 0xA] + movs r2, 0x50 + strh r2, [r1, 0xC] + movs r2, 0x10 + strh r2, [r1, 0x14] + adds r2, 0xF0 + strh r2, [r1, 0xE] + movs r1, 0x50 + movs r3, 0 + bl sub_816F2A8 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x6 + str r0, [sp, 0x4] + str r4, [sp, 0x8] + movs r0, 0 + movs r1, 0xA0 + movs r2, 0x4 + movs r3, 0x4 + bl sub_80BA384 + add sp, 0xC + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_19 + + thumb_func_start task_intro_20 +task_intro_20: @ 816E358 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + ldr r1, =0x03005e08 + adds r5, r0, r1 + ldrh r0, [r5, 0x2] + ldrh r1, [r5, 0x4] + ldrh r2, [r5, 0x6] + movs r3, 0 + bl sub_816F2A8 + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0xD + bls _0816E380 + b _0816E6BC +_0816E380: + lsls r0, 2 + ldr r1, =_0816E394 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0816E394: + .4byte _0816E3CC + .4byte _0816E3E0 + .4byte _0816E43C + .4byte _0816E488 + .4byte _0816E4C4 + .4byte _0816E4EC + .4byte _0816E544 + .4byte _0816E560 + .4byte _0816E5A0 + .4byte _0816E5BC + .4byte _0816E5FC + .4byte _0816E61A + .4byte _0816E664 + .4byte _0816E69C +_0816E3CC: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E3DA + b _0816E6BC +_0816E3DA: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_0816E3E0: + ldrh r0, [r5, 0xC] + adds r0, 0x4 + strh r0, [r5, 0xC] + movs r2, 0xC + ldrsh r0, [r5, r2] + movs r1, 0x80 + lsls r1, 1 + bl sine + ldr r1, =0x03005e00 + lsls r4, r6, 2 + adds r4, r6 + lsls r4, 3 + adds r4, r1 + movs r2, 0xAC + lsls r2, 1 + adds r1, r2, 0 + subs r1, r0 + strh r1, [r4, 0xA] + movs r1, 0xC + ldrsh r0, [r5, r1] + movs r1, 0x40 + bl cosine + movs r1, 0x54 + subs r1, r0 + strh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0x40 + beq _0816E420 + b _0816E6BC +_0816E420: + movs r0, 0x19 + strh r0, [r5, 0xC] + movs r0, 0x1 + strh r0, [r5, 0xE] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + movs r0, 0 + bl sub_816E6D4 + b _0816E6BC + .pool +_0816E43C: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E44A + b _0816E6BC +_0816E44A: + ldr r0, =0x03005e00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + ldrh r2, [r1, 0xA] + adds r0, r2 + strh r0, [r1, 0xA] + ldr r2, =0xfffffefe + adds r0, r2, 0 + ldrh r2, [r1, 0xC] + adds r0, r2 + strh r0, [r1, 0xC] + movs r0, 0x8 + strh r0, [r5, 0xC] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + movs r0, 0 + bl sub_816E6D4 + bl sub_816E74C + b _0816E6BC + .pool +_0816E488: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E496 + b _0816E6BC +_0816E496: + ldr r0, =0x03005e00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r2, =0xffffff00 + adds r0, r2, 0 + ldrh r2, [r1, 0xA] + adds r0, r2 + strh r0, [r1, 0xA] + movs r2, 0x81 + lsls r2, 1 + adds r0, r2, 0 + ldrh r2, [r1, 0xC] + adds r0, r2 + strh r0, [r1, 0xC] + movs r0, 0x8 + strh r0, [r5, 0xC] + b _0816E690 + .pool +_0816E4C4: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E4D2 + b _0816E6BC +_0816E4D2: + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0xC] + subs r1, 0xFC + strh r1, [r0, 0xC] + movs r0, 0x8 + strh r0, [r5, 0xC] + b _0816E690 + .pool +_0816E4EC: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E4FA + b _0816E6BC +_0816E4FA: + ldr r0, =0x03005e00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xC] + adds r0, 0xFC + strh r0, [r1, 0xC] + ldrh r2, [r5, 0xE] + movs r0, 0xE + ldrsh r1, [r5, r0] + cmp r1, 0 + beq _0816E528 + movs r0, 0xC + strh r0, [r5, 0xC] + subs r0, r2, 0x1 + strh r0, [r5, 0xE] + movs r0, 0x2 + strh r0, [r5] + b _0816E6BC + .pool +_0816E528: + movs r0, 0x1 + strh r0, [r5, 0xC] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + movs r0, 0xCA + lsls r0, 1 + str r1, [sp] + movs r1, 0 + movs r2, 0x78 + movs r3, 0xA + bl sub_80A344C + b _0816E6BC +_0816E544: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E552 + b _0816E6BC +_0816E552: + movs r0, 0x4 + strh r0, [r5, 0xC] + movs r1, 0xF5 + lsls r1, 1 + adds r0, r1, 0 + strh r0, [r5, 0xE] + b _0816E690 +_0816E560: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E56E + b _0816E6BC +_0816E56E: + movs r0, 0x4 + strh r0, [r5, 0xC] + movs r2, 0xE + ldrsh r0, [r5, r2] + ldr r1, =gUnknown_08D85CD0 + adds r0, r1 + ldr r1, =0x02037b72 + movs r2, 0x1 + bl CpuSet + ldrh r0, [r5, 0xE] + subs r0, 0x2 + strh r0, [r5, 0xE] + lsls r0, 16 + movs r1, 0xF0 + lsls r1, 17 + cmp r0, r1 + beq _0816E594 + b _0816E6BC +_0816E594: + b _0816E690 + .pool +_0816E5A0: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + beq _0816E5AE + b _0816E6BC +_0816E5AE: + movs r0, 0x4 + strh r0, [r5, 0xC] + movs r1, 0xF1 + lsls r1, 1 + adds r0, r1, 0 + strh r0, [r5, 0xE] + b _0816E690 +_0816E5BC: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _0816E6BC + movs r0, 0x4 + strh r0, [r5, 0xC] + movs r2, 0xE + ldrsh r0, [r5, r2] + ldr r1, =gUnknown_08D85CD0 + adds r0, r1 + ldr r1, =0x02037b72 + movs r2, 0x1 + bl CpuSet + ldrh r0, [r5, 0xE] + adds r0, 0x2 + strh r0, [r5, 0xE] + lsls r0, 16 + movs r1, 0xF7 + lsls r1, 17 + cmp r0, r1 + bne _0816E6BC + movs r0, 0x10 + strh r0, [r5, 0xC] + b _0816E690 + .pool +_0816E5FC: + ldrh r0, [r5, 0xC] + subs r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bne _0816E6BC + strh r0, [r5, 0xC] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + adds r0, r6, 0 + bl sub_816E6D4 + b _0816E6BC +_0816E61A: + ldrh r0, [r5, 0xC] + adds r0, 0x4 + strh r0, [r5, 0xC] + ldrh r0, [r5, 0x6] + subs r0, 0x8 + strh r0, [r5, 0x6] + movs r1, 0xC + ldrsh r0, [r5, r1] + movs r1, 0x3C + bl sine + ldr r2, =0x03005e00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r2 + adds r0, 0x58 + strh r0, [r1, 0xA] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0x40 + bne _0816E6BC + movs r0, 0x2 + negs r0, r0 + ldr r1, =0x00007fff + str r1, [sp] + movs r1, 0x3 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + b _0816E690 + .pool +_0816E664: + ldrh r0, [r5, 0xC] + adds r0, 0x4 + strh r0, [r5, 0xC] + ldrh r0, [r5, 0x6] + subs r0, 0x8 + strh r0, [r5, 0x6] + movs r1, 0xC + ldrsh r0, [r5, r1] + movs r1, 0x14 + bl sine + ldr r2, =0x03005e00 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r2 + adds r0, 0x80 + strh r0, [r1, 0xA] + movs r2, 0xC + ldrsh r0, [r5, r2] + cmp r0, 0x80 + bne _0816E6BC +_0816E690: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _0816E6BC + .pool +_0816E69C: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0816E6BC + ldr r1, =0x03005e00 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_21 + str r1, [r0] + ldr r1, =0x02039b28 + movs r0, 0x3 + strb r0, [r1, 0x15] +_0816E6BC: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_20 + + thumb_func_start sub_816E6D4 +sub_816E6D4: @ 816E6D4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r7, =gUnknown_085E4CA8 + ldr r0, =0x02020630 + mov r9, r0 + adds r4, r7, 0 + movs r6, 0 +_0816E6EE: + movs r3, 0 + ldrsh r1, [r4, r3] + adds r0, r7, 0x2 + adds r0, r6, r0 + movs r3, 0 + ldrsh r2, [r0, r3] + lsls r3, r5, 24 + lsrs r3, 24 + ldr r0, =gUnknown_085E4D14 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + add r2, r9 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + mov r0, r8 + strh r0, [r2, 0x38] + ldrh r0, [r4, 0x4] + strh r0, [r2, 0x3A] + movs r0, 0x40 + strh r0, [r2, 0x3C] + adds r4, 0x6 + adds r6, 0x6 + adds r5, 0x1 + cmp r5, 0x5 + ble _0816E6EE + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816E6D4 + + thumb_func_start sub_816E74C +sub_816E74C: @ 816E74C + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 + ldr r7, =gUnknown_085E4CA8 + adds r4, r7, 0x4 + movs r6, 0x24 + ldr r0, =0x02020630 + mov r8, r0 +_0816E75E: + movs r3, 0x20 + ldrsh r1, [r4, r3] + adds r0, r7, 0x2 + adds r0, r6, r0 + movs r3, 0 + ldrsh r2, [r0, r3] + lsls r3, r5, 24 + lsrs r3, 24 + ldr r0, =gUnknown_085E4D14 + bl AddObjectToFront + lsls r0, 24 + lsrs r0, 24 + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + add r2, r8 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r3] + ldrh r0, [r4] + strh r0, [r2, 0x3A] + movs r0, 0x40 + strh r0, [r2, 0x3C] + adds r4, 0x6 + adds r6, 0x6 + adds r5, 0x1 + cmp r5, 0x5 + ble _0816E75E + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816E74C + + thumb_func_start sub_816E7B4 +sub_816E7B4: @ 816E7B4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0816E7C6 + cmp r0, 0x1 + beq _0816E84C + b _0816E882 +_0816E7C6: + ldrh r1, [r4, 0x3A] + movs r2, 0x3A + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _0816E80A + ldrh r0, [r4, 0x30] + adds r0, 0xB + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x30] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x4 + bl sine + strh r0, [r4, 0x24] + ldrh r0, [r4, 0x32] + adds r0, 0x30 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 24 + negs r0, r0 + strh r0, [r4, 0x26] + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0816E82A + adds r0, r4, 0 + bl RemoveObjectAndFreeTiles + b _0816E82A +_0816E80A: + subs r0, r1, 0x1 + strh r0, [r4, 0x3A] + lsls r0, 16 + cmp r0, 0 + bne _0816E82A + adds r0, r4, 0 + movs r1, 0 + bl StartObjectImageAnim + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] +_0816E82A: + ldr r2, =0x03005e00 + movs r0, 0x38 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r0, 0xB + ble _0816E882 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + b _0816E882 + .pool +_0816E84C: + ldrh r1, [r4, 0x20] + movs r2, 0x20 + ldrsh r0, [r4, r2] + cmp r0, 0x77 + bgt _0816E85A + subs r0, r1, 0x3 + b _0816E85C +_0816E85A: + adds r0, r1, 0x3 +_0816E85C: + strh r0, [r4, 0x20] + ldrh r1, [r4, 0x22] + movs r2, 0x22 + ldrsh r0, [r4, r2] + cmp r0, 0x4F + bgt _0816E86C + subs r0, r1, 0x3 + b _0816E86E +_0816E86C: + adds r0, r1, 0x3 +_0816E86E: + strh r0, [r4, 0x22] + ldrh r0, [r4, 0x22] + subs r0, 0x14 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8C + bls _0816E882 + adds r0, r4, 0 + bl RemoveObjectAndFreeTiles +_0816E882: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_816E7B4 + + thumb_func_start task_intro_21 +task_intro_21: @ 816E888 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r0, 0x50 + movs r1, 0x87 + bl SetGpuReg + ldr r1, =0x00001f1f + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0x1F + bl SetGpuReg + movs r1, 0xB0 + lsls r1, 7 + movs r0, 0x8 + bl SetGpuReg + ldr r1, =0x00005a04 + movs r0, 0xA + bl SetGpuReg + ldr r1, =0x00001c06 + movs r0, 0xC + bl SetGpuReg + movs r1, 0xDD + lsls r1, 6 + movs r0, 0 + bl SetGpuReg + movs r0, 0x10 + movs r1, 0x50 + bl SetGpuReg + movs r0, 0x12 + movs r1, 0 + bl SetGpuReg + ldr r1, =0x0000ffb0 + movs r0, 0x14 + bl SetGpuReg + movs r0, 0x16 + movs r1, 0 + bl SetGpuReg + movs r0, 0x18 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1A + movs r1, 0 + bl SetGpuReg + ldr r4, =gUnknown_08D8AA54 + movs r1, 0xC0 + lsls r1, 19 + adds r0, r4, 0 + bl LZDecompressVram + ldr r1, =0x06004000 + adds r0, r4, 0 + bl LZDecompressVram + ldr r0, =gUnknown_08D8B6E8 + ldr r1, =0x0600e000 + bl LZDecompressVram + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_22 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_21 + + thumb_func_start task_intro_22 +task_intro_22: @ 816E954 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_08D8B180 + ldr r1, =0x0600c000 + bl LZDecompressVram + ldr r0, =gUnknown_08D8B440 + ldr r1, =0x0600d000 + bl LZDecompressVram + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_23 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_22 + + thumb_func_start task_intro_23 +task_intro_23: @ 816E998 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_24 + str r1, [r0] + movs r1, 0 + strh r1, [r0, 0x8] + movs r1, 0x10 + strh r1, [r0, 0x14] + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_23 + + thumb_func_start task_intro_24 +task_intro_24: @ 816E9DC + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r5, r1, 3 + ldr r6, =0x03005e08 + adds r4, r5, r6 + ldrh r1, [r4, 0xC] + lsls r1, 16 + asrs r1, 24 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x10 + bl SetGpuReg + ldrh r1, [r4, 0xC] + lsls r1, 16 + asrs r1, 24 + negs r1, r1 + lsls r1, 16 + lsrs r1, 16 + movs r0, 0x14 + bl SetGpuReg + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0816EA24 + cmp r0, 0x1 + beq _0816EA58 + b _0816EAA6 + .pool +_0816EA24: + ldrh r0, [r4, 0xC] + subs r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _0816EAA6 + movs r0, 0x2 + negs r0, r0 + ldr r1, =0x0000ffff + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + movs r2, 0xA0 + lsls r2, 7 + adds r0, r2, 0 + strh r0, [r4, 0xC] + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _0816EAA6 + .pool +_0816EA58: + movs r0, 0xC + ldrsh r1, [r4, r0] + movs r0, 0xA0 + lsls r0, 6 + cmp r1, r0 + bne _0816EA74 + ldr r0, =0x0000fffe + ldr r1, =0x00002949 + str r1, [sp] + movs r1, 0x3 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe +_0816EA74: + ldrh r1, [r4, 0xC] + movs r2, 0xC + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0816EA90 + adds r0, r1, 0 + subs r0, 0x80 + strh r0, [r4, 0xC] + b _0816EAA6 + .pool +_0816EA90: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0816EAA6 + adds r0, r6, 0 + subs r0, 0x8 + adds r0, r5, r0 + ldr r1, =task_intro_25 + str r1, [r0] +_0816EAA6: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_24 + + thumb_func_start task_intro_25 +task_intro_25: @ 816EAB8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, =gUnknown_08D8C16C + ldr r1, =0x0600e000 + bl LZDecompressVram + ldr r0, =gUnknown_08D8CCC8 + ldr r1, =0x0600c000 + bl LZDecompressVram + ldr r0, =gUnknown_08D8BA74 + ldr r1, =0x06004000 + bl LZDecompressVram + ldr r0, =gUnknown_08D8C838 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + movs r1, 0xD5 + lsls r1, 6 + movs r0, 0 + bl SetGpuReg + ldr r1, =0x03005e00 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, =task_intro_26 + str r1, [r0] + movs r2, 0 + strh r2, [r0, 0x8] + movs r1, 0x1 + strh r1, [r0, 0x14] + strh r2, [r0, 0x16] + ldr r0, =gUnknown_085E4BF4 + bl LoadCompressedObjectPicUsingHeap + ldr r0, =gUnknown_085E4C04 + bl LoadTaggedObjectPalettes + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_25 + + thumb_func_start task_intro_26 +task_intro_26: @ 816EB44 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r2, =0x03005e08 + adds r6, r1, r2 + movs r3, 0 + ldrsh r0, [r6, r3] + cmp r0, 0x1 + beq _0816EBE0 + cmp r0, 0x1 + bgt _0816EB6C + cmp r0, 0 + beq _0816EB72 + b _0816EC62 + .pool +_0816EB6C: + cmp r0, 0x2 + beq _0816EC4C + b _0816EC62 +_0816EB72: + ldrh r0, [r6, 0xC] + subs r0, 0x1 + strh r0, [r6, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _0816EC62 + ldr r4, =gUnknown_085E4C4C + adds r0, r4, 0 + movs r1, 0xC8 + movs r2, 0x30 + movs r3, 0 + bl AddObjectToFront + adds r0, r4, 0 + movs r1, 0xC8 + movs r2, 0x50 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =0x02020630 + adds r0, r5 + movs r1, 0x1 + bl StartObjectImageAnim + adds r0, r4, 0 + movs r1, 0xC8 + movs r2, 0x70 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x2 + bl StartObjectImageAnim + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + movs r0, 0x48 + strh r0, [r6, 0xC] + b _0816EC62 + .pool +_0816EBE0: + ldrh r0, [r6, 0xC] + subs r0, 0x1 + strh r0, [r6, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _0816EC62 + ldr r4, =gUnknown_085E4C4C + adds r0, r4, 0 + movs r1, 0x28 + movs r2, 0x30 + movs r3, 0 + bl AddObjectToFront + adds r0, r4, 0 + movs r1, 0x28 + movs r2, 0x50 + movs r3, 0x1 + bl AddObjectToFront + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, =0x02020630 + adds r0, r5 + movs r1, 0x1 + bl StartObjectImageAnim + adds r0, r4, 0 + movs r1, 0x28 + movs r2, 0x70 + movs r3, 0x2 + bl AddObjectToFront + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x2 + bl StartObjectImageAnim + ldrh r0, [r6] + adds r0, 0x1 + strh r0, [r6] + movs r0, 0x30 + strh r0, [r6, 0xC] + b _0816EC62 + .pool +_0816EC4C: + ldrh r0, [r6, 0xC] + subs r0, 0x1 + strh r0, [r6, 0xC] + lsls r0, 16 + cmp r0, 0 + bne _0816EC62 + adds r0, r2, 0 + subs r0, 0x8 + adds r0, r1, r0 + ldr r1, =task_intro_27 + str r1, [r0] +_0816EC62: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_26 + + thumb_func_start sub_816EC6C +sub_816EC6C: @ 816EC6C + push {r4,lr} + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0816EC88 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_0816EC88: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0816ECAC + cmp r0, 0x1 + bgt _0816EC9A + cmp r0, 0 + beq _0816ECA0 + b _0816ED12 +_0816EC9A: + cmp r0, 0x2 + beq _0816ECDC + b _0816ED12 +_0816ECA0: + movs r0, 0xE1 + lsls r0, 1 + strh r0, [r4, 0x30] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_0816ECAC: + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldr r1, =gUnknown_08D85CD0 + adds r0, r1 + ldr r1, =0x02037bce + movs r2, 0x1 + bl CpuSet + ldrh r0, [r4, 0x30] + adds r0, 0x2 + strh r0, [r4, 0x30] + lsls r0, 16 + movs r1, 0xE7 + lsls r1, 17 + cmp r0, r1 + bne _0816ED12 + movs r0, 0xE6 + lsls r0, 1 + strh r0, [r4, 0x30] + movs r0, 0x4 + strh r0, [r4, 0x32] + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] +_0816ECDC: + ldrh r0, [r4, 0x32] + subs r0, 0x1 + strh r0, [r4, 0x32] + lsls r0, 16 + cmp r0, 0 + bne _0816ED12 + movs r0, 0x4 + strh r0, [r4, 0x32] + movs r1, 0x30 + ldrsh r0, [r4, r1] + ldr r1, =gUnknown_08D85CD0 + adds r0, r1 + ldr r1, =0x02037bce + movs r2, 0x1 + bl CpuSet + ldrh r0, [r4, 0x30] + subs r0, 0x2 + strh r0, [r4, 0x30] + lsls r0, 16 + movs r1, 0xE0 + lsls r1, 17 + cmp r0, r1 + bne _0816ED12 + adds r0, r4, 0 + bl RemoveObjectAndFreeTiles +_0816ED12: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816EC6C + + thumb_func_start task_intro_27 +task_intro_27: @ 816ED20 + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, =gUnknown_085E5048 + bl LoadCompressedObjectPic + ldr r0, =gUnknown_085E5058 + bl LoadTaggedObjectPalettes + movs r1, 0xD5 + lsls r1, 6 + movs r0, 0 + bl SetGpuReg + ldr r6, =0x03005e00 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r6 + ldr r0, =task_intro_28 + str r0, [r4] + ldr r0, =0x0000ffde + ldr r1, =0x00002949 + str r1, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl pal_fade_maybe + movs r0, 0 + strh r0, [r4, 0x8] + movs r0, 0xA8 + strh r0, [r4, 0xA] + ldr r1, =0x0000fff0 + strh r1, [r4, 0xC] + ldr r0, =0x0000ff78 + strh r0, [r4, 0xE] + strh r1, [r4, 0x10] + ldr r0, =sub_816EEA8 + 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 r5, [r1, 0x10] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_27 + + thumb_func_start task_intro_28 +task_intro_28: @ 816EDB4 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r4, r1, 3 + ldr r5, =0x03005e08 + adds r2, r4, r5 + ldrh r0, [r2, 0xE] + movs r3, 0x1 + ands r0, r3 + cmp r0, 0 + bne _0816EDD6 + ldrh r0, [r2, 0xC] + movs r1, 0x2 + eors r0, r1 + strh r0, [r2, 0xC] +_0816EDD6: + ldrh r0, [r2, 0xE] + adds r0, 0x1 + strh r0, [r2, 0xE] + movs r6, 0 + ldrsh r1, [r2, r6] + cmp r1, 0x1 + beq _0816EE2E + cmp r1, 0x1 + bgt _0816EDF4 + cmp r1, 0 + beq _0816EDFE + b _0816EE86 + .pool +_0816EDF4: + cmp r1, 0x2 + beq _0816EE3A + cmp r1, 0x3 + beq _0816EE70 + b _0816EE86 +_0816EDFE: + ands r0, r3 + cmp r0, 0 + beq _0816EE1C + ldrh r0, [r2, 0x2] + subs r0, 0x2 + strh r0, [r2, 0x2] + ldrh r0, [r2, 0x4] + adds r0, 0x1 + strh r0, [r2, 0x4] + ldrh r0, [r2, 0x6] + adds r0, 0x2 + strh r0, [r2, 0x6] + ldrh r0, [r2, 0x8] + adds r0, 0x1 + strh r0, [r2, 0x8] +_0816EE1C: + movs r1, 0x2 + ldrsh r0, [r2, r1] + cmp r0, 0x68 + bne _0816EE86 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + strh r3, [r2, 0xA] + b _0816EE86 +_0816EE2E: + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + movs r0, 0x4 + strh r0, [r2, 0xA] + b _0816EE86 +_0816EE3A: + ldrh r0, [r2, 0x2] + adds r0, 0x4 + strh r0, [r2, 0x2] + ldrh r0, [r2, 0x4] + subs r0, 0x2 + strh r0, [r2, 0x4] + ldrh r0, [r2, 0x6] + subs r0, 0x4 + strh r0, [r2, 0x6] + ldrh r0, [r2, 0x8] + subs r0, 0x2 + strh r0, [r2, 0x8] + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0816EE86 + movs r0, 0x8C + strh r0, [r2, 0xA] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + b _0816EE86 + .pool +_0816EE70: + ldrh r0, [r2, 0xA] + subs r0, 0x1 + strh r0, [r2, 0xA] + lsls r0, 16 + cmp r0, 0 + bne _0816EE86 + adds r0, r5, 0 + subs r0, 0x8 + adds r0, r4, r0 + ldr r1, =task_intro_29 + str r1, [r0] +_0816EE86: + pop {r4-r6} + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_28 + + thumb_func_start task_intro_29 +task_intro_29: @ 816EE90 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + ldr r0, =sub_816CC54 + bl SetMainCallback2 + pop {r0} + bx r0 + .pool + thumb_func_end task_intro_29 + + thumb_func_start sub_816EEA8 +sub_816EEA8: @ 816EEA8 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =0x03005e08 + adds r5, r0, r1 + ldrh r0, [r5, 0x4] + adds r0, 0x1 + strh r0, [r5, 0x4] + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0x5 + bls _0816EECA + b _0816F0B2 +_0816EECA: + lsls r0, 2 + ldr r1, =_0816EEDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0816EEDC: + .4byte _0816EEF4 + .4byte _0816EF34 + .4byte _0816EF80 + .4byte _0816F00A + .4byte _0816F074 + .4byte _0816F0A0 +_0816EEF4: + ldrh r1, [r5, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0816EF16 + movs r2, 0x2 + ldrsh r0, [r5, r2] + lsls r0, 1 + ldr r1, =gUnknown_08D85E72 + adds r0, r1 + ldr r1, =0x02037bd0 + movs r2, 0x1 + bl CpuSet + ldrh r0, [r5, 0x2] + adds r0, 0x1 + strh r0, [r5, 0x2] +_0816EF16: + movs r1, 0x2 + ldrsh r0, [r5, r1] + cmp r0, 0x6 + beq _0816EF20 + b _0816F0B2 +_0816EF20: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + movs r0, 0 + strh r0, [r5, 0x2] + b _0816EF70 + .pool +_0816EF34: + ldrh r1, [r5, 0x6] + movs r2, 0x6 + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _0816F004 + ldrh r1, [r5, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0816EF60 + movs r1, 0x2 + ldrsh r0, [r5, r1] + lsls r0, 1 + ldr r1, =gUnknown_08D85E72 + adds r0, r1 + ldr r1, =0x02037bc4 + movs r2, 0x1 + bl CpuSet + ldrh r0, [r5, 0x2] + adds r0, 0x1 + strh r0, [r5, 0x2] +_0816EF60: + movs r2, 0x2 + ldrsh r0, [r5, r2] + cmp r0, 0x6 + beq _0816EF6A + b _0816F0B2 +_0816EF6A: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] +_0816EF70: + movs r0, 0xA + strh r0, [r5, 0x6] + b _0816F0B2 + .pool +_0816EF80: + ldrh r1, [r5, 0x6] + movs r2, 0x6 + ldrsh r0, [r5, r2] + cmp r0, 0 + bne _0816F004 + ldrh r1, [r5, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0816EFAC + movs r1, 0x2 + ldrsh r0, [r5, r1] + lsls r0, 1 + ldr r1, =gUnknown_08D85E52 + adds r0, r1 + ldr r1, =0x02037bcc + movs r2, 0x1 + bl CpuSet + ldrh r0, [r5, 0x2] + adds r0, 0x1 + strh r0, [r5, 0x2] +_0816EFAC: + movs r2, 0x2 + ldrsh r0, [r5, r2] + cmp r0, 0x6 + beq _0816EFB6 + b _0816F0B2 +_0816EFB6: + ldr r0, =gUnknown_085E5030 + movs r1, 0x78 + movs r2, 0x58 + movs r3, 0xF + bl AddObjectToFront + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x67 + bl audio_play + ldr r1, =0x02020630 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + adds r0, r1 + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r3] + ldrh r1, [r5, 0x8] + strh r1, [r0, 0x34] + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + movs r0, 0x10 + strh r0, [r5, 0x6] + b _0816F0B2 + .pool +_0816F004: + subs r0, r1, 0x1 + strh r0, [r5, 0x6] + b _0816F0B2 +_0816F00A: + ldrh r1, [r5, 0x4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0816F0B2 + ldrh r0, [r5, 0x6] + subs r0, 0x1 + adds r2, r0, 0 + strh r0, [r5, 0x6] + lsls r0, 16 + cmp r0, 0 + beq _0816F068 + lsls r2, 24 + lsrs r2, 24 + ldr r3, =0x00002949 + movs r0, 0x50 + movs r1, 0x10 + bl pal_fade_1 + ldr r4, =gUnknown_08D85E7C + ldr r5, =0x02037bd0 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl CpuSet + adds r1, r5, 0 + subs r1, 0xC + adds r0, r4, 0 + movs r2, 0x1 + bl CpuSet + subs r4, 0x20 + subs r5, 0x4 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0x1 + bl CpuSet + b _0816F0B2 + .pool +_0816F068: + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + movs r0, 0x35 + strh r0, [r5, 0x6] + b _0816F0B2 +_0816F074: + ldrh r0, [r5, 0x6] + subs r0, 0x1 + strh r0, [r5, 0x6] + lsls r0, 16 + cmp r0, 0 + bne _0816F0B2 + movs r0, 0x1 + negs r0, r0 + ldr r1, =0x00007fff + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl pal_fade_maybe + ldrh r0, [r5] + adds r0, 0x1 + strh r0, [r5] + b _0816F0B2 + .pool +_0816F0A0: + ldr r0, =0x02037fd4 + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0816F0B2 + adds r0, r2, 0 + bl DestroyTask +_0816F0B2: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_816EEA8 + + thumb_func_start intro_reset_and_hide_bgs +@ void intro_reset_and_hide_bgs() +intro_reset_and_hide_bgs: @ 816F0C0 + push {lr} + movs r0, 0 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1C + movs r1, 0 + bl SetGpuReg + movs r0, 0x1E + movs r1, 0 + bl SetGpuReg + movs r0, 0x18 + movs r1, 0 + bl SetGpuReg + movs r0, 0x1A + movs r1, 0 + bl SetGpuReg + movs r0, 0x14 + movs r1, 0 + bl SetGpuReg + movs r0, 0x16 + movs r1, 0 + bl SetGpuReg + movs r0, 0x10 + movs r1, 0 + bl SetGpuReg + movs r0, 0x12 + movs r1, 0 + bl SetGpuReg + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + pop {r0} + bx r0 + thumb_func_end intro_reset_and_hide_bgs + + thumb_func_start task_intro_3_1 +task_intro_3_1: @ 816F128 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0816F170 + cmp r0, 0x1 + ble _0816F148 + cmp r0, 0x2 + beq _0816F1BC +_0816F148: + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldr r0, =gUnknown_0853FF70 + ldrh r1, [r0, 0x3E] + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r0, 0x40 + b _0816F1AC + .pool +_0816F170: + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0816F1A0 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + movs r1, 0xFF + lsls r1, 1 + ldr r2, =gUnknown_0853FF70 + ands r0, r1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x52 + bl SetGpuReg + b _0816F1DA + .pool +_0816F1A0: + ldr r0, =gUnknown_0853FF70 + ldrh r1, [r0] + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x10 +_0816F1AC: + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0816F1DA + .pool +_0816F1BC: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyTask +_0816F1DA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task_intro_3_1 + + thumb_func_start task_intro_3_2 +task_intro_3_2: @ 816F1E0 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, =0x03005e00 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _0816F228 + cmp r0, 0x1 + ble _0816F200 + cmp r0, 0x2 + beq _0816F274 +_0816F200: + movs r1, 0xFD + lsls r1, 6 + movs r0, 0x50 + bl SetGpuReg + ldr r0, =gUnknown_0853FF70 + ldrh r1, [r0] + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + movs r0, 0 + b _0816F264 + .pool +_0816F228: + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0x3D + bgt _0816F258 + adds r0, r1, 0x1 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + movs r1, 0xFF + lsls r1, 1 + ldr r2, =gUnknown_0853FF70 + ands r0, r1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x52 + bl SetGpuReg + b _0816F2A2 + .pool +_0816F258: + ldr r0, =gUnknown_0853FF70 + ldrh r1, [r0, 0x3E] + movs r0, 0x52 + bl SetGpuReg + movs r0, 0x10 +_0816F264: + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x8] + adds r0, 0x1 + strh r0, [r4, 0x8] + b _0816F2A2 + .pool +_0816F274: + ldrh r1, [r4, 0xA] + movs r2, 0xA + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _0816F284 + subs r0, r1, 0x1 + strh r0, [r4, 0xA] + b _0816F2A2 +_0816F284: + movs r0, 0x50 + movs r1, 0 + bl SetGpuReg + movs r0, 0x52 + movs r1, 0 + bl SetGpuReg + movs r0, 0x54 + movs r1, 0 + bl SetGpuReg + adds r0, r5, 0 + bl DestroyTask +_0816F2A2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end task_intro_3_2 + + thumb_func_start sub_816F2A8 +sub_816F2A8: @ 816F2A8 + 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 + ldrh r1, [r4] + movs r0, 0x20 + bl SetGpuReg + ldrh r1, [r4, 0x2] + movs r0, 0x22 + bl SetGpuReg + ldrh r1, [r4, 0x4] + movs r0, 0x24 + bl SetGpuReg + ldrh r1, [r4, 0x6] + movs r0, 0x26 + bl SetGpuReg + ldrh r1, [r4, 0x8] + movs r0, 0x28 + bl SetGpuReg + ldrh r1, [r4, 0xA] + movs r0, 0x2A + bl SetGpuReg + ldrh r1, [r4, 0xC] + movs r0, 0x2C + bl SetGpuReg + ldrh r1, [r4, 0xE] + movs r0, 0x2E + bl SetGpuReg + add sp, 0x24 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_816F2A8 + + .align 2, 0 @ Don't pad with nop. |