diff options
Diffstat (limited to 'asm/roulette.s')
-rw-r--r-- | asm/roulette.s | 9659 |
1 files changed, 9659 insertions, 0 deletions
diff --git a/asm/roulette.s b/asm/roulette.s new file mode 100644 index 000000000..f26f66698 --- /dev/null +++ b/asm/roulette.s @@ -0,0 +1,9659 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_81150FC +sub_81150FC: @ 81150FC + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _08115120 @ =0x02019000 + adds r1, r0, 0 + adds r1, 0xB8 + ldrb r0, [r1] + cmp r0, 0 + beq _0811511C + adds r0, r1, 0 + bl task_tutorial_controls_fadein +_0811511C: + pop {r0} + bx r0 + .align 2, 0 +_08115120: .4byte 0x02019000 + thumb_func_end sub_81150FC + + thumb_func_start sub_8115124 +sub_8115124: @ 8115124 + push {r4,lr} + sub sp, 0x4 + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_8117434 + ldr r2, _08115188 @ =REG_BG1HOFS + ldr r3, _0811518C @ =0x02019000 + ldrh r1, [r3, 0x26] + movs r4, 0x80 + lsls r4, 2 + adds r0, r4, 0 + subs r0, r1 + strh r0, [r2] + ldrb r0, [r3, 0x1] + cmp r0, 0 + beq _08115154 + ldr r1, _08115190 @ =REG_BLDALPHA + ldrh r0, [r3, 0x34] + strh r0, [r1] +_08115154: + movs r1, 0x2A + ldrsh r0, [r3, r1] + cmp r0, 0 + beq _08115170 + ldr r1, _08115194 @ =0x040000d4 + ldr r0, _08115198 @ =gBG1TilemapBuffer + 0x1C0 + str r0, [r1] + ldr r0, _0811519C @ =0x060021c0 + str r0, [r1, 0x4] + ldr r0, _081151A0 @ =0x800001a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0 + strh r0, [r3, 0x2A] +_08115170: + movs r2, 0x28 + ldrsh r0, [r3, r2] + cmp r0, 0x1 + beq _081151A4 + cmp r0, 0x1 + ble _0811521A + cmp r0, 0x2 + beq _081151D4 + cmp r0, 0xFF + beq _081151F8 + b _0811521A + .align 2, 0 +_08115188: .4byte REG_BG1HOFS +_0811518C: .4byte 0x02019000 +_08115190: .4byte REG_BLDALPHA +_08115194: .4byte 0x040000d4 +_08115198: .4byte gBG1TilemapBuffer + 0x1C0 +_0811519C: .4byte 0x060021c0 +_081151A0: .4byte 0x800001a0 +_081151A4: + ldr r1, _081151C4 @ =REG_BG0CNT + movs r4, 0xF8 + lsls r4, 5 + adds r0, r4, 0 + strh r0, [r1] + adds r1, 0xCC + ldr r0, _081151C8 @ =gBG2TilemapBuffer + 0x1C0 + str r0, [r1] + ldr r0, _081151CC @ =0x0600f9c0 + str r0, [r1, 0x4] + ldr r0, _081151D0 @ =0x800001a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0x2 + b _08115218 + .align 2, 0 +_081151C4: .4byte REG_BG0CNT +_081151C8: .4byte gBG2TilemapBuffer + 0x1C0 +_081151CC: .4byte 0x0600f9c0 +_081151D0: .4byte 0x800001a0 +_081151D4: + ldr r1, _081151E8 @ =0x040000d4 + ldr r0, _081151EC @ =gBG2TilemapBuffer + 0x1C0 + str r0, [r1] + ldr r0, _081151F0 @ =0x0600f9c0 + str r0, [r1, 0x4] + ldr r0, _081151F4 @ =0x800001a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + b _0811521A + .align 2, 0 +_081151E8: .4byte 0x040000d4 +_081151EC: .4byte gBG2TilemapBuffer + 0x1C0 +_081151F0: .4byte 0x0600f9c0 +_081151F4: .4byte 0x800001a0 +_081151F8: + ldr r1, _08115224 @ =REG_BG0CNT + ldr r2, _08115228 @ =0x00001f08 + adds r0, r2, 0 + strh r0, [r1] + mov r1, sp + movs r0, 0 + strh r0, [r1] + ldr r1, _0811522C @ =0x040000d4 + mov r4, sp + str r4, [r1] + ldr r0, _08115230 @ =0x0600f9c0 + str r0, [r1, 0x4] + ldr r0, _08115234 @ =0x810001a0 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r0, 0 +_08115218: + strh r0, [r3, 0x28] +_0811521A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115224: .4byte REG_BG0CNT +_08115228: .4byte 0x00001f08 +_0811522C: .4byte 0x040000d4 +_08115230: .4byte 0x0600f9c0 +_08115234: .4byte 0x810001a0 + thumb_func_end sub_8115124 + + thumb_func_start sub_8115238 +sub_8115238: @ 8115238 + push {r4-r6,lr} + sub sp, 0x8 + ldr r1, _081152C0 @ =gUnknown_083F8EC4 + mov r0, sp + movs r2, 0x6 + bl memcpy + ldr r5, _081152C4 @ =0x02019000 + movs r2, 0xBE + lsls r2, 1 + adds r0, r5, 0 + movs r1, 0 + bl memset + ldr r0, _081152C8 @ =gUnknown_0202E8CC + ldrh r2, [r0] + movs r0, 0x1 + ands r0, r2 + ldrb r1, [r5, 0x4] + movs r3, 0x4 + negs r3, r3 + ands r3, r1 + orrs r3, r0 + strb r3, [r5, 0x4] + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _08115276 + movs r0, 0x80 + orrs r3, r0 + strb r3, [r5, 0x4] +_08115276: + ldr r3, _081152CC @ =gUnknown_083F8DF4 + ldrb r2, [r5, 0x4] + lsls r1, r2, 30 + lsrs r0, r1, 25 + adds r0, r3 + ldrb r0, [r0, 0x3] + adds r4, r5, 0 + adds r4, 0x22 + strb r0, [r4] + lsrs r0, r1, 25 + adds r0, r3 + ldrb r0, [r0, 0x4] + adds r3, r5, 0 + adds r3, 0x23 + strb r0, [r3] + ldr r0, _081152D0 @ =gUnknown_083F8DF0 + lsrs r1, 30 + lsls r2, 24 + lsrs r2, 31 + lsls r2, 1 + adds r1, r2 + adds r1, r0 + ldrb r2, [r1] + strb r2, [r5, 0x19] + ldrb r1, [r5, 0x1A] + movs r0, 0xF + ands r0, r1 + movs r1, 0x10 + orrs r0, r1 + strb r0, [r5, 0x1A] + cmp r2, 0x1 + bne _081152DC + ldr r4, _081152D4 @ =gPlttBufferUnfaded + ldr r3, _081152D8 @ =gPlttBufferFaded + mov r0, sp + ldrh r2, [r0] + b _081152E4 + .align 2, 0 +_081152C0: .4byte gUnknown_083F8EC4 +_081152C4: .4byte 0x02019000 +_081152C8: .4byte gUnknown_0202E8CC +_081152CC: .4byte gUnknown_083F8DF4 +_081152D0: .4byte gUnknown_083F8DF0 +_081152D4: .4byte gPlttBufferUnfaded +_081152D8: .4byte gPlttBufferFaded +_081152DC: + ldr r4, _08115348 @ =gPlttBufferUnfaded + ldr r3, _0811534C @ =gPlttBufferFaded + mov r0, sp + ldrh r2, [r0, 0x2] +_081152E4: + adds r0, r3, 0 + adds r0, 0xA2 + strh r2, [r0] + ldr r1, _08115350 @ =0x0000ffff + adds r0, r1, 0 + ands r0, r2 + strh r0, [r3] + ands r0, r1 + adds r2, r4, 0 + adds r2, 0xA2 + strh r0, [r2] + ands r0, r1 + strh r0, [r4] + ldr r0, _08115354 @ =0x020190b8 + bl sub_8124918 + movs r4, 0 + ldr r5, _08115358 @ =gUnknown_083F8E34 +_08115308: + lsls r2, r4, 3 + adds r2, r5 + ldr r0, _08115354 @ =0x020190b8 + adds r1, r4, 0 + bl sub_812492C + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xC + bls _08115308 + movs r4, 0 + ldr r5, _0811535C @ =0x02019000 +_08115322: + movs r0, 0x64 + muls r0, r4 + ldr r1, _08115360 @ =gPlayerParty + adds r0, r1 + movs r1, 0x41 + bl GetMonData + adds r1, r0, 0 + movs r0, 0x98 + lsls r0, 1 + cmp r1, r0 + beq _08115364 + adds r0, 0x2 + cmp r1, r0 + bne _0811536C + ldrb r0, [r5, 0x2] + movs r1, 0x1 + b _08115368 + .align 2, 0 +_08115348: .4byte gPlttBufferUnfaded +_0811534C: .4byte gPlttBufferFaded +_08115350: .4byte 0x0000ffff +_08115354: .4byte 0x020190b8 +_08115358: .4byte gUnknown_083F8E34 +_0811535C: .4byte 0x02019000 +_08115360: .4byte gPlayerParty +_08115364: + ldrb r0, [r5, 0x2] + movs r1, 0x2 +_08115368: + orrs r0, r1 + strb r0, [r5, 0x2] +_0811536C: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _08115322 + bl RtcCalcLocalTime + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8115238 + + thumb_func_start sub_8115384 +sub_8115384: @ 8115384 + push {r4,lr} + sub sp, 0x4 + ldr r1, _081153A4 @ =gMain + ldr r2, _081153A8 @ =0x0000043c + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0x7 + bls _08115398 + b _081155FE +_08115398: + lsls r0, 2 + ldr r1, _081153AC @ =_081153B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081153A4: .4byte gMain +_081153A8: .4byte 0x0000043c +_081153AC: .4byte _081153B0 + .align 2, 0 +_081153B0: + .4byte _081153D0 + .4byte _08115444 + .4byte _08115460 + .4byte _08115494 + .4byte _081154CC + .4byte _081154FC + .4byte _0811556C + .4byte _0811558C +_081153D0: + movs r0, 0 + bl SetVBlankCallback + bl remove_some_task + bl sub_80F9438 + bl sub_80F9368 + ldr r1, _08115420 @ =REG_BG2CNT + ldr r3, _08115424 @ =0x00004686 + adds r0, r3, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _08115428 @ =0x00004401 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x46 + movs r3, 0x90 + lsls r3, 6 + adds r0, r3, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0811542C @ =0x0000060a + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _08115430 @ =gUnknown_08E8096C + movs r1, 0xC0 + lsls r1, 19 + bl LZ77UnCompVram + ldr r0, _08115434 @ =gUnknown_08E81098 + ldr r1, _08115438 @ =0x06004000 + bl LZ77UnCompVram + ldr r1, _0811543C @ =gMain + ldr r3, _08115440 @ =0x0000043c + adds r1, r3 + b _0811557A + .align 2, 0 +_08115420: .4byte REG_BG2CNT +_08115424: .4byte 0x00004686 +_08115428: .4byte 0x00004401 +_0811542C: .4byte 0x0000060a +_08115430: .4byte gUnknown_08E8096C +_08115434: .4byte gUnknown_08E81098 +_08115438: .4byte 0x06004000 +_0811543C: .4byte gMain +_08115440: .4byte 0x0000043c +_08115444: + bl ResetPaletteFade + bl ResetSpriteData + bl ResetTasks + ldr r1, _08115458 @ =gMain + ldr r0, _0811545C @ =0x0000043c + adds r1, r0 + b _0811557A + .align 2, 0 +_08115458: .4byte gMain +_0811545C: .4byte 0x0000043c +_08115460: + ldr r0, _08115480 @ =gWindowConfig_81E6C3C + bl SetUpWindowConfig + ldr r0, _08115484 @ =gWindowConfig_81E6CE4 + bl InitMenuWindow + ldr r0, _08115488 @ =gUnknown_083F86BC + movs r2, 0xE0 + lsls r2, 1 + movs r1, 0 + bl LoadPalette + ldr r1, _0811548C @ =gMain + ldr r2, _08115490 @ =0x0000043c + adds r1, r2 + b _0811557A + .align 2, 0 +_08115480: .4byte gWindowConfig_81E6C3C +_08115484: .4byte gWindowConfig_81E6CE4 +_08115488: .4byte gUnknown_083F86BC +_0811548C: .4byte gMain +_08115490: .4byte 0x0000043c +_08115494: + bl sub_8115238 + bl sub_80F9020 + ldr r0, _081154B4 @ =gUnknown_083F88BC + ldr r1, _081154B8 @ =0x02018800 + bl LZ77UnCompWram + ldr r0, _081154BC @ =gUnknown_083F8A60 + ldr r1, _081154C0 @ =0x06003000 + bl LZ77UnCompVram + ldr r1, _081154C4 @ =gMain + ldr r3, _081154C8 @ =0x0000043c + adds r1, r3 + b _0811557A + .align 2, 0 +_081154B4: .4byte gUnknown_083F88BC +_081154B8: .4byte 0x02018800 +_081154BC: .4byte gUnknown_083F8A60 +_081154C0: .4byte 0x06003000 +_081154C4: .4byte gMain +_081154C8: .4byte 0x0000043c +_081154CC: + movs r0, 0 + bl sub_8117838 + bl sub_811857C + bl sub_81184D8 + bl sub_8117F2C + bl sub_8117900 + bl sub_8117BBC + bl sub_8117DF4 + ldr r1, _081154F4 @ =gMain + ldr r0, _081154F8 @ =0x0000043c + adds r1, r0 + b _0811557A + .align 2, 0 +_081154F4: .4byte gMain +_081154F8: .4byte 0x0000043c +_081154FC: + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _08115550 @ =gSaveBlock1 + ldr r1, _08115554 @ =0x00000494 + adds r0, r1 + ldrh r0, [r0] + bl sub_81180F4 + movs r0, 0x6 + bl sub_81182F8 + movs r0, 0 + bl sub_811829C + movs r0, 0 + bl sub_8117158 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08115558 @ =gUnknown_081C4157 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _0811555C @ =gSpriteCoordOffsetX + movs r2, 0x3C + negs r2, r2 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08115560 @ =gSpriteCoordOffsetY + movs r0, 0 + strh r0, [r1] + ldr r1, _08115564 @ =gMain + ldr r3, _08115568 @ =0x0000043c + adds r1, r3 + b _0811557A + .align 2, 0 +_08115550: .4byte gSaveBlock1 +_08115554: .4byte 0x00000494 +_08115558: .4byte gUnknown_081C4157 +_0811555C: .4byte gSpriteCoordOffsetX +_08115560: .4byte gSpriteCoordOffsetY +_08115564: .4byte gMain +_08115568: .4byte 0x0000043c +_0811556C: + movs r1, 0x80 + lsls r1, 19 + ldr r3, _08115584 @ =0x00001741 + adds r0, r3, 0 + strh r0, [r1] + ldr r0, _08115588 @ =0x0000043c + adds r1, r2, r0 +_0811557A: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _081155FE + .align 2, 0 +_08115584: .4byte 0x00001741 +_08115588: .4byte 0x0000043c +_0811558C: + ldr r3, _08115608 @ =0x04000208 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _0811560C @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _08115610 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _08115614 @ =sub_8115124 + bl SetVBlankCallback + movs r0, 0x1 + str r0, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0x10 + movs r3, 0 + bl BeginHardwarePaletteFade + ldr r0, _08115618 @ =sub_81156BC + movs r1, 0 + bl CreateTask + ldr r4, _0811561C @ =0x02019000 + adds r1, r4, 0 + adds r1, 0xA4 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08115620 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0x6 + strh r0, [r1, 0x14] + ldr r0, _08115624 @ =gSaveBlock1 + ldr r2, _08115628 @ =0x00000494 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1, 0x22] + ldr r0, _0811562C @ =sub_8115634 + movs r1, 0x1 + bl CreateTask + adds r4, 0xA5 + strb r0, [r4] + ldr r0, _08115630 @ =sub_81150FC + bl SetMainCallback2 +_081155FE: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115608: .4byte 0x04000208 +_0811560C: .4byte 0x04000200 +_08115610: .4byte REG_DISPSTAT +_08115614: .4byte sub_8115124 +_08115618: .4byte sub_81156BC +_0811561C: .4byte 0x02019000 +_08115620: .4byte gTasks +_08115624: .4byte gSaveBlock1 +_08115628: .4byte 0x00000494 +_0811562C: .4byte sub_8115634 +_08115630: .4byte sub_81150FC + thumb_func_end sub_8115384 + + thumb_func_start sub_8115634 +sub_8115634: @ 8115634 + push {r4-r6,lr} + ldr r0, _081156B8 @ =0x02019000 + adds r3, r0, 0 + adds r3, 0x21 + ldrb r1, [r3] + adds r2, r1, 0x1 + strb r2, [r3] + adds r2, r0, 0 + adds r2, 0x23 + lsls r1, 24 + lsrs r1, 24 + adds r6, r0, 0 + ldrb r2, [r2] + cmp r1, r2 + bne _08115674 + movs r0, 0 + strb r0, [r3] + adds r2, r6, 0 + adds r2, 0x22 + ldrb r1, [r2] + ldrh r0, [r6, 0x24] + subs r0, r1 + strh r0, [r6, 0x24] + lsls r0, 16 + cmp r0, 0 + bge _08115674 + ldrb r1, [r2] + movs r2, 0xB4 + lsls r2, 1 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r6, 0x24] +_08115674: + adds r4, r6, 0 + ldrh r0, [r4, 0x24] + bl Sin2 + lsls r0, 16 + lsrs r5, r0, 16 + ldrh r0, [r4, 0x24] + bl Cos2 + lsls r0, 16 + lsrs r1, r0, 16 + lsls r0, r5, 16 + asrs r0, 16 + cmp r0, 0 + bge _08115694 + adds r0, 0xF +_08115694: + lsls r0, 12 + lsrs r5, r0, 16 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0 + bge _081156A2 + adds r0, 0xF +_081156A2: + asrs r0, 4 + strh r0, [r6, 0x32] + strh r0, [r6, 0x2C] + strh r5, [r6, 0x2E] + lsls r0, r5, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r6, 0x30] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081156B8: .4byte 0x02019000 + thumb_func_end sub_8115634 + + thumb_func_start sub_81156BC +sub_81156BC: @ 81156BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl UpdatePaletteFade + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _08115716 + ldr r2, _0811571C @ =REG_BLDCNT + ldrh r0, [r2] + movs r5, 0x90 + lsls r5, 6 + adds r1, r5, 0 + orrs r0, r1 + strh r0, [r2] + ldr r1, _08115720 @ =REG_BLDALPHA + ldr r2, _08115724 @ =0x00000808 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08115728 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + strh r3, [r0, 0x14] + adds r0, r4, 0 + bl sub_8116CAC + bl sub_8116CF8 + bl sub_81185E8 + movs r0, 0 + bl sub_8117158 + movs r0, 0x6 + bl sub_81182F8 + ldr r1, _0811572C @ =sub_81159BC + ldr r2, _08115730 @ =0x0000ffff + adds r0, r4, 0 + movs r3, 0x3 + bl sub_8116C34 +_08115716: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811571C: .4byte REG_BLDCNT +_08115720: .4byte REG_BLDALPHA +_08115724: .4byte 0x00000808 +_08115728: .4byte gTasks +_0811572C: .4byte sub_81159BC +_08115730: .4byte 0x0000ffff + thumb_func_end sub_81156BC + + thumb_func_start sub_8115734 +sub_8115734: @ 8115734 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _08115770 @ =0x00002d9e + bl sub_814AAF8 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08115774 @ =gUnknown_081C41E3 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _08115778 @ =gUnknown_083F8EBC + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115770: .4byte 0x00002d9e +_08115774: .4byte gUnknown_081C41E3 +_08115778: .4byte gUnknown_083F8EBC + thumb_func_end sub_8115734 + + thumb_func_start sub_811577C +sub_811577C: @ 811577C + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1A + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r1, _081157A4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081157A8 @ =sub_81159BC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081157A4: .4byte gTasks +_081157A8: .4byte sub_81159BC + thumb_func_end sub_811577C + + thumb_func_start sub_81157AC +sub_81157AC: @ 81157AC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _081157CC @ =0x02019000 + adds r0, 0xA5 + ldrb r0, [r0] + bl DestroyTask + adds r0, r4, 0 + bl sub_8116AB0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081157CC: .4byte 0x02019000 + thumb_func_end sub_81157AC + + thumb_func_start sub_81157D0 +sub_81157D0: @ 81157D0 + push {r4-r7,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bhi _081158C8 + lsls r0, r4, 2 + ldr r1, _081157E8 @ =_081157EC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_081157E8: .4byte _081157EC + .align 2, 0 +_081157EC: + .4byte _0811582C + .4byte _08115848 + .4byte _08115848 + .4byte _08115848 + .4byte _08115848 + .4byte _08115884 + .4byte _081158C8 + .4byte _081158C8 + .4byte _081158C8 + .4byte _081158C8 + .4byte _08115884 + .4byte _081158C8 + .4byte _081158C8 + .4byte _081158C8 + .4byte _081158C8 + .4byte _08115884 +_0811582C: + ldr r0, _08115844 @ =gBG2TilemapBuffer + movs r1, 0x10 + str r1, [sp] + movs r1, 0xD + str r1, [sp, 0x4] + movs r1, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124DDC + b _08115918 + .align 2, 0 +_08115844: .4byte gBG2TilemapBuffer +_08115848: + lsls r0, r4, 1 + adds r0, r4 + adds r0, 0xE + lsls r0, 24 + lsrs r7, r0, 24 + ldr r5, _0811587C @ =gBG2TilemapBuffer + movs r0, 0x10 + str r0, [sp] + movs r4, 0xD + str r4, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124DDC + ldr r1, _08115880 @ =0x02018a32 + movs r0, 0x3 + str r0, [sp] + str r4, [sp, 0x4] + adds r0, r5, 0 + adds r2, r7, 0 + movs r3, 0x7 + bl sub_8124E2C + b _08115918 + .align 2, 0 +_0811587C: .4byte gBG2TilemapBuffer +_08115880: .4byte 0x02018a32 +_08115884: + subs r0, r4, 0x1 + movs r1, 0x5 + bl __divsi3 + lsls r1, r0, 1 + adds r1, r0 + adds r1, 0xA + lsls r1, 24 + lsrs r6, r1, 24 + ldr r5, _081158C0 @ =gBG2TilemapBuffer + movs r4, 0x10 + str r4, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124DDC + ldr r1, _081158C4 @ =0x02018a80 + str r4, [sp] + movs r0, 0x3 + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r2, 0xE + adds r3, r6, 0 + bl sub_8124E2C + b _08115918 + .align 2, 0 +_081158C0: .4byte gBG2TilemapBuffer +_081158C4: .4byte 0x02018a80 +_081158C8: + adds r0, r4, 0 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + adds r1, 0xE + lsls r1, 24 + lsrs r7, r1, 24 + subs r0, r4, 0x1 + movs r1, 0x5 + bl __divsi3 + lsls r1, r0, 1 + adds r1, r0 + adds r1, 0x7 + lsls r1, 24 + lsrs r6, r1, 24 + ldr r4, _08115920 @ =gBG2TilemapBuffer + movs r0, 0x10 + str r0, [sp] + movs r0, 0xD + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124DDC + ldr r1, _08115924 @ =0x02018a20 + movs r0, 0x3 + str r0, [sp] + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r2, r7, 0 + adds r3, r6, 0 + bl sub_8124E2C +_08115918: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08115920: .4byte gBG2TilemapBuffer +_08115924: .4byte 0x02018a20 + thumb_func_end sub_81157D0 + + thumb_func_start sub_8115928 +sub_8115928: @ 8115928 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + cmp r1, 0 + bne _0811594C + ldr r1, _08115948 @ =gTasks + lsls r4, r5, 2 + adds r0, r4, r5 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x10] + bl sub_811829C + b _08115960 + .align 2, 0 +_08115948: .4byte gTasks +_0811594C: + ldr r0, _08115974 @ =0x02019000 + ldrb r1, [r0, 0x1A] + lsls r1, 28 + lsrs r1, 28 + adds r0, 0x1B + adds r1, r0 + ldrb r0, [r1] + bl sub_811829C + lsls r4, r5, 2 +_08115960: + ldr r0, _08115978 @ =gTasks + adds r1, r4, r5 + lsls r1, 3 + adds r1, r0 + ldrb r0, [r1, 0x10] + bl sub_81157D0 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08115974: .4byte 0x02019000 +_08115978: .4byte gTasks + thumb_func_end sub_8115928 + + thumb_func_start sub_811597C +sub_811597C: @ 811597C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r5, _081159B0 @ =0x02019000 + movs r6, 0 + movs r1, 0x1 + strh r1, [r5, 0x28] + ldr r1, _081159B4 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrb r0, [r4, 0x10] + bl sub_81157D0 + adds r1, r5, 0 + adds r1, 0x23 + movs r0, 0x2 + strb r0, [r1] + adds r5, 0x21 + strb r6, [r5] + ldr r0, _081159B8 @ =sub_8115E14 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081159B0: .4byte 0x02019000 +_081159B4: .4byte gTasks +_081159B8: .4byte sub_8115E14 + thumb_func_end sub_811597C + + thumb_func_start sub_81159BC +sub_81159BC: @ 81159BC + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r3, _08115A10 @ =0x02019000 + ldr r1, [r3, 0x8] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08115A1C + movs r2, 0xB + ldr r5, _08115A14 @ =gUnknown_083F8C00 + adds r0, r5, 0 + adds r0, 0xE4 + ldr r0, [r0] + ands r1, r0 + ldr r0, _08115A18 @ =gTasks + mov r12, r0 + lsls r7, r6, 2 + cmp r1, 0 + beq _08115A5A + adds r4, r3, 0 + adds r3, r5, 0 + adds r3, 0x8 +_081159EA: + lsls r0, r2, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r2, r0, 16 + asrs r1, r0, 16 + cmp r1, 0xD + bgt _08115A5A + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, [r4, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _081159EA + b _08115A5A + .align 2, 0 +_08115A10: .4byte 0x02019000 +_08115A14: .4byte gUnknown_083F8C00 +_08115A18: .4byte gTasks +_08115A1C: + movs r2, 0x6 + ldr r5, _08115A88 @ =gUnknown_083F8C00 + adds r0, r5, 0 + adds r0, 0x80 + ldr r0, [r0] + ands r1, r0 + ldr r0, _08115A8C @ =gTasks + mov r12, r0 + lsls r7, r6, 2 + cmp r1, 0 + beq _08115A5A + adds r4, r3, 0 + adds r3, r5, 0 + adds r3, 0x8 +_08115A38: + lsls r0, r2, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r2, r0, 16 + asrs r1, r0, 16 + cmp r1, 0x9 + bgt _08115A5A + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldr r1, [r4, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08115A38 +_08115A5A: + adds r4, r7, r6 + lsls r4, 3 + add r4, r12 + movs r5, 0 + strh r2, [r4, 0x10] + adds r0, r6, 0 + bl sub_8116CAC + ldrb r0, [r4, 0x10] + bl sub_8117158 + ldrb r0, [r4, 0x10] + bl sub_811829C + ldrb r0, [r4, 0x10] + bl sub_8116EF8 + strh r5, [r4, 0xA] + ldr r0, _08115A90 @ =sub_811597C + str r0, [r4] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08115A88: .4byte gUnknown_083F8C00 +_08115A8C: .4byte gTasks +_08115A90: .4byte sub_811597C + thumb_func_end sub_81159BC + + thumb_func_start sub_8115A94 +sub_8115A94: @ 8115A94 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + adds r4, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + movs r6, 0 + movs r7, 0 + ldr r1, _08115ADC @ =gUnknown_083F8ECA + mov r0, sp + movs r2, 0x4 + bl memcpy + ldrb r0, [r4] + mov r8, r0 + cmp r5, 0 + blt _08115B08 + cmp r5, 0x1 + bgt _08115AE0 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl __modsi3 + lsls r0, 24 + lsrs r6, r0, 24 + movs r2, 0xF0 + lsls r2, 20 + adds r1, r0, r2 + lsrs r7, r1, 24 + cmp r0, 0 + bne _08115B08 + movs r6, 0x5 + b _08115B08 + .align 2, 0 +_08115ADC: .4byte gUnknown_083F8ECA +_08115AE0: + cmp r5, 0x3 + bgt _08115B08 + movs r1, 0 + ldrsh r0, [r4, r1] + movs r1, 0x5 + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 24 + lsrs r6, r1, 24 + movs r2, 0x80 + lsls r2, 19 + adds r0, r1, r2 + lsrs r7, r0, 24 + cmp r1, 0 + bne _08115B08 + movs r6, 0x1 +_08115B08: + mov r1, sp + adds r0, r1, r5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r2, [r4] + adds r0, r2 + strh r0, [r4] + lsls r1, r6, 24 + asrs r3, r1, 24 + lsls r0, 16 + asrs r0, 16 + lsls r2, r7, 24 + cmp r0, r3 + bge _08115B2A + asrs r0, r2, 24 + strh r0, [r4] +_08115B2A: + movs r0, 0 + ldrsh r1, [r4, r0] + asrs r0, r2, 24 + cmp r1, r0 + ble _08115B36 + strh r3, [r4] +_08115B36: + mov r1, r8 + lsls r0, r1, 24 + movs r2, 0 + ldrsh r1, [r4, r2] + asrs r0, 24 + cmp r1, r0 + bne _08115B48 + movs r0, 0 + b _08115B4A +_08115B48: + movs r0, 0x1 +_08115B4A: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8115A94 + + thumb_func_start sub_8115B58 +sub_8115B58: @ 8115B58 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0 + mov r8, r0 + movs r5, 0 + ldr r4, _08115D30 @ =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08115B94 + movs r5, 0x1 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08115D34 @ =gTasks + 0x8 + adds r0, r1 + adds r0, 0x8 + movs r1, 0 + bl sub_8115A94 + lsls r0, 24 + cmp r0, 0 + bne _08115B94 + b _08115D20 +_08115B94: + ldrh r1, [r4, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08115BBA + movs r5, 0x1 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08115D34 @ =gTasks + 0x8 + adds r0, r1 + adds r0, 0x8 + movs r1, 0x1 + bl sub_8115A94 + lsls r0, 24 + cmp r0, 0 + bne _08115BBA + b _08115D20 +_08115BBA: + ldrh r1, [r4, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08115BE0 + movs r5, 0x1 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08115D34 @ =gTasks + 0x8 + adds r0, r1 + adds r0, 0x8 + movs r1, 0x2 + bl sub_8115A94 + lsls r0, 24 + cmp r0, 0 + bne _08115BE0 + b _08115D20 +_08115BE0: + ldrh r1, [r4, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08115C06 + movs r5, 0x1 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + ldr r1, _08115D34 @ =gTasks + 0x8 + adds r0, r1 + adds r0, 0x8 + movs r1, 0x3 + bl sub_8115A94 + lsls r0, 24 + cmp r0, 0 + bne _08115C06 + b _08115D20 +_08115C06: + cmp r5, 0 + bne _08115C0C + b _08115D20 +_08115C0C: + ldr r0, _08115D38 @ =gTasks + lsls r6, r7, 2 + adds r4, r6, r7 + lsls r4, 3 + adds r4, r0 + ldrb r0, [r4, 0x10] + bl sub_8117158 + adds r0, r7, 0 + movs r1, 0 + bl sub_8115928 + mov r1, r8 + strh r1, [r4, 0xA] + movs r0, 0x5 + bl PlaySE + ldr r5, _08115D3C @ =0x020190b8 + ldr r1, _08115D40 @ =0x0000ffff + adds r0, r5, 0 + bl sub_8124D3C + adds r3, r5, 0 + adds r3, 0xB8 + ldrb r2, [r3] + movs r1, 0x7F + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + subs r3, 0xC + ldrb r2, [r3] + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + adds r2, r5, 0 + adds r2, 0xA0 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldrb r0, [r4, 0x10] + bl sub_8116EF8 + movs r4, 0 + mov r12, r6 + ldr r6, _08115D44 @ =gSprites + movs r2, 0x7C + negs r2, r2 + adds r2, r5 + mov r10, r2 + movs r0, 0x8 + adds r0, r6 + mov r8, r0 + ldr r1, _08115D48 @ =0xfffffc00 + mov r9, r1 + ldr r2, _08115D4C @ =0x000003ff + adds r5, r2, 0 +_08115C7C: + adds r0, r4, 0 + adds r0, 0x29 + add r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r6 + adds r2, r3, 0 + adds r2, 0x40 + add r0, r8 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r2 + ands r1, r5 + ldrh r2, [r3, 0x4] + mov r0, r9 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _08115C7C + ldr r0, _08115D38 @ =gTasks + mov r2, r12 + adds r1, r2, r7 + lsls r1, 3 + adds r1, r0 + ldrh r3, [r1, 0x10] + subs r0, r3, 0x1 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3 + bhi _08115D20 + ldr r2, _08115D50 @ =gUnknown_083F8C00 + movs r0, 0x10 + ldrsh r1, [r1, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x8 + adds r0, r2 + ldr r2, _08115D54 @ =0x02019000 + ldr r1, [r2, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08115D20 + subs r0, r3, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + adds r0, r2, 0 + add r0, r8 + adds r0, 0x65 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08115D44 @ =gSprites + adds r3, r0, r1 + adds r2, r3, 0 + adds r2, 0x40 + adds r1, 0x8 + adds r0, r1 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0, 0x4] + ldrh r2, [r2] + adds r1, r2 + ldr r2, _08115D4C @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + ldr r0, _08115D48 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] +_08115D20: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08115D30: .4byte gMain +_08115D34: .4byte gTasks + 0x8 +_08115D38: .4byte gTasks +_08115D3C: .4byte 0x020190b8 +_08115D40: .4byte 0x0000ffff +_08115D44: .4byte gSprites +_08115D48: .4byte 0xfffffc00 +_08115D4C: .4byte 0x000003ff +_08115D50: .4byte gUnknown_083F8C00 +_08115D54: .4byte 0x02019000 + thumb_func_end sub_8115B58 + + thumb_func_start sub_8115D58 +sub_8115D58: @ 8115D58 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _08115D70 @ =0x02019000 + movs r0, 0xFF + strh r0, [r1, 0x28] + ldrb r0, [r1, 0x19] + cmp r0, 0x1 + bne _08115D74 + adds r2, r1, 0 + adds r2, 0x23 + b _08115D7A + .align 2, 0 +_08115D70: .4byte 0x02019000 +_08115D74: + adds r2, r1, 0 + adds r2, 0x23 + movs r0, 0 +_08115D7A: + strb r0, [r2] + adds r1, 0x21 + movs r0, 0 + strb r0, [r1] + ldr r1, _08115D98 @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r1, 0x20 + strh r1, [r0, 0xA] + ldr r1, _08115D9C @ =sub_8115ECC + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_08115D98: .4byte gTasks +_08115D9C: .4byte sub_8115ECC + thumb_func_end sub_8115D58 + + thumb_func_start sub_8115DA0 +sub_8115DA0: @ 8115DA0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08115E08 @ =0x02019000 + ldrb r2, [r4, 0x1A] + lsls r2, 28 + lsrs r2, 28 + adds r5, r4, 0 + adds r5, 0x1B + adds r2, r5 + ldr r3, _08115E0C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r6, r1, r3 + ldrh r0, [r6, 0x10] + strb r0, [r2] + ldrb r0, [r4, 0x1A] + lsls r0, 28 + lsrs r0, 28 + adds r0, r5 + ldrb r0, [r0] + bl sub_8117380 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0xC] + ldrb r0, [r4, 0x1A] + lsls r0, 28 + lsrs r0, 28 + adds r0, r5 + ldrb r0, [r0] + bl sub_811829C + ldrb r1, [r4, 0x19] + ldrh r0, [r6, 0x22] + subs r0, r1 + strh r0, [r6, 0x22] + lsls r0, 16 + cmp r0, 0 + bge _08115DF6 + movs r0, 0 + strh r0, [r6, 0x22] +_08115DF6: + ldrh r0, [r6, 0x22] + bl sub_81180F4 + ldr r0, _08115E10 @ =sub_8115D58 + str r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08115E08: .4byte 0x02019000 +_08115E0C: .4byte gTasks +_08115E10: .4byte sub_8115D58 + thumb_func_end sub_8115DA0 + + thumb_func_start sub_8115E14 +sub_8115E14: @ 8115E14 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r5, 0 + bl sub_8115B58 + ldr r1, _08115E3C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x1E + beq _08115E4A + cmp r0, 0x1E + bgt _08115E40 + cmp r0, 0 + beq _08115E46 + b _08115E5E + .align 2, 0 +_08115E3C: .4byte gTasks +_08115E40: + cmp r0, 0x3B + beq _08115E58 + b _08115E5E +_08115E46: + ldrb r0, [r4, 0x10] + b _08115E4C +_08115E4A: + movs r0, 0 +_08115E4C: + bl sub_81157D0 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _08115E6E +_08115E58: + movs r0, 0 + strh r0, [r4, 0xA] + b _08115E6E +_08115E5E: + ldr r0, _08115EA8 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] +_08115E6E: + ldr r0, _08115EAC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08115EC2 + ldr r3, _08115EB0 @ =0x02019000 + ldr r2, _08115EB4 @ =gUnknown_083F8C00 + ldr r1, _08115EA8 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x10 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x8 + adds r0, r2 + ldr r1, [r3, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08115EB8 + movs r0, 0x16 + bl PlaySE + b _08115EC2 + .align 2, 0 +_08115EA8: .4byte gTasks +_08115EAC: .4byte gMain +_08115EB0: .4byte 0x02019000 +_08115EB4: .4byte gUnknown_083F8C00 +_08115EB8: + movs r0, 0x5F + bl m4aSongNumStart + ldr r0, _08115EC8 @ =sub_8115DA0 + str r0, [r4] +_08115EC2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08115EC8: .4byte sub_8115DA0 + thumb_func_end sub_8115E14 + + thumb_func_start sub_8115ECC +sub_8115ECC: @ 8115ECC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08115F20 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r0, [r4, 0xA] + subs r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + ble _08115F34 + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _08115EF8 + ldr r1, _08115F24 @ =gSpriteCoordOffsetX + ldrh r0, [r1] + adds r0, 0x2 + strh r0, [r1] +_08115EF8: + ldr r1, _08115F28 @ =0x02019000 + ldrh r0, [r1, 0x26] + adds r0, 0x4 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x68 + bne _08115F4C + ldr r2, _08115F2C @ =gSprites + adds r0, r1, 0 + adds r0, 0x55 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _08115F30 @ =SpriteCallbackDummy + str r1, [r0] + b _08115F4C + .align 2, 0 +_08115F20: .4byte gTasks +_08115F24: .4byte gSpriteCoordOffsetX +_08115F28: .4byte 0x02019000 +_08115F2C: .4byte gSprites +_08115F30: .4byte SpriteCallbackDummy +_08115F34: + movs r0, 0x1 + movs r1, 0xFF + bl sub_8117AA8 + movs r0, 0x1 + movs r1, 0xFF + bl sub_8117C60 + ldr r0, _08115F54 @ =sub_8116100 + str r0, [r4] + movs r0, 0 + strh r0, [r4, 0xA] +_08115F4C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08115F54: .4byte sub_8116100 + thumb_func_end sub_8115ECC + + thumb_func_start sub_8115F58 +sub_8115F58: @ 8115F58 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + lsls r1, 16 + lsrs r1, 16 + ldr r0, _08115F74 @ =0x02019000 + ldrb r2, [r0, 0x2] + adds r4, r0, 0 + cmp r2, 0x2 + bgt _08115F78 + cmp r2, 0x1 + bge _08115F7E + b _08116048 + .align 2, 0 +_08115F74: .4byte 0x02019000 +_08115F78: + cmp r2, 0x3 + beq _08115FE0 + b _08116048 +_08115F7E: + ldr r0, _08115FA8 @ =gLocalTime + ldrb r0, [r0, 0x2] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _08115FB0 + cmp r3, 0xB + bls _08115F98 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0811605E +_08115F98: + ldr r0, _08115FAC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08115FA8: .4byte gLocalTime +_08115FAC: .4byte gUnknown_083F8DF4 +_08115FB0: + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08115FCC + ldr r0, _08115FC8 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08115FC8: .4byte gUnknown_083F8DF4 +_08115FCC: + ldr r0, _08115FDC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + b _081160F4 + .align 2, 0 +_08115FDC: .4byte gUnknown_083F8DF4 +_08115FE0: + ldr r0, _0811600C @ =gLocalTime + ldrb r0, [r0, 0x2] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bhi _08116014 + cmp r3, 0x5 + bls _08115FFA + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0811605E +_08115FFA: + ldr r0, _08116010 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_0811600C: .4byte gLocalTime +_08116010: .4byte gUnknown_083F8DF4 +_08116014: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08116034 + cmp r3, 0x6 + bls _08116034 + ldr r0, _08116030 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 2 + b _081160F4 + .align 2, 0 +_08116030: .4byte gUnknown_083F8DF4 +_08116034: + ldr r0, _08116044 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08116044: .4byte gUnknown_083F8DF4 +_08116048: + ldr r0, _08116064 @ =gLocalTime + ldrb r0, [r0, 0x2] + subs r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _0811607C + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08116068 +_0811605E: + movs r0, 0x1 + b _081160F4 + .align 2, 0 +_08116064: .4byte gLocalTime +_08116068: + ldr r0, _08116078 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08116078: .4byte gUnknown_083F8DF4 +_0811607C: + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _081160B0 + cmp r3, 0xC + bls _0811609C + ldr r0, _08116098 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + lsrs r0, 1 + b _081160F4 + .align 2, 0 +_08116098: .4byte gUnknown_083F8DF4 +_0811609C: + ldr r0, _081160AC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + b _081160F4 + .align 2, 0 +_081160AC: .4byte gUnknown_083F8DF4 +_081160B0: + movs r0, 0x80 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _081160E4 + cmp r3, 0xC + bls _081160D0 + ldr r0, _081160CC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x2] + b _081160F4 + .align 2, 0 +_081160CC: .4byte gUnknown_083F8DF4 +_081160D0: + ldr r0, _081160E0 @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x1] + b _081160F4 + .align 2, 0 +_081160E0: .4byte gUnknown_083F8DF4 +_081160E4: + ldr r0, _081160FC @ =gUnknown_083F8DF4 + ldrb r1, [r4, 0x4] + lsls r1, 30 + lsrs r1, 25 + adds r1, r0 + ldrb r0, [r1, 0x1] + lsls r0, 25 + lsrs r0, 24 +_081160F4: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081160FC: .4byte gUnknown_083F8DF4 + thumb_func_end sub_8115F58 + + thumb_func_start sub_8116100 +sub_8116100: @ 8116100 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r4, 0 + ldr r1, _08116188 @ =gUnknown_083F8ECE + mov r0, sp + movs r2, 0x8 + bl memcpy + bl Random + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r7, 0 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r3, _0811618C @ =0x02019000 + ldr r1, _08116190 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldrh r2, [r0, 0x14] + adds r1, r3, 0 + adds r1, 0x7C + strb r2, [r1] + adds r1, 0x3 + strb r4, [r1] + subs r1, 0x1 + strb r4, [r1] + subs r1, 0x1 + strb r4, [r1] + ldrh r0, [r0, 0x18] + adds r1, r7, 0 + bl sub_8115F58 + adds r4, r0, 0 + lsls r4, 24 + lsrs r1, r4, 24 + adds r0, r7, 0 + bl __modsi3 + lsrs r4, 25 + subs r0, r4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08116194 @ =gLocalTime + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + movs r5, 0x1 + cmp r0, 0xC + bgt _08116180 + movs r5, 0 +_08116180: + cmp r6, 0x4F + bhi _08116198 + lsls r0, r5, 25 + b _081161A2 + .align 2, 0 +_08116188: .4byte gUnknown_083F8ECE +_0811618C: .4byte 0x02019000 +_08116190: .4byte gTasks +_08116194: .4byte gLocalTime +_08116198: + lsls r1, r5, 24 + asrs r1, 24 + movs r0, 0x1 + subs r0, r1 + lsls r0, 25 +_081161A2: + lsrs r5, r0, 24 + ldr r6, _081162D8 @ =0x02019000 + ldrb r0, [r6, 0x4] + lsls r0, 30 + mov r10, r0 + lsrs r0, 25 + ldr r1, _081162DC @ =gUnknown_083F8DF4 + adds r0, r1 + lsls r4, 24 + asrs r4, 24 + ldrh r0, [r0, 0x1A] + adds r4, r0 + adds r0, r6, 0 + adds r0, 0x80 + strh r4, [r0] + lsls r4, 16 + asrs r4, 16 + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _081161D4 + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 +_081161D4: + ldr r1, _081162E4 @ =0x40a00000 + bl __divsf3 + bl __fixunssfsi + lsls r0, 16 + lsrs r4, r0, 16 + lsls r0, r4, 1 + adds r0, r4 + mov r8, r0 + adds r0, r6, 0 + adds r0, 0x82 + mov r2, r8 + strh r2, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + movs r0, 0x1 + ands r0, r7 + lsls r1, r5, 24 + asrs r1, 24 + adds r0, r1 + lsls r0, 1 + add r0, sp + movs r1, 0 + ldrsh r4, [r0, r1] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _0811621A + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 +_0811621A: + ldr r2, _081162E8 @ =0x02019088 + str r0, [r2] + adds r7, r6, 0 + adds r7, 0x8C + mov r1, r10 + lsrs r0, r1, 25 + ldr r2, _081162DC @ =gUnknown_083F8DF4 + adds r0, r2 + movs r1, 0x18 + ldrsh r4, [r0, r1] + adds r0, r4, 0 + bl __floatsisf + adds r5, r0, 0 + cmp r4, 0 + bge _08116242 + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 + adds r5, r0, 0 +_08116242: + str r5, [r7] + adds r7, r6, 0 + adds r7, 0x90 + ldr r1, _081162EC @ =0x3f000000 + adds r0, r5, 0 + bl __mulsf3 + adds r1, r5, 0 + bl __subsf3 + adds r5, r0, 0 + mov r2, r8 + lsls r0, r2, 16 + asrs r4, r0, 16 + adds r0, r4, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r4, 0 + bge _08116272 + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_08116272: + adds r0, r5, 0 + adds r1, r2, 0 + bl __divsf3 + str r0, [r7] + adds r1, r6, 0 + adds r1, 0x94 + ldr r0, _081162F0 @ =0x42880000 + str r0, [r1] + adds r1, 0x8 + ldr r0, _081162F4 @ =0x00000000 + str r0, [r1] + adds r5, r6, 0 + adds r5, 0x98 + adds r0, r4, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r4, 0 + bge _081162A2 + ldr r1, _081162E0 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_081162A2: + ldr r0, _081162F8 @ =0x41000000 + adds r1, r2, 0 + bl __divsf3 + bl __negsf2 + str r0, [r5] + adds r1, r6, 0 + adds r1, 0xA0 + ldr r0, _081162FC @ =0x42100000 + str r0, [r1] + ldr r1, _08116300 @ =gTasks + mov r2, r9 + lsls r0, r2, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + ldr r1, _08116304 @ =sub_8116308 + str r1, [r0] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081162D8: .4byte 0x02019000 +_081162DC: .4byte gUnknown_083F8DF4 +_081162E0: .4byte 0x47800000 +_081162E4: .4byte 0x40a00000 +_081162E8: .4byte 0x02019088 +_081162EC: .4byte 0x3f000000 +_081162F0: .4byte 0x42880000 +_081162F4: .4byte 0x00000000 +_081162F8: .4byte 0x41000000 +_081162FC: .4byte 0x42100000 +_08116300: .4byte gTasks +_08116304: .4byte sub_8116308 + thumb_func_end sub_8116100 + + thumb_func_start sub_8116308 +sub_8116308: @ 8116308 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _08116368 @ =0x02019000 + ldrb r1, [r3, 0x3] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r3, 0x3] + adds r2, r3, 0 + adds r2, 0x7C + adds r1, r3, 0 + adds r1, 0x3C + ldrb r2, [r2] + adds r1, r2 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r2, _0811636C @ =gSprites + adds r1, r2 + str r1, [r3, 0x38] + ldr r2, _08116370 @ =sub_81191F4 + str r2, [r1, 0x1C] + ldr r1, _08116374 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + ldrh r1, [r4, 0x14] + adds r1, 0x1 + strh r1, [r4, 0x14] + ldrh r0, [r4, 0x18] + adds r0, 0x1 + strh r0, [r4, 0x18] + movs r0, 0x6 + subs r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_81182F8 + movs r0, 0x5C + bl m4aSongNumStart + ldr r0, _08116378 @ =sub_811637C + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08116368: .4byte 0x02019000 +_0811636C: .4byte gSprites +_08116370: .4byte sub_81191F4 +_08116374: .4byte gTasks +_08116378: .4byte sub_811637C + thumb_func_end sub_8116308 + + thumb_func_start sub_811637C +sub_811637C: @ 811637C + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _081163B0 @ =0x02019000 + adds r0, r4, 0 + adds r0, 0x7D + ldrb r0, [r0] + cmp r0, 0 + beq _08116464 + ldrb r1, [r4, 0x3] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _081163B4 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08116464 + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + movs r1, 0x21 + negs r1, r1 + ands r0, r1 + strb r0, [r4, 0x3] + b _08116464 + .align 2, 0 +_081163B0: .4byte 0x02019000 +_081163B4: + ldr r2, _08116428 @ =gTasks + lsls r1, r5, 2 + adds r0, r1, r5 + lsls r0, 3 + adds r6, r0, r2 + movs r2, 0xA + ldrsh r0, [r6, r2] + adds r7, r1, 0 + cmp r0, 0 + bne _08116400 + adds r0, r4, 0 + adds r0, 0x7E + ldrb r1, [r0] + adds r0, r5, 0 + bl sub_8116D54 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4, 0x1A] + lsls r1, 28 + lsrs r1, 28 + adds r2, r4, 0 + adds r2, 0x1B + adds r1, r2 + ldrb r1, [r1] + bl sub_8116E5C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r6, 0x12] + cmp r0, 0x1 + bne _08116400 + adds r0, r4, 0 + adds r0, 0xB8 + movs r1, 0x80 + lsls r1, 5 + bl sub_8124CE8 +_08116400: + ldr r0, _08116428 @ =gTasks + adds r1, r7, r5 + lsls r1, 3 + adds r4, r1, r0 + movs r1, 0xA + ldrsh r0, [r4, r1] + cmp r0, 0x3C + bgt _08116430 + ldr r0, _0811642C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08116420 + movs r0, 0x3C + strh r0, [r4, 0xA] +_08116420: + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + b _08116464 + .align 2, 0 +_08116428: .4byte gTasks +_0811642C: .4byte gMain +_08116430: + ldr r1, _0811646C @ =0x02019000 + ldrb r0, [r1, 0x1A] + lsls r0, 28 + lsrs r0, 28 + adds r1, 0x1B + adds r0, r1 + ldrb r0, [r0] + bl sub_8117158 + ldrh r1, [r4, 0x20] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8117AA8 + ldrb r1, [r4, 0x14] + subs r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8117C60 + movs r0, 0x20 + strh r0, [r4, 0xA] + ldr r0, _08116470 @ =sub_8116474 + str r0, [r4] +_08116464: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811646C: .4byte 0x02019000 +_08116470: .4byte sub_8116474 + thumb_func_end sub_811637C + + thumb_func_start sub_8116474 +sub_8116474: @ 8116474 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _081164C8 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + subs r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + cmp r0, 0 + ble _081164DC + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2 + ble _081164A0 + ldr r1, _081164CC @ =gSpriteCoordOffsetX + ldrh r0, [r1] + subs r0, 0x2 + strh r0, [r1] +_081164A0: + ldr r1, _081164D0 @ =0x02019000 + ldrh r0, [r1, 0x26] + subs r0, 0x4 + strh r0, [r1, 0x26] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x68 + bne _08116504 + ldr r2, _081164D4 @ =gSprites + adds r0, r1, 0 + adds r0, 0x55 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _081164D8 @ =sub_81184CC + str r1, [r0] + b _08116504 + .align 2, 0 +_081164C8: .4byte gTasks +_081164CC: .4byte gSpriteCoordOffsetX +_081164D0: .4byte 0x02019000 +_081164D4: .4byte gSprites +_081164D8: .4byte sub_81184CC +_081164DC: + ldrh r0, [r4, 0x20] + lsls r0, 24 + lsrs r0, 24 + bl sub_8117D68 + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _081164F2 + movs r0, 0x79 + b _081164F4 +_081164F2: + movs r0, 0x3D +_081164F4: + strh r0, [r4, 0xA] + ldr r0, _0811650C @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _08116510 @ =sub_8116514 + str r0, [r1] +_08116504: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811650C: .4byte gTasks +_08116510: .4byte sub_8116514 + thumb_func_end sub_8116474 + + thumb_func_start sub_8116514 +sub_8116514: @ 8116514 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _08116564 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + subs r1, r0, 0x1 + strh r1, [r4, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + ble _08116584 + movs r0, 0xA + ldrsh r1, [r4, r0] + adds r0, r1, 0 + cmp r1, 0 + bge _0811653E + adds r0, 0xF +_0811653E: + asrs r0, 4 + lsls r0, 4 + subs r0, r1, r0 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _08116568 + cmp r0, 0x8 + bne _08116590 + movs r0, 0 + movs r1, 0xFF + bl sub_8117AA8 + movs r0, 0 + movs r1, 0xFF + bl sub_8117C60 + b _08116590 + .align 2, 0 +_08116564: .4byte gTasks +_08116568: + ldrh r1, [r4, 0x20] + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8117AA8 + ldrb r1, [r4, 0x14] + subs r1, 0x1 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_8117C60 + b _08116590 +_08116584: + ldr r1, _08116598 @ =sub_8116638 + adds r0, r2, 0 + movs r2, 0x1E + movs r3, 0 + bl sub_8116C34 +_08116590: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08116598: .4byte sub_8116638 + thumb_func_end sub_8116514 + + thumb_func_start sub_811659C +sub_811659C: @ 811659C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _081165F4 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x12 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08116600 + cmp r0, 0 + blt _08116600 + cmp r0, 0x2 + bgt _08116600 + bl IsFanfareTaskInactive + lsls r0, 24 + cmp r0, 0 + beq _08116624 + movs r0, 0x1D + bl sub_8053108 + ldrh r1, [r4, 0x1E] + adds r1, 0x1 + strh r1, [r4, 0x1E] + lsls r1, 16 + asrs r1, 16 + cmp r0, r1 + bcs _081165E4 + movs r0, 0x1E + ldrsh r1, [r4, r0] + movs r0, 0x1D + bl sav12_xor_set +_081165E4: + ldr r1, _081165F8 @ =sub_811677C + ldr r2, _081165FC @ =0x0000ffff + adds r0, r5, 0 + movs r3, 0x3 + bl sub_8116C34 + b _08116624 + .align 2, 0 +_081165F4: .4byte gTasks +_081165F8: .4byte sub_811677C +_081165FC: .4byte 0x0000ffff +_08116600: + bl IsSEPlaying + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + bne _08116624 + ldr r1, _0811662C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r2, [r0, 0x1E] + ldr r1, _08116630 @ =sub_81167F4 + ldr r2, _08116634 @ =0x0000ffff + adds r0, r5, 0 + movs r3, 0x3 + bl sub_8116C34 +_08116624: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811662C: .4byte gTasks +_08116630: .4byte sub_81167F4 +_08116634: .4byte 0x0000ffff + thumb_func_end sub_811659C + + thumb_func_start sub_8116638 +sub_8116638: @ 8116638 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08116678 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r2, 0x12 + ldrsh r1, [r0, r2] + cmp r1, 0 + beq _081166A8 + cmp r1, 0 + blt _081166A8 + cmp r1, 0x2 + bgt _081166A8 + movs r1, 0xC + ldrsh r0, [r0, r1] + cmp r0, 0xC + bne _08116684 + ldr r0, _0811667C @ =0x00000185 + bl PlayFanfare + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08116680 @ =gUnknown_081C41A5 + b _0811669A + .align 2, 0 +_08116678: .4byte gTasks +_0811667C: .4byte 0x00000185 +_08116680: .4byte gUnknown_081C41A5 +_08116684: + movs r0, 0xC3 + lsls r0, 1 + bl PlayFanfare + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _081166A4 @ =gUnknown_081C4199 +_0811669A: + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + b _081166C4 + .align 2, 0 +_081166A4: .4byte gUnknown_081C4199 +_081166A8: + movs r0, 0x20 + bl m4aSongNumStart + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _081166DC @ =gUnknown_081C41AE + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint +_081166C4: + ldr r1, _081166E0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0 + strh r1, [r0, 0xA] + ldr r1, _081166E4 @ =sub_811659C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081166DC: .4byte gUnknown_081C41AE +_081166E0: .4byte gTasks +_081166E4: .4byte sub_811659C + thumb_func_end sub_8116638 + + thumb_func_start sub_81166E8 +sub_81166E8: @ 81166E8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0811670C @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r4, r0, r1 + movs r0, 0x16 + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _08116710 + cmp r5, 0x3 + beq _08116740 + ldrh r0, [r4, 0x16] + adds r0, 0x1 + b _08116748 + .align 2, 0 +_0811670C: .4byte gTasks +_08116710: + ldrh r0, [r4, 0x22] + adds r0, 0x1 + strh r0, [r4, 0x22] + movs r0, 0x15 + bl m4aSongNumStart + ldrh r0, [r4, 0x22] + bl sub_81180F4 + movs r2, 0x22 + ldrsh r1, [r4, r2] + ldr r0, _08116730 @ =0x0000270e + cmp r1, r0 + ble _08116734 + strh r5, [r4, 0xA] + b _0811674A + .align 2, 0 +_08116730: .4byte 0x0000270e +_08116734: + ldrh r0, [r4, 0xA] + subs r0, 0x1 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0x16] + adds r0, 0x1 + b _08116748 +_08116740: + movs r0, 0x15 + bl m4aSongNumStop + movs r0, 0 +_08116748: + strh r0, [r4, 0x16] +_0811674A: + ldr r0, _08116770 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + movs r2, 0xA + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08116768 + ldr r1, _08116774 @ =sub_81167F4 + ldr r2, _08116778 @ =0x0000ffff + adds r0, r6, 0 + movs r3, 0x3 + bl sub_8116C34 +_08116768: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08116770: .4byte gTasks +_08116774: .4byte sub_81167F4 +_08116778: .4byte 0x0000ffff + thumb_func_end sub_81166E8 + + thumb_func_start sub_811677C +sub_811677C: @ 811677C + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r3, _081167DC @ =gStringVar1 + ldr r6, _081167E0 @ =0x02019000 + ldrb r2, [r6, 0x19] + ldr r1, _081167E4 @ =gTasks + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + adds r4, r1 + movs r1, 0xC + ldrsh r0, [r4, r1] + adds r1, r2, 0 + muls r1, r0 + adds r0, r3, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r5, _081167E8 @ =gStringVar4 + ldr r1, _081167EC @ =gUnknown_081C41BD + adds r0, r5, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldrb r1, [r6, 0x19] + movs r2, 0xC + ldrsh r0, [r4, r2] + muls r0, r1 + movs r1, 0 + strh r0, [r4, 0xA] + strh r1, [r4, 0x16] + ldr r0, _081167F0 @ =sub_81166E8 + str r0, [r4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081167DC: .4byte gStringVar1 +_081167E0: .4byte 0x02019000 +_081167E4: .4byte gTasks +_081167E8: .4byte gStringVar4 +_081167EC: .4byte gUnknown_081C41BD +_081167F0: .4byte sub_81166E8 + thumb_func_end sub_811677C + + thumb_func_start sub_81167F4 +sub_81167F4: @ 81167F4 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _08116868 @ =0x020190b8 + ldr r1, _0811686C @ =0x0000ffff + adds r0, r4, 0 + bl sub_8124D3C + adds r3, r4, 0 + adds r3, 0xB8 + ldrb r2, [r3] + movs r1, 0x7F + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + subs r3, 0xC + ldrb r2, [r3] + adds r0, r1, 0 + ands r0, r2 + strb r0, [r3] + adds r2, r4, 0 + adds r2, 0xA0 + ldrb r0, [r2] + ands r1, r0 + strb r1, [r2] + ldr r6, _08116870 @ =gSprites + ldr r2, _08116874 @ =gUnknown_083F8C00 + ldr r0, _08116878 @ =gTasks + lsls r3, r5, 2 + adds r3, r5 + lsls r3, 3 + adds r3, r0 + movs r0, 0x20 + ldrsh r1, [r3, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + adds r4, r0 + subs r4, 0x75 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0811687C @ =sub_8116880 + str r0, [r3] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08116868: .4byte 0x020190b8 +_0811686C: .4byte 0x0000ffff +_08116870: .4byte gSprites +_08116874: .4byte gUnknown_083F8C00 +_08116878: .4byte gTasks +_0811687C: .4byte sub_8116880 + thumb_func_end sub_81167F4 + + thumb_func_start sub_8116880 +sub_8116880: @ 8116880 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r1, _08116954 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + movs r2, 0 + strh r5, [r0, 0x10] + ldr r4, _08116958 @ =0x02019000 + ldrb r0, [r4, 0x1A] + lsls r0, 28 + lsrs r0, 28 + adds r1, r4, 0 + adds r1, 0x1B + adds r0, r1 + strb r2, [r0] + movs r0, 0 + bl sub_8117158 + ldr r3, _0811695C @ =gSprites + adds r0, r4, 0 + adds r0, 0x6C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r7, r3, 0 + movs r0, 0x3C + adds r0, r4 + mov r10, r0 + movs r1, 0x8 + adds r1, r7 + mov r8, r1 + ldr r0, _08116960 @ =0xfffffc00 + mov r9, r0 + ldr r1, _08116964 @ =0x000003ff + mov r12, r1 +_081168E4: + adds r0, r5, 0 + adds r0, 0x29 + add r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r7 + adds r2, r3, 0 + adds r2, 0x40 + add r0, r8 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r2 + mov r0, r12 + ands r1, r0 + ldrh r2, [r3, 0x4] + mov r0, r9 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081168E4 + ldr r0, _08116954 @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r2, r1, r0 + movs r1, 0x22 + ldrsh r0, [r2, r1] + ldrb r4, [r4, 0x19] + cmp r0, r4 + blt _081169BC + movs r1, 0x14 + ldrsh r0, [r2, r1] + cmp r0, 0x6 + bne _08116970 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08116968 @ =gUnknown_081C41F1 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _0811696C @ =dp01t_12_3_battle_menu + b _08116992 + .align 2, 0 +_08116954: .4byte gTasks +_08116958: .4byte 0x02019000 +_0811695C: .4byte gSprites +_08116960: .4byte 0xfffffc00 +_08116964: .4byte 0x000003ff +_08116968: .4byte gUnknown_081C41F1 +_0811696C: .4byte dp01t_12_3_battle_menu +_08116970: + movs r0, 0x22 + ldrsh r1, [r2, r0] + ldr r0, _081169A0 @ =0x0000270f + cmp r1, r0 + bne _081169B0 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _081169A4 @ =gUnknown_081C4231 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _081169A8 @ =sub_8115734 +_08116992: + ldr r2, _081169AC @ =0x0000ffff + adds r0, r6, 0 + movs r3, 0x3 + bl sub_8116C34 + b _081169DE + .align 2, 0 +_081169A0: .4byte 0x0000270f +_081169A4: .4byte gUnknown_081C4231 +_081169A8: .4byte sub_8115734 +_081169AC: .4byte 0x0000ffff +_081169B0: + ldr r0, _081169B8 @ =sub_8115734 + str r0, [r2] + b _081169DE + .align 2, 0 +_081169B8: .4byte sub_8115734 +_081169BC: + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _081169EC @ =gUnknown_081C41D2 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _081169F0 @ =sub_81157AC + adds r0, r6, 0 + movs r2, 0x3C + movs r3, 0x3 + bl sub_8116C34 +_081169DE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081169EC: .4byte gUnknown_081C41D2 +_081169F0: .4byte sub_81157AC + thumb_func_end sub_8116880 + + thumb_func_start dp01t_12_3_battle_menu +dp01t_12_3_battle_menu: @ 81169F4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r1, _08116A84 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + strh r4, [r0, 0x14] + adds r0, r5, 0 + bl sub_8116CAC + bl sub_8116CF8 + bl sub_81185E8 + movs r0, 0 + bl sub_8117158 + movs r0, 0x6 + bl sub_81182F8 + ldr r7, _08116A88 @ =gSprites + ldr r3, _08116A8C @ =0x0201903c + movs r6, 0x5 + negs r6, r6 +_08116A2A: + adds r0, r4, 0x7 + adds r0, r3 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xB + bls _08116A2A + ldr r1, _08116A84 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r2, r0, r1 + movs r0, 0x22 + ldrsh r1, [r2, r0] + ldr r0, _08116A90 @ =0x0000270f + cmp r1, r0 + bne _08116AA0 + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08116A94 @ =gUnknown_081C4231 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _08116A98 @ =sub_8115734 + ldr r2, _08116A9C @ =0x0000ffff + adds r0, r5, 0 + movs r3, 0x3 + bl sub_8116C34 + b _08116AA4 + .align 2, 0 +_08116A84: .4byte gTasks +_08116A88: .4byte gSprites +_08116A8C: .4byte 0x0201903c +_08116A90: .4byte 0x0000270f +_08116A94: .4byte gUnknown_081C4231 +_08116A98: .4byte sub_8115734 +_08116A9C: .4byte 0x0000ffff +_08116AA0: + ldr r0, _08116AAC @ =sub_8115734 + str r0, [r2] +_08116AA4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08116AAC: .4byte sub_8115734 + thumb_func_end dp01t_12_3_battle_menu + + thumb_func_start sub_8116AB0 +sub_8116AB0: @ 8116AB0 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _08116AF0 @ =0x020190b8 + ldr r1, _08116AF4 @ =0x0000ffff + adds r0, r4, 0 + bl sub_8124D3C + adds r0, r4, 0 + bl sub_8124918 + ldr r1, _08116AF8 @ =gSaveBlock1 + ldr r2, _08116AFC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r2 + ldrh r0, [r0, 0x22] + ldr r2, _08116B00 @ =0x00000494 + adds r1, r2 + strh r0, [r1] + subs r4, 0xB8 + lsls r0, 16 + lsrs r0, 16 + ldrb r4, [r4, 0x19] + cmp r0, r4 + bcs _08116B08 + ldr r1, _08116B04 @ =gUnknown_0202E8CC + movs r0, 0x1 + b _08116B0C + .align 2, 0 +_08116AF0: .4byte 0x020190b8 +_08116AF4: .4byte 0x0000ffff +_08116AF8: .4byte gSaveBlock1 +_08116AFC: .4byte gTasks +_08116B00: .4byte 0x00000494 +_08116B04: .4byte gUnknown_0202E8CC +_08116B08: + ldr r1, _08116B34 @ =gUnknown_0202E8CC + movs r0, 0 +_08116B0C: + strh r0, [r1] + movs r0, 0 + str r0, [sp] + movs r0, 0xFF + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginHardwarePaletteFade + ldr r1, _08116B38 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _08116B3C @ =sub_8116B40 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08116B34: .4byte gUnknown_0202E8CC +_08116B38: .4byte gTasks +_08116B3C: .4byte sub_8116B40 + thumb_func_end sub_8116AB0 + + thumb_func_start sub_8116B40 +sub_8116B40: @ 8116B40 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl UpdatePaletteFade + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08116B9E + movs r0, 0 + bl SetVBlankCallback + ldr r0, _08116BA4 @ =0x02019000 + movs r2, 0xBE + lsls r2, 1 + movs r1, 0 + bl memset + ldr r1, _08116BA8 @ =gSpriteCoordOffsetX + ldr r0, _08116BAC @ =gSpriteCoordOffsetY + strh r4, [r0] + strh r4, [r1] + bl sub_80F9368 + bl FreeAllSpritePalettes + bl ResetPaletteFade + bl ResetSpriteData + bl sub_80F9020 + ldr r0, _08116BB0 @ =REG_BLDCNT + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r1, _08116BB4 @ =gUnknown_0300485C + ldr r0, _08116BB8 @ =sub_8080990 + str r0, [r1] + ldr r0, _08116BBC @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_08116B9E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08116BA4: .4byte 0x02019000 +_08116BA8: .4byte gSpriteCoordOffsetX +_08116BAC: .4byte gSpriteCoordOffsetY +_08116BB0: .4byte REG_BLDCNT +_08116BB4: .4byte gUnknown_0300485C +_08116BB8: .4byte sub_8080990 +_08116BBC: .4byte c2_exit_to_overworld_2_switch + thumb_func_end sub_8116B40 + + thumb_func_start sub_8116BC0 +sub_8116BC0: @ 8116BC0 + push {r4-r7,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _08116C24 @ =0x02019000 + adds r7, r0, 0 + adds r7, 0xA8 + ldrh r1, [r7] + adds r6, r0, 0 + cmp r1, 0 + beq _08116BE4 + ldr r0, _08116C28 @ =gMain + adds r2, r6, 0 + adds r2, 0xAA + ldrh r1, [r0, 0x2E] + ldrh r0, [r2] + ands r0, r1 + cmp r0, 0 + beq _08116C0E +_08116BE4: + ldr r1, _08116C2C @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + adds r5, r6, 0 + adds r5, 0xAC + ldr r1, [r5] + str r1, [r0] + adds r4, r6, 0 + adds r4, 0xAA + ldrh r0, [r4] + cmp r0, 0 + beq _08116C06 + movs r0, 0x5 + bl PlaySE +_08116C06: + movs r0, 0 + str r0, [r5] + strh r0, [r4] + strh r0, [r7] +_08116C0E: + adds r2, r6, 0 + adds r2, 0xA8 + ldrh r1, [r2] + ldr r0, _08116C30 @ =0x0000ffff + cmp r1, r0 + beq _08116C1E + subs r0, r1, 0x1 + strh r0, [r2] +_08116C1E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08116C24: .4byte 0x02019000 +_08116C28: .4byte gMain +_08116C2C: .4byte gTasks +_08116C30: .4byte 0x0000ffff + thumb_func_end sub_8116BC0 + + thumb_func_start sub_8116C34 +sub_8116C34: @ 8116C34 + push {r4-r7,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r2, 16 + lsrs r4, r2, 16 + lsls r3, 16 + lsrs r3, 16 + ldr r0, _08116C84 @ =0x02019000 + mov r12, r0 + mov r2, r12 + adds r2, 0xB4 + ldr r1, _08116C88 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + mov r2, r12 + adds r7, r1, 0 + cmp r5, 0 + bne _08116C64 + adds r5, r0, 0 +_08116C64: + adds r0, r2, 0 + adds r0, 0xAC + str r5, [r0] + subs r0, 0x4 + strh r4, [r0] + ldr r0, _08116C8C @ =0x0000ffff + cmp r4, r0 + bne _08116C90 + cmp r3, 0 + bne _08116C90 + adds r1, r2, 0 + adds r1, 0xAA + ldrh r0, [r1] + orrs r4, r0 + strh r4, [r1] + b _08116C96 + .align 2, 0 +_08116C84: .4byte 0x02019000 +_08116C88: .4byte gTasks +_08116C8C: .4byte 0x0000ffff +_08116C90: + adds r0, r2, 0 + adds r0, 0xAA + strh r3, [r0] +_08116C96: + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r7 + ldr r1, _08116CA8 @ =sub_8116BC0 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08116CA8: .4byte sub_8116BC0 + thumb_func_end sub_8116C34 + + thumb_func_start sub_8116CAC +sub_8116CAC: @ 8116CAC + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r2, 0 + ldr r0, _08116CF0 @ =0x02019000 + strb r2, [r0] + movs r1, 0 + strb r1, [r0, 0x3] + adds r3, r0, 0 + ldr r6, _08116CF4 @ =gTasks + adds r4, r3, 0 + adds r4, 0x1B +_08116CC4: + adds r0, r2, r4 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _08116CC4 + ldrb r1, [r3, 0x1A] + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + strb r0, [r3, 0x1A] + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r6 + movs r1, 0 + strh r1, [r0, 0xA] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08116CF0: .4byte 0x02019000 +_08116CF4: .4byte gTasks + thumb_func_end sub_8116CAC + + thumb_func_start sub_8116CF8 +sub_8116CF8: @ 8116CF8 + push {lr} + ldr r1, _08116D48 @ =0x02019000 + movs r0, 0 + str r0, [r1, 0x8] + movs r2, 0 + adds r1, 0xC + movs r3, 0 +_08116D06: + adds r0, r2, r1 + strb r3, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x5 + bls _08116D06 + movs r2, 0 + ldr r3, _08116D4C @ =0x02019012 + movs r1, 0 +_08116D1A: + adds r0, r2, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _08116D1A + movs r2, 0 + ldr r3, _08116D50 @ =0x02019016 + movs r1, 0 +_08116D2E: + adds r0, r2, r3 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _08116D2E + movs r0, 0x1 + movs r1, 0xFF + bl sub_8117C60 + pop {r0} + bx r0 + .align 2, 0 +_08116D48: .4byte 0x02019000 +_08116D4C: .4byte 0x02019012 +_08116D50: .4byte 0x02019016 + thumb_func_end sub_8116CF8 + + thumb_func_start sub_8116D54 +sub_8116D54: @ 8116D54 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x1C + lsls r0, 24 + lsrs r3, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + mov r1, sp + ldr r0, _08116D88 @ =gUnknown_083F8ED8 + ldm r0!, {r2,r4,r6} + stm r1!, {r2,r4,r6} + ldr r0, [r0] + str r0, [r1] + add r2, sp, 0x10 + adds r1, r2, 0 + ldr r0, _08116D8C @ =gUnknown_083F8EE8 + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + mov r9, r2 + cmp r5, 0xB + bls _08116D90 + movs r0, 0 + b _08116E38 + .align 2, 0 +_08116D88: .4byte gUnknown_083F8ED8 +_08116D8C: .4byte gUnknown_083F8EE8 +_08116D90: + ldr r6, _08116E48 @ =0x02019000 + ldr r1, _08116E4C @ =gTasks + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 3 + adds r0, r1 + movs r7, 0x14 + ldrsh r2, [r0, r7] + adds r2, r6, r2 + ldr r4, _08116E50 @ =gUnknown_083F8D90 + lsls r5, 3 + adds r3, r5, r4 + ldrb r1, [r3, 0x2] + strb r1, [r2, 0xB] + ldrb r1, [r3, 0x2] + strh r1, [r0, 0x20] + adds r0, r4, 0x4 + adds r0, r5, r0 + ldr r1, [r6, 0x8] + ldr r0, [r0] + orrs r1, r0 + str r1, [r6, 0x8] + movs r3, 0 + mov r8, r4 + mov r12, r5 + adds r5, r0, 0 + adds r4, r6, 0 + adds r4, 0x12 +_08116DC8: + lsls r0, r3, 2 + mov r1, sp + adds r2, r1, r0 + ldr r0, [r2] + ands r0, r5 + cmp r0, 0 + beq _08116DDE + adds r1, r3, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08116DDE: + adds r0, r3, r4 + ldrb r0, [r0] + cmp r0, 0x2 + bls _08116DEE + ldr r0, [r6, 0x8] + ldr r1, [r2] + orrs r0, r1 + str r0, [r6, 0x8] +_08116DEE: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x3 + bls _08116DC8 + movs r2, 0 + ldr r0, _08116E54 @ =gUnknown_083F8D94 + add r0, r12 + ldr r7, [r0] + ldr r4, _08116E58 @ =0x02019016 + mov r5, r9 +_08116E04: + lsls r0, r2, 2 + adds r3, r5, r0 + ldr r0, [r3] + ands r0, r7 + cmp r0, 0 + beq _08116E18 + adds r1, r2, r4 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08116E18: + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0x3 + bls _08116E28 + ldr r0, [r6, 0x8] + ldr r1, [r3] + orrs r0, r1 + str r0, [r6, 0x8] +_08116E28: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x2 + bls _08116E04 + mov r0, r12 + add r0, r8 + ldrb r0, [r0, 0x2] +_08116E38: + add sp, 0x1C + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08116E48: .4byte 0x02019000 +_08116E4C: .4byte gTasks +_08116E50: .4byte gUnknown_083F8D90 +_08116E54: .4byte gUnknown_083F8D94 +_08116E58: .4byte 0x02019016 + thumb_func_end sub_8116D54 + + thumb_func_start sub_8116E5C +sub_8116E5C: @ 8116E5C + push {lr} + lsls r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + lsrs r3, r0, 24 + movs r1, 0xFF + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x12 + bhi _08116EF0 + cmp r2, 0xF + bhi _08116EEC + lsls r0, r2, 2 + ldr r1, _08116E80 @ =_08116E84 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08116E80: .4byte _08116E84 + .align 2, 0 +_08116E84: + .4byte _08116EC4 + .4byte _08116EC8 + .4byte _08116EC8 + .4byte _08116EC8 + .4byte _08116EC8 + .4byte _08116EDC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EDC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EEC + .4byte _08116EDC +_08116EC4: + movs r0, 0x3 + b _08116EF2 +_08116EC8: + adds r0, r2, 0x5 + cmp r3, r0 + beq _08116EE8 + adds r0, 0x5 + cmp r3, r0 + beq _08116EE8 + adds r0, 0x5 + cmp r3, r0 + bne _08116EF0 + b _08116EE8 +_08116EDC: + adds r0, r2, 0x1 + cmp r3, r0 + blt _08116EF0 + adds r0, r2, 0x4 + cmp r3, r0 + bgt _08116EF0 +_08116EE8: + movs r0, 0x1 + b _08116EF2 +_08116EEC: + cmp r3, r2 + beq _08116EE8 +_08116EF0: + movs r0, 0 +_08116EF2: + pop {r1} + bx r1 + thumb_func_end sub_8116E5C + + thumb_func_start sub_8116EF8 +sub_8116EF8: @ 8116EF8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x20 + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0 + str r0, [sp, 0x18] + cmp r6, 0xA + beq _08116F1E + cmp r6, 0xA + bgt _08116F1A + cmp r6, 0x5 + beq _08116F1E + b _08116F7C +_08116F1A: + cmp r6, 0xF + bne _08116F7C +_08116F1E: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0x5 + ldr r7, _08116F70 @ =0x020190b8 + cmp r4, r0 + bge _08116F5E + adds r1, r7, 0 + subs r1, 0xB8 + ldr r3, _08116F74 @ =gUnknown_083F8C00 + ldr r5, [r1, 0x8] + adds r6, r3, 0 + adds r6, 0x8 + adds r2, r0, 0 +_08116F3A: + lsls r0, r4, 2 + adds r0, r4 + lsls r1, r0, 2 + adds r0, r1, r6 + ldr r0, [r0] + ands r0, r5 + cmp r0, 0 + bne _08116F54 + adds r0, r1, r3 + ldrh r0, [r0, 0x10] + ldr r1, [sp, 0x18] + orrs r1, r0 + str r1, [sp, 0x18] +_08116F54: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r2 + blt _08116F3A +_08116F5E: + ldr r0, _08116F78 @ =0x0000dfff + ldr r2, [sp, 0x18] + ands r2, r0 + str r2, [sp, 0x18] + adds r0, r7, 0 + adds r1, r2, 0 + bl sub_8124CE8 + b _0811713C + .align 2, 0 +_08116F70: .4byte 0x020190b8 +_08116F74: .4byte gUnknown_083F8C00 +_08116F78: .4byte 0x0000dfff +_08116F7C: + mov r0, sp + ldr r1, _08116FC8 @ =gUnknown_083F8E9C + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + subs r0, r6, 0x1 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0x1 + mov r10, r3 + cmp r0, 0x3 + bhi _08116F9A + movs r4, 0x3 + mov r10, r4 +_08116F9A: + adds r0, r6, 0 + movs r1, 0x5 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 8 + ldr r1, _08116FCC @ =0xffff0000 + adds r0, r1 + lsrs r7, r0, 16 + adds r0, r6, 0 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _08116FF8 + cmp r0, 0x2 + bgt _08116FD4 + cmp r0, 0x1 + beq _08116FE4 + ldr r4, _08116FD0 @ =0x02019000 + b _0811703A + .align 2, 0 +_08116FC8: .4byte gUnknown_083F8E9C +_08116FCC: .4byte 0xffff0000 +_08116FD0: .4byte 0x02019000 +_08116FD4: + cmp r0, 0x3 + beq _0811700C + cmp r0, 0x4 + beq _08117020 + ldr r4, _08116FE0 @ =0x02019000 + b _0811703A + .align 2, 0 +_08116FE0: .4byte 0x02019000 +_08116FE4: + ldr r3, _08116FF0 @ =gSprites + ldr r2, _08116FF4 @ =0x02019000 + adds r0, r2, 0 + adds r0, 0x43 + b _08117028 + .align 2, 0 +_08116FF0: .4byte gSprites +_08116FF4: .4byte 0x02019000 +_08116FF8: + ldr r3, _08117004 @ =gSprites + ldr r2, _08117008 @ =0x02019000 + adds r0, r2, 0 + adds r0, 0x44 + b _08117028 + .align 2, 0 +_08117004: .4byte gSprites +_08117008: .4byte 0x02019000 +_0811700C: + ldr r3, _08117018 @ =gSprites + ldr r2, _0811701C @ =0x02019000 + adds r0, r2, 0 + adds r0, 0x45 + b _08117028 + .align 2, 0 +_08117018: .4byte gSprites +_0811701C: .4byte 0x02019000 +_08117020: + ldr r3, _08117088 @ =gSprites + ldr r2, _0811708C @ =0x02019000 + adds r0, r2, 0 + adds r0, 0x46 +_08117028: + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x5] + lsrs r0, 4 + lsls r7, r0, 4 + adds r4, r2, 0 +_0811703A: + mov r2, r10 + cmp r2, 0x1 + bne _08117094 + ldr r1, _08117090 @ =gUnknown_083F8C00 + lsls r2, r6, 2 + adds r0, r2, r6 + lsls r0, 2 + adds r1, 0x8 + adds r0, r1 + ldr r1, [r4, 0x8] + ldr r0, [r0] + ands r1, r0 + str r2, [sp, 0x1C] + cmp r1, 0 + bne _0811713C + adds r0, r6, 0 + movs r1, 0x5 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + subs r1, r0, 0x1 + lsls r1, 3 + mov r3, sp + adds r2, r3, r1 + ldrh r1, [r2, 0x2] + adds r1, r7, r1 + strh r1, [r2, 0x2] + adds r1, r4, 0 + adds r1, 0xB8 + lsls r0, 3 + subs r0, 0x8 + adds r2, r3, r0 + adds r0, r1, 0 + movs r1, 0xD + bl sub_812492C + b _08117122 + .align 2, 0 +_08117088: .4byte gSprites +_0811708C: .4byte 0x02019000 +_08117090: .4byte gUnknown_083F8C00 +_08117094: + movs r4, 0 + lsls r0, r6, 2 + str r0, [sp, 0x1C] + ldr r1, _0811714C @ =0x02019000 + mov r8, r1 + ldr r2, _08117150 @ =gUnknown_083F8C00 + mov r9, r2 +_081170A2: + lsls r0, r4, 2 + adds r0, r4 + adds r0, r6, r0 + adds r0, 0x5 + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r5, r0, 2 + mov r0, r9 + adds r0, 0x8 + adds r0, r5, r0 + mov r3, r8 + ldr r1, [r3, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0811710E + adds r0, r2, 0 + movs r1, 0x5 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + subs r1, r0, 0x1 + lsls r1, 3 + mov r3, sp + adds r2, r3, r1 + ldrh r1, [r2, 0x2] + adds r1, r7, r1 + strh r1, [r2, 0x2] + adds r1, r4, 0 + adds r1, 0xD + lsls r1, 24 + lsrs r1, 24 + lsls r0, 3 + subs r0, 0x8 + adds r2, r3, r0 + mov r0, r8 + adds r0, 0xB8 + bl sub_812492C + mov r0, r10 + cmp r0, 0x3 + bne _08117104 + mov r1, r9 + adds r0, r5, r1 + ldrh r0, [r0, 0x10] + str r0, [sp, 0x18] +_08117104: + mov r0, r10 + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_0811710E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _081170A2 + mov r2, r10 + cmp r2, 0x2 + beq _08117122 + movs r3, 0 + str r3, [sp, 0x18] +_08117122: + ldr r0, _08117154 @ =0x020190b8 + ldr r2, _08117150 @ =gUnknown_083F8C00 + ldr r4, [sp, 0x1C] + adds r1, r4, r6 + lsls r1, 2 + adds r1, r2 + ldrh r1, [r1, 0x10] + ldr r2, [sp, 0x18] + orrs r2, r1 + str r2, [sp, 0x18] + adds r1, r2, 0 + bl sub_8124CE8 +_0811713C: + add sp, 0x20 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811714C: .4byte 0x02019000 +_08117150: .4byte gUnknown_083F8C00 +_08117154: .4byte 0x020190b8 + thumb_func_end sub_8116EF8 + + thumb_func_start sub_8117158 +sub_8117158: @ 8117158 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _0811719C @ =0x02019000 + movs r0, 0x1 + strh r0, [r4, 0x2A] + movs r0, 0 + movs r1, 0 + bl sub_8117AA8 + ldr r0, _081171A0 @ =gBG1TilemapBuffer + ldr r1, _081171A4 @ =0xfffff800 + adds r4, r1 + movs r1, 0x10 + str r1, [sp] + movs r1, 0xD + str r1, [sp, 0x4] + adds r1, r4, 0 + movs r2, 0xE + movs r3, 0x7 + bl sub_8124E2C + cmp r5, 0xF + bhi _08117250 + lsls r0, r5, 2 + ldr r1, _081171A8 @ =_081171AC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0811719C: .4byte 0x02019000 +_081171A0: .4byte gBG1TilemapBuffer +_081171A4: .4byte 0xfffff800 +_081171A8: .4byte _081171AC + .align 2, 0 +_081171AC: + .4byte _08117360 + .4byte _081171EC + .4byte _081171EC + .4byte _081171EC + .4byte _081171EC + .4byte _08117220 + .4byte _08117250 + .4byte _08117250 + .4byte _08117250 + .4byte _08117250 + .4byte _08117220 + .4byte _08117250 + .4byte _08117250 + .4byte _08117250 + .4byte _08117250 + .4byte _08117220 +_081171EC: + movs r0, 0x4 + str r0, [sp, 0x18] + add r1, sp, 0x8 + movs r0, 0 + strb r0, [r1] + adds r0, r1, 0 + ldrb r0, [r0] + cmp r0, 0x3 + bhi _08117258 + add r4, sp, 0x10 + adds r3, r1, 0 +_08117202: + ldrb r2, [r3] + adds r2, r4 + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + adds r0, r5, r0 + strb r0, [r2] + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + ldrb r0, [r3] + ldr r1, [sp, 0x18] + cmp r0, r1 + bcc _08117202 + b _08117258 +_08117220: + movs r0, 0x5 + str r0, [sp, 0x18] + add r1, sp, 0x8 + movs r0, 0 + strb r0, [r1] + adds r0, r1, 0 + ldrb r0, [r0] + cmp r0, 0x4 + bhi _08117258 + add r3, sp, 0x10 + adds r2, r1, 0 +_08117236: + ldrb r1, [r2] + adds r1, r3 + ldrb r0, [r2] + adds r0, r5, r0 + strb r0, [r1] + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + ldrb r0, [r2] + ldr r1, [sp, 0x18] + cmp r0, r1 + bcc _08117236 + b _08117258 +_08117250: + movs r0, 0x1 + str r0, [sp, 0x18] + add r0, sp, 0x10 + strb r5, [r0] +_08117258: + add r1, sp, 0x8 + movs r0, 0 + strb r0, [r1] + adds r0, r1, 0 + ldrb r0, [r0] + ldr r1, [sp, 0x18] + cmp r0, r1 + bcs _08117360 + mov r0, sp + adds r0, 0xE + str r0, [sp, 0x1C] + add r1, sp, 0x10 + mov r9, r1 + add r0, sp, 0x8 + mov r12, r0 + mov r1, sp + adds r1, 0xA + str r1, [sp, 0x20] +_0811727C: + mov r1, r12 + ldrb r0, [r1] + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, _08117370 @ =gUnknown_083F8C00 + adds r0, r1 + ldrb r0, [r0, 0x6] + ldr r1, [sp, 0x1C] + strb r0, [r1] + mov r1, r12 + ldrb r0, [r1] + add r0, r9 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + ldr r1, _08117370 @ =gUnknown_083F8C00 + adds r0, r1 + ldrb r0, [r0, 0x3] + ldr r1, [sp, 0x20] + strh r0, [r1] + mov r4, sp + adds r4, 0x9 + movs r0, 0 + strb r0, [r4] + ldrb r0, [r4] + cmp r0, 0x2 + bhi _08117350 + add r5, sp, 0xC + ldr r7, [sp, 0x20] + ldr r0, _08117374 @ =gBG1TilemapBuffer + mov r8, r0 + ldr r6, [sp, 0x1C] + ldr r1, _08117378 @ =0x020189a0 + mov r10, r1 +_081172C8: + mov r1, r12 + ldrb r0, [r1] + add r0, r9 + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + ldr r0, _08117370 @ =gUnknown_083F8C00 + adds r1, r0 + adds r3, r4, 0 + ldrb r0, [r4] + ldrb r1, [r1, 0x4] + adds r0, r1 + lsls r0, 5 + strh r0, [r5] + ldrh r0, [r7] + ldrh r2, [r5] + adds r2, r0 + lsls r2, 1 + add r2, r8 + ldrb r0, [r6] + ldrb r1, [r4] + adds r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + strh r0, [r2] + ldrh r0, [r7] + ldrh r2, [r5] + adds r2, r0 + adds r2, 0x1 + lsls r2, 1 + add r2, r8 + ldrb r0, [r6] + ldrb r1, [r4] + adds r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + mov r1, r10 + adds r1, 0x2 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldrh r0, [r7] + ldrh r2, [r5] + adds r2, r0 + adds r2, 0x2 + lsls r2, 1 + add r2, r8 + ldrb r0, [r6] + ldrb r1, [r4] + adds r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 1 + ldr r1, _0811737C @ =0x020189a4 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldrb r0, [r3] + cmp r0, 0x2 + bls _081172C8 +_08117350: + mov r1, r12 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldrb r0, [r1] + ldr r1, [sp, 0x18] + cmp r0, r1 + bcc _0811727C +_08117360: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117370: .4byte gUnknown_083F8C00 +_08117374: .4byte gBG1TilemapBuffer +_08117378: .4byte 0x020189a0 +_0811737C: .4byte 0x020189a4 + thumb_func_end sub_8117158 + + thumb_func_start sub_8117380 +sub_8117380: @ 8117380 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _081173B8 @ =gUnknown_083F8EF4 + mov r0, sp + movs r2, 0x5 + bl memcpy + cmp r4, 0x13 + bls _08117398 + movs r4, 0 +_08117398: + ldr r3, _081173BC @ =gUnknown_083F8C00 + lsls r0, r4, 2 + adds r0, r4 + lsls r2, r0, 2 + adds r0, r2, r3 + ldrb r0, [r0, 0x1] + lsls r0, 28 + lsrs r0, 28 + cmp r0, 0x4 + beq _081173EC + cmp r0, 0x4 + bgt _081173C0 + cmp r0, 0x3 + beq _081173C6 + b _08117428 + .align 2, 0 +_081173B8: .4byte gUnknown_083F8EF4 +_081173BC: .4byte gUnknown_083F8C00 +_081173C0: + cmp r0, 0xC + beq _0811740C + b _08117428 +_081173C6: + adds r0, r4, 0 + movs r1, 0x5 + bl __udivsi3 + subs r0, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _081173E8 @ =0x02019000 + adds r0, 0x16 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0x3 + bhi _08117428 + ldrb r0, [r1] + adds r0, 0x1 + b _08117402 + .align 2, 0 +_081173E8: .4byte 0x02019000 +_081173EC: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08117408 @ =0x02019000 + adds r0, 0x12 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _08117428 + ldrb r0, [r1] + adds r0, 0x2 +_08117402: + add r0, sp + ldrb r0, [r0] + b _0811742A + .align 2, 0 +_08117408: .4byte 0x02019000 +_0811740C: + ldr r1, _08117424 @ =0x02019000 + adds r0, r3, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldr r1, [r1, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08117428 + mov r0, sp + ldrb r0, [r0, 0x4] + b _0811742A + .align 2, 0 +_08117424: .4byte 0x02019000 +_08117428: + movs r0, 0 +_0811742A: + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8117380 + + thumb_func_start sub_8117434 +sub_8117434: @ 8117434 + push {r4-r6,lr} + ldr r1, _081174AC @ =REG_BG2PA + ldr r4, _081174B0 @ =0x02019000 + ldrh r0, [r4, 0x2C] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x2E] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x30] + strh r0, [r1] + adds r1, 0x2 + ldrh r0, [r4, 0x32] + strh r0, [r1] + movs r0, 0x2E + ldrsh r2, [r4, r0] + ldr r0, _081174B4 @ =gSpriteCoordOffsetY + movs r3, 0 + ldrsh r1, [r0, r3] + adds r1, 0x50 + adds r0, r2, 0 + muls r0, r1 + movs r2, 0xE8 + lsls r2, 7 + subs r2, r0 + movs r6, 0x2C + ldrsh r5, [r4, r6] + ldr r0, _081174B8 @ =gSpriteCoordOffsetX + movs r6, 0 + ldrsh r3, [r0, r6] + adds r3, 0x74 + adds r0, r5, 0 + muls r0, r3 + subs r2, r0 + movs r5, 0x32 + ldrsh r0, [r4, r5] + muls r0, r1 + movs r1, 0xA8 + lsls r1, 7 + subs r1, r0 + movs r6, 0x30 + ldrsh r0, [r4, r6] + muls r0, r3 + subs r1, r0 + ldr r0, _081174BC @ =REG_BG2X_L + strh r2, [r0] + adds r0, 0x2 + ldr r3, _081174C0 @ =0x0fff0000 + ands r2, r3 + asrs r2, 16 + strh r2, [r0] + adds r0, 0x2 + strh r1, [r0] + adds r0, 0x2 + ands r1, r3 + asrs r1, 16 + strh r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081174AC: .4byte REG_BG2PA +_081174B0: .4byte 0x02019000 +_081174B4: .4byte gSpriteCoordOffsetY +_081174B8: .4byte gSpriteCoordOffsetX +_081174BC: .4byte REG_BG2X_L +_081174C0: .4byte 0x0fff0000 + thumb_func_end sub_8117434 + + thumb_func_start sub_81174C4 +sub_81174C4: @ 81174C4 + push {lr} + lsls r0, 16 + asrs r0, 16 + lsls r1, 16 + asrs r1, 16 + muls r0, r1 + adds r1, r0, 0 + cmp r0, 0 + bge _081174D8 + adds r1, 0xFF +_081174D8: + lsls r0, r1, 8 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_81174C4 + + thumb_func_start sub_81174E0 +sub_81174E0: @ 81174E0 + push {lr} + adds r1, r0, 0 + movs r0, 0x80 + lsls r0, 9 + lsls r1, 16 + asrs r1, 16 + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_81174E0 + + thumb_func_start sub_81174F8 +sub_81174F8: @ 81174F8 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r0, _08117520 @ =0x00002d9e + bl sub_814AAF8 + ldr r1, _08117524 @ =gUnknown_083F8EB4 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117520: .4byte 0x00002d9e +_08117524: .4byte gUnknown_083F8EB4 + thumb_func_end sub_81174F8 + + thumb_func_start sub_8117528 +sub_8117528: @ 8117528 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08117554 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0811754C + movs r0, 0 + bl SetVBlankCallback + ldr r0, _08117558 @ =sub_8115384 + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_0811754C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117554: .4byte gPaletteFade +_08117558: .4byte sub_8115384 + thumb_func_end sub_8117528 + + thumb_func_start sub_811755C +sub_811755C: @ 811755C + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1A + movs r3, 0xD + bl MenuZeroFillWindowRect + bl MenuZeroFillScreen + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r2, _081175B4 @ =gPaletteFade + ldrb r1, [r2, 0x8] + lsls r1, 26 + lsrs r1, 26 + ldrb r3, [r2, 0x4] + movs r0, 0x40 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x4] + bl UpdatePaletteFade + ldr r1, _081175B8 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081175BC @ =sub_8117528 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081175B4: .4byte gPaletteFade +_081175B8: .4byte gTasks +_081175BC: .4byte sub_8117528 + thumb_func_end sub_811755C + + thumb_func_start sub_81175C0 +sub_81175C0: @ 81175C0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl MenuZeroFillScreen + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_81175C0 + + thumb_func_start sub_81175DC +sub_81175DC: @ 81175DC + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + ldr r1, _08117624 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x8] + adds r2, r1, 0x1 + strh r2, [r0, 0x8] + ldr r0, _08117628 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08117608 + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, 0x3C + ble _0811761C +_08117608: + ldr r1, _0811762C @ =gUnknown_0202E8CC + movs r0, 0x1 + strh r0, [r1] + bl MenuZeroFillScreen + bl ScriptContext2_Disable + adds r0, r4, 0 + bl DestroyTask +_0811761C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08117624: .4byte gTasks +_08117628: .4byte gMain +_0811762C: .4byte gUnknown_0202E8CC + thumb_func_end sub_81175DC + + thumb_func_start sub_8117630 +sub_8117630: @ 8117630 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r2, _0811768C @ =gUnknown_083F8DF0 + ldr r0, _08117690 @ =gUnknown_0202E8CC + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + lsrs r1, 7 + lsls r1, 1 + adds r0, r1 + adds r0, r2 + ldrb r1, [r0] + ldr r0, _08117694 @ =gStringVar1 + movs r2, 0x2 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + ldr r5, _08117698 @ =gStringVar4 + ldr r1, _0811769C @ =gUnknown_081C40DF + adds r0, r5, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _081176A0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _081176A4 @ =sub_81174F8 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811768C: .4byte gUnknown_083F8DF0 +_08117690: .4byte gUnknown_0202E8CC +_08117694: .4byte gStringVar1 +_08117698: .4byte gStringVar4 +_0811769C: .4byte gUnknown_081C40DF +_081176A0: .4byte gTasks +_081176A4: .4byte sub_81174F8 + thumb_func_end sub_8117630 + + thumb_func_start Task_Roulette_0 +Task_Roulette_0: @ 81176A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08117758 @ =gStringVar1 + mov r10, r0 + ldr r1, _0811775C @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r6, r0, r1 + movs r0, 0x22 + ldrsh r1, [r6, r0] + mov r0, r10 + movs r2, 0x1 + movs r3, 0x4 + bl ConvertIntToDecimalStringN + ldr r5, _08117760 @ =gStringVar4 + ldr r1, _08117764 @ =gOtherText_Coins + adds r0, r5, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0 + movs r2, 0x9 + movs r3, 0x3 + bl MenuDrawTextWindow + adds r0, r5, 0 + movs r1, 0x9 + movs r2, 0x1 + bl MenuPrint_RightAligned + ldr r2, _08117768 @ =gUnknown_083F8DF0 + ldr r1, _0811776C @ =gUnknown_0202E8CC + mov r8, r1 + ldrh r1, [r1] + movs r0, 0x1 + mov r9, r0 + ands r0, r1 + lsrs r1, 7 + lsls r1, 1 + adds r0, r1 + adds r0, r2 + ldrb r4, [r0] + mov r0, r10 + adds r1, r4, 0 + movs r2, 0x2 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + movs r1, 0x22 + ldrsh r0, [r6, r1] + cmp r0, r4 + blt _081177BC + mov r0, r8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0811777C + mov r0, r9 + ands r0, r1 + cmp r0, 0 + beq _0811777C + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldr r0, _08117770 @ =gUnknown_081C4139 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _08117774 @ =sub_8117630 + ldr r2, _08117778 @ =0x0000ffff + adds r0, r7, 0 + movs r3, 0x3 + bl sub_8116C34 + b _081177E4 + .align 2, 0 +_08117758: .4byte gStringVar1 +_0811775C: .4byte gTasks +_08117760: .4byte gStringVar4 +_08117764: .4byte gOtherText_Coins +_08117768: .4byte gUnknown_083F8DF0 +_0811776C: .4byte gUnknown_0202E8CC +_08117770: .4byte gUnknown_081C4139 +_08117774: .4byte sub_8117630 +_08117778: .4byte 0x0000ffff +_0811777C: + ldr r4, _081177AC @ =gStringVar4 + ldr r1, _081177B0 @ =gUnknown_081C40DF + adds r0, r4, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r4, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r1, _081177B4 @ =gTasks + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 3 + adds r0, r1 + ldr r1, _081177B8 @ =sub_81174F8 + str r1, [r0] + b _081177E4 + .align 2, 0 +_081177AC: .4byte gStringVar4 +_081177B0: .4byte gUnknown_081C40DF +_081177B4: .4byte gTasks +_081177B8: .4byte sub_81174F8 +_081177BC: + ldr r1, _081177F4 @ =gUnknown_081C411C + adds r0, r5, 0 + bl StringExpandPlaceholders + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + adds r0, r5, 0 + movs r1, 0x1 + movs r2, 0xF + bl MenuPrint + ldr r0, _081177F8 @ =sub_81175DC + str r0, [r6] + movs r0, 0 + strh r0, [r6, 0x22] + strh r0, [r6, 0x8] +_081177E4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081177F4: .4byte gUnknown_081C411C +_081177F8: .4byte sub_81175DC + thumb_func_end Task_Roulette_0 + + thumb_func_start PlayRoulette +PlayRoulette: @ 81177FC + push {lr} + bl ScriptContext2_Enable + ldr r0, _08117828 @ =sub_81176A8 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0811782C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _08117830 @ =gSaveBlock1 + ldr r2, _08117834 @ =0x00000494 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1, 0x22] + pop {r0} + bx r0 + .align 2, 0 +_08117828: .4byte Task_Roulette_0 +_0811782C: .4byte gTasks +_08117830: .4byte gSaveBlock1 +_08117834: .4byte 0x00000494 + thumb_func_end PlayRoulette + + thumb_func_start sub_8117838 +sub_8117838: @ 8117838 + push {r4,lr} + lsls r0, 24 + cmp r0, 0 + bne _08117884 + bl FreeAllSpritePalettes + ldr r0, _08117870 @ =gUnknown_083F9E30 + bl LoadSpritePalettes + ldr r0, _08117874 @ =gUnknown_083F92A8 + ldr r4, _08117878 @ =0x02017000 + adds r1, r4, 0 + bl LZ77UnCompWram + ldr r0, _0811787C @ =gUnknown_083F90FC + movs r2, 0xE0 + lsls r2, 4 + adds r1, r4, r2 + bl LZ77UnCompWram + ldr r0, _08117880 @ =gUnknown_083F9D3C + movs r1, 0x80 + lsls r1, 5 + adds r4, r1 + adds r1, r4, 0 + bl LZ77UnCompWram + b _08117888 + .align 2, 0 +_08117870: .4byte gUnknown_083F9E30 +_08117874: .4byte gUnknown_083F92A8 +_08117878: .4byte 0x02017000 +_0811787C: .4byte gUnknown_083F90FC +_08117880: .4byte gUnknown_083F9D3C +_08117884: + bl FreeAllSpritePalettes +_08117888: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8117838 + + thumb_func_start sub_8117890 +sub_8117890: @ 8117890 + push {r4-r6,lr} + adds r4, r1, 0 + adds r6, r2, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r1, [r0, 0x4] + ldrb r3, [r1] + movs r1, 0x74 + movs r2, 0x50 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + ldr r0, _081178F4 @ =gSprites + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r6] + strh r0, [r1, 0x2E] + strh r4, [r1, 0x30] + adds r3, r1, 0 + adds r3, 0x3E + ldrb r0, [r3] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r3] + adds r1, 0x2C + ldrb r0, [r1] + movs r2, 0x40 + orrs r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r1] + ldrh r2, [r6] + adds r0, r2, 0 + adds r0, 0x1E + strh r0, [r6] + lsls r0, 16 + ldr r1, _081178F8 @ =0x01670000 + cmp r0, r1 + bls _081178EC + ldr r1, _081178FC @ =0xfffffeb6 + adds r0, r2, r1 + strh r0, [r6] +_081178EC: + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_081178F4: .4byte gSprites +_081178F8: .4byte 0x01670000 +_081178FC: .4byte 0xfffffeb6 + thumb_func_end sub_8117890 + + thumb_func_start sub_8117900 +sub_8117900: @ 8117900 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + ldr r4, _08117A50 @ =gUnknown_083F9F54 + ldr r0, [r4] + ldr r5, _08117A54 @ =0x02000000 + adds r1, r5, 0 + bl LZ77UnCompWram + str r5, [sp] + mov r6, sp + ldrh r1, [r4, 0x6] + lsls r1, 16 + ldrh r0, [r4, 0x4] + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldr r4, _08117A58 @ =gUnknown_083F9F5C + ldr r0, [r4] + adds r1, r5, 0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r0, [r4, 0x4] + strh r0, [r6, 0x4] + ldrh r0, [r4, 0x6] + strh r0, [r6, 0x6] + mov r0, sp + bl LoadSpriteSheet + movs r7, 0 + ldr r0, _08117A5C @ =0x0001903c + adds r0, r5 + mov r9, r0 + ldr r0, _08117A60 @ =gSprites + mov r8, r0 +_08117950: + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 27 + lsrs r4, r0, 24 + movs r6, 0 + lsls r5, r7, 2 +_0811795C: + lsls r1, r6, 1 + adds r1, r6 + lsls r1, 3 + ldr r0, _08117A64 @ =gSpriteTemplate_83FA07C + adds r0, r1, r0 + adds r1, 0x94 + adds r2, r4, 0 + adds r2, 0x5C + movs r3, 0x1E + bl CreateSprite + adds r1, r6, 0 + adds r1, 0x1D + adds r1, r5, r1 + add r1, r9 + strb r0, [r1] + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + adds r0, r4, 0 + adds r0, 0x18 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x47 + bls _081179A0 + movs r4, 0 +_081179A0: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _0811795C + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _08117950 + movs r7, 0 + ldr r5, _08117A68 @ =0x0201903c + ldr r4, _08117A60 @ =gSprites +_081179BA: + lsls r1, r7, 1 + adds r1, r7 + lsls r1, 3 + ldr r0, _08117A6C @ =gSpriteTemplate_83F9FD4 + adds r0, r1, r0 + adds r1, 0x94 + lsls r1, 16 + asrs r1, 16 + movs r2, 0x46 + movs r3, 0x1E + bl CreateSprite + adds r1, r7, 0 + adds r1, 0x29 + adds r1, r5 + strb r0, [r1] + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x3 + bls _081179BA + movs r7, 0 + ldr r5, _08117A68 @ =0x0201903c + ldr r4, _08117A60 @ =gSprites +_08117A00: + lsls r2, r7, 1 + adds r2, r7 + lsls r2, 3 + ldr r0, _08117A70 @ =gSpriteTemplate_83FA034 + adds r0, r2, r0 + adds r2, 0x5C + lsls r2, 16 + asrs r2, 16 + movs r1, 0x7E + movs r3, 0x1E + bl CreateSprite + adds r1, r7, 0 + adds r1, 0x2D + adds r1, r5 + strb r0, [r1] + lsls r0, 24 + lsrs r1, r0, 24 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x2 + bls _08117A00 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117A50: .4byte gUnknown_083F9F54 +_08117A54: .4byte 0x02000000 +_08117A58: .4byte gUnknown_083F9F5C +_08117A5C: .4byte 0x0001903c +_08117A60: .4byte gSprites +_08117A64: .4byte gSpriteTemplate_83FA07C +_08117A68: .4byte 0x0201903c +_08117A6C: .4byte gSpriteTemplate_83F9FD4 +_08117A70: .4byte gSpriteTemplate_83FA034 + thumb_func_end sub_8117900 + + thumb_func_start unref_sub_8117A74 +unref_sub_8117A74: @ 8117A74 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _08117AA0 @ =0x0201903c +_08117A7A: + adds r0, r4, 0 + adds r0, 0x1D + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08117AA4 @ =gSprites + adds r0, r1 + bl DestroySprite + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xB + bls _08117A7A + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08117AA0: .4byte 0x0201903c +_08117AA4: .4byte gSprites + thumb_func_end unref_sub_8117A74 + + thumb_func_start sub_8117AA8 +sub_8117AA8: @ 8117AA8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + cmp r0, 0 + beq _08117AF8 + cmp r0, 0x1 + bne _08117BA8 + movs r3, 0 + ldr r5, _08117AF0 @ =gSprites + ldr r4, _08117AF4 @ =0x0201903c + movs r2, 0x4 +_08117ACA: + adds r0, r3, 0 + adds r0, 0x1D + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x12 + bls _08117ACA + b _08117BA8 + .align 2, 0 +_08117AF0: .4byte gSprites +_08117AF4: .4byte 0x0201903c +_08117AF8: + movs r3, 0 + ldr r0, _08117B48 @ =gUnknown_083F8D90 + mov r12, r0 + ldr r7, _08117B4C @ =0x02019000 + movs r1, 0x4 + add r1, r12 + mov r9, r1 + ldr r5, _08117B50 @ =gSprites + adds r4, r7, 0 + adds r4, 0x3C + movs r6, 0x5 + negs r6, r6 +_08117B10: + lsls r2, r3, 3 + mov r1, r9 + adds r0, r2, r1 + ldr r1, [r7, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08117B54 + mov r1, r12 + adds r0, r2, r1 + ldrb r0, [r0, 0x2] + cmp r0, r8 + beq _08117B54 + adds r0, r3, 0 + adds r0, 0x1D + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _08117B6E + .align 2, 0 +_08117B48: .4byte gUnknown_083F8D90 +_08117B4C: .4byte 0x02019000 +_08117B50: .4byte gSprites +_08117B54: + adds r0, r3, 0 + adds r0, 0x1D + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] +_08117B6E: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0xB + bls _08117B10 + cmp r3, 0x12 + bhi _08117BA8 + ldr r6, _08117BB4 @ =gSprites + ldr r4, _08117BB8 @ =0x0201903c + movs r5, 0x5 + negs r5, r5 +_08117B84: + adds r0, r3, 0 + adds r0, 0x1D + adds r0, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x12 + bls _08117B84 +_08117BA8: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117BB4: .4byte gSprites +_08117BB8: .4byte 0x0201903c + thumb_func_end sub_8117AA8 + + thumb_func_start sub_8117BBC +sub_8117BBC: @ 8117BBC + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 + ldr r0, _08117C50 @ =0x0201903c + mov r8, r0 + ldr r4, _08117C54 @ =gSprites + movs r6, 0x4 +_08117BCC: + ldr r0, _08117C58 @ =gSpriteTemplate_83FA40C + movs r1, 0x74 + movs r2, 0x14 + movs r3, 0xA + bl CreateSprite + adds r3, r5, 0 + adds r3, 0x31 + add r3, r8 + strb r0, [r3] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + strh r1, [r0, 0x2E] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08117C5C @ =sub_81184CC + str r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x5] + movs r7, 0xD + negs r7, r7 + adds r2, r7, 0 + ands r1, r2 + orrs r1, r6 + strb r1, [r0, 0x5] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x8 + bl StartSpriteAnim + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08117BCC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117C50: .4byte 0x0201903c +_08117C54: .4byte gSprites +_08117C58: .4byte gSpriteTemplate_83FA40C +_08117C5C: .4byte sub_81184CC + thumb_func_end sub_8117BBC + + thumb_func_start sub_8117C60 +sub_8117C60: @ 8117C60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r5, 0 + cmp r0, 0 + beq _08117CAC + ldr r4, _08117CA4 @ =gSprites + ldr r3, _08117CA8 @ =0x0201903c + movs r2, 0x4 +_08117C7E: + adds r0, r5, 0 + adds r0, 0x31 + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08117C7E + b _08117D58 + .align 2, 0 +_08117CA4: .4byte gSprites +_08117CA8: .4byte 0x0201903c +_08117CAC: + ldr r0, _08117CEC @ =0x02019000 + mov r12, r0 + ldr r6, _08117CF0 @ =gSprites + movs r0, 0x3C + add r0, r12 + mov r8, r0 + ldr r7, _08117CF4 @ =gUnknown_083F8C00 + movs r0, 0x5 + negs r0, r0 + mov r10, r0 +_08117CC0: + mov r0, r12 + adds r0, 0xC + adds r4, r5, r0 + ldrb r0, [r4] + cmp r0, 0 + beq _08117CD0 + cmp r5, r9 + bne _08117CF8 +_08117CD0: + adds r0, r5, 0 + adds r0, 0x31 + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _08117D4E + .align 2, 0 +_08117CEC: .4byte 0x02019000 +_08117CF0: .4byte gSprites +_08117CF4: .4byte gUnknown_083F8C00 +_08117CF8: + adds r3, r5, 0 + adds r3, 0x31 + add r3, r8 + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r10 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x3] + adds r0, 0x1 + lsls r0, 3 + adds r0, 0x4 + strh r0, [r2, 0x20] + ldrb r0, [r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r6 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x4] + adds r0, 0x1 + lsls r0, 3 + adds r0, 0x3 + strh r0, [r2, 0x22] +_08117D4E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08117CC0 +_08117D58: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8117C60 + + thumb_func_start sub_8117D68 +sub_8117D68: @ 8117D68 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + bne _08117D98 + ldr r2, _08117D90 @ =gSprites + ldr r0, _08117D94 @ =0x02019000 + adds r0, 0x6C + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + b _08117DE2 + .align 2, 0 +_08117D90: .4byte gSprites +_08117D94: .4byte 0x02019000 +_08117D98: + ldr r4, _08117DE8 @ =gSprites + ldr r3, _08117DEC @ =0x02019000 + adds r3, 0x6C + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldr r0, _08117DF0 @ =gUnknown_083F8C00 + lsls r2, r5, 2 + adds r2, r5 + lsls r2, 2 + adds r2, r0 + ldrb r0, [r2, 0x3] + adds r0, 0x2 + lsls r0, 3 + strh r0, [r1, 0x20] + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r2, 0x4] + adds r0, 0x2 + lsls r0, 3 + strh r0, [r1, 0x22] +_08117DE2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08117DE8: .4byte gSprites +_08117DEC: .4byte 0x02019000 +_08117DF0: .4byte gUnknown_083F8C00 + thumb_func_end sub_8117D68 + + thumb_func_start sub_8117DF4 +sub_8117DF4: @ 8117DF4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xC + ldr r4, _08117E84 @ =gUnknown_083F9EE8 + ldr r0, [r4] + ldr r5, _08117E88 @ =0x02000000 + adds r1, r5, 0 + bl LZ77UnCompWram + str r5, [sp, 0x4] + add r0, sp, 0x4 + ldrh r2, [r4, 0x6] + lsls r2, 16 + ldrh r1, [r4, 0x4] + orrs r1, r2 + str r1, [r0, 0x4] + bl LoadSpriteSheet + movs r1, 0xF + mov r0, sp + strh r1, [r0] + movs r0, 0 + ldr r1, _08117E8C @ =0x0001903c + adds r1, r5 + mov r8, r1 + ldr r7, _08117E90 @ =gSprites +_08117E2A: + movs r4, 0 + adds r6, r0, 0x1 + lsls r5, r0, 2 +_08117E30: + adds r1, r5, r4 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + ldr r1, _08117E94 @ =gSpriteTemplate_83FA0DC + adds r0, r1 + movs r1, 0x28 + mov r2, sp + bl sub_8117890 + adds r1, r4, 0x7 + adds r1, r5, r1 + add r1, r8 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r7 + adds r1, 0x2C + ldrb r0, [r1] + movs r2, 0x40 + orrs r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x3 + bls _08117E30 + lsls r0, r6, 24 + lsrs r0, 24 + cmp r0, 0x2 + bls _08117E2A + add sp, 0xC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08117E84: .4byte gUnknown_083F9EE8 +_08117E88: .4byte 0x02000000 +_08117E8C: .4byte 0x0001903c +_08117E90: .4byte gSprites +_08117E94: .4byte gSpriteTemplate_83FA0DC + thumb_func_end sub_8117DF4 + + thumb_func_start sub_8117E98 +sub_8117E98: @ 8117E98 + push {r4-r6,lr} + adds r6, r0, 0 + ldr r0, _08117F1C @ =0x02019000 + ldrh r1, [r6, 0x2E] + ldrh r0, [r0, 0x24] + adds r1, r0 + lsls r1, 16 + lsrs r4, r1, 16 + asrs r1, 16 + ldr r0, _08117F20 @ =0x00000167 + cmp r1, r0 + ble _08117EB8 + ldr r2, _08117F24 @ =0xfffffe98 + adds r0, r1, r2 + lsls r0, 16 + lsrs r4, r0, 16 +_08117EB8: + adds r0, r4, 0 + bl Sin2 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + bl Cos2 + lsls r2, r5, 16 + asrs r2, 16 + movs r3, 0x30 + ldrsh r1, [r6, r3] + muls r1, r2 + asrs r1, 12 + strh r1, [r6, 0x24] + lsls r0, 16 + asrs r4, r0, 16 + negs r1, r4 + movs r3, 0x30 + ldrsh r0, [r6, r3] + muls r0, r1 + asrs r0, 12 + strh r0, [r6, 0x26] + ldrb r0, [r6, 0x3] + lsls r0, 26 + lsrs r3, r0, 27 + cmp r2, 0 + bge _08117EF2 + adds r2, 0xF +_08117EF2: + lsls r0, r2, 12 + lsrs r5, r0, 16 + ldr r1, _08117F28 @ =gOamMatrices + lsls r0, r3, 3 + adds r1, r0, r1 + adds r0, r4, 0 + cmp r0, 0 + bge _08117F04 + adds r0, 0xF +_08117F04: + asrs r0, 4 + strh r0, [r1, 0x6] + strh r0, [r1] + strh r5, [r1, 0x2] + lsls r0, r5, 16 + asrs r0, 16 + negs r0, r0 + strh r0, [r1, 0x4] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08117F1C: .4byte 0x02019000 +_08117F20: .4byte 0x00000167 +_08117F24: .4byte 0xfffffe98 +_08117F28: .4byte gOamMatrices + thumb_func_end sub_8117E98 + + thumb_func_start sub_8117F2C +sub_8117F2C: @ 8117F2C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r5, 0 + ldr r7, _081180C8 @ =0x02000000 + mov r6, sp +_08117F3A: + ldr r0, _081180CC @ =gUnknown_083FA21C + lsls r4, r5, 3 + adds r4, r0 + ldr r0, [r4] + adds r1, r7, 0 + bl LZ77UnCompWram + str r7, [sp] + ldrh r2, [r4, 0x4] + ldr r0, _081180D0 @ =0xffff0000 + ldr r1, [r6, 0x4] + ands r1, r0 + orrs r1, r2 + str r1, [r6, 0x4] + ldrh r2, [r4, 0x6] + lsls r2, 16 + ldr r0, _081180D4 @ =0x0000ffff + ands r0, r1 + orrs r0, r2 + str r0, [r6, 0x4] + mov r0, sp + bl LoadSpriteSheet + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _08117F3A + ldr r0, _081180D8 @ =gSpriteTemplate_83FA2B0 + movs r1, 0xD0 + movs r2, 0x10 + movs r3, 0x4 + bl CreateSprite + ldr r4, _081180DC @ =0x02019000 + adds r1, r4, 0 + adds r1, 0x50 + strb r0, [r1] + ldr r3, _081180E0 @ =gSprites + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + movs r5, 0 + adds r4, 0x3C + adds r7, r3, 0 +_08117FA2: + lsls r1, r5, 19 + movs r0, 0xC4 + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + ldr r0, _081180E4 @ =gSpriteTemplate_83FA2C8 + movs r2, 0x18 + movs r3, 0 + bl CreateSprite + adds r3, r5, 0 + adds r3, 0x15 + adds r3, r4 + strb r0, [r3] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + adds r0, 0x2C + ldrb r1, [r0] + movs r6, 0x40 + orrs r1, r6 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _08117FA2 + ldr r0, _081180E8 @ =gSpriteTemplate_83FA2E0 + movs r1, 0x78 + movs r2, 0x44 + movs r3, 0x4 + bl CreateSprite + ldr r3, _081180DC @ =0x02019000 + adds r1, r3, 0 + adds r1, 0x55 + strb r0, [r1] + ldr r2, _081180E0 @ =gSprites + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2C + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + movs r5, 0 + adds r3, 0x3C + mov r8, r3 + adds r4, r2, 0 +_08118020: + lsls r1, r5, 20 + movs r0, 0xC0 + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + ldr r0, _081180EC @ =gSpriteTemplate_83FA2F8 + movs r2, 0x24 + movs r3, 0x4 + bl CreateSprite + adds r2, r5, 0 + adds r2, 0x1A + add r2, r8 + strb r0, [r2] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + movs r7, 0x4 + orrs r1, r7 + strb r1, [r0] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r6, 0x40 + orrs r1, r6 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x2 + bls _08118020 + ldr r0, _081180F0 @ =gSpriteTemplate_83FA310 + movs r1, 0x98 + movs r2, 0x60 + movs r3, 0x9 + bl CreateSprite + ldr r3, _081180DC @ =0x02019000 + adds r3, 0x6C + strb r0, [r3] + ldr r4, _081180E0 @ =gSprites + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r2 + orrs r0, r7 + strb r0, [r1, 0x5] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r7 + strb r1, [r0] + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081180C8: .4byte 0x02000000 +_081180CC: .4byte gUnknown_083FA21C +_081180D0: .4byte 0xffff0000 +_081180D4: .4byte 0x0000ffff +_081180D8: .4byte gSpriteTemplate_83FA2B0 +_081180DC: .4byte 0x02019000 +_081180E0: .4byte gSprites +_081180E4: .4byte gSpriteTemplate_83FA2C8 +_081180E8: .4byte gSpriteTemplate_83FA2E0 +_081180EC: .4byte gSpriteTemplate_83FA2F8 +_081180F0: .4byte gSpriteTemplate_83FA310 + thumb_func_end sub_8117F2C + + thumb_func_start sub_81180F4 +sub_81180F4: @ 81180F4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 16 + lsrs r7, r0, 16 + movs r0, 0xFA + lsls r0, 2 + mov r8, r0 + movs r4, 0 + movs r6, 0 + ldr r1, _081181D4 @ =0x02019000 + mov r9, r1 + ldr r0, _081181D8 @ =gSprites + mov r10, r0 +_08118114: + adds r0, r7, 0 + mov r1, r8 + bl __udivsi3 + lsls r0, 24 + lsrs r5, r0, 24 + adds r3, r6, 0 + adds r3, 0x15 + mov r0, r9 + adds r0, 0x3C + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _081181D8 @ =gSprites + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r3, 0 + cmp r5, 0 + bne _0811814E + cmp r4, 0 + bne _0811814E + cmp r6, 0x3 + bne _081181A2 +_0811814E: + mov r3, r9 + adds r3, 0x3C + adds r3, r0, r3 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r10 + adds r0, 0x3E + ldrb r1, [r0] + movs r4, 0x5 + negs r4, r4 + adds r2, r4, 0 + ands r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + mov r1, r10 + adds r3, r0, r1 + adds r4, r3, 0 + adds r4, 0x40 + ldr r1, _081181DC @ =gSprites + 0x8 + adds r0, r1 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1 + ldrh r2, [r0] + ldrh r4, [r4] + adds r2, r4 + ldr r4, _081181E0 @ =0x000003ff + adds r0, r4, 0 + ands r2, r0 + ldrh r0, [r3, 0x4] + ldr r4, _081181E4 @ =0xfffffc00 + adds r1, r4, 0 + ands r0, r1 + orrs r0, r2 + strh r0, [r3, 0x4] + movs r4, 0x1 +_081181A2: + adds r0, r7, 0 + mov r1, r8 + bl __umodsi3 + lsls r0, 16 + lsrs r7, r0, 16 + mov r0, r8 + movs r1, 0xA + bl __udivsi3 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bls _08118114 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081181D4: .4byte 0x02019000 +_081181D8: .4byte gSprites +_081181DC: .4byte gSprites + 0x8 +_081181E0: .4byte 0x000003ff +_081181E4: .4byte 0xfffffc00 + thumb_func_end sub_81180F4 + + thumb_func_start sub_81181E8 +sub_81181E8: @ 81181E8 + push {r4,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _08118220 @ =gUnknown_083FA608 + mov r0, sp + movs r2, 0x5 + bl memcpy + cmp r4, 0x13 + bls _08118200 + movs r4, 0 +_08118200: + ldr r3, _08118224 @ =gUnknown_083F8C00 + lsls r0, r4, 2 + adds r0, r4 + lsls r2, r0, 2 + adds r0, r2, r3 + ldrb r0, [r0, 0x1] + lsls r0, 28 + lsrs r0, 28 + cmp r0, 0x4 + beq _08118254 + cmp r0, 0x4 + bgt _08118228 + cmp r0, 0x3 + beq _0811822E + b _08118290 + .align 2, 0 +_08118220: .4byte gUnknown_083FA608 +_08118224: .4byte gUnknown_083F8C00 +_08118228: + cmp r0, 0xC + beq _08118274 + b _08118290 +_0811822E: + adds r0, r4, 0 + movs r1, 0x5 + bl __udivsi3 + subs r0, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08118250 @ =0x02019000 + adds r0, 0x16 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0x3 + bhi _08118290 + ldrb r0, [r1] + adds r0, 0x1 + b _0811826A + .align 2, 0 +_08118250: .4byte 0x02019000 +_08118254: + subs r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08118270 @ =0x02019000 + adds r0, 0x12 + adds r1, r4, r0 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _08118290 + ldrb r0, [r1] + adds r0, 0x2 +_0811826A: + add r0, sp + ldrb r0, [r0] + b _08118292 + .align 2, 0 +_08118270: .4byte 0x02019000 +_08118274: + ldr r1, _0811828C @ =0x02019000 + adds r0, r3, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldr r1, [r1, 0x8] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08118290 + mov r0, sp + ldrb r0, [r0, 0x4] + b _08118292 + .align 2, 0 +_0811828C: .4byte 0x02019000 +_08118290: + movs r0, 0 +_08118292: + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81181E8 + + thumb_func_start sub_811829C +sub_811829C: @ 811829C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _081182E8 @ =0x02019000 + adds r1, 0x55 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r2, _081182EC @ =gSprites + adds r4, r1, r2 + bl sub_81181E8 + adds r3, r4, 0 + adds r3, 0x2B + strb r0, [r3] + adds r2, r4, 0 + adds r2, 0x40 + ldr r1, [r4, 0x8] + ldrb r0, [r3] + ldr r1, [r1] + lsls r0, 2 + adds r0, r1 + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r2 + ldr r2, _081182F0 @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r4, 0x4] + ldr r0, _081182F4 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081182E8: .4byte 0x02019000 +_081182EC: .4byte gSprites +_081182F0: .4byte 0x000003ff +_081182F4: .4byte 0xfffffc00 + thumb_func_end sub_811829C + + thumb_func_start sub_81182F8 +sub_81182F8: @ 81182F8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r2, r0, 24 + movs r5, 0 + ldr r0, _08118320 @ =0x02019000 + ldrb r1, [r0, 0x19] + adds r3, r0, 0 + cmp r1, 0x1 + bne _08118310 + movs r5, 0x2 +_08118310: + cmp r2, 0x6 + bls _08118316 + b _08118464 +_08118316: + lsls r0, r2, 2 + ldr r1, _08118324 @ =_08118328 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08118320: .4byte 0x02019000 +_08118324: .4byte _08118328 + .align 2, 0 +_08118328: + .4byte _08118464 + .4byte _08118420 + .4byte _081183F8 + .4byte _081183EC + .4byte _081183C4 + .4byte _081183B8 + .4byte _08118344 +_08118344: + movs r4, 0 + ldr r5, _081183A8 @ =gSprites + ldr r0, _081183AC @ =0x0201903c + mov r8, r0 + movs r2, 0x5 + negs r2, r2 + mov r12, r2 + adds r6, r5, 0 + adds r6, 0x8 + ldr r7, _081183B0 @ =0xfffffc00 +_08118358: + adds r3, r4, 0 + adds r3, 0x1A + add r3, r8 + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + adds r1, 0x3E + ldrb r2, [r1] + mov r0, r12 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r5 + adds r2, r3, 0 + adds r2, 0x40 + adds r0, r6 + ldr r0, [r0] + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r2] + adds r1, r2 + ldr r2, _081183B4 @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + adds r0, r7, 0 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _08118358 + b _081184B2 + .align 2, 0 +_081183A8: .4byte gSprites +_081183AC: .4byte 0x0201903c +_081183B0: .4byte 0xfffffc00 +_081183B4: .4byte 0x000003ff +_081183B8: + ldr r2, _081183C0 @ =gSprites + adds r0, r3, 0 + adds r0, 0x58 + b _08118426 + .align 2, 0 +_081183C0: .4byte gSprites +_081183C4: + ldr r2, _081183E8 @ =gSprites + adds r0, r3, 0 + adds r0, 0x58 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r2 + adds r4, r3, 0 + adds r4, 0x40 + adds r2, 0x8 + adds r0, r2 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1 + ldrh r1, [r0, 0x8] + b _08118442 + .align 2, 0 +_081183E8: .4byte gSprites +_081183EC: + ldr r2, _081183F4 @ =gSprites + adds r0, r3, 0 + adds r0, 0x57 + b _08118426 + .align 2, 0 +_081183F4: .4byte gSprites +_081183F8: + ldr r2, _0811841C @ =gSprites + adds r0, r3, 0 + adds r0, 0x57 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r2 + adds r4, r3, 0 + adds r4, 0x40 + adds r2, 0x8 + adds r0, r2 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1 + ldrh r1, [r0, 0x8] + b _08118442 + .align 2, 0 +_0811841C: .4byte gSprites +_08118420: + ldr r2, _08118458 @ =gSprites + adds r0, r3, 0 + adds r0, 0x56 +_08118426: + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r2 + adds r4, r3, 0 + adds r4, 0x40 + adds r2, 0x8 + adds r0, r2 + ldr r0, [r0] + ldr r1, [r0] + lsls r0, r5, 2 + adds r0, r1 + ldrh r1, [r0, 0x4] +_08118442: + ldrh r4, [r4] + adds r1, r4 + ldr r2, _0811845C @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + ldr r0, _08118460 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + b _081184B2 + .align 2, 0 +_08118458: .4byte gSprites +_0811845C: .4byte 0x000003ff +_08118460: .4byte 0xfffffc00 +_08118464: + movs r4, 0 + lsls r6, r5, 2 + ldr r5, _081184BC @ =gSprites + ldr r0, _081184C0 @ =0x0201903c + mov r8, r0 + adds r7, r5, 0 + adds r7, 0x8 + ldr r2, _081184C4 @ =0xfffffc00 + mov r12, r2 +_08118476: + adds r0, r4, 0 + adds r0, 0x1A + add r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r3, r0, r5 + adds r2, r3, 0 + adds r2, 0x40 + adds r0, r7 + ldr r0, [r0] + ldr r0, [r0] + adds r0, r6, r0 + ldrh r1, [r0, 0x8] + ldrh r2, [r2] + adds r1, r2 + ldr r2, _081184C8 @ =0x000003ff + adds r0, r2, 0 + ands r1, r0 + ldrh r2, [r3, 0x4] + mov r0, r12 + ands r0, r2 + orrs r0, r1 + strh r0, [r3, 0x4] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _08118476 +_081184B2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081184BC: .4byte gSprites +_081184C0: .4byte 0x0201903c +_081184C4: .4byte 0xfffffc00 +_081184C8: .4byte 0x000003ff + thumb_func_end sub_81182F8 + + thumb_func_start sub_81184CC +sub_81184CC: @ 81184CC + ldr r1, _081184D4 @ =0x02019000 + ldrh r1, [r1, 0x26] + strh r1, [r0, 0x24] + bx lr + .align 2, 0 +_081184D4: .4byte 0x02019000 + thumb_func_end sub_81184CC + + thumb_func_start sub_81184D8 +sub_81184D8: @ 81184D8 + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, _08118544 @ =gUnknown_083FA42C + ldr r0, [r4] + ldr r5, _08118548 @ =0x02000000 + adds r1, r5, 0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r1, [r4, 0x6] + lsls r1, 16 + ldrh r0, [r4, 0x4] + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + ldr r0, _0811854C @ =gSpriteTemplate_83FA434 + movs r1, 0x74 + movs r2, 0x50 + movs r3, 0x51 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08118550 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0xC8 + lsls r0, 9 + adds r5, r0 + ldrh r0, [r5, 0x24] + movs r2, 0 + strh r0, [r1, 0x2E] + strh r2, [r1, 0x30] + adds r3, r1, 0 + adds r3, 0x2C + ldrb r0, [r3] + movs r2, 0x40 + orrs r0, r2 + movs r2, 0x80 + orrs r0, r2 + strb r0, [r3] + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1] + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08118544: .4byte gUnknown_083FA42C +_08118548: .4byte 0x02000000 +_0811854C: .4byte gSpriteTemplate_83FA434 +_08118550: .4byte gSprites + thumb_func_end sub_81184D8 + + thumb_func_start sub_8118554 +sub_8118554: @ 8118554 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + ldr r1, _08118574 @ =gOamMatrices + lsls r0, 3 + adds r0, r1 + ldr r2, _08118578 @ =0x02019000 + ldrh r1, [r2, 0x2C] + strh r1, [r0, 0x6] + ldrh r1, [r2, 0x2C] + strh r1, [r0] + ldrh r1, [r2, 0x2E] + strh r1, [r0, 0x2] + ldrh r1, [r2, 0x30] + strh r1, [r0, 0x4] + bx lr + .align 2, 0 +_08118574: .4byte gOamMatrices +_08118578: .4byte 0x02019000 + thumb_func_end sub_8118554 + + thumb_func_start sub_811857C +sub_811857C: @ 811857C + push {r4-r6,lr} + movs r4, 0 + ldr r6, _081185DC @ =0x0201903c + ldr r5, _081185E0 @ =gSprites +_08118584: + movs r3, 0x39 + subs r3, r4 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _081185E4 @ =gSpriteTemplate_83FA40C + movs r1, 0x74 + movs r2, 0x50 + bl CreateSprite + adds r3, r4, r6 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _081185CA + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] +_081185CA: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x5 + bls _08118584 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_081185DC: .4byte 0x0201903c +_081185E0: .4byte gSprites +_081185E4: .4byte gSpriteTemplate_83FA40C + thumb_func_end sub_811857C + + thumb_func_start sub_81185E8 +sub_81185E8: @ 81185E8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08118660 @ =0x02019000 + adds r0, 0x3C + ldrb r5, [r0] + movs r6, 0 + ldr r7, _08118664 @ =gSprites + movs r0, 0x1C + adds r0, r7 + mov r10, r0 + movs r1, 0x2E + adds r1, r7 + mov r9, r1 + mov r8, r6 +_0811860A: + lsls r4, r5, 4 + adds r4, r5 + lsls r4, 2 + adds r0, r4, r7 + adds r3, r0, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r3] + mov r1, r10 + adds r2, r4, r1 + ldr r1, _08118668 @ =SpriteCallbackDummy + str r1, [r2] + movs r1, 0 + bl StartSpriteAnim + movs r1, 0 + adds r2, r5, 0x1 + adds r3, r6, 0x1 +_08118632: + lsls r0, r1, 1 + adds r0, r4 + add r0, r9 + mov r5, r8 + strh r5, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x7 + bls _08118632 + lsls r0, r2, 24 + lsrs r5, r0, 24 + lsls r0, r3, 24 + lsrs r6, r0, 24 + cmp r6, 0x5 + bls _0811860A + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08118660: .4byte 0x02019000 +_08118664: .4byte gSprites +_08118668: .4byte SpriteCallbackDummy + thumb_func_end sub_81185E8 + + thumb_func_start sub_811866C +sub_811866C: @ 811866C + push {r4,r5,lr} + adds r3, r0, 0 + ldr r0, _0811869C @ =0x02019000 + ldrh r4, [r0, 0x24] + movs r2, 0x24 + ldrsh r1, [r0, r2] + ldrh r2, [r3, 0x34] + movs r5, 0x34 + ldrsh r0, [r3, r5] + cmp r1, r0 + ble _081186A8 + movs r1, 0xB4 + lsls r1, 1 + adds r0, r2, r1 + subs r2, r0, r4 + strh r2, [r3, 0x3A] + lsls r1, r2, 16 + ldr r0, _081186A0 @ =0x01670000 + cmp r1, r0 + ble _081186AC + ldr r5, _081186A4 @ =0xfffffe98 + adds r0, r2, r5 + b _081186AA + .align 2, 0 +_0811869C: .4byte 0x02019000 +_081186A0: .4byte 0x01670000 +_081186A4: .4byte 0xfffffe98 +_081186A8: + subs r0, r2, r4 +_081186AA: + strh r0, [r3, 0x3A] +_081186AC: + movs r1, 0x3A + ldrsh r0, [r3, r1] + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_811866C + + thumb_func_start sub_81186B8 +sub_81186B8: @ 81186B8 + push {r4,lr} + bl sub_811866C + ldr r4, _081186E0 @ =0x02019000 + lsls r0, 16 + asrs r0, 16 + bl __floatsisf + ldr r1, _081186E4 @ =0x41f00000 + bl __divsf3 + bl __fixunssfsi + adds r4, 0x7E + strb r0, [r4] + ldrb r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_081186E0: .4byte 0x02019000 +_081186E4: .4byte 0x41f00000 + thumb_func_end sub_81186B8 + + thumb_func_start sub_81186E8 +sub_81186E8: @ 81186E8 + push {r4,lr} + adds r4, r0, 0 + bl sub_811866C + lsls r0, 16 + asrs r0, 16 + movs r1, 0x1E + bl __modsi3 + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0xE + bne _08118708 + movs r0, 0 + strh r0, [r4, 0x32] + b _0811871E +_08118708: + cmp r1, 0xD + bgt _08118710 + movs r0, 0xE + b _08118712 +_08118710: + movs r0, 0x2B +_08118712: + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + strh r0, [r4, 0x32] + lsls r0, 16 + asrs r0, 16 +_0811871E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81186E8 + + thumb_func_start sub_8118724 +sub_8118724: @ 8118724 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + ldr r5, _08118770 @ =0x02019000 + adds r4, r5, 0 + adds r4, 0x8C + adds r1, r5, 0 + adds r1, 0x90 + ldr r0, [r4] + ldr r1, [r1] + bl __addsf3 + adds r1, r0, 0 + str r1, [r4] + movs r0, 0x88 + adds r0, r5 + mov r8, r0 + ldr r0, [r0] + bl __addsf3 + adds r4, r0, 0 + mov r1, r8 + str r4, [r1] + ldr r7, _08118774 @ =0x43b40000 + adds r1, r7, 0 + bl __gesf2 + cmp r0, 0 + blt _08118778 + adds r0, r4, 0 + adds r1, r7, 0 + bl __subsf3 + mov r2, r8 + str r0, [r2] + b _08118790 + .align 2, 0 +_08118770: .4byte 0x02019000 +_08118774: .4byte 0x43b40000 +_08118778: + ldr r1, _08118824 @ =0x00000000 + adds r0, r4, 0 + bl __ltsf2 + cmp r0, 0 + bge _08118790 + adds r0, r4, 0 + adds r1, r7, 0 + bl __addsf3 + mov r1, r8 + str r0, [r1] +_08118790: + adds r0, r5, 0 + adds r0, 0x88 + ldr r0, [r0] + bl __fixsfsi + strh r0, [r6, 0x34] + adds r4, r5, 0 + adds r4, 0x98 + adds r1, r5, 0 + adds r1, 0x9C + ldr r0, [r4] + ldr r1, [r1] + bl __addsf3 + adds r1, r0, 0 + str r1, [r4] + subs r4, 0x4 + ldr r0, [r4] + bl __addsf3 + str r0, [r4] + bl __fixsfsi + strh r0, [r6, 0x36] + ldrh r0, [r6, 0x34] + bl Sin2 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrh r0, [r6, 0x34] + bl Cos2 + lsls r4, 16 + asrs r4, 16 + movs r2, 0x36 + ldrsh r1, [r6, r2] + muls r1, r4 + asrs r1, 12 + strh r1, [r6, 0x24] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + movs r2, 0x36 + ldrsh r1, [r6, r2] + muls r0, r1 + asrs r0, 12 + strh r0, [r6, 0x26] + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08118818 + ldr r0, _08118828 @ =gMPlay_SE1 + ldr r4, _0811882C @ =0x0000ffff + ldrh r2, [r6, 0x24] + lsls r2, 24 + asrs r2, 24 + adds r1, r4, 0 + bl m4aMPlayPanpotControl + ldr r0, _08118830 @ =gMPlay_SE2 + ldrh r2, [r6, 0x24] + lsls r2, 24 + asrs r2, 24 + adds r1, r4, 0 + bl m4aMPlayPanpotControl +_08118818: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08118824: .4byte 0x00000000 +_08118828: .4byte gMPlay_SE1 +_0811882C: .4byte 0x0000ffff +_08118830: .4byte gMPlay_SE2 + thumb_func_end sub_8118724 + + thumb_func_start sub_8118834 +sub_8118834: @ 8118834 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r1, _0811888C @ =0x02019000 + ldrh r0, [r5, 0x3A] + ldrh r1, [r1, 0x24] + adds r2, r0, r1 + strh r2, [r5, 0x34] + lsls r1, r2, 16 + ldr r0, _08118890 @ =0x01670000 + cmp r1, r0 + ble _08118850 + ldr r1, _08118894 @ =0xfffffe98 + adds r0, r2, r1 + strh r0, [r5, 0x34] +_08118850: + ldrh r0, [r5, 0x34] + bl Sin2 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrh r0, [r5, 0x34] + bl Cos2 + lsls r4, 16 + asrs r4, 16 + movs r2, 0x36 + ldrsh r1, [r5, r2] + muls r1, r4 + asrs r1, 12 + strh r1, [r5, 0x24] + lsls r0, 16 + asrs r0, 16 + negs r0, r0 + movs r2, 0x36 + ldrsh r1, [r5, r2] + muls r0, r1 + ldr r1, _08118898 @ =gSpriteCoordOffsetY + asrs r0, 12 + ldrh r1, [r1] + adds r0, r1 + strh r0, [r5, 0x26] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0811888C: .4byte 0x02019000 +_08118890: .4byte 0x01670000 +_08118894: .4byte 0xfffffe98 +_08118898: .4byte gSpriteCoordOffsetY + thumb_func_end sub_8118834 + + thumb_func_start sub_811889C +sub_811889C: @ 811889C + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_8118724 + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + ldrh r0, [r5, 0x36] + adds r0, 0x84 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xD4 + bls _081188C2 + adds r2, r5, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + b _081188CE +_081188C2: + adds r2, r5, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 +_081188CE: + strb r0, [r2] + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0x1D + ble _0811898E + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08118908 + ldr r6, _08118900 @ =0x02019000 + adds r4, r6, 0 + adds r4, 0x94 + adds r0, r6, 0 + adds r0, 0xA0 + ldr r0, [r0] + ldr r1, _08118904 @ =0x40000000 + bl __subsf3 + adds r1, r0, 0 + ldr r0, [r4] + bl __lesf2 + cmp r0, 0 + bgt _0811898E + b _08118926 + .align 2, 0 +_08118900: .4byte 0x02019000 +_08118904: .4byte 0x40000000 +_08118908: + ldr r6, _08118994 @ =0x02019000 + adds r4, r6, 0 + adds r4, 0x94 + adds r0, r6, 0 + adds r0, 0xA0 + ldr r0, [r0] + ldr r1, _08118998 @ =0x40000000 + bl __subsf3 + adds r1, r0, 0 + ldr r0, [r4] + bl __gesf2 + cmp r0, 0 + blt _0811898E +_08118926: + adds r1, r6, 0 + adds r1, 0x7D + movs r0, 0xFF + strb r0, [r1] + ldrb r1, [r6, 0x3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r6, 0x3] + adds r0, r5, 0 + adds r0, 0x2B + ldrb r1, [r0] + adds r1, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl sub_81186B8 + movs r0, 0x1E + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_811866C + movs r1, 0x3A + ldrsh r0, [r5, r1] + movs r1, 0x1E + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0xF + strh r1, [r5, 0x3A] + ldr r0, _0811899C @ =sub_8118834 + str r0, [r5, 0x1C] + movs r0, 0x47 + bl m4aSongNumStartOrChange + adds r2, r6, 0 + adds r2, 0x9C + adds r1, r6, 0 + adds r1, 0x98 + ldr r0, _081189A0 @ =0x00000000 + str r0, [r1] + str r0, [r2] + subs r1, 0xC + ldr r0, _081189A4 @ =0xbf800000 + str r0, [r1] +_0811898E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08118994: .4byte 0x02019000 +_08118998: .4byte 0x40000000 +_0811899C: .4byte sub_8118834 +_081189A0: .4byte 0x00000000 +_081189A4: .4byte 0xbf800000 + thumb_func_end sub_811889C + + thumb_func_start sub_81189A8 +sub_81189A8: @ 81189A8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r7, r0, 0 + bl sub_8118724 + movs r1, 0x34 + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _081189C6 + cmp r0, 0xB4 + beq _08118A2C + b _08118B0C +_081189C6: + movs r1, 0x2E + ldrsh r0, [r7, r1] + cmp r0, 0x1 + bne _081189D0 + b _08118B0C +_081189D0: + movs r1, 0x3C + ldrsh r0, [r7, r1] + bl __floatsisf + mov r8, r0 + ldr r0, _08118A24 @ =gUnknown_083F8DF4 + mov r9, r0 + ldr r1, _08118A28 @ =0x02019000 + mov r10, r1 + ldrb r4, [r1, 0x4] + lsls r4, 30 + lsrs r0, r4, 25 + add r0, r9 + ldrb r0, [r0, 0x1] + bl __floatsisf + adds r1, r0, 0 + mov r0, r8 + bl __mulsf3 + adds r6, r0, 0 + lsrs r0, r4, 25 + add r0, r9 + ldrb r0, [r0, 0x2] + subs r0, 0x1 + bl __floatsisf + adds r1, r0, 0 + adds r0, r6, 0 + bl __addsf3 + adds r5, r0, 0 + lsrs r4, 25 + add r4, r9 + ldrh r0, [r4, 0xC] + bl __floatsisf + adds r1, r0, 0 + mov r0, r8 + bl __divsf3 + b _08118A8A + .align 2, 0 +_08118A24: .4byte gUnknown_083F8DF4 +_08118A28: .4byte 0x02019000 +_08118A2C: + movs r1, 0x2E + ldrsh r0, [r7, r1] + cmp r0, 0 + beq _08118B0C + movs r1, 0x3C + ldrsh r0, [r7, r1] + bl __floatsisf + mov r8, r0 + ldr r0, _08118B1C @ =gUnknown_083F8DF4 + mov r9, r0 + ldr r1, _08118B20 @ =0x02019000 + mov r10, r1 + ldrb r4, [r1, 0x4] + lsls r4, 30 + lsrs r0, r4, 25 + add r0, r9 + ldrb r0, [r0, 0x1] + bl __floatsisf + adds r1, r0, 0 + mov r0, r8 + bl __mulsf3 + adds r6, r0, 0 + lsrs r0, r4, 25 + add r0, r9 + ldrb r0, [r0, 0x2] + subs r0, 0x1 + bl __floatsisf + adds r1, r0, 0 + adds r0, r6, 0 + bl __addsf3 + adds r5, r0, 0 + lsrs r4, 25 + add r4, r9 + ldrh r0, [r4, 0xC] + bl __floatsisf + adds r1, r0, 0 + mov r0, r8 + bl __divsf3 + bl __negsf2 +_08118A8A: + adds r2, r0, 0 + mov r6, r10 + adds r1, r6, 0 + adds r1, 0xA0 + adds r0, r6, 0 + adds r0, 0x94 + ldr r0, [r0] + str r0, [r1] + adds r0, r6, 0 + adds r0, 0x98 + str r2, [r0] + movs r0, 0x9C + adds r0, r6 + mov r8, r0 + adds r0, r2, 0 + adds r1, r2, 0 + bl __addsf3 + adds r1, r5, 0 + bl __divsf3 + adds r4, r0, 0 + adds r0, r5, 0 + adds r1, r5, 0 + bl __mulsf3 + adds r1, r0, 0 + ldr r0, _08118B24 @ =0x40000000 + bl __divsf3 + adds r1, r0, 0 + adds r0, r4, 0 + bl __addsf3 + bl __negsf2 + mov r1, r8 + str r0, [r1] + adds r1, r6, 0 + adds r1, 0x8C + ldr r0, _08118B28 @ =0x00000000 + str r0, [r1] + adds r2, r7, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r0, r7, 0 + adds r0, 0x2A + movs r2, 0 + strb r2, [r0] + adds r3, r7, 0 + adds r3, 0x3F + ldrb r0, [r3] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r3] + ldr r0, _08118B2C @ =sub_811889C + str r0, [r7, 0x1C] + strh r2, [r7, 0x32] +_08118B0C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08118B1C: .4byte gUnknown_083F8DF4 +_08118B20: .4byte 0x02019000 +_08118B24: .4byte 0x40000000 +_08118B28: .4byte 0x00000000 +_08118B2C: .4byte sub_811889C + thumb_func_end sub_81189A8 + + thumb_func_start sub_8118B30 +sub_8118B30: @ 8118B30 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x32 + ldrsh r0, [r5, r1] + bl __floatsisf + adds r4, r0, 0 + ldr r1, _08118BCC @ =0x3d4ccccd + bl __mulsf3 + adds r1, r4, 0 + bl __mulsf3 + bl __fixsfsi + adds r1, r0, 0 + subs r1, 0x2D + strh r1, [r5, 0x26] + ldrh r0, [r5, 0x32] + adds r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1D + ble _08118BC6 + lsls r0, r1, 16 + cmp r0, 0 + blt _08118BC6 + ldr r4, _08118BD0 @ =0x02019000 + adds r1, r4, 0 + adds r1, 0x7D + movs r0, 0xFF + strb r0, [r1] + ldrb r1, [r4, 0x3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4, 0x3] + adds r0, r5, 0 + adds r0, 0x2B + ldrb r1, [r0] + adds r1, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl sub_81186B8 + movs r0, 0x1E + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_811866C + movs r1, 0x3A + ldrsh r0, [r5, r1] + movs r1, 0x1E + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0xF + strh r1, [r5, 0x3A] + ldr r0, _08118BD4 @ =sub_8118834 + str r0, [r5, 0x1C] + movs r0, 0x47 + bl m4aSongNumStartOrChange + ldrb r0, [r4, 0x3] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r4, 0x3] +_08118BC6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08118BCC: .4byte 0x3d4ccccd +_08118BD0: .4byte 0x02019000 +_08118BD4: .4byte sub_8118834 + thumb_func_end sub_8118B30 + + thumb_func_start sub_8118BD8 +sub_8118BD8: @ 8118BD8 + push {r4,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x32] + adds r1, r0, 0x1 + strh r1, [r3, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x2C + bgt _08118C1C + ldrh r4, [r3, 0x26] + subs r0, r4, 0x1 + strh r0, [r3, 0x26] + lsls r0, r1, 16 + asrs r0, 16 + cmp r0, 0x2D + bne _08118CA2 + ldr r2, _08118C14 @ =gSprites + ldr r0, _08118C18 @ =0x02019000 + adds r0, 0x73 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _08118CA2 + strh r4, [r3, 0x26] + b _08118CA2 + .align 2, 0 +_08118C14: .4byte gSprites +_08118C18: .4byte 0x02019000 +_08118C1C: + lsls r0, r1, 16 + asrs r0, 16 + movs r2, 0x3C + ldrsh r1, [r3, r2] + cmp r0, r1 + bge _08118C68 + ldr r2, _08118C58 @ =gSprites + ldr r0, _08118C5C @ =0x02019000 + adds r0, 0x73 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x2C + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bne _08118CA2 + adds r0, r1, 0 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _08118C60 + ldrh r0, [r3, 0x26] + adds r0, 0x1 + strh r0, [r3, 0x26] + b _08118CA2 + .align 2, 0 +_08118C58: .4byte gSprites +_08118C5C: .4byte 0x02019000 +_08118C60: + ldrh r0, [r3, 0x26] + subs r0, 0x1 + strh r0, [r3, 0x26] + b _08118CA2 +_08118C68: + adds r2, r3, 0 + adds r2, 0x2C + ldrb r1, [r2] + movs r0, 0x41 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + adds r1, r3, 0 + adds r1, 0x2A + movs r2, 0 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x3F + adds r0, r3 + mov r12, r0 + ldrb r0, [r0] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + mov r1, r12 + strb r0, [r1] + strh r2, [r3, 0x32] + ldr r0, _08118CA8 @ =sub_8118B30 + str r0, [r3, 0x1C] + movs r0, 0x3D + bl m4aSongNumStart +_08118CA2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08118CA8: .4byte sub_8118B30 + thumb_func_end sub_8118BD8 + + thumb_func_start sub_8118CAC +sub_8118CAC: @ 8118CAC + push {r4,lr} + adds r4, r0, 0 + bl sub_8118724 + movs r0, 0x34 + ldrsh r1, [r4, r0] + cmp r1, 0x5A + beq _08118CC6 + movs r0, 0x87 + lsls r0, 1 + cmp r1, r0 + beq _08118CD0 + b _08118CE0 +_08118CC6: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _08118CE0 + b _08118CD8 +_08118CD0: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _08118CE0 +_08118CD8: + ldr r0, _08118CE8 @ =sub_8118BD8 + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x32] +_08118CE0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08118CE8: .4byte sub_8118BD8 + thumb_func_end sub_8118CAC + + thumb_func_start sub_8118CEC +sub_8118CEC: @ 8118CEC + push {r4,lr} + adds r4, r0, 0 + bl sub_8118724 + ldr r0, _08118D10 @ =0x02019000 + ldrb r0, [r0, 0x3] + lsls r0, 27 + lsrs r0, 27 + cmp r0, 0 + beq _08118D04 + cmp r0, 0x1 + beq _08118D18 +_08118D04: + adds r0, r4, 0 + bl sub_8119224 + ldr r0, _08118D14 @ =sub_81189A8 + b _08118D20 + .align 2, 0 +_08118D10: .4byte 0x02019000 +_08118D14: .4byte sub_81189A8 +_08118D18: + adds r0, r4, 0 + bl sub_81193D4 + ldr r0, _08118D28 @ =sub_8118CAC +_08118D20: + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08118D28: .4byte sub_8118CAC + thumb_func_end sub_8118CEC + + thumb_func_start prev_quest_read_x24_hm_usage +prev_quest_read_x24_hm_usage: @ 8118D2C + push {r4,r5,lr} + adds r5, r0, 0 + bl sub_8118724 + ldrh r0, [r5, 0x32] + subs r0, 0x1 + strh r0, [r5, 0x32] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xF + bne _08118D50 + ldr r4, _08118DB8 @ =0x02019000 + adds r4, 0x98 + ldr r0, [r4] + ldr r1, _08118DBC @ =0xbf800000 + bl __mulsf3 + str r0, [r4] +_08118D50: + movs r1, 0x32 + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08118DDC + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + bne _08118DC4 + ldr r1, _08118DB8 @ =0x02019000 + adds r2, r1, 0 + adds r2, 0x7D + movs r0, 0xFF + strb r0, [r2] + ldrb r2, [r1, 0x3] + movs r0, 0x7F + ands r0, r2 + strb r0, [r1, 0x3] + adds r0, r5, 0 + adds r0, 0x2B + ldrb r1, [r0] + adds r1, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl StartSpriteAnim + adds r0, r5, 0 + bl sub_81186B8 + movs r0, 0x1E + strh r0, [r5, 0x36] + adds r0, r5, 0 + bl sub_811866C + movs r1, 0x3A + ldrsh r0, [r5, r1] + movs r1, 0x1E + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0xF + strh r1, [r5, 0x3A] + ldr r0, _08118DC0 @ =sub_8118834 + str r0, [r5, 0x1C] + movs r0, 0x47 + bl m4aSongNumStartOrChange + b _08118DDC + .align 2, 0 +_08118DB8: .4byte 0x02019000 +_08118DBC: .4byte 0xbf800000 +_08118DC0: .4byte sub_8118834 +_08118DC4: + adds r0, r5, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + movs r0, 0x38 + bl m4aSongNumStart + adds r0, r5, 0 + bl sub_811952C +_08118DDC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end prev_quest_read_x24_hm_usage + + thumb_func_start sub_8118DE4 +sub_8118DE4: @ 8118DE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r7, r0, 0 + bl sub_8118724 + movs r0, 0 + strh r0, [r7, 0x32] + adds r0, r7, 0 + bl sub_81186B8 + ldr r1, _08118E70 @ =gUnknown_083F8D90 + ldr r6, _08118E74 @ =0x02019000 + movs r0, 0x7E + adds r0, r6 + mov r8, r0 + ldrb r0, [r0] + lsls r0, 3 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + ldr r1, [r6, 0x8] + ands r0, r1 + cmp r0, 0 + bne _08118E7C + adds r1, r6, 0 + adds r1, 0x7D + movs r0, 0xFF + strb r0, [r1] + ldrb r1, [r6, 0x3] + movs r0, 0x7F + ands r0, r1 + strb r0, [r6, 0x3] + adds r0, r7, 0 + adds r0, 0x2B + ldrb r1, [r0] + adds r1, 0x3 + lsls r1, 24 + lsrs r1, 24 + adds r0, r7, 0 + bl StartSpriteAnim + adds r0, r7, 0 + bl sub_81186B8 + movs r0, 0x1E + strh r0, [r7, 0x36] + adds r0, r7, 0 + bl sub_811866C + movs r1, 0x3A + ldrsh r0, [r7, r1] + movs r1, 0x1E + bl __divsi3 + lsls r0, 16 + asrs r0, 16 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0xF + strh r1, [r7, 0x3A] + ldr r0, _08118E78 @ =sub_8118834 + str r0, [r7, 0x1C] + movs r0, 0x47 + bl m4aSongNumStartOrChange + b _08118F74 + .align 2, 0 +_08118E70: .4byte gUnknown_083F8D90 +_08118E74: .4byte 0x02019000 +_08118E78: .4byte sub_8118834 +_08118E7C: + movs r0, 0x38 + bl m4aSongNumStart + bl Random + movs r2, 0x1 + mov r9, r2 + mov r1, r9 + ands r1, r0 + mov r9, r1 + cmp r1, 0 + beq _08118EC0 + adds r1, r6, 0 + adds r1, 0x8C + ldr r0, _08118EB8 @ =0x00000000 + str r0, [r1] + mov r2, r8 + ldrb r0, [r2] + adds r0, 0x1 + movs r1, 0xC + bl __modsi3 + lsls r1, r0, 24 + lsrs r2, r1, 24 + adds r1, r6, 0 + adds r1, 0x7F + strb r0, [r1] + ldr r5, _08118EBC @ =gUnknown_083F8DF4 + b _08118EF4 + .align 2, 0 +_08118EB8: .4byte 0x00000000 +_08118EBC: .4byte gUnknown_083F8DF4 +_08118EC0: + adds r4, r6, 0 + adds r4, 0x8C + ldr r5, _08118F1C @ =gUnknown_083F8DF4 + ldrb r0, [r6, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + adds r0, r1, 0 + bl __addsf3 + str r0, [r4] + mov r0, r8 + ldrb r4, [r0] + adds r0, r4, 0 + adds r0, 0xB + movs r1, 0xC + bl __modsi3 + lsls r0, 24 + lsrs r2, r0, 24 + adds r0, r6, 0 + adds r0, 0x7F + strb r4, [r0] +_08118EF4: + ldr r0, _08118F20 @ =gUnknown_083F8D90 + lsls r1, r2, 3 + adds r0, 0x4 + adds r1, r0 + ldr r2, _08118F24 @ =0x02019000 + ldr r1, [r1] + ldr r0, [r2, 0x8] + ands r1, r0 + cmp r1, 0 + beq _08118F28 + movs r0, 0x1 + strh r0, [r7, 0x2E] + ldrb r0, [r2, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r5 + ldrb r0, [r0, 0x2] + strh r0, [r7, 0x32] + b _08118F64 + .align 2, 0 +_08118F1C: .4byte gUnknown_083F8DF4 +_08118F20: .4byte gUnknown_083F8D90 +_08118F24: .4byte 0x02019000 +_08118F28: + strh r1, [r7, 0x2E] + ldrb r1, [r2, 0x4] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0 + beq _08118F40 + lsls r0, r1, 30 + lsrs r0, 25 + adds r0, r5 + ldrb r0, [r0, 0x1] + strh r0, [r7, 0x32] + b _08118F64 +_08118F40: + lsls r0, r1, 30 + lsrs r0, 25 + adds r0, r5 + ldrb r0, [r0, 0x2] + strh r0, [r7, 0x32] + mov r1, r9 + cmp r1, 0 + beq _08118F5C + adds r1, r2, 0 + adds r1, 0x8C + ldr r0, _08118F58 @ =0x3f000000 + b _08118F62 + .align 2, 0 +_08118F58: .4byte 0x3f000000 +_08118F5C: + adds r1, r2, 0 + adds r1, 0x8C + ldr r0, _08118F80 @ =0xbfc00000 +_08118F62: + str r0, [r1] +_08118F64: + adds r1, r2, 0 + adds r1, 0x98 + ldr r0, _08118F84 @ =0x3dae147b + str r0, [r1] + ldr r0, _08118F88 @ =prev_quest_read_x24_hm_usage + str r0, [r7, 0x1C] + movs r0, 0x5 + strh r0, [r7, 0x30] +_08118F74: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08118F80: .4byte 0xbfc00000 +_08118F84: .4byte 0x3dae147b +_08118F88: .4byte prev_quest_read_x24_hm_usage + thumb_func_end sub_8118DE4 + + thumb_func_start sub_8118F8C +sub_8118F8C: @ 8118F8C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + adds r6, r0, 0 + bl sub_8118724 + ldr r5, _08119018 @ =0x02019000 + movs r0, 0x8C + adds r0, r5 + mov r8, r0 + ldr r0, [r0] + ldr r1, _0811901C @ =0x3f000000 + bl __gtsf2 + cmp r0, 0 + bgt _0811906E + adds r0, r6, 0 + bl sub_81186B8 + adds r0, r6, 0 + bl sub_81186E8 + lsls r0, 16 + cmp r0, 0 + bne _08119030 + adds r1, r5, 0 + adds r1, 0x90 + ldr r0, _08119020 @ =0x00000000 + str r0, [r1] + ldr r1, _08119024 @ =gUnknown_083F8DF4 + mov r9, r1 + ldrb r0, [r5, 0x4] + lsls r7, r0, 30 + lsrs r0, r7, 25 + add r0, r9 + movs r4, 0x3 + ldrsb r4, [r0, r4] + adds r0, r4, 0 + bl __floatsisf + adds r5, r0, 0 + cmp r4, 0 + bge _08118FEC + ldr r1, _08119028 @ =0x43800000 + bl __addsf3 + adds r5, r0, 0 +_08118FEC: + lsrs r0, r7, 25 + add r0, r9 + ldrb r0, [r0, 0x4] + adds r0, 0x1 + bl __floatsisf + adds r1, r0, 0 + adds r0, r5, 0 + bl __divsf3 + adds r1, r0, 0 + mov r2, r8 + ldr r0, [r2] + bl __subsf3 + mov r1, r8 + str r0, [r1] + movs r0, 0x4 + strh r0, [r6, 0x30] + ldr r0, _0811902C @ =sub_8118DE4 + str r0, [r6, 0x1C] + b _0811906E + .align 2, 0 +_08119018: .4byte 0x02019000 +_0811901C: .4byte 0x3f000000 +_08119020: .4byte 0x00000000 +_08119024: .4byte gUnknown_083F8DF4 +_08119028: .4byte 0x43800000 +_0811902C: .4byte sub_8118DE4 +_08119030: + adds r6, r5, 0 + adds r6, 0x90 + ldr r0, [r6] + ldr r4, _0811907C @ =0x00000000 + adds r1, r4, 0 + bl __nesf2 + cmp r0, 0 + beq _0811906E + mov r2, r8 + ldr r0, [r2] + adds r1, r4, 0 + bl __ltsf2 + cmp r0, 0 + bge _0811906E + str r4, [r6] + mov r0, r8 + str r4, [r0] + adds r4, r5, 0 + adds r4, 0x98 + ldr r0, [r4] + bl __extendsfdf2 + ldr r2, _08119080 @ =0x3ff33333 + ldr r3, _08119084 @ =0x33333333 + bl __divdf3 + bl __truncdfsf2 + str r0, [r4] +_0811906E: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811907C: .4byte 0x00000000 +_08119080: .4byte 0x3ff33333 +_08119084: .4byte 0x33333333 + thumb_func_end sub_8118F8C + + thumb_func_start sub_8119088 +sub_8119088: @ 8119088 + push {r4-r7,lr} + adds r6, r0, 0 + bl sub_8118724 + ldr r5, _08119120 @ =0x02019000 + adds r0, r5, 0 + adds r0, 0x94 + ldr r0, [r0] + ldr r1, _08119124 @ =0x42200000 + bl __gtsf2 + cmp r0, 0 + bgt _0811911A + adds r7, r5, 0 + adds r7, 0x98 + adds r0, r5, 0 + adds r0, 0x86 + movs r1, 0 + ldrsh r4, [r0, r1] + adds r0, r4, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r4, 0 + bge _081190C2 + ldr r1, _08119128 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_081190C2: + ldr r0, _0811912C @ =0x40800000 + adds r1, r2, 0 + bl __divsf3 + bl __negsf2 + str r0, [r7] + adds r7, r5, 0 + adds r7, 0x90 + adds r5, 0x8C + adds r0, r4, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r4, 0 + bge _081190EA + ldr r1, _08119128 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_081190EA: + ldr r0, [r5] + adds r1, r2, 0 + bl __divsf3 + bl __negsf2 + str r0, [r7] + adds r1, r6, 0 + adds r1, 0x2A + movs r0, 0x2 + strb r0, [r1] + adds r2, r6, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r2] + movs r0, 0x3 + strh r0, [r6, 0x30] + ldr r0, _08119130 @ =sub_8118F8C + str r0, [r6, 0x1C] +_0811911A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08119120: .4byte 0x02019000 +_08119124: .4byte 0x42200000 +_08119128: .4byte 0x47800000 +_0811912C: .4byte 0x40800000 +_08119130: .4byte sub_8118F8C + thumb_func_end sub_8119088 + + thumb_func_start sub_8119134 +sub_8119134: @ 8119134 + push {r4-r7,lr} + adds r6, r0, 0 + bl sub_8118724 + ldr r4, _081191DC @ =0x02019000 + adds r0, r4, 0 + adds r0, 0x94 + ldr r0, [r0] + ldr r1, _081191E0 @ =0x42700000 + bl __gtsf2 + cmp r0, 0 + bgt _081191D4 + movs r0, 0x5D + bl m4aSongNumStartOrChange + adds r7, r4, 0 + adds r7, 0x98 + adds r0, r4, 0 + adds r0, 0x84 + movs r1, 0 + ldrsh r5, [r0, r1] + adds r0, r5, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r5, 0 + bge _08119174 + ldr r1, _081191E4 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_08119174: + ldr r0, _081191E8 @ =0x41a00000 + adds r1, r2, 0 + bl __divsf3 + bl __negsf2 + str r0, [r7] + adds r7, r4, 0 + adds r7, 0x90 + adds r0, r4, 0 + adds r0, 0x8C + ldr r1, [r0] + ldr r0, _081191EC @ =0x3f800000 + bl __subsf3 + adds r4, r0, 0 + adds r0, r5, 0 + bl __floatsisf + adds r2, r0, 0 + cmp r5, 0 + bge _081191A8 + ldr r1, _081191E4 @ =0x47800000 + bl __addsf3 + adds r2, r0, 0 +_081191A8: + adds r0, r4, 0 + adds r1, r2, 0 + bl __divsf3 + str r0, [r7] + adds r1, r6, 0 + adds r1, 0x2A + movs r0, 0x1 + strb r0, [r1] + adds r2, r6, 0 + adds r2, 0x3F + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + movs r1, 0x11 + negs r1, r1 + ands r0, r1 + strb r0, [r2] + movs r0, 0x2 + strh r0, [r6, 0x30] + ldr r0, _081191F0 @ =sub_8119088 + str r0, [r6, 0x1C] +_081191D4: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081191DC: .4byte 0x02019000 +_081191E0: .4byte 0x42700000 +_081191E4: .4byte 0x47800000 +_081191E8: .4byte 0x41a00000 +_081191EC: .4byte 0x3f800000 +_081191F0: .4byte sub_8119088 + thumb_func_end sub_8119134 + + thumb_func_start sub_81191F4 +sub_81191F4: @ 81191F4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0 + movs r0, 0x1 + strh r0, [r4, 0x30] + strh r1, [r4, 0x32] + adds r0, r4, 0 + bl sub_8118724 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _08119220 @ =sub_8119134 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119220: .4byte sub_8119134 + thumb_func_end sub_81191F4 + + thumb_func_start sub_8119224 +sub_8119224: @ 8119224 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r7, r0, 0 + ldr r1, _081193B8 @ =gUnknown_083FA60E + mov r0, sp + movs r2, 0x8 + bl memcpy + ldrh r0, [r7, 0x3C] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r5, _081193BC @ =0x02019000 + ldr r0, _081193C0 @ =gSpriteTemplate_83FA50C + movs r2, 0xC + negs r2, r2 + movs r1, 0x24 + movs r3, 0x32 + bl CreateSprite + adds r1, r5, 0 + adds r1, 0x73 + strb r0, [r1] + ldr r4, _081193C4 @ =gSpriteTemplate_83FA5C0 + movs r0, 0x2E + ldrsh r2, [r7, r0] + lsls r2, 2 + mov r1, sp + adds r0, r1, r2 + movs r3, 0 + ldrsh r1, [r0, r3] + mov r0, sp + adds r0, 0x2 + adds r0, r2 + movs r3, 0 + ldrsh r2, [r0, r3] + adds r0, r4, 0 + movs r3, 0x3B + bl CreateSprite + adds r1, r5, 0 + adds r1, 0x74 + strb r0, [r1] + adds r4, 0x18 + adds r0, r4, 0 + movs r1, 0x24 + movs r2, 0x8C + movs r3, 0x33 + bl CreateSprite + adds r1, r5, 0 + adds r1, 0x75 + strb r0, [r1] + ldr r3, _081193C8 @ =gSprites + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x1] + movs r1, 0xD + negs r1, r1 + ands r1, r2 + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0, 0x1] + movs r6, 0 + adds r4, r3, 0 + mov r12, r5 + ldr r0, _081193CC @ =gUnknown_083F8DF4 + mov r8, r0 + mov r10, r12 +_081192BE: + mov r1, r12 + adds r3, r1, r6 + adds r3, 0x73 + ldrb r0, [r3] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r2, [r1] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r12 + adds r1, 0x73 + ldrb r1, [r1] + strh r1, [r0, 0x36] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r5, r12 + adds r5, 0x74 + ldrb r1, [r5] + strh r1, [r0, 0x38] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r12 + adds r1, 0x75 + ldrb r1, [r1] + strh r1, [r0, 0x3A] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r9 + strh r1, [r0, 0x32] + ldrb r0, [r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + movs r0, 0x3C + ldrsh r3, [r7, r0] + mov r0, r12 + ldrb r1, [r0, 0x4] + lsls r1, 30 + lsrs r0, r1, 25 + add r0, r8 + ldrb r0, [r0, 0x1] + muls r3, r0 + lsrs r1, 25 + add r1, r8 + ldrb r0, [r1, 0x2] + ldr r1, _081193D0 @ =0x0000ffff + adds r0, r1 + adds r3, r0 + strh r3, [r2, 0x34] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _081193C8 @ =gSprites + cmp r6, 0x2 + bls _081192BE + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + mov r3, r10 + str r7, [r3, 0x38] + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_081193B8: .4byte gUnknown_083FA60E +_081193BC: .4byte 0x02019000 +_081193C0: .4byte gSpriteTemplate_83FA50C +_081193C4: .4byte gSpriteTemplate_83FA5C0 +_081193C8: .4byte gSprites +_081193CC: .4byte gUnknown_083F8DF4 +_081193D0: .4byte 0x0000ffff + thumb_func_end sub_8119224 + + thumb_func_start sub_81193D4 +sub_81193D4: @ 81193D4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + adds r7, r0, 0 + movs r0, 0 + mov r8, r0 + ldr r1, _08119514 @ =gUnknown_083FA616 + mov r0, sp + movs r2, 0x8 + bl memcpy + ldrh r0, [r7, 0x3C] + subs r0, 0x2 + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldr r0, _08119518 @ =gSpriteTemplate_83FA524 + movs r1, 0x2E + ldrsh r2, [r7, r1] + lsls r2, 2 + mov r3, sp + adds r1, r3, r2 + movs r3, 0 + ldrsh r1, [r1, r3] + mov r4, sp + adds r4, 0x2 + adds r2, r4, r2 + movs r3, 0 + ldrsh r2, [r2, r3] + movs r3, 0x32 + bl CreateSprite + ldr r6, _0811951C @ =0x02019000 + adds r1, r6, 0 + adds r1, 0x73 + strb r0, [r1] + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _08119520 @ =gSprites + adds r0, r5 + ldrh r1, [r7, 0x2E] + lsls r1, 24 + lsrs r1, 24 + bl StartSpriteAnim + ldr r0, _08119524 @ =gSpriteTemplate_83FA5F0 + movs r1, 0x2E + ldrsh r2, [r7, r1] + lsls r2, 2 + mov r3, sp + adds r1, r3, r2 + movs r3, 0 + ldrsh r1, [r1, r3] + adds r4, r2 + movs r3, 0 + ldrsh r2, [r4, r3] + movs r3, 0x33 + bl CreateSprite + adds r4, r6, 0 + adds r4, 0x74 + strb r0, [r4] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x2C + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + mov r0, r9 + lsls r2, r0, 16 + asrs r2, 16 + ldr r3, _08119528 @ =gUnknown_083F8DF4 + ldrb r1, [r6, 0x4] + lsls r1, 30 + lsrs r0, r1, 25 + adds r0, r3 + ldrb r0, [r0, 0x1] + muls r2, r0 + lsrs r1, 25 + adds r1, r3 + ldrh r0, [r1, 0x10] + adds r0, 0x2D + adds r2, r0 + strh r2, [r7, 0x3C] + adds r3, r6, 0 +_081194A2: + mov r1, r8 + adds r2, r6, r1 + adds r2, 0x73 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r1, r6, 0 + adds r1, 0x73 + ldrb r1, [r1] + strh r1, [r0, 0x36] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x38] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x3A] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r9 + strh r1, [r0, 0x32] + ldrb r0, [r2] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrh r0, [r7, 0x3C] + subs r0, 0x2D + strh r0, [r1, 0x34] + mov r0, r8 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + cmp r0, 0x1 + bls _081194A2 + str r7, [r3, 0x38] + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08119514: .4byte gUnknown_083FA616 +_08119518: .4byte gSpriteTemplate_83FA524 +_0811951C: .4byte 0x02019000 +_08119520: .4byte gSprites +_08119524: .4byte gSpriteTemplate_83FA5F0 +_08119528: .4byte gUnknown_083F8DF4 + thumb_func_end sub_81193D4 + + thumb_func_start sub_811952C +sub_811952C: @ 811952C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r8, r0 + movs r0, 0 + mov r10, r0 + movs r1, 0x5 + mov r9, r1 + movs r2, 0 + str r2, [sp, 0xC] + mov r0, sp + movs r1, 0 + movs r2, 0xA + bl memset + bl Random + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x10] + ldr r7, _08119610 @ =0x02019000 + adds r0, r7, 0 + adds r0, 0x7D + movs r6, 0x1 + strb r6, [r0] + ldrb r4, [r7, 0x3] + movs r0, 0x20 + orrs r4, r0 + movs r0, 0x41 + negs r0, r0 + ands r4, r0 + strb r4, [r7, 0x3] + adds r1, r7, 0 + adds r1, 0x7E + movs r0, 0xFF + strb r0, [r1] + adds r5, r7, 0 + adds r5, 0x88 + mov r3, r8 + movs r1, 0x34 + ldrsh r0, [r3, r1] + bl __floatsisf + str r0, [r5] + adds r1, r7, 0 + adds r1, 0x98 + ldr r0, _08119614 @ =0x00000000 + str r0, [r1] + adds r3, r7, 0 + adds r3, 0x8C + ldr r2, _08119618 @ =gUnknown_083F8DF4 + ldrb r0, [r7, 0x4] + lsls r0, 30 + lsrs r1, r0, 25 + adds r2, 0x1C + adds r1, r2 + ldr r1, [r1] + str r1, [r3] + lsrs r0, 30 + lsls r1, r0, 4 + subs r1, r0 + lsls r1, 1 + adds r1, 0x21 + lsls r4, 27 + lsrs r4, 27 + subs r6, r4 + lsls r0, r6, 4 + subs r0, r6 + adds r1, r0 + lsls r1, 16 + lsrs r1, 16 + mov r5, r10 + mov r3, r8 + movs r0, 0x34 + ldrsh r2, [r3, r0] +_081195C8: + cmp r1, r2 + bge _081195D4 + adds r0, r1, 0 + adds r0, 0x5A + cmp r2, r0 + ble _08119638 +_081195D4: + cmp r5, 0x3 + beq _0811961C + adds r0, r1, 0 + adds r0, 0x5A + lsls r0, 16 + lsrs r1, r0, 16 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x3 + bls _081195C8 +_081195EA: + ldr r0, _08119610 @ =0x02019000 + ldrb r1, [r0, 0x3] + movs r0, 0x1F + ands r0, r1 + cmp r0, 0 + beq _08119664 + mov r1, r8 + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _08119658 + movs r0, 0x98 + lsls r0, 1 + movs r1, 0x3F + negs r1, r1 + bl PlayCry1 + b _08119670 + .align 2, 0 +_08119610: .4byte 0x02019000 +_08119614: .4byte 0x00000000 +_08119618: .4byte gUnknown_083F8DF4 +_0811961C: + movs r0, 0x1 + mov r3, r8 + strh r0, [r3, 0x2E] + ldr r2, _08119634 @ =0x02019000 + ldrb r1, [r2, 0x3] + subs r0, 0x21 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x3] + b _081195EA + .align 2, 0 +_08119634: .4byte 0x02019000 +_08119638: + lsrs r0, r5, 1 + mov r1, r8 + strh r0, [r1, 0x2E] + ldr r3, _08119654 @ =0x02019000 + movs r1, 0x1 + ands r1, r5 + ldrb r2, [r3, 0x3] + movs r0, 0x20 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x3] + b _081195EA + .align 2, 0 +_08119654: .4byte 0x02019000 +_08119658: + movs r0, 0x98 + lsls r0, 1 + movs r1, 0x3F + bl PlayCry1 + b _08119670 +_08119664: + movs r0, 0x99 + lsls r0, 1 + movs r1, 0x3F + negs r1, r1 + bl PlayCry1 +_08119670: + movs r5, 0x2 + ldr r4, _081196A0 @ =0x02019000 + adds r0, r4, 0 + adds r0, 0x7F + ldrb r0, [r0] + adds r0, 0x2 + movs r1, 0xC + bl __modsi3 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r1, [r4, 0x3] + movs r0, 0x1F + ands r0, r1 + cmp r0, 0x1 + bne _081196A4 + ldrb r1, [r4, 0x4] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _081196A4 + mov r0, r9 + adds r0, 0x6 + b _081196A8 + .align 2, 0 +_081196A0: .4byte 0x02019000 +_081196A4: + mov r2, r9 + adds r0, r2, r5 +_081196A8: + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r5, r9 + bcs _0811970E + ldr r6, _08119734 @ =0x02019000 + ldr r7, _08119738 @ =gUnknown_083F8C0C +_081196B6: + lsls r0, r3, 3 + ldr r1, _0811973C @ =gUnknown_083F8D94 + adds r0, r1 + ldr r1, [r6, 0x8] + ldr r2, [r0] + ands r1, r2 + cmp r1, 0 + bne _081196F8 + mov r0, r10 + adds r1, r0, 0x1 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + add r0, sp + strb r5, [r0] + ldr r0, [sp, 0xC] + cmp r0, 0 + bne _081196F8 + ldrb r0, [r6, 0x1A] + lsls r0, 28 + lsrs r0, 28 + ldr r1, _08119740 @ =0x0201901b + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + beq _081196F8 + str r5, [sp, 0xC] +_081196F8: + adds r0, r3, 0x1 + movs r1, 0xC + bl __modsi3 + lsls r0, 24 + lsrs r3, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r9 + bcc _081196B6 +_0811970E: + ldrb r0, [r4, 0x3] + lsls r0, 27 + lsrs r0, 27 + adds r0, 0x1 + ldrb r1, [r4, 0x2] + ands r0, r1 + cmp r0, 0 + beq _08119756 + ldr r2, [sp, 0xC] + cmp r2, 0 + beq _08119744 + movs r0, 0xFF + ldr r3, [sp, 0x10] + ands r0, r3 + cmp r0, 0xBF + bhi _08119744 + mov r0, r8 + strh r2, [r0, 0x3C] + b _08119766 + .align 2, 0 +_08119734: .4byte 0x02019000 +_08119738: .4byte gUnknown_083F8C0C +_0811973C: .4byte gUnknown_083F8D94 +_08119740: .4byte 0x0201901b +_08119744: + ldr r0, [sp, 0x10] + mov r1, r10 + bl __modsi3 + add r0, sp + ldrb r0, [r0] + mov r1, r8 + strh r0, [r1, 0x3C] + b _08119766 +_08119756: + ldr r0, [sp, 0x10] + mov r1, r10 + bl __modsi3 + add r0, sp + ldrb r0, [r0] + mov r2, r8 + strh r0, [r2, 0x3C] +_08119766: + ldr r3, _0811977C @ =sub_8118CEC + mov r0, r8 + str r3, [r0, 0x1C] + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0811977C: .4byte sub_8118CEC + thumb_func_end sub_811952C + + thumb_func_start sub_8119780 +sub_8119780: @ 8119780 + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x30] + adds r1, r0, 0x1 + strh r1, [r2, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r2, r3] + cmp r0, r1 + blt _081197CA + ldrh r0, [r2, 0x20] + subs r0, 0x2 + strh r0, [r2, 0x20] + lsls r0, 16 + asrs r0, 16 + movs r1, 0x10 + negs r1, r1 + cmp r0, r1 + bge _081197CA + ldr r4, _081197D0 @ =0x02019000 + ldrb r1, [r4, 0x3] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _081197BA + movs r0, 0x40 + orrs r0, r1 + strb r0, [r4, 0x3] +_081197BA: + adds r0, r2, 0 + bl DestroySprite + movs r0, 0 + strb r0, [r4, 0x1] + ldr r0, _081197D4 @ =gUnknown_083FA61E + ldrh r0, [r0] + strh r0, [r4, 0x34] +_081197CA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_081197D0: .4byte 0x02019000 +_081197D4: .4byte gUnknown_083FA61E + thumb_func_end sub_8119780 + + thumb_func_start sub_81197D8 +sub_81197D8: @ 81197D8 + push {r4,lr} + sub sp, 0x18 + adds r4, r0, 0 + ldr r1, _08119854 @ =gUnknown_083FA632 + mov r0, sp + movs r2, 0x18 + bl memcpy + ldrh r0, [r4, 0x30] + adds r2, r0, 0x1 + strh r2, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + movs r3, 0x34 + ldrsh r1, [r4, r3] + cmp r0, r1 + bge _0811985C + movs r0, 0x1 + ands r2, r0 + cmp r2, 0 + beq _08119836 + ldr r3, _08119858 @ =gSpriteCoordOffsetY + movs r0, 0x3C + ldrsh r2, [r4, r0] + lsls r2, 1 + movs r1, 0x32 + ldrsh r0, [r4, r1] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r0, 3 + adds r2, r0 + mov r1, sp + adds r0, r1, r2 + ldrh r0, [r0] + strh r0, [r3] + movs r3, 0x3C + ldrsh r2, [r4, r3] + adds r1, r2, 0x1 + adds r0, r1, 0 + cmp r1, 0 + bge _0811982E + adds r0, r2, 0x4 +_0811982E: + asrs r0, 2 + lsls r0, 2 + subs r0, r1, r0 + strh r0, [r4, 0x3C] +_08119836: + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + b _08119884 + .align 2, 0 +_08119854: .4byte gUnknown_083FA632 +_08119858: .4byte gSpriteCoordOffsetY +_0811985C: + ldr r1, _0811988C @ =gSpriteCoordOffsetY + movs r0, 0 + strh r0, [r1] + ldr r2, _08119890 @ =gSprites + ldr r0, _08119894 @ =0x02019000 + adds r0, 0x73 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2C + ldrb r2, [r0] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + adds r0, r4, 0 + bl DestroySprite +_08119884: + add sp, 0x18 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0811988C: .4byte gSpriteCoordOffsetY +_08119890: .4byte gSprites +_08119894: .4byte 0x02019000 + thumb_func_end sub_81197D8 + + thumb_func_start sub_8119898 +sub_8119898: @ 8119898 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r0, [r5, 0x30] + adds r0, 0x1 + strh r0, [r5, 0x30] + movs r1, 0x30 + ldrsh r0, [r5, r1] + bl __floatsisf + adds r4, r0, 0 + ldr r1, _08119948 @ =0x3d1fbe77 + bl __mulsf3 + adds r1, r4, 0 + bl __mulsf3 + bl __fixsfsi + strh r0, [r5, 0x26] + ldr r3, _0811994C @ =0x02019000 + ldr r2, _08119950 @ =gUnknown_083FA61E + ldrb r0, [r3, 0x1] + subs r0, 0x1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r3, 0x34] + ldrb r0, [r3, 0x1] + cmp r0, 0x12 + bhi _081198DE + adds r0, 0x1 + strb r0, [r3, 0x1] +_081198DE: + movs r1, 0x30 + ldrsh r0, [r5, r1] + cmp r0, 0x3C + ble _08119940 + movs r0, 0 + strh r0, [r5, 0x30] + ldr r3, _08119954 @ =sub_8119780 + str r3, [r5, 0x1C] + ldr r2, _08119958 @ =gSprites + movs r0, 0x3A + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r2, 0 + adds r4, 0x1C + adds r0, r4 + str r3, [r0] + movs r0, 0x3A + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _0811995C @ =0x0000fffe + strh r1, [r0, 0x30] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + movs r0, 0x38 + ldrsh r1, [r5, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08119960 @ =sub_81197D8 + str r1, [r0] + movs r0, 0xD6 + bl m4aSongNumStart +_08119940: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08119948: .4byte 0x3d1fbe77 +_0811994C: .4byte 0x02019000 +_08119950: .4byte gUnknown_083FA61E +_08119954: .4byte sub_8119780 +_08119958: .4byte gSprites +_0811995C: .4byte 0x0000fffe +_08119960: .4byte sub_81197D8 + thumb_func_end sub_8119898 + + thumb_func_start sub_8119964 +sub_8119964: @ 8119964 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x3C + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _081199E4 + ldr r3, _08119990 @ =0x02019000 + ldr r1, [r3, 0x38] + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08119998 + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119994 @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0x8] + b _081199AA + .align 2, 0 +_08119990: .4byte 0x02019000 +_08119994: .4byte gUnknown_083F8DF4 +_08119998: + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _081199D8 @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0x8] + adds r0, 0xB4 +_081199AA: + cmp r2, r0 + bne _08119A78 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x3C] + adds r0, 0x1 + strh r0, [r4, 0x3C] + movs r0, 0x2B + bl m4aSongNumStart + ldr r1, _081199DC @ =0x02019000 + movs r0, 0x1 + strb r0, [r1, 0x1] + ldr r0, _081199E0 @ =gUnknown_083FA61E + ldrh r0, [r0] + strh r0, [r1, 0x34] + b _08119A78 + .align 2, 0 +_081199D8: .4byte gUnknown_083F8DF4 +_081199DC: .4byte 0x02019000 +_081199E0: .4byte gUnknown_083FA61E +_081199E4: + ldr r3, _08119A20 @ =0x02019000 + ldr r2, _08119A24 @ =gUnknown_083FA61E + ldrb r0, [r3, 0x1] + subs r0, 0x1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r3, 0x34] + ldrb r0, [r3, 0x1] + cmp r0, 0x12 + bhi _08119A04 + adds r0, 0x1 + strb r0, [r3, 0x1] +_08119A04: + ldr r1, [r3, 0x38] + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08119A2C + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119A28 @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0xA] + b _08119A3E + .align 2, 0 +_08119A20: .4byte 0x02019000 +_08119A24: .4byte gUnknown_083FA61E +_08119A28: .4byte gUnknown_083F8DF4 +_08119A2C: + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119A80 @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0xA] + adds r0, 0xB4 +_08119A3E: + cmp r2, r0 + bne _08119A78 + ldr r2, _08119A84 @ =gSprites + movs r0, 0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08119A88 @ =sub_8119898 + str r1, [r0] + movs r0, 0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + ldr r0, _08119A8C @ =SpriteCallbackDummy + str r0, [r4, 0x1C] + movs r0, 0 + strh r0, [r4, 0x3C] +_08119A78: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119A80: .4byte gUnknown_083F8DF4 +_08119A84: .4byte gSprites +_08119A88: .4byte sub_8119898 +_08119A8C: .4byte SpriteCallbackDummy + thumb_func_end sub_8119964 + + thumb_func_start sub_8119A90 +sub_8119A90: @ 8119A90 + adds r0, 0x3E + ldrb r3, [r0] + lsls r1, r3, 29 + lsrs r1, 31 + movs r2, 0x1 + eors r2, r1 + lsls r2, 2 + movs r1, 0x5 + negs r1, r1 + ands r1, r3 + orrs r1, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_8119A90 + + thumb_func_start sub_8119AAC +sub_8119AAC: @ 8119AAC + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r2, [r4, 0x22] + movs r0, 0x22 + ldrsh r1, [r4, r0] + movs r0, 0x10 + negs r0, r0 + cmp r1, r0 + ble _08119AC4 + subs r0, r2, 0x1 + strh r0, [r4, 0x22] + b _08119B12 +_08119AC4: + ldr r0, _08119B18 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] + subs r2, 0x12 + ldrb r0, [r2] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x5E + bl m4aSongNumStop + adds r0, r4, 0 + bl DestroySprite + ldr r5, _08119B1C @ =gSprites + ldr r4, _08119B20 @ =0x02019000 + adds r4, 0x74 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + bl DestroySprite +_08119B12: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08119B18: .4byte SpriteCallbackDummy +_08119B1C: .4byte gSprites +_08119B20: .4byte 0x02019000 + thumb_func_end sub_8119AAC + + thumb_func_start sub_8119B24 +sub_8119B24: @ 8119B24 + push {r4,lr} + adds r4, r0, 0 + ldrh r1, [r4, 0x30] + movs r2, 0x30 + ldrsh r0, [r4, r2] + cmp r0, 0 + blt _08119B4E + subs r1, 0x1 + strh r1, [r4, 0x30] + ldrh r0, [r4, 0x22] + subs r0, 0x1 + strh r0, [r4, 0x22] + lsls r1, 16 + cmp r1, 0 + bne _08119BB8 + adds r0, r4, 0 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _08119BB8 + b _08119B74 +_08119B4E: + ldrh r1, [r4, 0x34] + movs r2, 0x34 + ldrsh r0, [r4, r2] + cmp r0, 0 + blt _08119B84 + subs r0, r1, 0x1 + strh r0, [r4, 0x34] + adds r0, r4, 0 + adds r0, 0x2C + ldrb r1, [r0] + movs r0, 0x3F + ands r0, r1 + cmp r0, 0 + bne _08119BB8 + adds r0, r4, 0 + adds r0, 0x2B + ldrb r0, [r0] + cmp r0, 0x1 + bne _08119B7C +_08119B74: + ldrh r0, [r4, 0x26] + adds r0, 0x1 + strh r0, [r4, 0x26] + b _08119BB8 +_08119B7C: + ldrh r0, [r4, 0x26] + subs r0, 0x1 + strh r0, [r4, 0x26] + b _08119BB8 +_08119B84: + movs r0, 0x2B + bl m4aSongNumStart + ldr r0, _08119BC0 @ =0x02019000 + ldr r0, [r0, 0x38] + ldrh r1, [r0, 0x2E] + adds r1, 0x4 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + ldr r0, _08119BC4 @ =sub_8119AAC + str r0, [r4, 0x1C] + ldr r2, _08119BC8 @ =gSprites + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x2C + ldrb r2, [r0] + movs r1, 0x7F + ands r1, r2 + strb r1, [r0] +_08119BB8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119BC0: .4byte 0x02019000 +_08119BC4: .4byte sub_8119AAC +_08119BC8: .4byte gSprites + thumb_func_end sub_8119B24 + + thumb_func_start sub_8119BCC +sub_8119BCC: @ 8119BCC + push {r4,r5,lr} + sub sp, 0x14 + adds r4, r0, 0 + ldr r1, _08119C44 @ =gUnknown_083FA64A + mov r0, sp + movs r2, 0x2 + bl memcpy + add r5, sp, 0x4 + ldr r1, _08119C48 @ =gUnknown_083FA64C + adds r0, r5, 0 + movs r2, 0x10 + bl memcpy + ldrh r0, [r4, 0x30] + subs r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _08119C5C + ldr r0, _08119C4C @ =0x02019000 + ldr r0, [r0, 0x38] + movs r1, 0x2E + ldrsh r0, [r0, r1] + add r0, sp + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08119CF6 + movs r1, 0x20 + ldrsh r0, [r4, r1] + movs r4, 0x74 + subs r4, r0 + lsrs r0, r4, 31 + adds r4, r0 + asrs r4, 1 + negs r4, r4 + ldr r0, _08119C50 @ =gMPlay_SE1 + ldr r5, _08119C54 @ =0x0000ffff + lsls r4, 24 + asrs r4, 24 + adds r1, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + ldr r0, _08119C58 @ =gMPlay_SE2 + adds r1, r5, 0 + adds r2, r4, 0 + bl m4aMPlayPanpotControl + b _08119CF6 + .align 2, 0 +_08119C44: .4byte gUnknown_083FA64A +_08119C48: .4byte gUnknown_083FA64C +_08119C4C: .4byte 0x02019000 +_08119C50: .4byte gMPlay_SE1 +_08119C54: .4byte 0x0000ffff +_08119C58: .4byte gMPlay_SE2 +_08119C5C: + lsls r0, r1, 16 + cmp r0, 0 + blt _08119CAC + ldr r0, _08119CA8 @ =0x02019000 + ldr r0, [r0, 0x38] + movs r2, 0x2E + ldrsh r0, [r0, r2] + add r0, sp + movs r2, 0 + ldrsb r2, [r0, r2] + movs r1, 0x30 + ldrsh r0, [r4, r1] + movs r1, 0x7 + subs r0, r1, r0 + lsls r0, 1 + adds r0, r5, r0 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + muls r0, r2 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + movs r2, 0x30 + ldrsh r0, [r4, r2] + subs r1, r0 + lsls r1, 1 + mov r0, sp + adds r0, 0x5 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + ldrh r1, [r4, 0x22] + adds r0, r1 + strh r0, [r4, 0x22] + b _08119CF6 + .align 2, 0 +_08119CA8: .4byte 0x02019000 +_08119CAC: + movs r0, 0x5E + bl m4aSongNumStartOrChange + ldr r0, _08119CCC @ =0x02019000 + ldr r0, [r0, 0x38] + movs r2, 0x2E + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _08119CD0 + movs r0, 0x98 + lsls r0, 1 + movs r1, 0x3F + bl PlayCry1 + b _08119CDC + .align 2, 0 +_08119CCC: .4byte 0x02019000 +_08119CD0: + movs r0, 0x98 + lsls r0, 1 + movs r1, 0x3F + negs r1, r1 + bl PlayCry1 +_08119CDC: + ldr r0, _08119D00 @ =0x02019000 + ldr r0, [r0, 0x38] + ldrh r1, [r0, 0x2E] + adds r1, 0x2 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl StartSpriteAnim + movs r0, 0x2D + strh r0, [r4, 0x30] + ldr r0, _08119D04 @ =sub_8119B24 + str r0, [r4, 0x1C] +_08119CF6: + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08119D00: .4byte 0x02019000 +_08119D04: .4byte sub_8119B24 + thumb_func_end sub_8119BCC + + thumb_func_start sub_8119D08 +sub_8119D08: @ 8119D08 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldr r1, _08119D64 @ =gUnknown_083FA64A + mov r0, sp + movs r2, 0x2 + bl memcpy + ldrh r0, [r4, 0x30] + subs r1, r0, 0x1 + strh r1, [r4, 0x30] + lsls r0, 16 + cmp r0, 0 + blt _08119D70 + ldr r0, _08119D68 @ =0x02019000 + ldr r0, [r0, 0x38] + movs r1, 0x2E + ldrsh r0, [r0, r1] + add r0, sp + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + lsls r0, 1 + ldrh r2, [r4, 0x20] + adds r0, r2 + strh r0, [r4, 0x20] + ldr r1, _08119D6C @ =gSprites + movs r2, 0x3A + ldrsh r0, [r4, r2] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + adds r2, 0x3E + ldrb r3, [r2] + lsls r0, r3, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + b _08119D74 + .align 2, 0 +_08119D64: .4byte gUnknown_083FA64A +_08119D68: .4byte 0x02019000 +_08119D6C: .4byte gSprites +_08119D70: + ldr r0, _08119D7C @ =sub_8119A90 + str r0, [r4, 0x1C] +_08119D74: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119D7C: .4byte sub_8119A90 + thumb_func_end sub_8119D08 + + thumb_func_start sub_8119D80 +sub_8119D80: @ 8119D80 + push {r4,lr} + adds r4, r0, 0 + ldr r3, _08119DB8 @ =0x02019000 + ldr r1, [r3, 0x38] + movs r2, 0x2E + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _08119DC4 + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119DBC @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0x12] + adds r0, 0x5A + cmp r2, r0 + bne _08119E26 + ldr r2, _08119DC0 @ =gSprites + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r3, 0x34 + b _08119DEE + .align 2, 0 +_08119DB8: .4byte 0x02019000 +_08119DBC: .4byte gUnknown_083F8DF4 +_08119DC0: .4byte gSprites +_08119DC4: + movs r0, 0x34 + ldrsh r2, [r1, r0] + ldr r1, _08119E2C @ =gUnknown_083F8DF4 + ldrb r0, [r3, 0x4] + lsls r0, 30 + lsrs r0, 25 + adds r0, r1 + ldrh r0, [r0, 0x14] + movs r1, 0x87 + lsls r1, 1 + adds r0, r1 + cmp r2, r0 + bne _08119E26 + ldr r2, _08119E30 @ =gSprites + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r3, 0x2E +_08119DEE: + strh r3, [r0, 0x30] + movs r0, 0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r3, [r0, 0x30] + movs r0, 0x3A + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _08119E34 @ =sub_8119D08 + str r1, [r0] + movs r0, 0x36 + ldrsh r1, [r4, r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _08119E38 @ =sub_8119BCC + str r1, [r0] + movs r0, 0x2B + bl m4aSongNumStart +_08119E26: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08119E2C: .4byte gUnknown_083F8DF4 +_08119E30: .4byte gSprites +_08119E34: .4byte sub_8119D08 +_08119E38: .4byte sub_8119BCC + thumb_func_end sub_8119D80 + + .align 2, 0 @ Don't pad with nop. |