.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_8140238 sub_8140238: @ 8140238 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r1, r0, 0 adds r1, 0xB8 ldrb r0, [r1] cmp r0, 0 beq _0814025A adds r0, r1, 0 bl task_tutorial_controls_fadein _0814025A: pop {r0} bx r0 .pool thumb_func_end sub_8140238 thumb_func_start sub_8140264 sub_8140264: @ 8140264 push {r4,lr} sub sp, 0x4 bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_8142814 ldr r4, =gUnknown_0203AB88 ldr r0, [r4] ldrh r0, [r0, 0x26] movs r2, 0x80 lsls r2, 2 adds r1, r2, 0 subs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x14 bl SetGpuReg ldr r1, [r4] ldrb r0, [r1, 0x1] cmp r0, 0 beq _081402A0 ldrh r1, [r1, 0x34] movs r0, 0x52 bl SetGpuReg _081402A0: ldr r2, [r4] movs r3, 0x2A ldrsh r0, [r2, r3] cmp r0, 0 beq _081402C0 ldr r1, =0x040000d4 ldr r3, =0x0000133c adds r0, r2, r3 str r0, [r1] ldr r0, =0x060021c0 str r0, [r1, 0x4] ldr r0, =0x800001a0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0 strh r0, [r2, 0x2A] _081402C0: ldr r0, [r4] movs r2, 0x28 ldrsh r1, [r0, r2] cmp r1, 0x1 beq _081402EC cmp r1, 0x1 ble _08140374 cmp r1, 0x2 beq _08140324 cmp r1, 0xFF beq _08140348 b _08140374 .pool _081402EC: movs r0, 0 movs r1, 0x1 movs r2, 0 bl SetBgAttribute movs r0, 0 bl ShowBg ldr r1, =0x040000d4 ldr r2, [r4] movs r3, 0xCF lsls r3, 2 adds r0, r2, r3 str r0, [r1] ldr r0, =0x0600f9c0 str r0, [r1, 0x4] ldr r0, =0x800001a0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] movs r0, 0x2 strh r0, [r2, 0x28] b _08140374 .pool _08140324: ldr r1, =0x040000d4 movs r2, 0xCF lsls r2, 2 adds r0, r2 str r0, [r1] ldr r0, =0x0600f9c0 str r0, [r1, 0x4] ldr r0, =0x800001a0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] b _08140374 .pool _08140348: movs r0, 0 movs r1, 0x1 movs r2, 0x2 bl SetBgAttribute movs r0, 0 bl ShowBg mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, =0x040000d4 mov r3, sp str r3, [r1] ldr r0, =0x0600f9c0 str r0, [r1, 0x4] ldr r0, =0x810001a0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, [r4] movs r0, 0 strh r0, [r1, 0x28] _08140374: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8140264 thumb_func_start sub_8140388 sub_8140388: @ 8140388 push {r4,r5,lr} sub sp, 0x4 movs r5, 0 str r5, [sp] ldr r4, =gUnknown_0203AB88 movs r0, 0xE6 lsls r0, 6 bl AllocZeroed str r0, [r4] movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_085B6140 movs r0, 0x1 movs r2, 0x3 bl InitBgsFromTemplates ldr r1, [r4] movs r0, 0xBE lsls r0, 1 adds r1, r0 movs r0, 0 bl SetBgTilemapBuffer ldr r1, [r4] ldr r2, =0x0000117c adds r1, r2 movs r0, 0x1 bl SetBgTilemapBuffer ldr r1, [r4] ldr r0, =0x0000317c adds r1, r0 movs r0, 0x2 bl SetBgTilemapBuffer ldr r0, =gUnknown_085B614C bl InitWindows bl sub_8197200 ldr r0, =gUnknown_0203AB8C strb r5, [r0] ldr r0, =gUnknown_085B5DFC mov r1, sp bl malloc_and_decompress ldr r1, [r4] ldr r2, =0x0000397c adds r1, r2 str r0, [r1] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8140388 thumb_func_start sub_8140418 sub_8140418: @ 8140418 push {r4,r5,lr} ldr r5, =gUnknown_0203AB88 ldr r0, [r5] ldr r4, =0x0000397c adds r0, r4 ldr r0, [r0] bl Free ldr r0, [r5] adds r0, r4 movs r4, 0 str r4, [r0] bl FreeAllWindowBuffers movs r0, 0 bl UnsetBgTilemapBuffer movs r0, 0x1 bl UnsetBgTilemapBuffer movs r0, 0x2 bl UnsetBgTilemapBuffer movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r0, [r5] movs r2, 0xE6 lsls r2, 6 movs r1, 0 bl memset ldr r0, [r5] bl Free str r4, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8140418 thumb_func_start sub_8140470 sub_8140470: @ 8140470 push {r4-r6,lr} sub sp, 0x8 ldr r1, =gUnknown_085B6418 mov r0, sp movs r2, 0x6 bl memcpy ldr r5, =gUnknown_0203AB88 ldr r3, [r5] ldr r4, =gSpecialVar_0x8004 ldrb r0, [r4] movs r1, 0x1 ands r1, r0 ldrb r2, [r3, 0x4] movs r0, 0x4 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x4] ldrh r1, [r4] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081404AA ldr r0, [r5] ldrb r1, [r0, 0x4] movs r2, 0x80 orrs r1, r2 strb r1, [r0, 0x4] _081404AA: ldr r1, [r5] ldr r2, =gUnknown_085B6348 ldrb r0, [r1, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r2 ldrb r0, [r0, 0x3] adds r1, 0x22 strb r0, [r1] ldr r1, [r5] ldrb r0, [r1, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r2 ldrb r0, [r0, 0x4] adds r1, 0x23 strb r0, [r1] ldr r2, [r5] ldr r3, =gUnknown_085B6344 ldrb r1, [r2, 0x4] lsls r0, r1, 30 lsrs r0, 30 lsrs r1, 7 lsls r1, 1 adds r0, r1 adds r0, r3 ldrb r0, [r0] strb r0, [r2, 0x19] ldr r2, [r5] ldrb r1, [r2, 0x1A] movs r0, 0xF ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r2, 0x1A] ldr r0, [r5] ldrb r0, [r0, 0x19] cmp r0, 0x1 bne _08140520 ldr r4, =gPlttBufferUnfaded ldr r3, =gPlttBufferFaded mov r0, sp ldrh r2, [r0] b _08140528 .pool _08140520: ldr r4, =gPlttBufferUnfaded ldr r3, =gPlttBufferFaded mov r0, sp ldrh r2, [r0, 0x2] _08140528: adds r0, r3, 0 adds r0, 0xA2 strh r2, [r0] ldr r1, =0x0000ffff adds r0, r1, 0 ands r0, r2 strh r0, [r3] ands r0, r1 adds r2, r4, 0 adds r2, 0xA2 strh r0, [r2] ands r0, r1 strh r0, [r4] ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0xB8 bl sub_8151678 movs r4, 0 _0814054E: ldr r5, =gUnknown_0203AB88 ldr r0, [r5] adds r0, 0xB8 lsls r2, r4, 3 ldr r1, =gUnknown_085B6388 adds r2, r1 adds r1, r4, 0 bl sub_815168C adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xC bls _0814054E movs r4, 0 _0814056C: movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x41 bl GetMonData adds r1, r0, 0 movs r0, 0x98 lsls r0, 1 cmp r1, r0 beq _081405AC adds r0, 0x2 cmp r1, r0 bne _081405B6 ldr r0, [r5] ldrb r1, [r0, 0x2] movs r2, 0x1 b _081405B2 .pool _081405AC: ldr r0, [r5] ldrb r1, [r0, 0x2] movs r2, 0x2 _081405B2: orrs r1, r2 strb r1, [r0, 0x2] _081405B6: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0814056C bl RtcCalcLocalTime add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_8140470 thumb_func_start sub_81405CC sub_81405CC: @ 81405CC push {r4,r5,lr} sub sp, 0xC ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0x8 bls _081405E0 b _081407F8 _081405E0: lsls r0, 2 ldr r1, =_081405F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081405F4: .4byte _08140618 .4byte _08140630 .4byte _08140650 .4byte _08140662 .4byte _0814069C .4byte _081406C0 .4byte _081406E0 .4byte _08140750 .4byte _0814077A _08140618: movs r0, 0 bl SetVBlankCallback bl remove_some_task bl SetVBlankHBlankCallbacksToNull bl ResetVramOamAndBgCntRegs bl ResetAllBgsCoordinates b _081407F8 _08140630: bl sub_8140388 bl DeactivateAllTextPrinters movs r1, 0x90 lsls r1, 6 movs r0, 0x50 bl SetGpuReg ldr r1, =0x0000060a movs r0, 0x52 bl SetGpuReg b _081407F8 .pool _08140650: bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl reset_temp_tile_data_buffers b _081407F8 _08140662: ldr r0, =gUnknown_085B5BFC movs r2, 0xE0 lsls r2, 1 movs r1, 0 bl LoadPalette ldr r1, =gRouletteMenuTiles movs r4, 0 str r4, [sp] movs r0, 0x1 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram ldr r1, =gRouletteWheelTiles str r4, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _081407F8 .pool _0814069C: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 beq _081406A8 b _08140806 _081406A8: bl sub_8140470 ldr r1, =gUnknown_085B5FA0 movs r0, 0x2 movs r2, 0 movs r3, 0 bl CopyToBgTilemapBuffer b _081407F8 .pool _081406C0: movs r0, 0 bl sub_8142C0C bl sub_81439C8 bl sub_814391C bl sub_8143314 bl sub_8142CD0 bl sub_8142F7C bl sub_81431E4 b _081407F8 _081406E0: bl AnimateSprites bl BuildOamBuffer bl GetCoins lsls r0, 16 lsrs r0, 16 bl sub_8143514 movs r0, 0x6 bl sub_814372C movs r0, 0 bl sub_81436D0 movs r0, 0 bl sub_81424FC ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] ldr r2, =gUnknown_082A5B89 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r5, 0 str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram ldr r1, =gSpriteCoordOffsetX movs r2, 0x3C negs r2, r2 adds r0, r2, 0 strh r0, [r1] ldr r0, =gSpriteCoordOffsetY strh r5, [r0] b _081407F8 .pool _08140750: movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg b _081407F8 _0814077A: movs r0, 0x1 bl EnableInterrupts ldr r0, =sub_8140264 bl SetVBlankCallback movs r0, 0x1 str r0, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginHardwarePaletteFade ldr r0, =sub_81408A8 movs r1, 0 bl CreateTask ldr r5, =gUnknown_0203AB88 ldr r1, [r5] adds r1, 0xA4 strb r0, [r1] lsls r0, 24 lsrs r0, 24 ldr r1, =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r0, 0x6 strh r0, [r4, 0x14] bl GetCoins strh r0, [r4, 0x22] bl GetCoins lsls r0, 16 lsrs r0, 16 bl sub_80EDE84 ldr r0, =sub_8140814 movs r1, 0x1 bl CreateTask ldr r1, [r5] adds r1, 0xA5 strb r0, [r1] ldr r0, =sub_8140238 bl SetMainCallback2 b _08140806 .pool _081407F8: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _08140806: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81405CC thumb_func_start sub_8140814 sub_8140814: @ 8140814 push {r4-r6,lr} ldr r3, =gUnknown_0203AB88 ldr r0, [r3] adds r0, 0x21 ldrb r2, [r0] adds r1, r2, 0x1 strb r1, [r0] ldr r1, [r3] adds r0, r1, 0 adds r0, 0x23 lsls r2, 24 lsrs r2, 24 adds r6, r3, 0 ldrb r0, [r0] cmp r2, r0 bne _0814085A adds r1, 0x21 movs r0, 0 strb r0, [r1] ldr r2, [r6] adds r3, r2, 0 adds r3, 0x22 ldrb r1, [r3] ldrh r0, [r2, 0x24] subs r0, r1 strh r0, [r2, 0x24] lsls r0, 16 cmp r0, 0 bge _0814085A ldrb r1, [r3] movs r3, 0xB4 lsls r3, 1 adds r0, r3, 0 subs r0, r1 strh r0, [r2, 0x24] _0814085A: adds r4, r6, 0 ldr r0, [r4] ldrh r0, [r0, 0x24] bl Sin2 lsls r0, 16 lsrs r5, r0, 16 ldr r0, [r4] ldrh r0, [r0, 0x24] bl Cos2 lsls r0, 16 lsrs r1, r0, 16 lsls r0, r5, 16 asrs r0, 16 cmp r0, 0 bge _0814087E adds r0, 0xF _0814087E: lsls r0, 12 lsrs r5, r0, 16 ldr r3, [r6] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0 bge _0814088E adds r0, 0xF _0814088E: asrs r0, 4 strh r0, [r3, 0x32] strh r0, [r3, 0x2C] strh r5, [r3, 0x2E] lsls r0, r5, 16 asrs r0, 16 negs r0, r0 strh r0, [r3, 0x30] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8140814 thumb_func_start sub_81408A8 sub_81408A8: @ 81408A8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl UpdatePaletteFade lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _081408FE movs r1, 0x90 lsls r1, 6 movs r0, 0x50 bl SetGpuReg ldr r1, =0x00000808 movs r0, 0x52 bl SetGpuReg ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x14] adds r0, r4, 0 bl sub_8141FF4 bl sub_8142070 bl sub_8143A40 movs r0, 0 bl sub_81424FC movs r0, 0x6 bl sub_814372C ldr r1, =sub_8140968 ldr r2, =0x0000ffff adds r0, r4, 0 movs r3, 0x3 bl sub_8141F7C _081408FE: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81408A8 thumb_func_start sub_8140914 sub_8140914: @ 8140914 push {r4,r5,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8197930 ldr r5, =gUnknown_0203AB8C ldrb r0, [r5] movs r1, 0 bl sub_81973FC ldrb r0, [r5] ldr r2, =gUnknown_082A5C13 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldrb r0, [r5] movs r1, 0x3 bl CopyWindowToVram ldr r1, =gUnknown_085B6410 adds r0, r4, 0 bl sub_8121F68 add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8140914 thumb_func_start sub_8140968 sub_8140968: @ 8140968 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0x1 bl sub_819746C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_8140BD0 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8140968 thumb_func_start sub_8140994 sub_8140994: @ 8140994 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0xA5 ldrb r0, [r0] bl DestroyTask adds r0, r4, 0 bl sub_8141DE4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8140994 thumb_func_start sub_81409B8 sub_81409B8: @ 81409B8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF bls _081409CA b _08140AE8 _081409CA: lsls r0, r4, 2 ldr r1, =_081409D8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081409D8: .4byte _08140A18 .4byte _08140A3C .4byte _08140A3C .4byte _08140A3C .4byte _08140A3C .4byte _08140A90 .4byte _08140AE8 .4byte _08140AE8 .4byte _08140AE8 .4byte _08140AE8 .4byte _08140A90 .4byte _08140AE8 .4byte _08140AE8 .4byte _08140AE8 .4byte _08140AE8 .4byte _08140A90 _08140A18: ldr r0, =gUnknown_0203AB88 ldr r0, [r0] movs r1, 0xBE lsls r1, 1 adds r0, r1 movs r1, 0x10 str r1, [sp] movs r1, 0xD str r1, [sp, 0x4] movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8152008 b _08140B4E .pool _08140A3C: lsls r0, r4, 1 adds r0, r4 adds r0, 0xE lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r5, =gUnknown_0203AB88 ldr r0, [r5] movs r4, 0xBE lsls r4, 1 adds r0, r4 movs r1, 0x10 str r1, [sp] movs r6, 0xD str r6, [sp, 0x4] movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8152008 ldr r0, [r5] adds r4, r0, r4 ldr r1, =0x0000397c adds r0, r1 ldr r1, [r0] ldr r0, =0x00000232 adds r1, r0 movs r0, 0x3 str r0, [sp] str r6, [sp, 0x4] adds r0, r4, 0 mov r2, r8 movs r3, 0x7 bl sub_8152058 b _08140B4E .pool _08140A90: subs r0, r4, 0x1 movs r1, 0x5 bl __divsi3 lsls r1, r0, 1 adds r1, r0 adds r1, 0xA lsls r1, 24 lsrs r7, r1, 24 ldr r5, =gUnknown_0203AB88 ldr r0, [r5] movs r4, 0xBE lsls r4, 1 adds r0, r4 movs r6, 0x10 str r6, [sp] movs r1, 0xD str r1, [sp, 0x4] movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8152008 ldr r0, [r5] adds r4, r0, r4 ldr r1, =0x0000397c adds r0, r1 ldr r1, [r0] movs r0, 0xA0 lsls r0, 2 adds r1, r0 str r6, [sp] movs r0, 0x3 str r0, [sp, 0x4] adds r0, r4, 0 movs r2, 0xE adds r3, r7, 0 bl sub_8152058 b _08140B4E .pool _08140AE8: adds r0, r4, 0 movs r1, 0x5 bl __umodsi3 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 adds r1, r0 adds r1, 0xE lsls r1, 24 lsrs r1, 24 mov r8, r1 subs r0, r4, 0x1 movs r1, 0x5 bl __divsi3 lsls r1, r0, 1 adds r1, r0 adds r1, 0x7 lsls r1, 24 lsrs r7, r1, 24 ldr r5, =gUnknown_0203AB88 ldr r0, [r5] movs r4, 0xBE lsls r4, 1 adds r0, r4 movs r1, 0x10 str r1, [sp] movs r1, 0xD str r1, [sp, 0x4] movs r1, 0 movs r2, 0xE movs r3, 0x7 bl sub_8152008 ldr r0, [r5] adds r4, r0, r4 ldr r1, =0x0000397c adds r0, r1 ldr r1, [r0] movs r0, 0x88 lsls r0, 2 adds r1, r0 movs r0, 0x3 str r0, [sp] str r0, [sp, 0x4] adds r0, r4, 0 mov r2, r8 adds r3, r7, 0 bl sub_8152058 _08140B4E: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81409B8 thumb_func_start sub_8140B64 sub_8140B64: @ 8140B64 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x10] bl sub_81436D0 ldrb r0, [r4, 0x10] bl sub_81409B8 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8140B64 thumb_func_start sub_8140B8C sub_8140B8C: @ 8140B8C push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_0203AB88 ldr r2, [r5] movs r6, 0 movs r1, 0x1 strh r1, [r2, 0x28] ldr r1, =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrb r0, [r4, 0x10] bl sub_81409B8 ldr r0, [r5] adds r0, 0x23 movs r1, 0x2 strb r1, [r0] ldr r0, [r5] adds r0, 0x21 strb r6, [r0] ldr r0, =sub_8141040 str r0, [r4] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8140B8C thumb_func_start sub_8140BD0 sub_8140BD0: @ 8140BD0 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gUnknown_0203AB88 ldr r0, [r1] ldr r2, [r0, 0x8] movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _08140C30 movs r3, 0xB ldr r5, =gUnknown_085B6154 adds r0, r5, 0 adds r0, 0xE4 ldr r0, [r0] ands r2, r0 ldr r0, =gTasks mov r12, r0 lsls r7, r6, 2 cmp r2, 0 beq _08140C6E adds r4, r1, 0 adds r5, 0x8 _08140BFE: lsls r0, r3, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r3, r0, 16 asrs r2, r0, 16 cmp r2, 0xD bgt _08140C6E ldr r1, [r4] lsls r0, r2, 2 adds r0, r2 lsls r0, 2 adds r0, r5 ldr r1, [r1, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08140BFE b _08140C6E .pool _08140C30: movs r3, 0x6 ldr r5, =gUnknown_085B6154 adds r0, r5, 0 adds r0, 0x80 ldr r0, [r0] ands r2, r0 ldr r0, =gTasks mov r12, r0 lsls r7, r6, 2 cmp r2, 0 beq _08140C6E adds r4, r1, 0 adds r5, 0x8 _08140C4A: lsls r0, r3, 16 movs r1, 0x80 lsls r1, 9 adds r0, r1 lsrs r3, r0, 16 asrs r2, r0, 16 cmp r2, 0x9 bgt _08140C6E ldr r1, [r4] lsls r0, r2, 2 adds r0, r2 lsls r0, 2 adds r0, r5 ldr r1, [r1, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08140C4A _08140C6E: adds r4, r7, r6 lsls r4, 3 add r4, r12 movs r5, 0 strh r3, [r4, 0x10] adds r0, r6, 0 bl sub_8141FF4 ldrb r0, [r4, 0x10] bl sub_81424FC ldrb r0, [r4, 0x10] bl sub_81436D0 ldrb r0, [r4, 0x10] bl sub_8142284 strh r5, [r4, 0xA] ldr r0, =sub_8140B8C str r0, [r4] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8140BD0 thumb_func_start sub_8140CA8 sub_8140CA8: @ 8140CA8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 lsls r1, 24 lsrs r5, r1, 24 movs r6, 0 movs r7, 0 ldr r1, =gUnknown_085B641E mov r0, sp movs r2, 0x4 bl memcpy ldrb r0, [r4] mov r8, r0 cmp r5, 0 blt _08140D1C cmp r5, 0x1 bgt _08140CF4 movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x5 bl __modsi3 lsls r0, 24 lsrs r6, r0, 24 movs r2, 0xF0 lsls r2, 20 adds r1, r0, r2 lsrs r7, r1, 24 cmp r0, 0 bne _08140D1C movs r6, 0x5 b _08140D1C .pool _08140CF4: cmp r5, 0x3 bgt _08140D1C movs r1, 0 ldrsh r0, [r4, r1] movs r1, 0x5 bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsls r1, 24 lsrs r6, r1, 24 movs r2, 0x80 lsls r2, 19 adds r0, r1, r2 lsrs r7, r0, 24 cmp r1, 0 bne _08140D1C movs r6, 0x1 _08140D1C: mov r1, sp adds r0, r1, r5 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r2, [r4] adds r0, r2 strh r0, [r4] lsls r1, r6, 24 asrs r3, r1, 24 lsls r0, 16 asrs r0, 16 lsls r2, r7, 24 cmp r0, r3 bge _08140D3E asrs r0, r2, 24 strh r0, [r4] _08140D3E: movs r0, 0 ldrsh r1, [r4, r0] asrs r0, r2, 24 cmp r1, r0 ble _08140D4A strh r3, [r4] _08140D4A: mov r1, r8 lsls r0, r1, 24 movs r2, 0 ldrsh r1, [r4, r2] asrs r0, 24 cmp r1, r0 bne _08140D5C movs r0, 0 b _08140D5E _08140D5C: movs r0, 0x1 _08140D5E: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8140CA8 thumb_func_start sub_8140D6C sub_8140D6C: @ 8140D6C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r9, r0 movs r5, 0 ldr r4, =gMain ldrh r1, [r4, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08140DA8 movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r0, r1 adds r0, 0x8 movs r1, 0 bl sub_8140CA8 lsls r0, 24 cmp r0, 0 bne _08140DA8 b _08140F3A _08140DA8: ldrh r1, [r4, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08140DCE movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r0, r1 adds r0, 0x8 movs r1, 0x1 bl sub_8140CA8 lsls r0, 24 cmp r0, 0 bne _08140DCE b _08140F3A _08140DCE: ldrh r1, [r4, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08140DF4 movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r0, r1 adds r0, 0x8 movs r1, 0x2 bl sub_8140CA8 lsls r0, 24 cmp r0, 0 bne _08140DF4 b _08140F3A _08140DF4: ldrh r1, [r4, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08140E1A movs r5, 0x1 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r0, r1 adds r0, 0x8 movs r1, 0x3 bl sub_8140CA8 lsls r0, 24 cmp r0, 0 bne _08140E1A b _08140F3A _08140E1A: cmp r5, 0 bne _08140E20 b _08140F3A _08140E20: ldr r0, =gTasks lsls r6, r7, 2 adds r4, r6, r7 lsls r4, 3 adds r4, r0 ldrb r0, [r4, 0x10] bl sub_81424FC adds r0, r7, 0 bl sub_8140B64 mov r1, r9 strh r1, [r4, 0xA] movs r0, 0x5 bl PlaySE ldr r5, =gUnknown_0203AB88 ldr r0, [r5] adds r0, 0xB8 ldr r1, =0x0000ffff bl sub_8151A9C ldr r5, [r5] movs r2, 0xB8 lsls r2, 1 adds r3, r5, r2 ldrb r2, [r3] movs r1, 0x7F adds r0, r1, 0 ands r0, r2 strb r0, [r3] movs r0, 0xB2 lsls r0, 1 adds r3, r5, r0 ldrb r2, [r3] adds r0, r1, 0 ands r0, r2 strb r0, [r3] movs r0, 0xAC lsls r0, 1 adds r2, r5, r0 ldrb r0, [r2] ands r1, r0 strb r1, [r2] ldrb r0, [r4, 0x10] bl sub_8142284 movs r4, 0 mov r9, r6 ldr r1, =gSprites mov r12, r1 movs r2, 0x8 add r2, r12 mov r10, r2 _08140E8C: ldr r0, =gUnknown_0203AB88 ldr r5, [r0] adds r0, r4, 0 adds r0, 0x29 adds r6, r5, 0 adds r6, 0x3C adds r0, r6, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r1, r12 adds r3, r0, r1 adds r2, r3, 0 adds r2, 0x40 add r0, r10 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ldr r2, =0x000003ff mov r8, r2 mov r0, r8 ands r1, r0 ldrh r2, [r3, 0x4] ldr r0, =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08140E8C ldr r0, =gTasks mov r2, r9 adds r1, r2, r7 lsls r1, 3 adds r1, r0 ldrh r3, [r1, 0x10] subs r0, r3, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x3 bhi _08140F3A ldr r2, =gUnknown_085B6154 movs r0, 0x10 ldrsh r1, [r1, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r1, [r5, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08140F3A subs r0, r3, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 adds r0, 0x29 adds r0, r6, r0 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r3, r0, r1 adds r2, r3, 0 adds r2, 0x40 adds r1, 0x8 adds r0, r1 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0, 0x4] ldrh r2, [r2] adds r1, r2 mov r2, r8 ands r1, r2 ldrh r2, [r3, 0x4] ldr r0, =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] _08140F3A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8140D6C thumb_func_start sub_8140F6C sub_8140F6C: @ 8140F6C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80EECA4 ldr r0, =gUnknown_0203AB88 ldr r1, [r0] movs r0, 0xFF strh r0, [r1, 0x28] ldrb r2, [r1, 0x19] cmp r2, 0x1 bne _08140F90 adds r0, r1, 0 adds r0, 0x23 strb r2, [r0] b _08140F96 .pool _08140F90: adds r1, 0x23 movs r0, 0 strb r0, [r1] _08140F96: ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x21 movs r1, 0 strb r1, [r0] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x20 strh r1, [r0, 0xA] ldr r1, =sub_81410FC str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8140F6C thumb_func_start sub_8140FC4 sub_8140FC4: @ 8140FC4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r4, =gUnknown_0203AB88 ldr r2, [r4] ldrb r1, [r2, 0x1A] lsls r1, 28 lsrs r1, 28 adds r2, 0x1B adds r2, r1 ldr r3, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r3 ldrh r0, [r5, 0x10] strb r0, [r2] ldr r1, [r4] ldrb r0, [r1, 0x1A] lsls r0, 28 lsrs r0, 28 adds r1, 0x1B adds r1, r0 ldrb r0, [r1] bl sub_8142758 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xC] ldr r1, [r4] ldrb r0, [r1, 0x1A] lsls r0, 28 lsrs r0, 28 adds r1, 0x1B adds r1, r0 ldrb r0, [r1] bl sub_81436D0 ldr r0, [r4] ldrb r1, [r0, 0x19] ldrh r0, [r5, 0x22] subs r0, r1 strh r0, [r5, 0x22] lsls r0, 16 cmp r0, 0 bge _08141024 movs r0, 0 strh r0, [r5, 0x22] _08141024: ldrh r0, [r5, 0x22] bl sub_8143514 ldr r0, =sub_8140F6C str r0, [r5] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8140FC4 thumb_func_start sub_8141040 sub_8141040: @ 8141040 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_8140D6C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x1E beq _08141076 cmp r0, 0x1E bgt _0814106C cmp r0, 0 beq _08141072 b _0814108A .pool _0814106C: cmp r0, 0x3B beq _08141084 b _0814108A _08141072: ldrb r0, [r4, 0x10] b _08141078 _08141076: movs r0, 0 _08141078: bl sub_81409B8 ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _0814109A _08141084: movs r0, 0 strh r0, [r4, 0xA] b _0814109A _0814108A: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0xA] adds r0, 0x1 strh r0, [r1, 0xA] _0814109A: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081410F2 ldr r0, =gUnknown_0203AB88 ldr r3, [r0] ldr r2, =gUnknown_085B6154 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r0, 0x10 ldrsh r1, [r4, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x8 adds r0, r2 ldr r1, [r3, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _081410E8 movs r0, 0x16 bl PlaySE b _081410F2 .pool _081410E8: movs r0, 0x5F bl m4aSongNumStart ldr r0, =sub_8140FC4 str r0, [r4] _081410F2: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8141040 thumb_func_start sub_81410FC sub_81410FC: @ 81410FC push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 ldrh r0, [r4, 0xA] subs r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 cmp r0, 0 ble _08141168 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2 ble _08141128 ldr r1, =gSpriteCoordOffsetX ldrh r0, [r1] adds r0, 0x2 strh r0, [r1] _08141128: ldr r0, =gUnknown_0203AB88 ldr r1, [r0] ldrh r0, [r1, 0x26] adds r0, 0x4 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x68 bne _08141180 ldr r2, =gSprites adds r0, r1, 0 adds r0, 0x55 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, =SpriteCallbackDummy str r1, [r0] b _08141180 .pool _08141168: movs r0, 0x1 movs r1, 0xFF bl sub_8142E70 movs r0, 0x1 movs r1, 0xFF bl sub_8143038 ldr r0, =sub_8141344 str r0, [r4] movs r0, 0 strh r0, [r4, 0xA] _08141180: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81410FC thumb_func_start sub_814118C sub_814118C: @ 814118C push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r1, 16 ldr r0, =gUnknown_0203AB88 ldr r3, [r0] ldrb r2, [r3, 0x2] adds r5, r0, 0 cmp r2, 0x2 bgt _081411AC cmp r2, 0x1 bge _081411B2 b _08141280 .pool _081411AC: cmp r2, 0x3 beq _08141214 b _08141280 _081411B2: ldr r0, =gLocalTime ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _081411E4 cmp r4, 0xB bls _081411CC movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08141296 _081411CC: ldr r0, =gUnknown_085B6348 ldrb r1, [r3, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _0814133A .pool _081411E4: movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _08141200 ldr r0, =gUnknown_085B6348 ldrb r1, [r3, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _0814133A .pool _08141200: ldr r0, =gUnknown_085B6348 ldrb r1, [r3, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] b _0814133A .pool _08141214: ldr r0, =gLocalTime ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x6 bhi _08141248 cmp r4, 0x5 bls _0814122E movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08141296 _0814122E: ldr r0, =gUnknown_085B6348 ldrb r1, [r3, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 1 b _0814133A .pool _08141248: movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08141268 cmp r4, 0x6 bls _08141268 ldr r0, =gUnknown_085B6348 ldrb r1, [r3, 0x4] lsls r1, 30 lsrs r1, 25 adds r1, r0 ldrb r0, [r1, 0x2] lsrs r0, 2 b _0814133A .pool _08141268: ldr r1, =gUnknown_085B6348 ldr r0, [r5] ldrb r0, [r0, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrb r0, [r0, 0x2] lsrs r0, 1 b _0814133A .pool _08141280: ldr r0, =gLocalTime ldrb r0, [r0, 0x2] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bhi _081412B8 movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081412A0 _08141296: movs r0, 0x1 b _0814133A .pool _081412A0: ldr r1, =gUnknown_085B6348 ldr r0, [r5] ldrb r0, [r0, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrb r0, [r0, 0x2] lsrs r0, 1 b _0814133A .pool _081412B8: movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081412F0 cmp r4, 0xC bls _081412DC ldr r1, =gUnknown_085B6348 ldr r0, [r5] ldrb r0, [r0, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrb r0, [r0, 0x2] lsrs r0, 1 b _0814133A .pool _081412DC: ldr r1, =gUnknown_085B6348 ldr r0, [r5] ldrb r0, [r0, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrb r0, [r0, 0x2] b _0814133A .pool _081412F0: movs r0, 0x80 lsls r0, 8 ands r0, r1 cmp r0, 0 beq _08141328 cmp r4, 0xC bls _08141314 ldr r1, =gUnknown_085B6348 ldr r0, [r5] ldrb r0, [r0, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrb r0, [r0, 0x2] b _0814133A .pool _08141314: ldr r1, =gUnknown_085B6348 ldr r0, [r5] ldrb r0, [r0, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrb r0, [r0, 0x1] b _0814133A .pool _08141328: ldr r1, =gUnknown_085B6348 ldr r0, [r5] ldrb r0, [r0, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrb r0, [r0, 0x1] lsls r0, 25 lsrs r0, 24 _0814133A: pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_814118C thumb_func_start sub_8141344 sub_8141344: @ 8141344 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r10, r0 movs r4, 0 ldr r1, =gUnknown_085B6422 mov r0, sp movs r2, 0x8 bl memcpy bl Random lsls r0, 16 lsrs r7, r0, 16 adds r0, r7, 0 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r6, r0, 16 ldr r3, =gUnknown_0203AB88 ldr r0, [r3] ldr r2, =gTasks mov r5, r10 lsls r1, r5, 2 add r1, r10 lsls r1, 3 adds r1, r2 ldrh r2, [r1, 0x14] adds r0, 0x7C strb r2, [r0] ldr r0, [r3] adds r2, r0, 0 adds r2, 0x7F strb r4, [r2] subs r2, 0x1 strb r4, [r2] adds r0, 0x7D strb r4, [r0] ldrh r0, [r1, 0x18] adds r1, r7, 0 bl sub_814118C adds r4, r0, 0 lsls r4, 24 lsrs r1, r4, 24 adds r0, r7, 0 bl __modsi3 lsrs r4, 25 subs r0, r4 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gLocalTime ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 movs r5, 0x1 cmp r0, 0xC bgt _081413C8 movs r5, 0 _081413C8: cmp r6, 0x4F bhi _081413E0 lsls r0, r5, 25 b _081413EA .pool _081413E0: lsls r1, r5, 24 asrs r1, 24 movs r0, 0x1 subs r0, r1 lsls r0, 25 _081413EA: lsrs r5, r0, 24 ldr r0, _08141530 @ =gUnknown_0203AB88 ldr r6, [r0] ldrb r0, [r6, 0x4] lsls r0, 30 lsrs r0, 25 ldr r1, _08141534 @ =gUnknown_085B6348 adds r0, r1 lsls r4, 24 asrs r4, 24 ldrh r0, [r0, 0x1A] adds r4, r0 adds r0, r6, 0 adds r0, 0x80 strh r4, [r0] lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _0814141C ldr r1, _08141538 @ =0x47800000 bl __addsf3 _0814141C: ldr r1, _0814153C @ =0x40A00000 bl __divsf3 bl __fixunssfsi lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 1 adds r0, r4 movs r2, 0x82 adds r2, r6 mov r8, r2 strh r0, [r2] adds r0, r6, 0 adds r0, 0x84 strh r4, [r0] adds r0, 0x2 strh r4, [r0] movs r0, 0x88 adds r0, r6 mov r9, r0 movs r0, 0x1 ands r0, r7 lsls r1, r5, 24 asrs r1, 24 adds r0, r1 lsls r0, 1 add r0, sp movs r1, 0 ldrsh r4, [r0, r1] adds r0, r4, 0 bl __floatsisf cmp r4, 0 bge _08141468 ldr r1, _08141538 @ =0x47800000 bl __addsf3 _08141468: mov r2, r9 str r0, [r2] adds r7, r6, 0 adds r7, 0x8C ldrb r0, [r6, 0x4] lsls r0, 30 lsrs r0, 25 ldr r5, _08141534 @ =gUnknown_085B6348 adds r0, r5 movs r1, 0x18 ldrsh r4, [r0, r1] adds r0, r4, 0 bl __floatsisf adds r5, r0, 0 cmp r4, 0 bge _08141492 ldr r1, _08141538 @ =0x47800000 bl __addsf3 adds r5, r0, 0 _08141492: str r5, [r7] adds r7, r6, 0 adds r7, 0x90 ldr r1, _08141540 @ =0x3F000000 adds r0, r5, 0 bl __mulsf3 adds r1, r5, 0 bl __subsf3 adds r5, r0, 0 mov r2, r8 movs r0, 0 ldrsh r4, [r2, r0] adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _081414C2 ldr r1, _08141538 @ =0x47800000 bl __addsf3 adds r2, r0, 0 _081414C2: adds r0, r5, 0 adds r1, r2, 0 bl __divsf3 str r0, [r7] adds r1, r6, 0 adds r1, 0x94 ldr r0, _08141544 @ =0x42880000 str r0, [r1] adds r1, 0x8 ldr r0, _08141548 @ =0x00000000 str r0, [r1] adds r5, r6, 0 adds r5, 0x98 mov r1, r8 movs r2, 0 ldrsh r4, [r1, r2] adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _081414F8 ldr r1, _08141538 @ =0x47800000 bl __addsf3 adds r2, r0, 0 _081414F8: ldr r0, _0814154C @ =0x41000000 adds r1, r2, 0 bl __divsf3 bl __negsf2 str r0, [r5] adds r1, r6, 0 adds r1, 0xA0 ldr r0, _08141550 @ =0x42100000 str r0, [r1] ldr r1, _08141554 @ =gTasks mov r5, r10 lsls r0, r5, 2 add r0, r10 lsls r0, 3 adds r0, r1 ldr r1, _08141558 @ =sub_814155C str r1, [r0] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08141530: .4byte gUnknown_0203AB88 _08141534: .4byte gUnknown_085B6348 _08141538: .4byte 0x47800000 _0814153C: .4byte 0x40A00000 _08141540: .4byte 0x3F000000 _08141544: .4byte 0x42880000 _08141548: .4byte 0x00000000 _0814154C: .4byte 0x41000000 _08141550: .4byte 0x42100000 _08141554: .4byte gTasks _08141558: .4byte sub_814155C thumb_func_end sub_8141344 thumb_func_start sub_814155C sub_814155C: @ 814155C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r4, =gUnknown_0203AB88 ldr r3, [r4] ldrb r1, [r3, 0x3] movs r2, 0x80 orrs r1, r2 strb r1, [r3, 0x3] ldr r3, [r4] adds r2, r3, 0 adds r2, 0x7C adds r1, r3, 0 adds r1, 0x3C ldrb r2, [r2] adds r1, r2 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, =gSprites adds r1, r2 str r1, [r3, 0x38] ldr r2, =sub_81446AC str r2, [r1, 0x1C] ldr r1, =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 ldrh r1, [r4, 0x14] adds r1, 0x1 strh r1, [r4, 0x14] ldrh r0, [r4, 0x18] adds r0, 0x1 strh r0, [r4, 0x18] movs r0, 0x6 subs r0, r1 lsls r0, 24 lsrs r0, 24 bl sub_814372C movs r0, 0x5C bl m4aSongNumStart ldr r0, =sub_81415D4 str r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_814155C thumb_func_start sub_81415D4 sub_81415D4: @ 81415D4 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r6, =gUnknown_0203AB88 ldr r3, [r6] adds r0, r3, 0 adds r0, 0x7D ldrb r0, [r0] cmp r0, 0 beq _081416C6 ldrb r1, [r3, 0x3] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08141614 movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081416C6 movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r3, 0x3] ldr r2, [r6] ldrb r1, [r2, 0x3] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x3] b _081416C6 .pool _08141614: ldr r2, =gTasks lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 adds r5, r0, r2 movs r2, 0xA ldrsh r0, [r5, r2] adds r7, r1, 0 cmp r0, 0 bne _08141660 adds r0, r3, 0 adds r0, 0x7E ldrb r1, [r0] adds r0, r4, 0 bl sub_81420D0 lsls r0, 24 lsrs r0, 24 ldr r2, [r6] ldrb r1, [r2, 0x1A] lsls r1, 28 lsrs r1, 28 adds r2, 0x1B adds r2, r1 ldrb r1, [r2] bl sub_81421E8 lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] cmp r0, 0x1 bne _08141660 ldr r0, [r6] adds r0, 0xB8 movs r1, 0x80 lsls r1, 5 bl sub_8151A48 _08141660: ldr r0, =gTasks adds r1, r7, r4 lsls r1, 3 adds r4, r1, r0 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0x3C bgt _08141690 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08141680 movs r0, 0x3C strh r0, [r4, 0xA] _08141680: ldrh r0, [r4, 0xA] adds r0, 0x1 strh r0, [r4, 0xA] b _081416C6 .pool _08141690: ldr r0, =gUnknown_0203AB88 ldr r1, [r0] ldrb r0, [r1, 0x1A] lsls r0, 28 lsrs r0, 28 adds r1, 0x1B adds r1, r0 ldrb r0, [r1] bl sub_81424FC ldrh r1, [r4, 0x20] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8142E70 ldrb r1, [r4, 0x14] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8143038 movs r0, 0x20 strh r0, [r4, 0xA] ldr r0, =sub_81416D4 str r0, [r4] _081416C6: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81415D4 thumb_func_start sub_81416D4 sub_81416D4: @ 81416D4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] subs r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 cmp r0, 0 ble _08141740 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2 ble _08141700 ldr r1, =gSpriteCoordOffsetX ldrh r0, [r1] subs r0, 0x2 strh r0, [r1] _08141700: ldr r0, =gUnknown_0203AB88 ldr r1, [r0] ldrh r0, [r1, 0x26] subs r0, 0x4 strh r0, [r1, 0x26] lsls r0, 16 asrs r0, 16 cmp r0, 0x68 bne _08141768 ldr r2, =gSprites adds r0, r1, 0 adds r0, 0x55 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, =sub_814390C str r1, [r0] b _08141768 .pool _08141740: ldrh r0, [r4, 0x20] lsls r0, 24 lsrs r0, 24 bl sub_8143150 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _08141756 movs r0, 0x79 b _08141758 _08141756: movs r0, 0x3D _08141758: strh r0, [r4, 0xA] ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_8141778 str r0, [r1] _08141768: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81416D4 thumb_func_start sub_8141778 sub_8141778: @ 8141778 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 ldrh r0, [r4, 0xA] subs r1, r0, 0x1 strh r1, [r4, 0xA] lsls r0, 16 asrs r0, 16 cmp r0, 0x1 ble _081417E8 movs r0, 0xA ldrsh r1, [r4, r0] adds r0, r1, 0 cmp r1, 0 bge _081417A2 adds r0, 0xF _081417A2: asrs r0, 4 lsls r0, 4 subs r0, r1, r0 lsls r0, 16 asrs r0, 16 cmp r0, 0 beq _081417CC cmp r0, 0x8 bne _081417F4 movs r0, 0 movs r1, 0xFF bl sub_8142E70 movs r0, 0 movs r1, 0xFF bl sub_8143038 b _081417F4 .pool _081417CC: ldrh r1, [r4, 0x20] lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8142E70 ldrb r1, [r4, 0x14] subs r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0 bl sub_8143038 b _081417F4 _081417E8: ldr r1, =sub_814189C adds r0, r2, 0 movs r2, 0x1E movs r3, 0 bl sub_8141F7C _081417F4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8141778 thumb_func_start sub_8141800 sub_8141800: @ 8141800 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 beq _08141864 cmp r0, 0 blt _08141864 cmp r0, 0x2 bgt _08141864 bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _08141888 movs r0, 0x1D bl GetGameStat ldrh r1, [r4, 0x1E] adds r1, 0x1 strh r1, [r4, 0x1E] lsls r1, 16 asrs r1, 16 cmp r0, r1 bcs _08141848 movs r0, 0x1E ldrsh r1, [r4, r0] movs r0, 0x1D bl sav12_xor_set _08141848: ldr r1, =sub_8141A18 ldr r2, =0x0000ffff adds r0, r5, 0 movs r3, 0x3 bl sub_8141F7C b _08141888 .pool _08141864: bl IsSEPlaying lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 bne _08141888 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r2, [r0, 0x1E] ldr r1, =sub_8141AC0 ldr r2, =0x0000ffff adds r0, r5, 0 movs r3, 0x3 bl sub_8141F7C _08141888: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8141800 thumb_func_start sub_814189C sub_814189C: @ 814189C push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x12 ldrsh r1, [r0, r2] cmp r1, 0 beq _08141928 cmp r1, 0 blt _08141928 cmp r1, 0x2 bgt _08141928 movs r1, 0xC ldrsh r0, [r0, r1] cmp r0, 0xC bne _081418EC ldr r0, =0x00000185 bl PlayFanfare ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] ldr r2, =gUnknown_082A5BD7 b _08141902 .pool _081418EC: movs r0, 0xC3 lsls r0, 1 bl PlayFanfare ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] ldr r2, =gUnknown_082A5BCB _08141902: movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram b _08141958 .pool _08141928: movs r0, 0x20 bl m4aSongNumStart ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] ldr r2, =gUnknown_082A5BE0 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram _08141958: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xA] ldr r1, =sub_8141800 str r1, [r0] add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_814189C thumb_func_start sub_8141984 sub_8141984: @ 8141984 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r0, 0x16 ldrsh r5, [r4, r0] cmp r5, 0 beq _081419AC cmp r5, 0x3 beq _081419DC ldrh r0, [r4, 0x16] adds r0, 0x1 b _081419E4 .pool _081419AC: ldrh r0, [r4, 0x22] adds r0, 0x1 strh r0, [r4, 0x22] movs r0, 0x15 bl m4aSongNumStart ldrh r0, [r4, 0x22] bl sub_8143514 movs r2, 0x22 ldrsh r1, [r4, r2] ldr r0, =0x0000270e cmp r1, r0 ble _081419D0 strh r5, [r4, 0xA] b _081419E6 .pool _081419D0: ldrh r0, [r4, 0xA] subs r0, 0x1 strh r0, [r4, 0xA] ldrh r0, [r4, 0x16] adds r0, 0x1 b _081419E4 _081419DC: movs r0, 0x15 bl m4aSongNumStop movs r0, 0 _081419E4: strh r0, [r4, 0x16] _081419E6: ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r2, 0xA ldrsh r0, [r1, r2] cmp r0, 0 bne _08141A04 ldr r1, =sub_8141AC0 ldr r2, =0x0000ffff adds r0, r6, 0 movs r3, 0x3 bl sub_8141F7C _08141A04: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8141984 thumb_func_start sub_8141A18 sub_8141A18: @ 8141A18 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0xC lsls r0, 24 lsrs r0, 24 ldr r3, =gStringVar1 ldr r1, =gUnknown_0203AB88 mov r9, r1 ldr r1, [r1] ldrb r2, [r1, 0x19] ldr r1, =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r1, 0xC ldrsh r0, [r4, r1] adds r1, r2, 0 muls r1, r0 adds r0, r3, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r2, =gStringVar4 mov r8, r2 ldr r1, =gUnknown_082A5BEF mov r0, r8 bl StringExpandPlaceholders ldr r5, =gUnknown_0203AB8C ldrb r0, [r5] movs r1, 0 bl sub_81973FC ldrb r0, [r5] movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r6, 0 str r6, [sp, 0x8] movs r1, 0x1 mov r2, r8 movs r3, 0 bl PrintTextOnWindow ldrb r0, [r5] movs r1, 0x3 bl CopyWindowToVram mov r1, r9 ldr r0, [r1] ldrb r1, [r0, 0x19] movs r2, 0xC ldrsh r0, [r4, r2] muls r0, r1 strh r0, [r4, 0xA] strh r6, [r4, 0x16] ldr r0, =sub_8141984 str r0, [r4] add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8141A18 thumb_func_start sub_8141AC0 sub_8141AC0: @ 8141AC0 push {r4-r6,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, =gUnknown_0203AB88 ldr r0, [r5] adds r0, 0xB8 ldr r1, =0x0000ffff bl sub_8151A9C ldr r6, [r5] movs r0, 0xB8 lsls r0, 1 adds r3, r6, r0 ldrb r2, [r3] movs r1, 0x7F adds r0, r1, 0 ands r0, r2 strb r0, [r3] movs r0, 0xB2 lsls r0, 1 adds r3, r6, r0 ldrb r2, [r3] adds r0, r1, 0 ands r0, r2 strb r0, [r3] movs r0, 0xAC lsls r0, 1 adds r2, r6, r0 ldrb r0, [r2] ands r1, r0 strb r1, [r2] ldr r6, =gSprites ldr r2, [r5] ldr r5, =gUnknown_085B6154 ldr r0, =gTasks lsls r3, r4, 2 adds r3, r4 lsls r3, 3 adds r3, r0 movs r0, 0x20 ldrsh r1, [r3, r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0] adds r2, r0 adds r2, 0x43 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, =sub_8141B58 str r0, [r3] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8141AC0 thumb_func_start sub_8141B58 sub_8141B58: @ 8141B58 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r2, 0 strh r5, [r0, 0x10] ldr r4, =gUnknown_0203AB88 ldr r1, [r4] ldrb r0, [r1, 0x1A] lsls r0, 28 lsrs r0, 28 adds r1, 0x1B adds r1, r0 strb r2, [r1] movs r0, 0 bl sub_81424FC ldr r3, =gSprites ldr r0, [r4] adds r0, 0x6C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] adds r7, r3, 0 movs r0, 0x8 adds r0, r7 mov r12, r0 ldr r1, =0xfffffc00 mov r8, r1 _08141BB0: ldr r0, =gUnknown_0203AB88 ldr r4, [r0] adds r0, r4, r5 adds r0, 0x65 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r7 adds r2, r3, 0 adds r2, 0x40 add r0, r12 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ldr r2, =0x000003ff adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08141BB0 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r2, r1, r0 movs r1, 0x22 ldrsh r0, [r2, r1] ldrb r4, [r4, 0x19] cmp r0, r4 blt _08141CBC movs r1, 0x14 ldrsh r0, [r2, r1] cmp r0, 0x6 bne _08141C58 ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] ldr r2, =gUnknown_082A5C21 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram ldr r1, =dp01t_12_3_battle_menu b _08141C8E .pool _08141C58: movs r0, 0x22 ldrsh r1, [r2, r0] ldr r0, =0x0000270f cmp r1, r0 bne _08141CB0 ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] ldr r2, =gUnknown_082A5C61 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram ldr r1, =sub_8140914 _08141C8E: ldr r2, =0x0000ffff adds r0, r6, 0 movs r3, 0x3 bl sub_8141F7C b _08141CF2 .pool _08141CB0: ldr r0, =sub_8140914 str r0, [r2] b _08141CF2 .pool _08141CBC: ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] ldr r2, =gUnknown_082A5C04 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram ldr r1, =sub_8140994 adds r0, r6, 0 movs r2, 0x3C movs r3, 0x3 bl sub_8141F7C _08141CF2: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8141B58 thumb_func_start dp01t_12_3_battle_menu dp01t_12_3_battle_menu: @ 8141D0C push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r4, [r0, 0x14] adds r0, r5, 0 bl sub_8141FF4 bl sub_8142070 bl sub_8143A40 movs r0, 0 bl sub_81424FC movs r0, 0x6 bl sub_814372C ldr r7, =gSprites ldr r3, =gUnknown_0203AB88 movs r6, 0x5 negs r6, r6 _08141D44: ldr r0, [r3] adds r0, r4 adds r0, 0x43 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xB bls _08141D44 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r2, r0, r1 movs r0, 0x22 ldrsh r1, [r2, r0] ldr r0, =0x0000270f cmp r1, r0 bne _08141DD4 ldr r4, =gUnknown_0203AB8C ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] ldr r2, =gUnknown_082A5C61 movs r1, 0x1 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram ldr r1, =sub_8140914 ldr r2, =0x0000ffff adds r0, r5, 0 movs r3, 0x3 bl sub_8141F7C b _08141DD8 .pool _08141DD4: ldr r0, =sub_8140914 str r0, [r2] _08141DD8: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end dp01t_12_3_battle_menu thumb_func_start sub_8141DE4 sub_8141DE4: @ 8141DE4 push {r4,r5,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gUnknown_0203AB88 ldr r0, [r4] adds r0, 0xB8 ldr r1, =0x0000ffff bl sub_8151A9C ldr r0, [r4] adds r0, 0xB8 bl sub_8151678 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x22] bl SetCoins bl GetCoins ldr r1, [r4] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x19] cmp r0, r1 bcs _08141E38 ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 b _08141E3C .pool _08141E38: ldr r1, =gSpecialVar_0x8004 movs r0, 0 _08141E3C: strh r0, [r1] bl GetCoins lsls r0, 16 lsrs r0, 16 bl sub_80EDD78 movs r0, 0 str r0, [sp] movs r0, 0xFF movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginHardwarePaletteFade ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_8141E7C str r1, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8141DE4 thumb_func_start sub_8141E7C sub_8141E7C: @ 8141E7C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl UpdatePaletteFade lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _08141EDE movs r0, 0 bl SetVBlankCallback ldr r1, =gSpriteCoordOffsetX ldr r0, =gSpriteCoordOffsetY strh r4, [r0] strh r4, [r1] bl ResetVramOamAndBgCntRegs bl ResetAllBgsCoordinates movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg bl FreeAllSpritePalettes bl ResetPaletteFade bl ResetSpriteData bl sub_8140418 ldr r1, =gFieldCallback ldr r0, =sub_80AF168 str r0, [r1] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 adds r0, r5, 0 bl DestroyTask _08141EDE: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8141E7C thumb_func_start sub_8141EF8 sub_8141EF8: @ 8141EF8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gUnknown_0203AB88 ldr r3, [r1] adds r0, r3, 0 adds r0, 0xA8 ldrh r0, [r0] adds r5, r1, 0 cmp r0, 0 beq _08141F1E ldr r0, =gMain adds r2, r3, 0 adds r2, 0xAA ldrh r1, [r0, 0x2E] ldrh r0, [r2] ands r0, r1 cmp r0, 0 beq _08141F52 _08141F1E: ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 adds r1, r3, 0 adds r1, 0xAC ldr r1, [r1] str r1, [r0] adds r0, r3, 0 adds r0, 0xAA ldrh r0, [r0] cmp r0, 0 beq _08141F40 movs r0, 0x5 bl PlaySE _08141F40: ldr r2, [r5] adds r0, r2, 0 adds r0, 0xAC movs r1, 0 str r1, [r0] subs r0, 0x2 strh r1, [r0] subs r0, 0x2 strh r1, [r0] _08141F52: ldr r0, [r5] adds r1, r0, 0 adds r1, 0xA8 ldrh r2, [r1] ldr r0, =0x0000ffff cmp r2, r0 beq _08141F64 subs r0, r2, 0x1 strh r0, [r1] _08141F64: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8141EF8 thumb_func_start sub_8141F7C sub_8141F7C: @ 8141F7C push {r4-r7,lr} adds r5, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 16 lsrs r7, r3, 16 ldr r2, =gUnknown_0203AB88 ldr r0, [r2] mov r12, r0 mov r3, r12 adds r3, 0xB4 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r0, [r0] str r0, [r3] adds r3, r1, 0 cmp r5, 0 bne _08141FAC adds r5, r0, 0 _08141FAC: mov r0, r12 adds r0, 0xAC str r5, [r0] subs r0, 0x4 strh r4, [r0] ldr r0, =0x0000ffff cmp r4, r0 bne _08141FD8 cmp r7, 0 bne _08141FD8 mov r1, r12 adds r1, 0xAA ldrh r0, [r1] orrs r4, r0 strh r4, [r1] b _08141FDE .pool _08141FD8: ldr r0, [r2] adds r0, 0xAA strh r7, [r0] _08141FDE: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r3 ldr r1, =sub_8141EF8 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8141F7C thumb_func_start sub_8141FF4 sub_8141FF4: @ 8141FF4 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 ldr r3, =gUnknown_0203AB88 ldr r0, [r3] strb r4, [r0] ldr r2, [r3] ldrb r1, [r2, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x3] ldr r2, [r3] ldrb r1, [r2, 0x3] movs r0, 0x21 negs r0, r0 ands r0, r1 strb r0, [r2, 0x3] ldr r2, [r3] ldrb r1, [r2, 0x3] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2, 0x3] ldr r2, [r3] ldrb r1, [r2, 0x3] movs r0, 0x20 negs r0, r0 ands r0, r1 strb r0, [r2, 0x3] ldr r6, =gTasks adds r2, r3, 0 movs r1, 0 _08142036: ldr r0, [r2] adds r0, 0x1B adds r0, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _08142036 ldr r2, [r3] ldrb r1, [r2, 0x1A] movs r0, 0x10 negs r0, r0 ands r0, r1 strb r0, [r2, 0x1A] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 movs r1, 0 strh r1, [r0, 0xA] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8141FF4 thumb_func_start sub_8142070 sub_8142070: @ 8142070 push {lr} ldr r2, =gUnknown_0203AB88 ldr r1, [r2] movs r0, 0 str r0, [r1, 0x8] movs r1, 0 movs r3, 0 _0814207E: ldr r0, [r2] adds r0, 0xC adds r0, r1 strb r3, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x5 bls _0814207E movs r1, 0 ldr r3, =gUnknown_0203AB88 movs r2, 0 _08142096: ldr r0, [r3] adds r0, 0x12 adds r0, r1 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _08142096 movs r1, 0 ldr r3, =gUnknown_0203AB88 movs r2, 0 _081420AE: ldr r0, [r3] adds r0, 0x16 adds r0, r1 strb r2, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x2 bls _081420AE movs r0, 0x1 movs r1, 0xFF bl sub_8143038 pop {r0} bx r0 .pool thumb_func_end sub_8142070 thumb_func_start sub_81420D0 sub_81420D0: @ 81420D0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 mov r1, sp ldr r0, =gUnknown_085B642C ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldr r0, [r0] str r0, [r1] add r2, sp, 0x10 adds r1, r2, 0 ldr r0, =gUnknown_085B643C ldm r0!, {r3,r6,r7} stm r1!, {r3,r6,r7} mov r8, r2 cmp r5, 0xB bls _0814210C movs r0, 0 b _081421C8 .pool _0814210C: ldr r6, =gUnknown_0203AB88 ldr r3, [r6] ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r7, 0x14 ldrsh r1, [r0, r7] adds r3, r1 ldr r4, =gUnknown_085B62E4 lsls r5, 3 adds r2, r5, r4 ldrb r1, [r2, 0x2] strb r1, [r3, 0xB] ldrb r1, [r2, 0x2] strh r1, [r0, 0x20] ldr r2, [r6] adds r0, r4, 0x4 adds r0, r5, r0 ldr r1, [r2, 0x8] ldr r0, [r0] orrs r1, r0 str r1, [r2, 0x8] movs r3, 0 mov r9, r4 mov r12, r5 adds r5, r0, 0 _08142144: lsls r0, r3, 2 mov r1, sp adds r4, r1, r0 ldr r0, [r4] ands r0, r5 cmp r0, 0 beq _0814215E ldr r1, [r6] adds r1, 0x12 adds r1, r3 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0814215E: ldr r2, [r6] adds r0, r2, 0 adds r0, 0x12 adds r0, r3 ldrb r0, [r0] cmp r0, 0x2 bls _08142174 ldr r0, [r2, 0x8] ldr r1, [r4] orrs r0, r1 str r0, [r2, 0x8] _08142174: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _08142144 movs r6, 0 ldr r0, =gUnknown_085B62E4+0x4 add r0, r12 ldr r7, [r0] ldr r4, =gUnknown_0203AB88 mov r5, r8 _0814218A: lsls r0, r6, 2 adds r2, r5, r0 ldr r0, [r2] ands r0, r7 cmp r0, 0 beq _081421A2 ldr r1, [r4] adds r1, 0x16 adds r1, r6 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081421A2: ldr r3, [r4] adds r0, r3, 0 adds r0, 0x16 adds r0, r6 ldrb r0, [r0] cmp r0, 0x3 bls _081421B8 ldr r0, [r3, 0x8] ldr r1, [r2] orrs r0, r1 str r0, [r3, 0x8] _081421B8: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _0814218A mov r0, r12 add r0, r9 ldrb r0, [r0, 0x2] _081421C8: add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81420D0 thumb_func_start sub_81421E8 sub_81421E8: @ 81421E8 push {lr} lsls r0, 24 lsls r1, 24 lsrs r2, r1, 24 lsrs r3, r0, 24 movs r1, 0xFF lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x12 bhi _0814227C cmp r2, 0xF bhi _08142278 lsls r0, r2, 2 ldr r1, =_08142210 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08142210: .4byte _08142250 .4byte _08142254 .4byte _08142254 .4byte _08142254 .4byte _08142254 .4byte _08142268 .4byte _08142278 .4byte _08142278 .4byte _08142278 .4byte _08142278 .4byte _08142268 .4byte _08142278 .4byte _08142278 .4byte _08142278 .4byte _08142278 .4byte _08142268 _08142250: movs r0, 0x3 b _0814227E _08142254: adds r0, r2, 0x5 cmp r3, r0 beq _08142274 adds r0, 0x5 cmp r3, r0 beq _08142274 adds r0, 0x5 cmp r3, r0 bne _0814227C b _08142274 _08142268: adds r0, r2, 0x1 cmp r3, r0 blt _0814227C adds r0, r2, 0x4 cmp r3, r0 bgt _0814227C _08142274: movs r0, 0x1 b _0814227E _08142278: cmp r3, r2 beq _08142274 _0814227C: movs r0, 0 _0814227E: pop {r1} bx r1 thumb_func_end sub_81421E8 thumb_func_start sub_8142284 sub_8142284: @ 8142284 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 str r0, [sp, 0x18] cmp r7, 0xA beq _081422AA cmp r7, 0xA bgt _081422A6 cmp r7, 0x5 beq _081422AA b _0814230C _081422A6: cmp r7, 0xF bne _0814230C _081422AA: adds r0, r7, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r2, r7, 0x5 ldr r1, =gUnknown_0203AB88 mov r12, r1 cmp r4, r2 bge _081422E8 ldr r0, [r1] ldr r3, =gUnknown_085B6154 ldr r5, [r0, 0x8] adds r6, r3, 0 adds r6, 0x8 _081422C4: lsls r0, r4, 2 adds r0, r4 lsls r1, r0, 2 adds r0, r1, r6 ldr r0, [r0] ands r0, r5 cmp r0, 0 bne _081422DE adds r0, r1, r3 ldrh r0, [r0, 0x10] ldr r1, [sp, 0x18] orrs r1, r0 str r1, [sp, 0x18] _081422DE: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r2 blt _081422C4 _081422E8: mov r2, r12 ldr r0, [r2] adds r0, 0xB8 ldr r1, =0x0000dfff ldr r3, [sp, 0x18] ands r3, r1 str r3, [sp, 0x18] adds r1, r3, 0 bl sub_8151A48 b _081424E2 .pool _0814230C: mov r0, sp ldr r1, =gUnknown_085B63F0 ldm r1!, {r2,r4,r5} stm r0!, {r2,r4,r5} ldm r1!, {r3-r5} stm r0!, {r3-r5} subs r0, r7, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0x1 mov r9, r1 cmp r0, 0x3 bhi _0814232A movs r2, 0x3 mov r9, r2 _0814232A: adds r0, r7, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 8 ldr r3, =0xffff0000 adds r0, r3 lsrs r0, 16 mov r8, r0 adds r0, r7, 0 movs r1, 0x5 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _08142390 cmp r0, 0x2 bgt _08142368 cmp r0, 0x1 beq _0814237C ldr r4, =gUnknown_0203AB88 mov r12, r4 b _081423D4 .pool _08142368: cmp r0, 0x3 beq _081423A4 cmp r0, 0x4 beq _081423B8 ldr r5, =gUnknown_0203AB88 mov r12, r5 b _081423D4 .pool _0814237C: ldr r3, =gSprites ldr r2, =gUnknown_0203AB88 ldr r0, [r2] adds r0, 0x43 b _081423C0 .pool _08142390: ldr r3, =gSprites ldr r2, =gUnknown_0203AB88 ldr r0, [r2] adds r0, 0x44 b _081423C0 .pool _081423A4: ldr r3, =gSprites ldr r2, =gUnknown_0203AB88 ldr r0, [r2] adds r0, 0x45 b _081423C0 .pool _081423B8: ldr r3, =gSprites ldr r2, =gUnknown_0203AB88 ldr r0, [r2] adds r0, 0x46 _081423C0: ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r0, [r0, 0x5] lsrs r0, 4 lsls r0, 4 mov r8, r0 mov r12, r2 _081423D4: mov r0, r9 cmp r0, 0x1 bne _08142430 mov r1, r12 ldr r4, [r1] ldr r1, =gUnknown_085B6154 lsls r2, r7, 2 adds r0, r2, r7 lsls r0, 2 adds r1, 0x8 adds r0, r1 ldr r1, [r4, 0x8] ldr r0, [r0] ands r1, r0 str r2, [sp, 0x1C] cmp r1, 0 bne _081424E2 adds r0, r7, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x1 lsls r1, 3 mov r3, sp adds r2, r3, r1 ldrh r1, [r2, 0x2] add r1, r8 strh r1, [r2, 0x2] adds r1, r4, 0 adds r1, 0xB8 lsls r0, 3 subs r0, 0x8 adds r2, r3, r0 adds r0, r1, 0 movs r1, 0xD bl sub_815168C b _081424C4 .pool _08142430: movs r4, 0 lsls r5, r7, 2 str r5, [sp, 0x1C] ldr r0, =gUnknown_085B6154 mov r10, r0 _0814243A: lsls r0, r4, 2 adds r0, r4 adds r0, r7, r0 adds r0, 0x5 lsls r0, 24 lsrs r3, r0, 24 mov r1, r12 ldr r5, [r1] lsls r0, r3, 2 adds r0, r3 lsls r6, r0, 2 mov r0, r10 adds r0, 0x8 adds r0, r6, r0 ldr r1, [r5, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _081424B0 adds r0, r3, 0 movs r1, 0x5 bl __udivsi3 lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x1 lsls r1, 3 mov r3, sp adds r2, r3, r1 ldrh r1, [r2, 0x2] add r1, r8 strh r1, [r2, 0x2] adds r3, r5, 0 adds r3, 0xB8 adds r1, r4, 0 adds r1, 0xD lsls r1, 24 lsrs r1, 24 lsls r0, 3 subs r0, 0x8 mov r5, sp adds r2, r5, r0 adds r0, r3, 0 bl sub_815168C mov r0, r9 cmp r0, 0x3 bne _081424A2 mov r1, r10 adds r0, r6, r1 ldrh r0, [r0, 0x10] str r0, [sp, 0x18] _081424A2: mov r0, r9 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r2, =gUnknown_0203AB88 mov r12, r2 _081424B0: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0814243A mov r3, r9 cmp r3, 0x2 beq _081424C4 movs r4, 0 str r4, [sp, 0x18] _081424C4: ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0xB8 ldr r2, =gUnknown_085B6154 ldr r5, [sp, 0x1C] adds r1, r5, r7 lsls r1, 2 adds r1, r2 ldrh r1, [r1, 0x10] ldr r2, [sp, 0x18] orrs r2, r1 str r2, [sp, 0x18] adds r1, r2, 0 bl sub_8151A48 _081424E2: add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8142284 thumb_func_start sub_81424FC sub_81424FC: @ 81424FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gUnknown_0203AB88 ldr r1, [r4] movs r0, 0x1 strh r0, [r1, 0x2A] movs r0, 0 movs r1, 0 bl sub_8142E70 ldr r1, [r4] ldr r2, =0x0000117c adds r0, r1, r2 ldr r2, =0x0000397c adds r1, r2 ldr r1, [r1] movs r2, 0x10 str r2, [sp] movs r2, 0xD str r2, [sp, 0x4] movs r2, 0xE movs r3, 0x7 bl sub_8152058 cmp r5, 0xF bhi _081425FC lsls r0, r5, 2 ldr r1, =_08142558 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08142558: .4byte _08142738 .4byte _08142598 .4byte _08142598 .4byte _08142598 .4byte _08142598 .4byte _081425CC .4byte _081425FC .4byte _081425FC .4byte _081425FC .4byte _081425FC .4byte _081425CC .4byte _081425FC .4byte _081425FC .4byte _081425FC .4byte _081425FC .4byte _081425CC _08142598: movs r0, 0x4 str r0, [sp, 0x18] add r1, sp, 0x8 movs r0, 0 strb r0, [r1] adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0x3 bhi _08142604 add r4, sp, 0x10 adds r3, r1, 0 _081425AE: ldrb r2, [r3] adds r2, r4 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 adds r0, r5, r0 strb r0, [r2] ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] ldrb r0, [r3] ldr r1, [sp, 0x18] cmp r0, r1 bcc _081425AE b _08142604 _081425CC: movs r2, 0x5 str r2, [sp, 0x18] add r1, sp, 0x8 movs r0, 0 strb r0, [r1] adds r0, r1, 0 ldrb r0, [r0] cmp r0, 0x4 bhi _08142604 add r3, sp, 0x10 adds r2, r1, 0 _081425E2: ldrb r1, [r2] adds r1, r3 ldrb r0, [r2] adds r0, r5, r0 strb r0, [r1] ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldrb r0, [r2] ldr r1, [sp, 0x18] cmp r0, r1 bcc _081425E2 b _08142604 _081425FC: movs r2, 0x1 str r2, [sp, 0x18] add r0, sp, 0x10 strb r5, [r0] _08142604: add r1, sp, 0x8 movs r0, 0 strb r0, [r1] adds r0, r1, 0 ldrb r0, [r0] ldr r1, [sp, 0x18] cmp r0, r1 bcc _08142616 b _08142738 _08142616: mov r2, sp adds r2, 0xE str r2, [sp, 0x1C] add r0, sp, 0x10 mov r10, r0 add r1, sp, 0x8 mov r9, r1 subs r2, 0x4 str r2, [sp, 0x20] _08142628: mov r1, r9 ldrb r0, [r1] add r0, r10 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r2, =gUnknown_085B6154 adds r0, r2 ldrb r0, [r0, 0x6] ldr r1, [sp, 0x1C] strb r0, [r1] mov r2, r9 ldrb r0, [r2] add r0, r10 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_085B6154 adds r0, r1 ldrb r0, [r0, 0x3] ldr r2, [sp, 0x20] strh r0, [r2] mov r7, sp adds r7, 0x9 movs r0, 0 strb r0, [r7] ldrb r0, [r7] cmp r0, 0x2 bhi _08142726 add r6, sp, 0xC mov r8, r2 ldr r0, [sp, 0x1C] mov r12, r0 ldr r1, =gUnknown_0203AB88 str r1, [sp, 0x28] _08142672: mov r2, r9 ldrb r0, [r2] add r0, r10 ldrb r0, [r0] lsls r1, r0, 2 adds r1, r0 lsls r1, 2 ldr r0, =gUnknown_085B6154 adds r1, r0 str r7, [sp, 0x24] ldrb r0, [r7] ldrb r1, [r1, 0x4] adds r0, r1 lsls r0, 5 strh r0, [r6] ldr r1, [sp, 0x28] ldr r4, [r1] mov r2, r8 ldrh r0, [r2] ldrh r2, [r6] adds r2, r0 lsls r2, 1 ldr r0, =0x0000117c adds r5, r4, r0 adds r2, r5, r2 mov r1, r12 ldrb r0, [r1] ldrb r1, [r7] adds r1, r0 ldr r0, =0x0000397c adds r4, r0 ldr r3, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 adds r0, r3 movs r1, 0xD0 lsls r1, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] mov r2, r8 ldrh r0, [r2] ldrh r2, [r6] adds r2, r0 adds r2, 0x1 lsls r2, 1 adds r2, r5, r2 mov r1, r12 ldrb r0, [r1] ldrb r1, [r7] adds r1, r0 ldr r3, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 adds r0, r3 movs r1, 0xD1 lsls r1, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2] mov r2, r8 ldrh r1, [r2] ldrh r0, [r6] adds r0, r1 adds r0, 0x2 lsls r0, 1 adds r5, r0 mov r1, r12 ldrb r0, [r1] ldrb r1, [r7] adds r1, r0 ldr r2, [r4] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 adds r0, r2 movs r2, 0xD2 lsls r2, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r5] ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] ldr r1, [sp, 0x24] ldrb r0, [r1] cmp r0, 0x2 bls _08142672 _08142726: mov r2, r9 ldrb r0, [r2] adds r0, 0x1 strb r0, [r2] ldrb r0, [r2] ldr r1, [sp, 0x18] cmp r0, r1 bcs _08142738 b _08142628 _08142738: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81424FC thumb_func_start sub_8142758 sub_8142758: @ 8142758 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gUnknown_085B6448 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x13 bls _08142770 movs r4, 0 _08142770: ldr r3, =gUnknown_085B6154 lsls r0, r4, 2 adds r0, r4 lsls r2, r0, 2 adds r0, r2, r3 ldrb r0, [r0, 0x1] lsls r0, 28 lsrs r0, 28 cmp r0, 0x4 beq _081427C4 cmp r0, 0x4 bgt _08142798 cmp r0, 0x3 beq _0814279E b _08142808 .pool _08142798: cmp r0, 0xC beq _081427E8 b _08142808 _0814279E: adds r0, r4, 0 movs r1, 0x5 bl __udivsi3 subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x16 adds r1, r0, r4 ldrb r0, [r1] cmp r0, 0x3 bhi _08142808 ldrb r0, [r1] adds r0, 0x1 b _081427DC .pool _081427C4: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x12 adds r1, r0, r4 ldrb r0, [r1] cmp r0, 0x2 bhi _08142808 ldrb r0, [r1] adds r0, 0x2 _081427DC: add r0, sp ldrb r0, [r0] b _0814280A .pool _081427E8: ldr r0, =gUnknown_0203AB88 ldr r1, [r0] adds r0, r3, 0 adds r0, 0x8 adds r0, r2, r0 ldr r1, [r1, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _08142808 mov r0, sp ldrb r0, [r0, 0x4] b _0814280A .pool _08142808: movs r0, 0 _0814280A: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8142758 thumb_func_start sub_8142814 sub_8142814: @ 8142814 push {r4-r6,lr} ldr r4, =gUnknown_0203AB88 ldr r0, [r4] ldrh r1, [r0, 0x2C] movs r0, 0x20 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0x2E] movs r0, 0x22 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0x30] movs r0, 0x24 bl SetGpuReg ldr r0, [r4] ldrh r1, [r0, 0x32] movs r0, 0x26 bl SetGpuReg ldr r3, [r4] movs r0, 0x2E ldrsh r1, [r3, r0] ldr r0, =gSpriteCoordOffsetY movs r4, 0 ldrsh r2, [r0, r4] adds r2, 0x50 adds r0, r1, 0 muls r0, r2 movs r4, 0xE8 lsls r4, 7 subs r4, r0 movs r6, 0x2C ldrsh r5, [r3, r6] ldr r0, =gSpriteCoordOffsetX movs r6, 0 ldrsh r1, [r0, r6] adds r1, 0x74 adds r0, r5, 0 muls r0, r1 subs r4, r0 movs r5, 0x32 ldrsh r0, [r3, r5] muls r0, r2 movs r5, 0xA8 lsls r5, 7 subs r5, r0 movs r6, 0x30 ldrsh r0, [r3, r6] muls r0, r1 subs r5, r0 lsls r1, r4, 16 lsrs r1, 16 movs r0, 0x28 bl SetGpuReg ldr r6, =0x0fff0000 ands r4, r6 lsrs r4, 16 movs r0, 0x2A adds r1, r4, 0 bl SetGpuReg lsls r1, r5, 16 lsrs r1, 16 movs r0, 0x2C bl SetGpuReg ands r5, r6 lsrs r5, 16 movs r0, 0x2E adds r1, r5, 0 bl SetGpuReg pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8142814 thumb_func_start sub_81428C4 sub_81428C4: @ 81428C4 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_8197930 ldr r1, =gUnknown_085B6408 adds r0, r4, 0 bl sub_8121F68 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81428C4 thumb_func_start sub_81428E4 sub_81428E4: @ 81428E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08142908 movs r0, 0 bl SetVBlankCallback ldr r0, =sub_81405CC bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08142908: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81428E4 thumb_func_start sub_8142918 sub_8142918: @ 8142918 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0x1 bl sub_819746C bl HideCoinsWindow bl FreeAllWindowBuffers movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] lsls r1, 26 lsrs r1, 26 ldrb r3, [r2, 0x4] movs r0, 0x40 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2, 0x4] bl UpdatePaletteFade ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81428E4 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8142918 thumb_func_start sub_814297C sub_814297C: @ 814297C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0 bl sub_819746C bl HideCoinsWindow bl ScriptContext2_Disable adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_814297C thumb_func_start sub_81429A0 sub_81429A0: @ 81429A0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081429DE ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 strh r0, [r1] bl HideCoinsWindow movs r0, 0 movs r1, 0x1 bl sub_819746C bl ScriptContext2_Disable adds r0, r4, 0 bl DestroyTask _081429DE: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81429A0 thumb_func_start sub_81429F0 sub_81429F0: @ 81429F0 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08142A60 ldr r2, =gUnknown_085B6344 ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r5, 0x1 adds r0, r5, 0 ands r0, r1 lsrs r1, 7 lsls r1, 1 adds r0, r1 adds r0, r2 ldrb r1, [r0] ldr r0, =gStringVar1 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_082A5B12 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0 bl sub_81973FC str r5, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 movs r3, 0 bl PrintTextOnWindow movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81428C4 str r1, [r0] _08142A60: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81429F0 thumb_func_start sub_8142A88 sub_8142A88: @ 8142A88 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r6, r0, r1 movs r1, 0x22 ldrsh r0, [r6, r1] bl PrintCoinsString ldr r2, =gUnknown_085B6344 ldr r0, =gSpecialVar_0x8004 mov r8, r0 ldrh r1, [r0] movs r7, 0x1 adds r0, r7, 0 ands r0, r1 lsrs r1, 7 lsls r1, 1 adds r0, r1 adds r0, r2 ldrb r4, [r0] ldr r0, =gStringVar1 adds r1, r4, 0 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN movs r1, 0x22 ldrsh r0, [r6, r1] cmp r0, r4 blt _08142B78 mov r0, r8 ldrh r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08142B28 adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08142B28 movs r0, 0 movs r1, 0 bl sub_81973FC ldr r2, =gUnknown_082A5B6B str r7, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r1, 0x1 movs r3, 0 bl PrintTextOnWindow movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, =sub_81429F0 str r0, [r6] b _08142BB0 .pool _08142B28: ldr r4, =gStringVar4 ldr r1, =gUnknown_082A5B12 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0 bl sub_81973FC movs r0, 0x1 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 movs r3, 0 bl PrintTextOnWindow movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81428C4 str r1, [r0] b _08142BB0 .pool _08142B78: ldr r5, =gStringVar4 ldr r1, =gUnknown_082A5B4E adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0 movs r1, 0 bl sub_81973FC str r7, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r0, 0 movs r1, 0x1 adds r2, r5, 0 movs r3, 0 bl PrintTextOnWindow movs r0, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, =sub_81429A0 str r0, [r6] strh r4, [r6, 0x22] strh r4, [r6, 0x8] _08142BB0: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8142A88 thumb_func_start sub_8142BC8 sub_8142BC8: @ 8142BC8 push {r4,lr} bl ScriptContext2_Enable bl GetCoins lsls r0, 16 lsrs r0, 16 movs r1, 0x1 movs r2, 0x1 bl ShowCoinsWindow ldr r0, =sub_8142A88 movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl GetCoins ldr r2, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 strh r0, [r1, 0x22] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8142BC8 thumb_func_start sub_8142C0C sub_8142C0C: @ 8142C0C push {lr} lsls r0, 24 cmp r0, 0 bne _08142C44 bl FreeAllSpritePalettes ldr r0, =gUnknown_085B7384 bl LoadSpritePalettes ldr r0, =gUnknown_085B7864 bl LoadCompressedObjectPic ldr r0, =gUnknown_085B7978 bl LoadCompressedObjectPic ldr r0, =gUnknown_085B7A40 bl LoadCompressedObjectPic b _08142C5A .pool _08142C44: movs r0, 0xE bl FreeSpriteTilesByTag movs r0, 0xD bl FreeSpriteTilesByTag movs r0, 0xC bl FreeSpriteTilesByTag bl FreeAllSpritePalettes _08142C5A: pop {r0} bx r0 thumb_func_end sub_8142C0C thumb_func_start sub_8142C60 sub_8142C60: @ 8142C60 push {r4-r6,lr} adds r4, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 ldr r1, [r0, 0x4] ldrb r3, [r1] movs r1, 0x74 movs r2, 0x50 bl CreateSprite lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, =gSprites lsls r1, r5, 4 adds r1, r5 lsls r1, 2 adds r1, r0 ldrh r0, [r6] strh r0, [r1, 0x2E] strh r4, [r1, 0x30] adds r3, r1, 0 adds r3, 0x3E ldrb r0, [r3] movs r2, 0x2 orrs r0, r2 strb r0, [r3] adds r1, 0x2C ldrb r0, [r1] movs r2, 0x40 orrs r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r1] ldrh r2, [r6] adds r0, r2, 0 adds r0, 0x1E strh r0, [r6] lsls r0, 16 ldr r1, =0x01670000 cmp r0, r1 bls _08142CBC ldr r1, =0xfffffeb6 adds r0, r2, r1 strh r0, [r6] _08142CBC: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_8142C60 thumb_func_start sub_8142CD0 sub_8142CD0: @ 8142CD0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r4, =gUnknown_085B7488 ldr r0, [r4] ldr r5, =0x0201c000 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] mov r6, sp ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldr r4, =gUnknown_085B7490 ldr r0, [r4] adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] ldrh r0, [r4, 0x4] strh r0, [r6, 0x4] ldrh r0, [r4, 0x6] strh r0, [r6, 0x6] mov r0, sp bl LoadSpriteSheet movs r6, 0 ldr r0, =gSprites mov r8, r0 _08142D18: lsls r0, r6, 1 adds r0, r6 lsls r0, 27 lsrs r4, r0, 24 movs r5, 0 lsls r7, r6, 2 _08142D24: lsls r1, r5, 1 adds r1, r5 lsls r1, 3 ldr r0, =gSpriteTemplate_85B75B0 adds r0, r1, r0 adds r1, 0x94 adds r2, r4, 0 adds r2, 0x5C movs r3, 0x1E bl CreateSprite ldr r1, =gUnknown_0203AB88 ldr r1, [r1] adds r2, r5, 0 adds r2, 0x1D adds r2, r7, r2 adds r1, 0x3C adds r1, r2 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] adds r0, r4, 0 adds r0, 0x18 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x47 bls _08142D6E movs r4, 0 _08142D6E: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08142D24 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _08142D18 movs r6, 0 ldr r4, =gSprites _08142D86: lsls r1, r6, 1 adds r1, r6 lsls r1, 3 ldr r0, =gSpriteTemplate_85B7508 adds r0, r1, r0 adds r1, 0x94 lsls r1, 16 asrs r1, 16 movs r2, 0x46 movs r3, 0x1E bl CreateSprite ldr r1, =gUnknown_0203AB88 ldr r1, [r1] adds r1, r6 adds r1, 0x65 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _08142D86 movs r6, 0 ldr r4, =gSprites _08142DCC: lsls r2, r6, 1 adds r2, r6 lsls r2, 3 ldr r0, =gSpriteTemplate_85B7568 adds r0, r2, r0 adds r2, 0x5C lsls r2, 16 asrs r2, 16 movs r1, 0x7E movs r3, 0x1E bl CreateSprite ldr r1, =gUnknown_0203AB88 ldr r1, [r1] adds r1, r6 adds r1, 0x69 strb r0, [r1] lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _08142DCC add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8142CD0 thumb_func_start sub_8142E3C sub_8142E3C: @ 8142E3C push {r4,lr} movs r4, 0 _08142E40: ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, r4 adds r0, 0x59 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xB bls _08142E40 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8142E3C thumb_func_start sub_8142E70 sub_8142E70: @ 8142E70 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r12, r1 cmp r0, 0 beq _08142EC0 cmp r0, 0x1 bne _08142F66 movs r4, 0 ldr r5, =gSprites ldr r3, =gUnknown_0203AB88 movs r2, 0x4 _08142E92: ldr r0, [r3] adds r0, r4 adds r0, 0x59 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x12 bls _08142E92 b _08142F66 .pool _08142EC0: movs r4, 0 ldr r0, =gUnknown_0203AB88 mov r9, r0 ldr r7, =gUnknown_085B62E4 adds r1, r7, 0x4 mov r8, r1 ldr r5, =gSprites movs r6, 0x5 negs r6, r6 _08142ED2: mov r0, r9 ldr r2, [r0] lsls r3, r4, 3 mov r1, r8 adds r0, r3, r1 ldr r1, [r2, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _08142F14 adds r0, r3, r7 ldrb r0, [r0, 0x2] cmp r0, r12 beq _08142F14 adds r0, r2, r4 adds r0, 0x59 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08142F2C .pool _08142F14: adds r0, r2, r4 adds r0, 0x59 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] _08142F2C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xB bls _08142ED2 cmp r4, 0x12 bhi _08142F66 ldr r6, =gSprites ldr r3, =gUnknown_0203AB88 movs r5, 0x5 negs r5, r5 _08142F42: ldr r0, [r3] adds r0, r4 adds r0, 0x59 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r2, [r1] adds r0, r5, 0 ands r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x12 bls _08142F42 _08142F66: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8142E70 thumb_func_start sub_8142F7C sub_8142F7C: @ 8142F7C push {r4-r7,lr} mov r7, r8 push {r7} movs r5, 0 ldr r6, =gUnknown_0203AB88 ldr r4, =gSprites movs r0, 0x4 mov r8, r0 _08142F8C: ldr r0, =gSpriteTemplate_85B7928 movs r1, 0x74 movs r2, 0x14 movs r3, 0xA bl CreateSprite ldr r1, [r6] adds r3, r5, 0 adds r3, 0x31 adds r1, 0x3C adds r1, r3 strb r0, [r1] ldr r0, [r6] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] mov r2, r8 orrs r1, r2 strb r1, [r0] ldr r2, [r6] adds r2, 0x3C adds r2, r3 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r4, 0 adds r1, 0x1C adds r0, r1 ldr r1, =sub_814390C str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldrb r1, [r0, 0x5] movs r7, 0xD negs r7, r7 adds r2, r7, 0 ands r1, r2 mov r2, r8 orrs r1, r2 strb r1, [r0, 0x5] ldr r0, [r6] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x8 bl StartSpriteAnim adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _08142F8C pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8142F7C thumb_func_start sub_8143038 sub_8143038: @ 8143038 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsls r1, 24 lsrs r1, 24 mov r9, r1 movs r6, 0 cmp r0, 0 beq _08143084 ldr r4, =gSprites ldr r3, =gUnknown_0203AB88 movs r2, 0x4 _08143056: ldr r0, [r3] adds r0, r6 adds r0, 0x6D ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _08143056 b _08143142 .pool _08143084: ldr r0, =gUnknown_0203AB88 mov r8, r0 ldr r7, =gSprites ldr r0, =gUnknown_085B6154 mov r12, r0 movs r0, 0x5 negs r0, r0 mov r10, r0 _08143094: mov r0, r8 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xC adds r0, r6 ldrb r0, [r0] cmp r0, 0 beq _081430A8 cmp r6, r9 bne _081430D0 _081430A8: adds r0, r1, r6 adds r0, 0x6D ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08143138 .pool _081430D0: adds r5, r6, 0 adds r5, 0x31 adds r0, r1, 0 adds r0, 0x3C adds r0, r5 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x3E ldrb r2, [r1] mov r0, r10 ands r0, r2 strb r0, [r1] mov r0, r8 ldr r3, [r0] adds r4, r3, 0 adds r4, 0x3C adds r4, r5 ldrb r0, [r4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r7 adds r3, 0xC adds r3, r6 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 add r0, r12 ldrb r0, [r0, 0x3] adds r0, 0x1 lsls r0, 3 adds r0, 0x4 strh r0, [r2, 0x20] ldrb r0, [r4] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r7 ldrb r1, [r3] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 add r0, r12 ldrb r0, [r0, 0x4] adds r0, 0x1 lsls r0, 3 adds r0, 0x3 strh r0, [r2, 0x22] _08143138: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _08143094 _08143142: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8143038 thumb_func_start sub_8143150 sub_8143150: @ 8143150 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _08143180 ldr r2, =gSprites ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x6C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _081431D0 .pool _08143180: ldr r4, =gSprites ldr r3, =gUnknown_0203AB88 ldr r0, [r3] adds r0, 0x6C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r3, [r3] adds r3, 0x6C ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldr r0, =gUnknown_085B6154 lsls r2, r5, 2 adds r2, r5 lsls r2, 2 adds r2, r0 ldrb r0, [r2, 0x3] adds r0, 0x2 lsls r0, 3 strh r0, [r1, 0x20] ldrb r0, [r3] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r2, 0x4] adds r0, 0x2 lsls r0, 3 strh r0, [r1, 0x22] _081431D0: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8143150 thumb_func_start sub_81431E4 sub_81431E4: @ 81431E4 push {r4-r7,lr} sub sp, 0xC ldr r4, =gUnknown_085B741C ldr r0, [r4] ldr r5, =0x0201c000 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp, 0x4] add r0, sp, 0x4 ldrh r2, [r4, 0x6] lsls r2, 16 ldrh r1, [r4, 0x4] orrs r1, r2 str r1, [r0, 0x4] bl LoadSpriteSheet movs r1, 0xF mov r0, sp strh r1, [r0] movs r0, 0 ldr r7, =gSprites _08143210: movs r4, 0 adds r6, r0, 0x1 lsls r5, r0, 2 _08143216: adds r1, r5, r4 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 ldr r1, =gSpriteTemplate_85B7610 adds r0, r1 movs r1, 0x28 mov r2, sp bl sub_8142C60 ldr r1, =gUnknown_0203AB88 ldr r1, [r1] adds r2, r4, 0x7 adds r2, r5, r2 adds r1, 0x3C adds r1, r2 strb r0, [r1] lsls r0, 24 lsrs r0, 24 lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 adds r1, 0x2C ldrb r0, [r1] movs r2, 0x40 orrs r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r1] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _08143216 lsls r0, r6, 24 lsrs r0, 24 cmp r0, 0x2 bls _08143210 add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81431E4 thumb_func_start sub_8143280 sub_8143280: @ 8143280 push {r4-r6,lr} adds r6, r0, 0 ldr r0, =gUnknown_0203AB88 ldr r1, [r0] ldrh r0, [r6, 0x2E] ldrh r1, [r1, 0x24] adds r0, r1 lsls r0, 16 lsrs r4, r0, 16 asrs r1, r0, 16 ldr r0, =0x00000167 cmp r1, r0 ble _081432A2 ldr r2, =0xfffffe98 adds r0, r1, r2 lsls r0, 16 lsrs r4, r0, 16 _081432A2: adds r0, r4, 0 bl Sin2 lsls r0, 16 lsrs r5, r0, 16 adds r0, r4, 0 bl Cos2 lsls r2, r5, 16 asrs r2, 16 movs r3, 0x30 ldrsh r1, [r6, r3] muls r1, r2 asrs r1, 12 strh r1, [r6, 0x24] lsls r0, 16 asrs r4, r0, 16 negs r1, r4 movs r3, 0x30 ldrsh r0, [r6, r3] muls r0, r1 asrs r0, 12 strh r0, [r6, 0x26] ldrb r0, [r6, 0x3] lsls r0, 26 lsrs r3, r0, 27 cmp r2, 0 bge _081432DC adds r2, 0xF _081432DC: lsls r0, r2, 12 lsrs r5, r0, 16 ldr r1, =gOamMatrices lsls r0, r3, 3 adds r1, r0, r1 adds r0, r4, 0 cmp r0, 0 bge _081432EE adds r0, 0xF _081432EE: asrs r0, 4 strh r0, [r1, 0x6] strh r0, [r1] strh r5, [r1, 0x2] lsls r0, r5, 16 asrs r0, 16 negs r0, r0 strh r0, [r1, 0x4] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8143280 thumb_func_start sub_8143314 sub_8143314: @ 8143314 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r5, 0 ldr r7, =0x0201c000 mov r6, sp _08143322: ldr r0, =gUnknown_085B7750 lsls r4, r5, 3 adds r4, r0 ldr r0, [r4] adds r1, r7, 0 bl LZ77UnCompWram str r7, [sp] ldrh r2, [r4, 0x4] ldr r0, =0xffff0000 ldr r1, [r6, 0x4] ands r1, r0 orrs r1, r2 str r1, [r6, 0x4] ldrh r2, [r4, 0x6] lsls r2, 16 ldr r0, =0x0000ffff ands r0, r1 orrs r0, r2 str r0, [r6, 0x4] mov r0, sp bl LoadSpriteSheet adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _08143322 ldr r0, =gSpriteTemplate_85B77E4 movs r1, 0xD0 movs r2, 0x10 movs r3, 0x4 bl CreateSprite ldr r3, =gUnknown_0203AB88 ldr r1, [r3] adds r1, 0x50 strb r0, [r1] ldr r4, =gSprites ldr r0, [r3] adds r0, 0x50 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] movs r5, 0 adds r7, r3, 0 _0814338C: lsls r1, r5, 19 movs r0, 0xC4 lsls r0, 16 adds r1, r0 asrs r1, 16 ldr r0, =gUnknown_085B77FC movs r2, 0x18 movs r3, 0 bl CreateSprite ldr r1, [r7] adds r3, r5, 0 adds r3, 0x15 adds r1, 0x3C adds r1, r3 strb r0, [r1] ldr r0, [r7] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r7] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] movs r6, 0x40 orrs r1, r6 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _0814338C ldr r0, =gUnknown_085B7814 movs r1, 0x78 movs r2, 0x44 movs r3, 0x4 bl CreateSprite ldr r2, =gUnknown_0203AB88 ldr r1, [r2] adds r1, 0x55 strb r0, [r1] ldr r3, =gSprites ldr r0, [r2] adds r0, 0x55 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x2C ldrb r1, [r0] orrs r1, r6 strb r1, [r0] movs r5, 0 adds r4, r2, 0 adds r7, r3, 0 _0814341C: lsls r1, r5, 20 movs r2, 0xC0 lsls r2, 16 adds r1, r2 asrs r1, 16 ldr r0, =gUnknown_085B782C movs r2, 0x24 movs r3, 0x4 bl CreateSprite ldr r1, [r4] adds r2, r5, 0 adds r2, 0x1A adds r1, 0x3C adds r1, r2 strb r0, [r1] ldr r0, [r4] adds r0, 0x3C adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x3E ldrb r1, [r0] movs r3, 0x4 mov r8, r3 mov r3, r8 orrs r1, r3 strb r1, [r0] ldr r0, [r4] adds r0, 0x3C adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x2C ldrb r1, [r0] movs r6, 0x40 orrs r1, r6 strb r1, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _0814341C ldr r0, =gUnknown_085B7844 movs r1, 0x98 movs r2, 0x60 movs r3, 0x9 bl CreateSprite ldr r3, =gUnknown_0203AB88 ldr r1, [r3] adds r1, 0x6C strb r0, [r1] ldr r4, =gSprites ldr r0, [r3] adds r0, 0x6C ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 mov r2, r8 orrs r0, r2 strb r0, [r1, 0x5] ldr r0, [r3] adds r0, 0x6C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x2C ldrb r1, [r0] orrs r1, r6 strb r1, [r0] ldr r0, [r3] adds r0, 0x6C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8143314 thumb_func_start sub_8143514 sub_8143514: @ 8143514 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r7, r0, 16 movs r0, 0xFA lsls r0, 2 mov r8, r0 movs r4, 0 movs r6, 0 ldr r1, =gSprites mov r9, r1 ldr r0, =gUnknown_0203AB88 mov r10, r0 _08143534: adds r0, r7, 0 mov r1, r8 bl __udivsi3 lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gUnknown_0203AB88 ldr r0, [r1] adds r3, r6, 0 adds r3, 0x15 adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] cmp r5, 0 bne _0814356E cmp r4, 0 bne _0814356E cmp r6, 0x3 bne _081435CC _0814356E: mov r4, r10 ldr r0, [r4] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r1, [r0] movs r4, 0x5 negs r4, r4 adds r2, r4, 0 ands r1, r2 strb r1, [r0] mov r1, r10 ldr r0, [r1] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r4, r9 adds r3, r0, r4 adds r4, r3, 0 adds r4, 0x40 ldr r1, =gSprites + 8 adds r0, r1 ldr r0, [r0] ldr r1, [r0] lsls r0, r5, 2 adds r0, r1 ldrh r2, [r0] ldrh r4, [r4] adds r2, r4 ldr r4, =0x000003ff adds r0, r4, 0 ands r2, r0 ldrh r0, [r3, 0x4] ldr r4, =0xfffffc00 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strh r0, [r3, 0x4] movs r4, 0x1 _081435CC: adds r0, r7, 0 mov r1, r8 bl __umodsi3 lsls r0, 16 lsrs r7, r0, 16 mov r0, r8 movs r1, 0xA bl __udivsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _08143534 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8143514 thumb_func_start sub_8143614 sub_8143614: @ 8143614 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gUnknown_085B7B04 mov r0, sp movs r2, 0x5 bl memcpy cmp r4, 0x13 bls _0814362C movs r4, 0 _0814362C: ldr r3, =gUnknown_085B6154 lsls r0, r4, 2 adds r0, r4 lsls r2, r0, 2 adds r0, r2, r3 ldrb r0, [r0, 0x1] lsls r0, 28 lsrs r0, 28 cmp r0, 0x4 beq _08143680 cmp r0, 0x4 bgt _08143654 cmp r0, 0x3 beq _0814365A b _081436C4 .pool _08143654: cmp r0, 0xC beq _081436A4 b _081436C4 _0814365A: adds r0, r4, 0 movs r1, 0x5 bl __udivsi3 subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x16 adds r1, r0, r4 ldrb r0, [r1] cmp r0, 0x3 bhi _081436C4 ldrb r0, [r1] adds r0, 0x1 b _08143698 .pool _08143680: subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x12 adds r1, r0, r4 ldrb r0, [r1] cmp r0, 0x2 bhi _081436C4 ldrb r0, [r1] adds r0, 0x2 _08143698: add r0, sp ldrb r0, [r0] b _081436C6 .pool _081436A4: ldr r0, =gUnknown_0203AB88 ldr r1, [r0] adds r0, r3, 0 adds r0, 0x8 adds r0, r2, r0 ldr r1, [r1, 0x8] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _081436C4 mov r0, sp ldrb r0, [r0, 0x4] b _081436C6 .pool _081436C4: movs r0, 0 _081436C6: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8143614 thumb_func_start sub_81436D0 sub_81436D0: @ 81436D0 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203AB88 ldr r1, [r1] adds r1, 0x55 ldrb r2, [r1] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 ldr r2, =gSprites adds r4, r1, r2 bl sub_8143614 adds r3, r4, 0 adds r3, 0x2B strb r0, [r3] adds r2, r4, 0 adds r2, 0x40 ldr r1, [r4, 0x8] ldrb r0, [r3] ldr r1, [r1] lsls r0, 2 adds r0, r1 ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ldr r2, =0x000003ff adds r0, r2, 0 ands r1, r0 ldrh r2, [r4, 0x4] ldr r0, =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r4, 0x4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81436D0 thumb_func_start sub_814372C sub_814372C: @ 814372C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r2, r0, 24 movs r6, 0 ldr r1, =gUnknown_0203AB88 ldr r0, [r1] ldrb r0, [r0, 0x19] adds r5, r1, 0 cmp r0, 0x1 bne _08143746 movs r6, 0x2 _08143746: cmp r2, 0x6 bls _0814374C b _081438A8 _0814374C: lsls r0, r2, 2 ldr r1, =_08143760 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08143760: .4byte _081438A8 .4byte _08143864 .4byte _0814383C .4byte _08143830 .4byte _08143808 .4byte _081437FC .4byte _0814377C _0814377C: movs r4, 0 ldr r5, =gSprites ldr r6, =gUnknown_0203AB88 movs r0, 0x5 negs r0, r0 mov r12, r0 adds r7, r5, 0 adds r7, 0x8 ldr r2, =0xfffffc00 mov r8, r2 _08143790: ldr r0, [r6] adds r3, r4, 0 adds r3, 0x1A adds r0, 0x3C adds r0, r3 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r2, [r1] mov r0, r12 ands r0, r2 strb r0, [r1] ldr r0, [r6] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r5 adds r2, r3, 0 adds r2, 0x40 adds r0, r7 ldr r0, [r0] ldr r0, [r0] ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 ldr r2, =0x000003ff adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _08143790 b _081438F4 .pool _081437FC: ldr r2, =gSprites ldr r0, [r5] adds r0, 0x58 b _0814386A .pool _08143808: ldr r2, =gSprites ldr r0, [r5] adds r0, 0x58 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r2 adds r4, r3, 0 adds r4, 0x40 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, [r0] lsls r0, r6, 2 adds r0, r1 ldrh r1, [r0, 0x8] b _08143886 .pool _08143830: ldr r2, =gSprites ldr r0, [r5] adds r0, 0x57 b _0814386A .pool _0814383C: ldr r2, =gSprites ldr r0, [r5] adds r0, 0x57 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r2 adds r4, r3, 0 adds r4, 0x40 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, [r0] lsls r0, r6, 2 adds r0, r1 ldrh r1, [r0, 0x8] b _08143886 .pool _08143864: ldr r2, =gSprites ldr r0, [r5] adds r0, 0x56 _0814386A: ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r2 adds r4, r3, 0 adds r4, 0x40 adds r2, 0x8 adds r0, r2 ldr r0, [r0] ldr r1, [r0] lsls r0, r6, 2 adds r0, r1 ldrh r1, [r0, 0x4] _08143886: ldrh r4, [r4] adds r1, r4 ldr r2, =0x000003ff adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] ldr r0, =0xfffffc00 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] b _081438F4 .pool _081438A8: movs r4, 0 lsls r7, r6, 2 ldr r6, =gSprites movs r0, 0x8 adds r0, r6 mov r12, r0 ldr r2, =0xfffffc00 mov r8, r2 _081438B8: ldr r0, [r5] adds r0, r4 adds r0, 0x56 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, r0, r6 adds r2, r3, 0 adds r2, 0x40 add r0, r12 ldr r0, [r0] ldr r0, [r0] adds r0, r7, r0 ldrh r1, [r0, 0x8] ldrh r2, [r2] adds r1, r2 ldr r2, =0x000003ff adds r0, r2, 0 ands r1, r0 ldrh r2, [r3, 0x4] mov r0, r8 ands r0, r2 orrs r0, r1 strh r0, [r3, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081438B8 _081438F4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_814372C thumb_func_start sub_814390C sub_814390C: @ 814390C ldr r1, =gUnknown_0203AB88 ldr r1, [r1] ldrh r1, [r1, 0x26] strh r1, [r0, 0x24] bx lr .pool thumb_func_end sub_814390C thumb_func_start sub_814391C sub_814391C: @ 814391C push {r4,r5,lr} sub sp, 0x8 ldr r4, =gUnknown_085B7948 ldr r0, [r4] ldr r5, =0x0201c000 adds r1, r5, 0 bl LZ77UnCompWram str r5, [sp] ldrh r1, [r4, 0x6] lsls r1, 16 ldrh r0, [r4, 0x4] orrs r0, r1 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet ldr r0, =gSpriteTemplate_85B7950 movs r1, 0x74 movs r2, 0x50 movs r3, 0x51 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldr r0, =gUnknown_0203AB88 ldr r0, [r0] ldrh r0, [r0, 0x24] movs r2, 0 strh r0, [r1, 0x2E] strh r2, [r1, 0x30] adds r3, r1, 0 adds r3, 0x2C ldrb r0, [r3] movs r2, 0x40 orrs r0, r2 movs r2, 0x80 orrs r0, r2 strb r0, [r3] adds r1, 0x3E ldrb r0, [r1] movs r2, 0x2 orrs r0, r2 strb r0, [r1] add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_814391C thumb_func_start sub_814399C sub_814399C: @ 814399C ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 ldr r1, =gOamMatrices lsls r0, 3 adds r0, r1 ldr r1, =gUnknown_0203AB88 ldr r2, [r1] ldrh r1, [r2, 0x2C] strh r1, [r0, 0x6] ldrh r1, [r2, 0x2C] strh r1, [r0] ldrh r1, [r2, 0x2E] strh r1, [r0, 0x2] ldrh r1, [r2, 0x30] strh r1, [r0, 0x4] bx lr .pool thumb_func_end sub_814399C thumb_func_start sub_81439C8 sub_81439C8: @ 81439C8 push {r4-r6,lr} movs r4, 0 ldr r5, =gUnknown_0203AB88 ldr r6, =gSprites _081439D0: movs r3, 0x39 subs r3, r4 lsls r3, 24 lsrs r3, 24 ldr r0, =gSpriteTemplate_85B7928 movs r1, 0x74 movs r2, 0x50 bl CreateSprite ldr r1, [r5] adds r1, 0x3C adds r1, r4 strb r0, [r1] ldr r0, [r5] adds r0, 0x3C adds r1, r0, r4 ldrb r0, [r1] cmp r0, 0x40 beq _08143A24 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r5] adds r0, 0x3C adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] _08143A24: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081439D0 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81439C8 thumb_func_start sub_8143A40 sub_8143A40: @ 8143A40 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x3C ldrb r5, [r0] movs r6, 0 ldr r7, =gSprites movs r0, 0x1C adds r0, r7 mov r10, r0 movs r1, 0x2E adds r1, r7 mov r9, r1 mov r8, r6 _08143A64: lsls r4, r5, 4 adds r4, r5 lsls r4, 2 adds r0, r4, r7 adds r3, r0, 0 adds r3, 0x3E ldrb r1, [r3] movs r2, 0x4 orrs r1, r2 strb r1, [r3] mov r1, r10 adds r2, r4, r1 ldr r1, =SpriteCallbackDummy str r1, [r2] movs r1, 0 bl StartSpriteAnim movs r1, 0 adds r2, r5, 0x1 adds r3, r6, 0x1 _08143A8C: lsls r0, r1, 1 adds r0, r4 add r0, r9 mov r5, r8 strh r5, [r0] adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _08143A8C lsls r0, r2, 24 lsrs r5, r0, 24 lsls r0, r3, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _08143A64 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8143A40 thumb_func_start sub_8143AC8 sub_8143AC8: @ 8143AC8 push {r4,r5,lr} adds r3, r0, 0 ldr r0, =gUnknown_0203AB88 ldr r0, [r0] ldrh r4, [r0, 0x24] movs r2, 0x24 ldrsh r1, [r0, r2] ldrh r2, [r3, 0x34] movs r5, 0x34 ldrsh r0, [r3, r5] cmp r1, r0 ble _08143B04 movs r1, 0xB4 lsls r1, 1 adds r0, r2, r1 subs r2, r0, r4 strh r2, [r3, 0x3A] lsls r1, r2, 16 ldr r0, =0x01670000 cmp r1, r0 ble _08143B08 ldr r5, =0xfffffe98 adds r0, r2, r5 b _08143B06 .pool _08143B04: subs r0, r2, r4 _08143B06: strh r0, [r3, 0x3A] _08143B08: movs r1, 0x3A ldrsh r0, [r3, r1] pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8143AC8 thumb_func_start sub_8143B14 sub_8143B14: @ 8143B14 push {r4,r5,lr} bl sub_8143AC8 ldr r5, =gUnknown_0203AB88 ldr r4, [r5] lsls r0, 16 asrs r0, 16 bl __floatsisf ldr r1, =0x41f00000 bl __divsf3 bl __fixunssfsi adds r4, 0x7E strb r0, [r4] ldr r0, [r5] adds r0, 0x7E ldrb r0, [r0] pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8143B14 thumb_func_start sub_8143B48 sub_8143B48: @ 8143B48 push {r4,lr} adds r4, r0, 0 bl sub_8143AC8 lsls r0, 16 asrs r0, 16 movs r1, 0x1E bl __modsi3 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0xE bne _08143B68 movs r0, 0 strh r0, [r4, 0x32] b _08143B7E _08143B68: cmp r1, 0xD bgt _08143B70 movs r0, 0xE b _08143B72 _08143B70: movs r0, 0x2B _08143B72: subs r0, r1 lsls r0, 16 lsrs r0, 16 strh r0, [r4, 0x32] lsls r0, 16 asrs r0, 16 _08143B7E: pop {r4} pop {r1} bx r1 thumb_func_end sub_8143B48 thumb_func_start sub_8143B84 sub_8143B84: @ 8143B84 push {r4-r7,lr} mov r7, r8 push {r7} adds r7, r0, 0 ldr r5, _08143BCC @ =gUnknown_0203AB88 ldr r6, [r5] adds r4, r6, 0 adds r4, 0x8C adds r1, r6, 0 adds r1, 0x90 ldr r0, [r4] ldr r1, [r1] bl __addsf3 adds r1, r0, 0 str r1, [r4] subs r4, 0x4 ldr r0, [r4] bl __addsf3 adds r6, r0, 0 str r6, [r4] ldr r0, _08143BD0 @ =0x43B40000 mov r8, r0 adds r0, r6, 0 mov r1, r8 bl __gesf2 cmp r0, 0 blt _08143BD4 adds r0, r6, 0 mov r1, r8 bl __subsf3 b _08143BE8 .align 2, 0 _08143BCC: .4byte gUnknown_0203AB88 _08143BD0: .4byte 0x43B40000 _08143BD4: ldr r1, _08143C80 @ =0x00000000 adds r0, r6, 0 bl __ltsf2 cmp r0, 0 bge _08143BEA adds r0, r6, 0 mov r1, r8 bl __addsf3 _08143BE8: str r0, [r4] _08143BEA: ldr r5, [r5] adds r0, r5, 0 adds r0, 0x88 ldr r0, [r0] bl __fixsfsi strh r0, [r7, 0x34] adds r4, r5, 0 adds r4, 0x98 adds r1, r5, 0 adds r1, 0x9C ldr r0, [r4] ldr r1, [r1] bl __addsf3 adds r1, r0, 0 str r1, [r4] subs r4, 0x4 ldr r0, [r4] bl __addsf3 str r0, [r4] bl __fixsfsi strh r0, [r7, 0x36] ldrh r0, [r7, 0x34] bl Sin2 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrh r0, [r7, 0x34] bl Cos2 lsls r4, 16 asrs r4, 16 movs r2, 0x36 ldrsh r1, [r7, r2] muls r1, r4 asrs r1, 12 strh r1, [r7, 0x24] lsls r0, 16 asrs r0, 16 negs r0, r0 movs r2, 0x36 ldrsh r1, [r7, r2] muls r0, r1 asrs r0, 12 strh r0, [r7, 0x26] bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08143C74 ldr r0, _08143C84 @ =gMPlayInfo_SE1 ldr r4, _08143C88 @ =0x0000FFFF ldrh r2, [r7, 0x24] lsls r2, 24 asrs r2, 24 adds r1, r4, 0 bl m4aMPlayPanpotControl ldr r0, _08143C8C @ =gMPlayInfo_SE2 ldrh r2, [r7, 0x24] lsls r2, 24 asrs r2, 24 adds r1, r4, 0 bl m4aMPlayPanpotControl _08143C74: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08143C80: .4byte 0x00000000 _08143C84: .4byte gMPlayInfo_SE1 _08143C88: .4byte 0x0000FFFF _08143C8C: .4byte gMPlayInfo_SE2 thumb_func_end sub_8143B84 thumb_func_start sub_8143C90 sub_8143C90: @ 8143C90 push {r4,r5,lr} adds r5, r0, 0 ldr r0, =gUnknown_0203AB88 ldr r1, [r0] ldrh r0, [r5, 0x3A] ldrh r1, [r1, 0x24] adds r2, r0, r1 strh r2, [r5, 0x34] lsls r1, r2, 16 ldr r0, =0x01670000 cmp r1, r0 ble _08143CAE ldr r1, =0xfffffe98 adds r0, r2, r1 strh r0, [r5, 0x34] _08143CAE: ldrh r0, [r5, 0x34] bl Sin2 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrh r0, [r5, 0x34] bl Cos2 lsls r4, 16 asrs r4, 16 movs r2, 0x36 ldrsh r1, [r5, r2] muls r1, r4 asrs r1, 12 strh r1, [r5, 0x24] lsls r0, 16 asrs r0, 16 negs r0, r0 movs r2, 0x36 ldrsh r1, [r5, r2] muls r0, r1 ldr r1, =gSpriteCoordOffsetY asrs r0, 12 ldrh r1, [r1] adds r0, r1 strh r0, [r5, 0x26] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8143C90 thumb_func_start sub_8143CFC sub_8143CFC: @ 8143CFC push {r4-r7,lr} adds r5, r0, 0 bl sub_8143B84 ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] ldrh r0, [r5, 0x36] adds r0, 0x84 lsls r0, 16 lsrs r0, 16 cmp r0, 0xD4 bls _08143D22 adds r2, r5, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 b _08143D2E _08143D22: adds r2, r5, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 _08143D2E: strb r0, [r2] movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0x1D ble _08143DF8 movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _08143D6C ldr r7, _08143D64 @ =gUnknown_0203AB88 ldr r6, [r7] adds r4, r6, 0 adds r4, 0x94 adds r0, r6, 0 adds r0, 0xA0 ldr r0, [r0] ldr r1, _08143D68 @ =0x40000000 bl __subsf3 adds r1, r0, 0 ldr r0, [r4] bl __lesf2 cmp r0, 0 bgt _08143DF8 b _08143D8C .align 2, 0 _08143D64: .4byte gUnknown_0203AB88 _08143D68: .4byte 0x40000000 _08143D6C: ldr r7, _08143E00 @ =gUnknown_0203AB88 ldr r6, [r7] adds r4, r6, 0 adds r4, 0x94 adds r0, r6, 0 adds r0, 0xA0 ldr r0, [r0] ldr r1, _08143E04 @ =0x40000000 bl __subsf3 adds r1, r0, 0 ldr r0, [r4] bl __gesf2 cmp r0, 0 blt _08143DF8 _08143D8C: adds r1, r6, 0 adds r1, 0x7D movs r0, 0xFF strb r0, [r1] ldr r2, [r7] ldrb r1, [r2, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x3] adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl sub_8143B14 movs r0, 0x1E strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8143AC8 movs r1, 0x3A ldrsh r0, [r5, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r5, 0x3A] ldr r0, _08143E08 @ =sub_8143C90 str r0, [r5, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange ldr r3, [r7] adds r2, r3, 0 adds r2, 0x9C adds r1, r3, 0 adds r1, 0x98 ldr r0, _08143E0C @ =0x00000000 str r0, [r1] str r0, [r2] subs r1, 0xC ldr r0, _08143E10 @ =0xBF800000 str r0, [r1] _08143DF8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08143E00: .4byte gUnknown_0203AB88 _08143E04: .4byte 0x40000000 _08143E08: .4byte sub_8143C90 _08143E0C: .4byte 0x00000000 _08143E10: .4byte 0xBF800000 thumb_func_end sub_8143CFC thumb_func_start sub_8143E14 sub_8143E14: @ 8143E14 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r7, r0, 0 bl sub_8143B84 movs r1, 0x34 ldrsh r0, [r7, r1] cmp r0, 0 beq _08143E32 cmp r0, 0xB4 beq _08143E9C b _08143F80 _08143E32: movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0x1 bne _08143E3C b _08143F80 _08143E3C: movs r1, 0x3C ldrsh r0, [r7, r1] bl __floatsisf mov r9, r0 ldr r0, =gUnknown_085B6348 mov r10, r0 ldr r1, =gUnknown_0203AB88 mov r8, r1 ldr r0, [r1] ldrb r4, [r0, 0x4] lsls r4, 30 lsrs r0, r4, 25 add r0, r10 ldrb r0, [r0, 0x1] bl __floatsisf adds r1, r0, 0 mov r0, r9 bl __mulsf3 adds r6, r0, 0 lsrs r0, r4, 25 add r0, r10 ldrb r0, [r0, 0x2] subs r0, 0x1 bl __floatsisf adds r1, r0, 0 adds r0, r6, 0 bl __addsf3 adds r5, r0, 0 lsrs r4, 25 add r4, r10 ldrh r0, [r4, 0xC] bl __floatsisf adds r1, r0, 0 mov r0, r9 bl __divsf3 b _08143EFC .pool _08143E9C: movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0 beq _08143F80 movs r1, 0x3C ldrsh r0, [r7, r1] bl __floatsisf mov r9, r0 ldr r0, _08143F90 @ =gUnknown_085B6348 mov r10, r0 ldr r1, _08143F94 @ =gUnknown_0203AB88 mov r8, r1 ldr r0, [r1] ldrb r4, [r0, 0x4] lsls r4, 30 lsrs r0, r4, 25 add r0, r10 ldrb r0, [r0, 0x1] bl __floatsisf adds r1, r0, 0 mov r0, r9 bl __mulsf3 adds r6, r0, 0 lsrs r0, r4, 25 add r0, r10 ldrb r0, [r0, 0x2] subs r0, 0x1 bl __floatsisf adds r1, r0, 0 adds r0, r6, 0 bl __addsf3 adds r5, r0, 0 lsrs r4, 25 add r4, r10 ldrh r0, [r4, 0xC] bl __floatsisf adds r1, r0, 0 mov r0, r9 bl __divsf3 bl __negsf2 _08143EFC: adds r2, r0, 0 mov r0, r8 ldr r6, [r0] adds r1, r6, 0 adds r1, 0xA0 adds r0, r6, 0 adds r0, 0x94 ldr r0, [r0] str r0, [r1] adds r0, r6, 0 adds r0, 0x98 str r2, [r0] movs r0, 0x9C adds r0, r6 mov r8, r0 adds r0, r2, 0 adds r1, r2, 0 bl __addsf3 adds r1, r5, 0 bl __divsf3 adds r4, r0, 0 adds r0, r5, 0 adds r1, r5, 0 bl __mulsf3 adds r1, r0, 0 ldr r0, _08143F98 @ =0x40000000 bl __divsf3 adds r1, r0, 0 adds r0, r4, 0 bl __addsf3 bl __negsf2 mov r1, r8 str r0, [r1] adds r1, r6, 0 adds r1, 0x8C ldr r0, _08143F9C @ =0x00000000 str r0, [r1] adds r2, r7, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] adds r0, r7, 0 adds r0, 0x2A movs r2, 0 strb r2, [r0] adds r3, r7, 0 adds r3, 0x3F ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r3] ldr r0, _08143FA0 @ =sub_8143CFC str r0, [r7, 0x1C] strh r2, [r7, 0x32] _08143F80: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08143F90: .4byte gUnknown_085B6348 _08143F94: .4byte gUnknown_0203AB88 _08143F98: .4byte 0x40000000 _08143F9C: .4byte 0x00000000 _08143FA0: .4byte sub_8143CFC thumb_func_end sub_8143E14 thumb_func_start sub_8143FA4 sub_8143FA4: @ 8143FA4 push {r4,r5,lr} adds r5, r0, 0 movs r1, 0x32 ldrsh r0, [r5, r1] bl __floatsisf adds r4, r0, 0 ldr r1, =0x3d4ccccd bl __mulsf3 adds r1, r4, 0 bl __mulsf3 bl __fixsfsi adds r1, r0, 0 subs r1, 0x2D strh r1, [r5, 0x26] ldrh r0, [r5, 0x32] adds r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x1D ble _0814403E lsls r0, r1, 16 cmp r0, 0 blt _0814403E ldr r4, =gUnknown_0203AB88 ldr r0, [r4] adds r0, 0x7D movs r1, 0xFF strb r1, [r0] ldr r2, [r4] ldrb r1, [r2, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x3] adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl sub_8143B14 movs r0, 0x1E strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8143AC8 movs r1, 0x3A ldrsh r0, [r5, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r5, 0x3A] ldr r0, =sub_8143C90 str r0, [r5, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange ldr r2, [r4] ldrb r0, [r2, 0x3] movs r1, 0x40 orrs r0, r1 strb r0, [r2, 0x3] _0814403E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8143FA4 thumb_func_start sub_8144050 sub_8144050: @ 8144050 push {r4,lr} adds r3, r0, 0 ldrh r0, [r3, 0x32] adds r1, r0, 0x1 strh r1, [r3, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0x2C bgt _08144098 ldrh r4, [r3, 0x26] subs r0, r4, 0x1 strh r0, [r3, 0x26] lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x2D bne _0814411E ldr r2, =gSprites ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _0814411E strh r4, [r3, 0x26] b _0814411E .pool _08144098: lsls r0, r1, 16 asrs r0, 16 movs r2, 0x3C ldrsh r1, [r3, r2] cmp r0, r1 bge _081440E4 ldr r2, =gSprites ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r2 adds r0, r1, 0 adds r0, 0x2C ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bne _0814411E adds r0, r1, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _081440DC ldrh r0, [r3, 0x26] adds r0, 0x1 strh r0, [r3, 0x26] b _0814411E .pool _081440DC: ldrh r0, [r3, 0x26] subs r0, 0x1 strh r0, [r3, 0x26] b _0814411E _081440E4: adds r2, r3, 0 adds r2, 0x2C ldrb r1, [r2] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2] adds r1, r3, 0 adds r1, 0x2A movs r2, 0 movs r0, 0x1 strb r0, [r1] movs r0, 0x3F adds r0, r3 mov r12, r0 ldrb r0, [r0] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 mov r1, r12 strb r0, [r1] strh r2, [r3, 0x32] ldr r0, =sub_8143FA4 str r0, [r3, 0x1C] movs r0, 0x3D bl m4aSongNumStart _0814411E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8144050 thumb_func_start sub_8144128 sub_8144128: @ 8144128 push {r4,lr} adds r4, r0, 0 bl sub_8143B84 movs r0, 0x34 ldrsh r1, [r4, r0] cmp r1, 0x5A beq _08144142 movs r0, 0x87 lsls r0, 1 cmp r1, r0 beq _0814414C b _0814415C _08144142: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0814415C b _08144154 _0814414C: movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _0814415C _08144154: ldr r0, =sub_8144050 str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x32] _0814415C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8144128 thumb_func_start sub_8144168 sub_8144168: @ 8144168 push {r4,lr} adds r4, r0, 0 bl sub_8143B84 ldr r0, =gUnknown_0203AB88 ldr r0, [r0] ldrb r0, [r0, 0x3] lsls r0, 27 lsrs r0, 27 cmp r0, 0 beq _08144182 cmp r0, 0x1 beq _08144194 _08144182: adds r0, r4, 0 bl sub_81446DC ldr r0, =sub_8143E14 b _0814419C .pool _08144194: adds r0, r4, 0 bl sub_81448B8 ldr r0, =sub_8144128 _0814419C: str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8144168 thumb_func_start prev_quest_read_x24_hm_usage prev_quest_read_x24_hm_usage: @ 81441A8 push {r4,r5,lr} adds r5, r0, 0 bl sub_8143B84 ldrh r0, [r5, 0x32] subs r0, 0x1 strh r0, [r5, 0x32] lsls r0, 16 asrs r0, 16 cmp r0, 0xF bne _081441CE ldr r0, =gUnknown_0203AB88 ldr r4, [r0] adds r4, 0x98 ldr r0, [r4] ldr r1, =0xbf800000 bl __mulsf3 str r0, [r4] _081441CE: movs r1, 0x32 ldrsh r0, [r5, r1] cmp r0, 0 bne _0814425C movs r1, 0x2E ldrsh r0, [r5, r1] cmp r0, 0 bne _08144244 ldr r2, =gUnknown_0203AB88 ldr r0, [r2] adds r0, 0x7D movs r1, 0xFF strb r1, [r0] ldr r2, [r2] ldrb r1, [r2, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x3] adds r0, r5, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl StartSpriteAnim adds r0, r5, 0 bl sub_8143B14 movs r0, 0x1E strh r0, [r5, 0x36] adds r0, r5, 0 bl sub_8143AC8 movs r1, 0x3A ldrsh r0, [r5, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r5, 0x3A] ldr r0, =sub_8143C90 str r0, [r5, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange b _0814425C .pool _08144244: adds r0, r5, 0 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] movs r0, 0x38 bl m4aSongNumStart adds r0, r5, 0 bl sub_8144A24 _0814425C: pop {r4,r5} pop {r0} bx r0 thumb_func_end prev_quest_read_x24_hm_usage thumb_func_start sub_8144264 sub_8144264: @ 8144264 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 bl sub_8143B84 movs r0, 0 strh r0, [r6, 0x32] adds r0, r6, 0 bl sub_8143B14 ldr r1, _081442F0 @ =gUnknown_085B62E4 ldr r4, _081442F4 @ =gUnknown_0203AB88 ldr r2, [r4] adds r0, r2, 0 adds r0, 0x7E ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r0, [r0] ldr r1, [r2, 0x8] ands r0, r1 cmp r0, 0 bne _081442FC adds r1, r2, 0 adds r1, 0x7D movs r0, 0xFF strb r0, [r1] ldr r2, [r4] ldrb r1, [r2, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x3] adds r0, r6, 0 adds r0, 0x2B ldrb r1, [r0] adds r1, 0x3 lsls r1, 24 lsrs r1, 24 adds r0, r6, 0 bl StartSpriteAnim adds r0, r6, 0 bl sub_8143B14 movs r0, 0x1E strh r0, [r6, 0x36] adds r0, r6, 0 bl sub_8143AC8 movs r1, 0x3A ldrsh r0, [r6, r1] movs r1, 0x1E bl __divsi3 lsls r0, 16 asrs r0, 16 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0xF strh r1, [r6, 0x3A] ldr r0, _081442F8 @ =sub_8143C90 str r0, [r6, 0x1C] movs r0, 0x47 bl m4aSongNumStartOrChange b _081443F8 .align 2, 0 _081442F0: .4byte gUnknown_085B62E4 _081442F4: .4byte gUnknown_0203AB88 _081442F8: .4byte sub_8143C90 _081442FC: movs r0, 0x38 bl m4aSongNumStart bl Random movs r1, 0x1 mov r8, r1 ands r1, r0 mov r8, r1 cmp r1, 0 beq _08144340 ldr r4, [r4] adds r1, r4, 0 adds r1, 0x8C ldr r0, _08144338 @ =0x00000000 str r0, [r1] adds r0, r4, 0 adds r0, 0x7E ldrb r0, [r0] adds r0, 0x1 movs r1, 0xC bl __modsi3 lsls r1, r0, 24 lsrs r2, r1, 24 adds r1, r4, 0 adds r1, 0x7F strb r0, [r1] ldr r5, _0814433C @ =gUnknown_085B6348 b _08144378 _08144338: .4byte 0x00000000 _0814433C: .4byte gUnknown_085B6348 _08144340: ldr r7, [r4] adds r4, r7, 0 adds r4, 0x8C ldr r5, =gUnknown_085B6348 ldrb r0, [r7, 0x4] lsls r0, 30 lsrs r0, 25 adds r1, r5, 0 adds r1, 0x1C adds r0, r1 ldr r1, [r0] adds r0, r1, 0 bl __addsf3 str r0, [r4] adds r0, r7, 0 adds r0, 0x7E ldrb r4, [r0] adds r0, r4, 0 adds r0, 0xB movs r1, 0xC bl __modsi3 lsls r0, 24 lsrs r2, r0, 24 adds r0, r7, 0 adds r0, 0x7F strb r4, [r0] _08144378: ldr r0, =gUnknown_085B62E4 lsls r1, r2, 3 adds r0, 0x4 adds r1, r0 ldr r2, =gUnknown_0203AB88 ldr r3, [r2] ldr r1, [r1] ldr r0, [r3, 0x8] ands r1, r0 cmp r1, 0 beq _081443AC movs r0, 0x1 strh r0, [r6, 0x2E] ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r5 ldrb r0, [r0, 0x2] strh r0, [r6, 0x32] b _081443E8 .pool _081443AC: strh r1, [r6, 0x2E] ldrb r1, [r3, 0x4] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081443C4 lsls r0, r1, 30 lsrs r0, 25 adds r0, r5 ldrb r0, [r0, 0x1] strh r0, [r6, 0x32] b _081443E8 _081443C4: lsls r0, r1, 30 lsrs r0, 25 adds r0, r5 ldrb r0, [r0, 0x2] strh r0, [r6, 0x32] mov r0, r8 cmp r0, 0 beq _081443E0 adds r1, r3, 0 adds r1, 0x8C ldr r0, =0x3f000000 b _081443E6 .pool _081443E0: adds r1, r3, 0 adds r1, 0x8C ldr r0, =0xbfc00000 _081443E6: str r0, [r1] _081443E8: ldr r0, [r2] adds r0, 0x98 ldr r1, =0x3dae147b str r1, [r0] ldr r0, =prev_quest_read_x24_hm_usage str r0, [r6, 0x1C] movs r0, 0x5 strh r0, [r6, 0x30] _081443F8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8144264 thumb_func_start sub_8144410 sub_8144410: @ 8144410 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 bl sub_8143B84 ldr r4, _081444A4 @ =gUnknown_0203AB88 ldr r0, [r4] adds r0, 0x8C ldr r0, [r0] ldr r1, _081444A8 @ =0x3F000000 bl __gtsf2 cmp r0, 0 bgt _081444FA adds r0, r6, 0 bl sub_8143B14 adds r0, r6, 0 bl sub_8143B48 lsls r0, 16 cmp r0, 0 bne _081444BC ldr r2, [r4] adds r1, r2, 0 adds r1, 0x90 ldr r0, _081444AC @ =0x00000000 str r0, [r1] movs r0, 0x8C adds r0, r2 mov r8, r0 ldr r1, _081444B0 @ =gUnknown_085B6348 mov r9, r1 ldrb r0, [r2, 0x4] lsls r7, r0, 30 lsrs r0, r7, 25 add r0, r9 movs r4, 0x3 ldrsb r4, [r0, r4] adds r0, r4, 0 bl __floatsisf adds r5, r0, 0 cmp r4, 0 bge _08144476 ldr r1, _081444B4 @ =0x43800000 bl __addsf3 adds r5, r0, 0 _08144476: lsrs r0, r7, 25 add r0, r9 ldrb r0, [r0, 0x4] adds r0, 0x1 bl __floatsisf adds r1, r0, 0 adds r0, r5, 0 bl __divsf3 adds r1, r0, 0 mov r2, r8 ldr r0, [r2] bl __subsf3 mov r1, r8 str r0, [r1] movs r0, 0x4 strh r0, [r6, 0x30] ldr r0, _081444B8 @ =sub_8144264 str r0, [r6, 0x1C] b _081444FA .align 2, 0 _081444A4: .4byte gUnknown_0203AB88 _081444A8: .4byte 0x3F000000 _081444AC: .4byte 0x00000000 _081444B0: .4byte gUnknown_085B6348 _081444B4: .4byte 0x43800000 _081444B8: .4byte sub_8144264 _081444BC: ldr r4, [r4] adds r7, r4, 0 adds r7, 0x90 ldr r0, [r7] ldr r6, _08144508 @ =0x00000000 adds r1, r6, 0 bl __nesf2 cmp r0, 0 beq _081444FA adds r5, r4, 0 adds r5, 0x8C ldr r0, [r5] adds r1, r6, 0 bl __ltsf2 cmp r0, 0 bge _081444FA str r6, [r7] str r6, [r5] adds r4, 0x98 ldr r0, [r4] bl __extendsfdf2 ldr r2, _0814450C @ =0x3FF33333 ldr r3, _08144510 @ =0x33333333 bl __divdf3 bl __truncdfsf2 str r0, [r4] _081444FA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _08144508: .4byte 0x00000000 _0814450C: .4byte 0x3FF33333 _08144510: .4byte 0x33333333 thumb_func_end sub_8144410 thumb_func_start sub_8144514 sub_8144514: @ 8144514 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 bl sub_8143B84 ldr r0, =gUnknown_0203AB88 ldr r5, [r0] adds r0, r5, 0 adds r0, 0x94 ldr r0, [r0] ldr r1, =0x42200000 bl __gtsf2 cmp r0, 0 bgt _081445B8 movs r0, 0x98 adds r0, r5 mov r8, r0 adds r7, r5, 0 adds r7, 0x86 movs r1, 0 ldrsh r4, [r7, r1] adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _08144556 ldr r1, =0x47800000 bl __addsf3 adds r2, r0, 0 _08144556: ldr r0, =0x40800000 adds r1, r2, 0 bl __divsf3 bl __negsf2 mov r1, r8 str r0, [r1] movs r0, 0x90 adds r0, r5 mov r8, r0 adds r5, 0x8C movs r1, 0 ldrsh r4, [r7, r1] adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _08144586 ldr r1, =0x47800000 bl __addsf3 adds r2, r0, 0 _08144586: ldr r0, [r5] adds r1, r2, 0 bl __divsf3 bl __negsf2 mov r1, r8 str r0, [r1] adds r1, r6, 0 adds r1, 0x2A movs r0, 0x2 strb r0, [r1] adds r2, r6, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r2] movs r0, 0x3 strh r0, [r6, 0x30] ldr r0, =sub_8144410 str r0, [r6, 0x1C] _081445B8: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8144514 thumb_func_start sub_81445D8 sub_81445D8: @ 81445D8 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 bl sub_8143B84 ldr r4, =gUnknown_0203AB88 ldr r0, [r4] adds r0, 0x94 ldr r0, [r0] ldr r1, =0x42700000 bl __gtsf2 cmp r0, 0 bgt _0814468A movs r0, 0x5D bl m4aSongNumStartOrChange ldr r5, [r4] movs r0, 0x98 adds r0, r5 mov r8, r0 adds r7, r5, 0 adds r7, 0x84 movs r1, 0 ldrsh r4, [r7, r1] adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _08144620 ldr r1, =0x47800000 bl __addsf3 adds r2, r0, 0 _08144620: ldr r0, =0x41a00000 adds r1, r2, 0 bl __divsf3 bl __negsf2 mov r1, r8 str r0, [r1] movs r0, 0x90 adds r0, r5 mov r8, r0 adds r0, r5, 0 adds r0, 0x8C ldr r1, [r0] ldr r0, =0x3f800000 bl __subsf3 adds r5, r0, 0 movs r1, 0 ldrsh r4, [r7, r1] adds r0, r4, 0 bl __floatsisf adds r2, r0, 0 cmp r4, 0 bge _0814465C ldr r1, =0x47800000 bl __addsf3 adds r2, r0, 0 _0814465C: adds r0, r5, 0 adds r1, r2, 0 bl __divsf3 mov r1, r8 str r0, [r1] adds r1, r6, 0 adds r1, 0x2A movs r0, 0x1 strb r0, [r1] adds r2, r6, 0 adds r2, 0x3F ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 movs r1, 0x11 negs r1, r1 ands r0, r1 strb r0, [r2] movs r0, 0x2 strh r0, [r6, 0x30] ldr r0, =sub_8144514 str r0, [r6, 0x1C] _0814468A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81445D8 thumb_func_start sub_81446AC sub_81446AC: @ 81446AC push {r4,lr} adds r4, r0, 0 movs r1, 0 movs r0, 0x1 strh r0, [r4, 0x30] strh r1, [r4, 0x32] adds r0, r4, 0 bl sub_8143B84 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r0, =sub_81445D8 str r0, [r4, 0x1C] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81446AC thumb_func_start sub_81446DC sub_81446DC: @ 81446DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r8, r0 ldr r1, =gUnknown_085B7B0A mov r0, sp movs r2, 0x8 bl memcpy mov r1, r8 ldrh r0, [r1, 0x3C] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r5, =gUnknown_0203AB88 ldr r0, =gSpriteTemplate_85B79F8 movs r2, 0xC negs r2, r2 movs r1, 0x24 movs r3, 0x32 bl CreateSprite ldr r1, [r5] adds r1, 0x73 strb r0, [r1] ldr r4, =gSpriteTemplate_85B7ABC mov r3, r8 movs r0, 0x2E ldrsh r2, [r3, r0] lsls r2, 2 mov r1, sp adds r0, r1, r2 movs r3, 0 ldrsh r1, [r0, r3] mov r0, sp adds r0, 0x2 adds r0, r2 movs r3, 0 ldrsh r2, [r0, r3] adds r0, r4, 0 movs r3, 0x3B bl CreateSprite ldr r1, [r5] adds r1, 0x74 strb r0, [r1] adds r4, 0x18 adds r0, r4, 0 movs r1, 0x24 movs r2, 0x8C movs r3, 0x33 bl CreateSprite ldr r1, [r5] adds r1, 0x75 strb r0, [r1] ldr r3, =gSprites ldr r0, [r5] adds r0, 0x75 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrb r2, [r0, 0x1] movs r1, 0xD negs r1, r1 ands r1, r2 movs r2, 0x4 orrs r1, r2 strb r1, [r0, 0x1] movs r7, 0 adds r6, r3, 0 ldr r0, =gUnknown_085B6348 mov r12, r0 mov r10, r5 _0814477C: ldr r0, [r5] adds r3, r7, 0 adds r3, 0x37 adds r0, 0x3C adds r0, r3 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 adds r1, 0x3E ldrb r2, [r1] movs r0, 0x3 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, [r5] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r5] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] ldr r0, [r5] adds r0, 0x3C adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] ldr r4, [r5] adds r2, r4, 0 adds r2, 0x3C adds r2, r3 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r1, r4, 0 adds r1, 0x73 ldrb r1, [r1] strh r1, [r0, 0x36] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r1, r4, 0 adds r1, 0x74 ldrb r1, [r1] strh r1, [r0, 0x38] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r1, r4, 0 adds r1, 0x75 ldrb r1, [r1] strh r1, [r0, 0x3A] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r1, r9 strh r1, [r0, 0x32] ldrb r0, [r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r6 mov r0, r8 movs r1, 0x3C ldrsh r3, [r0, r1] ldrb r1, [r4, 0x4] lsls r1, 30 lsrs r0, r1, 25 add r0, r12 ldrb r0, [r0, 0x1] muls r3, r0 lsrs r1, 25 add r1, r12 ldrb r0, [r1, 0x2] ldr r1, =0x0000ffff adds r0, r1 adds r3, r0 strh r3, [r2, 0x34] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldr r2, =gSprites cmp r7, 0x2 bls _0814477C mov r3, r10 ldr r0, [r3] adds r0, 0x74 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x2 orrs r1, r2 strb r1, [r0] ldr r0, [r3] mov r1, r8 str r1, [r0, 0x38] add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81446DC thumb_func_start sub_81448B8 sub_81448B8: @ 81448B8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r7, r0, 0 movs r0, 0 mov r8, r0 ldr r1, =gUnknown_085B7B12 mov r0, sp movs r2, 0x8 bl memcpy ldrh r0, [r7, 0x3C] subs r0, 0x2 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r0, =gSpriteTemplate_85B7A10 movs r1, 0x2E ldrsh r2, [r7, r1] lsls r2, 2 mov r3, sp adds r1, r3, r2 movs r3, 0 ldrsh r1, [r1, r3] mov r4, sp adds r4, 0x2 adds r2, r4, r2 movs r3, 0 ldrsh r2, [r2, r3] movs r3, 0x32 bl CreateSprite ldr r5, =gUnknown_0203AB88 ldr r1, [r5] adds r1, 0x73 strb r0, [r1] ldr r0, [r5] adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r6, =gSprites adds r0, r6 ldrh r1, [r7, 0x2E] lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim ldr r0, =gUnknown_085B7AEC movs r1, 0x2E ldrsh r2, [r7, r1] lsls r2, 2 mov r3, sp adds r1, r3, r2 movs r3, 0 ldrsh r1, [r1, r3] adds r4, r2 movs r3, 0 ldrsh r2, [r4, r3] movs r3, 0x33 bl CreateSprite ldr r1, [r5] adds r1, 0x74 strb r0, [r1] ldr r0, [r5] adds r0, 0x74 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x80 orrs r1, r2 strb r1, [r0] ldr r0, [r5] adds r0, 0x74 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x2C ldrb r1, [r0] movs r2, 0x40 orrs r1, r2 strb r1, [r0] mov r0, r9 lsls r2, r0, 16 asrs r2, 16 ldr r3, =gUnknown_085B6348 ldr r0, [r5] ldrb r1, [r0, 0x4] lsls r1, 30 lsrs r0, r1, 25 adds r0, r3 ldrb r0, [r0, 0x1] muls r2, r0 lsrs r1, 25 adds r1, r3 ldrh r0, [r1, 0x10] adds r0, 0x2D adds r2, r0 strh r2, [r7, 0x3C] _08144992: ldr r0, =gUnknown_0203AB88 ldr r4, [r0] mov r1, r8 adds r2, r4, r1 adds r2, 0x73 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r1, r4, 0 adds r1, 0x73 ldrb r1, [r1] strh r1, [r0, 0x36] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r3, r4, 0 adds r3, 0x74 ldrb r1, [r3] strh r1, [r0, 0x38] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r3] strh r1, [r0, 0x3A] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r3, r9 strh r3, [r0, 0x32] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r6 ldrh r0, [r7, 0x3C] subs r0, 0x2D strh r0, [r1, 0x34] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x1 bls _08144992 str r7, [r4, 0x38] add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81448B8 thumb_func_start sub_8144A24 sub_8144A24: @ 8144A24 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 adds r7, r0, 0 movs r0, 0 mov r9, r0 movs r1, 0x5 mov r8, r1 str r0, [sp, 0xC] mov r0, sp movs r1, 0 movs r2, 0xA bl memset bl Random lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x10] ldr r3, _08144B10 @ =gUnknown_0203AB88 ldr r0, [r3] adds r0, 0x7D movs r5, 0x1 strb r5, [r0] ldr r2, [r3] ldrb r0, [r2, 0x3] movs r1, 0x20 orrs r0, r1 strb r0, [r2, 0x3] ldr r2, [r3] ldrb r1, [r2, 0x3] movs r0, 0x41 negs r0, r0 ands r0, r1 strb r0, [r2, 0x3] ldr r0, [r3] adds r0, 0x7E movs r1, 0xFF strb r1, [r0] ldr r6, [r3] adds r4, r6, 0 adds r4, 0x88 movs r1, 0x34 ldrsh r0, [r7, r1] bl __floatsisf str r0, [r4] adds r1, r6, 0 adds r1, 0x98 ldr r0, _08144B14 @ =0x00000000 str r0, [r1] adds r2, r6, 0 adds r2, 0x8C ldr r1, _08144B18 @ =gUnknown_085B6348 ldrb r0, [r6, 0x4] lsls r0, 30 lsrs r0, 25 adds r1, 0x1C adds r0, r1 ldr r0, [r0] str r0, [r2] ldrb r0, [r6, 0x4] lsls r0, 30 lsrs r0, 30 lsls r1, r0, 4 subs r1, r0 lsls r1, 1 adds r1, 0x21 ldrb r0, [r6, 0x3] lsls r0, 27 lsrs r0, 27 subs r5, r0 lsls r0, r5, 4 subs r0, r5 adds r1, r0 lsls r1, 16 lsrs r1, 16 mov r5, r9 movs r0, 0x34 ldrsh r2, [r7, r0] _08144ACA: cmp r1, r2 bge _08144AD6 adds r0, r1, 0 adds r0, 0x5A cmp r2, r0 ble _08144B38 _08144AD6: cmp r5, 0x3 beq _08144B1C adds r0, r1, 0 adds r0, 0x5A lsls r0, 16 lsrs r1, r0, 16 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _08144ACA _08144AEC: ldr r0, _08144B10 @ =gUnknown_0203AB88 ldr r0, [r0] ldrb r1, [r0, 0x3] movs r0, 0x1F ands r0, r1 cmp r0, 0 beq _08144B64 movs r1, 0x2E ldrsh r0, [r7, r1] cmp r0, 0 beq _08144B58 movs r0, 0x98 lsls r0, 1 movs r1, 0x3F negs r1, r1 bl PlayCry1 b _08144B70 .align 2, 0 _08144B10: .4byte gUnknown_0203AB88 _08144B14: .4byte 0x00000000 _08144B18: .4byte gUnknown_085B6348 _08144B1C: movs r0, 0x1 strh r0, [r7, 0x2E] ldr r0, =gUnknown_0203AB88 ldr r2, [r0] ldrb r1, [r2, 0x3] movs r0, 0x20 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x3] b _08144AEC .pool _08144B38: lsrs r0, r5, 1 strh r0, [r7, 0x2E] ldr r0, =gUnknown_0203AB88 ldr r3, [r0] movs r1, 0x1 ands r1, r5 ldrb r2, [r3, 0x3] movs r0, 0x20 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x3] b _08144AEC .pool _08144B58: movs r0, 0x98 lsls r0, 1 movs r1, 0x3F bl PlayCry1 b _08144B70 _08144B64: movs r0, 0x99 lsls r0, 1 movs r1, 0x3F negs r1, r1 bl PlayCry1 _08144B70: movs r0, 0x2 mov r10, r0 ldr r4, =gUnknown_0203AB88 ldr r5, [r4] adds r0, r5, 0 adds r0, 0x7F ldrb r0, [r0] adds r0, 0x2 movs r1, 0xC bl __modsi3 lsls r0, 24 lsrs r6, r0, 24 ldrb r1, [r5, 0x3] movs r0, 0x1F ands r0, r1 cmp r0, 0x1 bne _08144BA8 ldrb r1, [r5, 0x4] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _08144BA8 mov r0, r8 adds r0, 0x6 b _08144BAC .pool _08144BA8: mov r0, r8 add r0, r10 _08144BAC: lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r5, r10 cmp r5, r8 bcs _08144C18 ldr r1, =gUnknown_085B6154+0xC mov r10, r1 _08144BBC: ldr r3, [r4] lsls r0, r6, 3 ldr r1, =gUnknown_085B62E4+0x4 adds r0, r1 ldr r1, [r3, 0x8] ldr r2, [r0] ands r1, r2 cmp r1, 0 bne _08144C02 mov r0, r9 adds r1, r0, 0x1 lsls r1, 24 lsrs r1, 24 mov r9, r1 add r0, sp strb r5, [r0] ldr r0, [sp, 0xC] cmp r0, 0 bne _08144C02 ldrb r1, [r3, 0x1A] lsls r1, 28 lsrs r1, 28 adds r0, r3, 0 adds r0, 0x1B adds r0, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 add r0, r10 ldr r0, [r0] ands r2, r0 cmp r2, 0 beq _08144C02 str r5, [sp, 0xC] _08144C02: adds r0, r6, 0x1 movs r1, 0xC bl __modsi3 lsls r0, 24 lsrs r6, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r8 bcc _08144BBC _08144C18: ldr r0, [r4] ldrb r1, [r0, 0x3] lsls r1, 27 lsrs r1, 27 adds r1, 0x1 ldrb r0, [r0, 0x2] ands r1, r0 cmp r1, 0 beq _08144C48 ldr r1, [sp, 0xC] cmp r1, 0 beq _08144C48 movs r0, 0xFF ldr r1, [sp, 0x10] ands r0, r1 cmp r0, 0xBF bhi _08144C48 mov r0, sp ldrh r0, [r0, 0xC] b _08144C54 .pool _08144C48: ldr r0, [sp, 0x10] mov r1, r9 bl __modsi3 add r0, sp ldrb r0, [r0] _08144C54: strh r0, [r7, 0x3C] ldr r1, =sub_8144168 str r1, [r7, 0x1C] add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8144A24 thumb_func_start sub_8144C70 sub_8144C70: @ 8144C70 push {r4,lr} adds r2, r0, 0 ldrh r0, [r2, 0x30] adds r1, r0, 0x1 strh r1, [r2, 0x30] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r2, r3] cmp r0, r1 blt _08144CC0 ldrh r0, [r2, 0x20] subs r0, 0x2 strh r0, [r2, 0x20] lsls r0, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bge _08144CC0 ldr r4, =gUnknown_0203AB88 ldr r3, [r4] ldrb r1, [r3, 0x3] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _08144CAC movs r0, 0x40 orrs r0, r1 strb r0, [r3, 0x3] _08144CAC: adds r0, r2, 0 bl DestroySprite ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x1] ldr r1, [r4] ldr r0, =gUnknown_085B7B1A ldrh r0, [r0] strh r0, [r1, 0x34] _08144CC0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8144C70 thumb_func_start sub_8144CD0 sub_8144CD0: @ 8144CD0 push {r4,lr} sub sp, 0x18 adds r4, r0, 0 ldr r1, =gUnknown_085B7B2E mov r0, sp movs r2, 0x18 bl memcpy ldrh r0, [r4, 0x30] adds r2, r0, 0x1 strh r2, [r4, 0x30] lsls r0, 16 asrs r0, 16 movs r3, 0x34 ldrsh r1, [r4, r3] cmp r0, r1 bge _08144D54 movs r0, 0x1 ands r2, r0 cmp r2, 0 beq _08144D2E ldr r3, =gSpriteCoordOffsetY movs r0, 0x3C ldrsh r2, [r4, r0] lsls r2, 1 movs r1, 0x32 ldrsh r0, [r4, r1] lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 3 adds r2, r0 mov r1, sp adds r0, r1, r2 ldrh r0, [r0] strh r0, [r3] movs r3, 0x3C ldrsh r2, [r4, r3] adds r1, r2, 0x1 adds r0, r1, 0 cmp r1, 0 bge _08144D26 adds r0, r2, 0x4 _08144D26: asrs r0, 2 lsls r0, 2 subs r0, r1, r0 strh r0, [r4, 0x3C] _08144D2E: adds r3, r4, 0 adds r3, 0x3E ldrb r2, [r3] lsls r0, r2, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3] b _08144D7E .pool _08144D54: ldr r1, =gSpriteCoordOffsetY movs r0, 0 strh r0, [r1] ldr r2, =gSprites ldr r0, =gUnknown_0203AB88 ldr r0, [r0] adds r0, 0x73 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2C ldrb r2, [r0] movs r1, 0x41 negs r1, r1 ands r1, r2 strb r1, [r0] adds r0, r4, 0 bl DestroySprite _08144D7E: add sp, 0x18 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8144CD0 thumb_func_start sub_8144D94 sub_8144D94: @ 8144D94 push {r4,r5,lr} adds r5, r0, 0 ldrh r0, [r5, 0x30] adds r0, 0x1 strh r0, [r5, 0x30] movs r1, 0x30 ldrsh r0, [r5, r1] bl __floatsisf adds r4, r0, 0 ldr r1, =0x3d1fbe77 bl __mulsf3 adds r1, r4, 0 bl __mulsf3 bl __fixsfsi strh r0, [r5, 0x26] ldr r0, =gUnknown_0203AB88 ldr r3, [r0] ldr r2, =gUnknown_085B7B1A ldrb r0, [r3, 0x1] subs r0, 0x1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r3, 0x34] ldrb r0, [r3, 0x1] cmp r0, 0x12 bhi _08144DDC adds r0, 0x1 strb r0, [r3, 0x1] _08144DDC: movs r1, 0x30 ldrsh r0, [r5, r1] cmp r0, 0x3C ble _08144E3E movs r0, 0 strh r0, [r5, 0x30] ldr r3, =sub_8144C70 str r3, [r5, 0x1C] ldr r2, =gSprites movs r0, 0x3A ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r4, r2, 0 adds r4, 0x1C adds r0, r4 str r3, [r0] movs r0, 0x3A ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =0x0000fffe strh r1, [r0, 0x30] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] movs r0, 0x38 ldrsh r1, [r5, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_8144CD0 str r1, [r0] movs r0, 0xD6 bl m4aSongNumStart _08144E3E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8144D94 thumb_func_start sub_8144E60 sub_8144E60: @ 8144E60 push {r4,r5,lr} adds r4, r0, 0 movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0 bne _08144EE4 ldr r0, =gUnknown_0203AB88 ldr r3, [r0] ldr r1, [r3, 0x38] movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 bne _08144E94 movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, =gUnknown_085B6348 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x8] b _08144EA6 .pool _08144E94: movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, =gUnknown_085B6348 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x8] adds r0, 0xB4 _08144EA6: cmp r2, r0 bne _08144F7C adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldrh r0, [r4, 0x3C] adds r0, 0x1 strh r0, [r4, 0x3C] movs r0, 0x2B bl m4aSongNumStart ldr r2, =gUnknown_0203AB88 ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x1] ldr r1, [r2] ldr r0, =gUnknown_085B7B1A ldrh r0, [r0] strh r0, [r1, 0x34] b _08144F7C .pool _08144EE4: ldr r5, =gUnknown_0203AB88 ldr r3, [r5] ldr r2, =gUnknown_085B7B1A ldrb r0, [r3, 0x1] subs r0, 0x1 lsrs r1, r0, 31 adds r0, r1 asrs r0, 1 lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r3, 0x34] ldrb r0, [r3, 0x1] cmp r0, 0x12 bhi _08144F06 adds r0, 0x1 strb r0, [r3, 0x1] _08144F06: ldr r3, [r5] ldr r1, [r3, 0x38] movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 bne _08144F30 movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, =gUnknown_085B6348 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0xA] b _08144F42 .pool _08144F30: movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, =gUnknown_085B6348 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0xA] adds r0, 0xB4 _08144F42: cmp r2, r0 bne _08144F7C ldr r2, =gSprites movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldr r1, =sub_8144D94 str r1, [r0] movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] movs r0, 0 strh r0, [r4, 0x3C] _08144F7C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8144E60 thumb_func_start sub_8144F94 sub_8144F94: @ 8144F94 adds r0, 0x3E ldrb r3, [r0] lsls r1, r3, 29 lsrs r1, 31 movs r2, 0x1 eors r2, r1 lsls r2, 2 movs r1, 0x5 negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0] bx lr thumb_func_end sub_8144F94 thumb_func_start sub_8144FB0 sub_8144FB0: @ 8144FB0 push {r4,r5,lr} adds r4, r0, 0 ldrh r2, [r4, 0x22] movs r0, 0x22 ldrsh r1, [r4, r0] movs r0, 0x10 negs r0, r0 cmp r1, r0 ble _08144FC8 subs r0, r2, 0x1 strh r0, [r4, 0x22] b _0814501C _08144FC8: ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] subs r2, 0x12 ldrb r0, [r2] movs r1, 0x40 orrs r0, r1 strb r0, [r2] movs r0, 0x5E bl m4aSongNumStop adds r0, r4, 0 bl DestroySprite ldr r5, =gSprites ldr r4, =gUnknown_0203AB88 ldr r0, [r4] adds r0, 0x74 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 ldr r0, [r4] adds r0, 0x74 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite _0814501C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8144FB0 thumb_func_start sub_8145030 sub_8145030: @ 8145030 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x30] movs r2, 0x30 ldrsh r0, [r4, r2] cmp r0, 0 blt _0814505A subs r1, 0x1 strh r1, [r4, 0x30] ldrh r0, [r4, 0x22] subs r0, 0x1 strh r0, [r4, 0x22] lsls r1, 16 cmp r1, 0 bne _081450C6 adds r0, r4, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _081450C6 b _08145080 _0814505A: ldrh r1, [r4, 0x34] movs r2, 0x34 ldrsh r0, [r4, r2] cmp r0, 0 blt _08145090 subs r0, r1, 0x1 strh r0, [r4, 0x34] adds r0, r4, 0 adds r0, 0x2C ldrb r1, [r0] movs r0, 0x3F ands r0, r1 cmp r0, 0 bne _081450C6 adds r0, r4, 0 adds r0, 0x2B ldrb r0, [r0] cmp r0, 0x1 bne _08145088 _08145080: ldrh r0, [r4, 0x26] adds r0, 0x1 strh r0, [r4, 0x26] b _081450C6 _08145088: ldrh r0, [r4, 0x26] subs r0, 0x1 strh r0, [r4, 0x26] b _081450C6 _08145090: movs r0, 0x2B bl m4aSongNumStart ldr r0, =gUnknown_0203AB88 ldr r0, [r0] ldr r0, [r0, 0x38] ldrh r1, [r0, 0x2E] adds r1, 0x4 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldr r0, =sub_8144FB0 str r0, [r4, 0x1C] ldr r2, =gSprites movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x2C ldrb r2, [r0] movs r1, 0x7F ands r1, r2 strb r1, [r0] _081450C6: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8145030 thumb_func_start sub_81450D8 sub_81450D8: @ 81450D8 push {r4,r5,lr} sub sp, 0x14 adds r4, r0, 0 ldr r1, =gUnknown_085B7B46 mov r0, sp movs r2, 0x2 bl memcpy add r5, sp, 0x4 ldr r1, =gUnknown_085B7B48 adds r0, r5, 0 movs r2, 0x10 bl memcpy ldrh r0, [r4, 0x30] subs r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _0814516C ldr r0, =gUnknown_0203AB88 ldr r0, [r0] ldr r0, [r0, 0x38] movs r1, 0x2E ldrsh r0, [r0, r1] add r0, sp ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] bl IsSEPlaying lsls r0, 24 cmp r0, 0 beq _08145208 movs r1, 0x20 ldrsh r0, [r4, r1] movs r4, 0x74 subs r4, r0 lsrs r0, r4, 31 adds r4, r0 asrs r4, 1 negs r4, r4 ldr r0, =gMPlayInfo_SE1 ldr r5, =0x0000ffff lsls r4, 24 asrs r4, 24 adds r1, r5, 0 adds r2, r4, 0 bl m4aMPlayPanpotControl ldr r0, =gMPlayInfo_SE2 adds r1, r5, 0 adds r2, r4, 0 bl m4aMPlayPanpotControl b _08145208 .pool _0814516C: lsls r0, r1, 16 cmp r0, 0 blt _081451BC ldr r0, =gUnknown_0203AB88 ldr r0, [r0] ldr r0, [r0, 0x38] movs r2, 0x2E ldrsh r0, [r0, r2] add r0, sp movs r2, 0 ldrsb r2, [r0, r2] movs r1, 0x30 ldrsh r0, [r4, r1] movs r1, 0x7 subs r0, r1, r0 lsls r0, 1 adds r0, r5, r0 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 muls r0, r2 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] movs r2, 0x30 ldrsh r0, [r4, r2] subs r1, r0 lsls r1, 1 mov r0, sp adds r0, 0x5 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 ldrh r1, [r4, 0x22] adds r0, r1 strh r0, [r4, 0x22] b _08145208 .pool _081451BC: movs r0, 0x5E bl m4aSongNumStartOrChange ldr r0, =gUnknown_0203AB88 ldr r0, [r0] ldr r0, [r0, 0x38] movs r2, 0x2E ldrsh r0, [r0, r2] cmp r0, 0 bne _081451E0 movs r0, 0x98 lsls r0, 1 movs r1, 0x3F bl PlayCry1 b _081451EC .pool _081451E0: movs r0, 0x98 lsls r0, 1 movs r1, 0x3F negs r1, r1 bl PlayCry1 _081451EC: ldr r0, =gUnknown_0203AB88 ldr r0, [r0] ldr r0, [r0, 0x38] ldrh r1, [r0, 0x2E] adds r1, 0x2 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim movs r0, 0x2D strh r0, [r4, 0x30] ldr r0, =sub_8145030 str r0, [r4, 0x1C] _08145208: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81450D8 thumb_func_start sub_8145218 sub_8145218: @ 8145218 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 ldr r1, =gUnknown_085B7B46 mov r0, sp movs r2, 0x2 bl memcpy ldrh r0, [r4, 0x30] subs r1, r0, 0x1 strh r1, [r4, 0x30] lsls r0, 16 cmp r0, 0 blt _08145284 ldr r0, =gUnknown_0203AB88 ldr r0, [r0] ldr r0, [r0, 0x38] movs r1, 0x2E ldrsh r0, [r0, r1] add r0, sp ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 1 ldrh r2, [r4, 0x20] adds r0, r2 strh r0, [r4, 0x20] ldr r1, =gSprites movs r2, 0x3A ldrsh r0, [r4, r2] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r1 adds r2, 0x3E ldrb r3, [r2] lsls r0, r3, 29 lsrs r0, 31 movs r1, 0x1 eors r1, r0 lsls r1, 2 movs r0, 0x5 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] b _08145288 .pool _08145284: ldr r0, =sub_8144F94 str r0, [r4, 0x1C] _08145288: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8145218 thumb_func_start sub_8145294 sub_8145294: @ 8145294 push {r4,lr} adds r4, r0, 0 ldr r0, =gUnknown_0203AB88 ldr r3, [r0] ldr r1, [r3, 0x38] movs r2, 0x2E ldrsh r0, [r1, r2] cmp r0, 0 bne _081452DC movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, =gUnknown_085B6348 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x12] adds r0, 0x5A cmp r2, r0 bne _0814533E ldr r2, =gSprites movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x34 b _08145306 .pool _081452DC: movs r0, 0x34 ldrsh r2, [r1, r0] ldr r1, =gUnknown_085B6348 ldrb r0, [r3, 0x4] lsls r0, 30 lsrs r0, 25 adds r0, r1 ldrh r0, [r0, 0x14] movs r1, 0x87 lsls r1, 1 adds r0, r1 cmp r2, r0 bne _0814533E ldr r2, =gSprites movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 movs r3, 0x2E _08145306: strh r3, [r0, 0x30] movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r3, [r0, 0x30] movs r0, 0x3A ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, 0x1C adds r0, r2 ldr r1, =sub_8145218 str r1, [r0] movs r0, 0x36 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r1, =sub_81450D8 str r1, [r0] movs r0, 0x2B bl m4aSongNumStart _0814533E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8145294 .align 2, 0 @ Don't pad with nop.