diff options
-rw-r--r-- | asm/pokeblock.s | 2675 | ||||
-rw-r--r-- | asm/rom6.s | 9389 | ||||
-rw-r--r-- | asm/rom_810CBB4.s | 6732 | ||||
-rw-r--r-- | ld_script.txt | 2 |
4 files changed, 9409 insertions, 9389 deletions
diff --git a/asm/pokeblock.s b/asm/pokeblock.s new file mode 100644 index 000000000..d39a4b3ca --- /dev/null +++ b/asm/pokeblock.s @@ -0,0 +1,2675 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_810B674 +sub_810B674: @ 810B674 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + bl RunTasks + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_810B674 + + thumb_func_start sub_810B68C +sub_810B68C: @ 810B68C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000 + ldr r2, _0810B6B4 @ =0x06007800 + ldr r0, _0810B6B8 @ =0x040000d4 + str r1, [r0] + str r2, [r0, 0x4] + ldr r1, _0810B6BC @ =0x80000400 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + pop {r0} + bx r0 + .align 2, 0 +_0810B6B0: .4byte gBGTilemapBuffers + 0x1000 +_0810B6B4: .4byte 0x06007800 +_0810B6B8: .4byte 0x040000d4 +_0810B6BC: .4byte 0x80000400 + thumb_func_end sub_810B68C + + thumb_func_start sub_810B6C0 +sub_810B6C0: @ 810B6C0 + push {r4,lr} + sub sp, 0x4 + ldr r0, _0810B6DC @ =gMain + ldr r1, _0810B6E0 @ =0x0000043c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x12 + bls _0810B6D2 + b _0810B960 +_0810B6D2: + lsls r0, 2 + ldr r1, _0810B6E4 @ =_0810B6E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810B6DC: .4byte gMain +_0810B6E0: .4byte 0x0000043c +_0810B6E4: .4byte _0810B6E8 + .align 2, 0 +_0810B6E8: + .4byte _0810B734 + .4byte _0810B764 + .4byte _0810B76A + .4byte _0810B78C + .4byte _0810B792 + .4byte _0810B7B4 + .4byte _0810B7C0 + .4byte _0810B7DC + .4byte _0810B7E8 + .4byte _0810B804 + .4byte _0810B810 + .4byte _0810B830 + .4byte _0810B84C + .4byte _0810B86A + .4byte _0810B894 + .4byte _0810B89E + .4byte _0810B8C4 + .4byte _0810B914 + .4byte _0810B934 +_0810B734: + bl sub_80F9438 + bl sub_80F9368 + ldr r1, _0810B754 @ =REG_BG2CNT + ldr r2, _0810B758 @ =0x00000f0a + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x44 + movs r0, 0 + strh r0, [r1] + ldr r1, _0810B75C @ =gMain + ldr r0, _0810B760 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B754: .4byte REG_BG2CNT +_0810B758: .4byte 0x00000f0a +_0810B75C: .4byte gMain +_0810B760: .4byte 0x0000043c +_0810B764: + bl remove_some_task + b _0810B91C +_0810B76A: + bl ResetPaletteFade + ldr r2, _0810B780 @ =gPaletteFade + ldrb r0, [r2, 0x8] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x8] + ldr r1, _0810B784 @ =gMain + ldr r0, _0810B788 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B780: .4byte gPaletteFade +_0810B784: .4byte gMain +_0810B788: .4byte 0x0000043c +_0810B78C: + bl ResetSpriteData + b _0810B91C +_0810B792: + ldr r0, _0810B7A8 @ =gUnknown_02039244 + ldrb r0, [r0] + cmp r0, 0x2 + beq _0810B79E + bl ResetTasks +_0810B79E: + ldr r1, _0810B7AC @ =gMain + ldr r0, _0810B7B0 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B7A8: .4byte gUnknown_02039244 +_0810B7AC: .4byte gMain +_0810B7B0: .4byte 0x0000043c +_0810B7B4: + ldr r0, _0810B7BC @ =gWindowConfig_81E6E34 + bl SetUpWindowConfig + b _0810B91C + .align 2, 0 +_0810B7BC: .4byte gWindowConfig_81E6E34 +_0810B7C0: + ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50 + bl SetUpWindowConfig + ldr r1, _0810B7D4 @ =gMain + ldr r0, _0810B7D8 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B7D0: .4byte gWindowConfig_81E6E50 +_0810B7D4: .4byte gMain +_0810B7D8: .4byte 0x0000043c +_0810B7DC: + ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34 + bl MultistepInitMenuWindowBegin + b _0810B91C + .align 2, 0 +_0810B7E4: .4byte gWindowConfig_81E6E34 +_0810B7E8: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _0810B7F2 + b _0810B960 +_0810B7F2: + ldr r1, _0810B7FC @ =gMain + ldr r0, _0810B800 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B7FC: .4byte gMain +_0810B800: .4byte 0x0000043c +_0810B804: + ldr r0, _0810B80C @ =gWindowConfig_81E6E50 + bl MultistepInitMenuWindowBegin + b _0810B91C + .align 2, 0 +_0810B80C: .4byte gWindowConfig_81E6E50 +_0810B810: + bl MultistepInitMenuWindowContinue + cmp r0, 0 + bne _0810B81A + b _0810B960 +_0810B81A: + ldr r0, _0810B828 @ =0x02000000 + ldr r1, _0810B82C @ =0x0001ffff + adds r0, r1 + movs r1, 0 + strb r1, [r0] + b _0810B91C + .align 2, 0 +_0810B828: .4byte 0x02000000 +_0810B82C: .4byte 0x0001ffff +_0810B830: + bl sub_810B998 + lsls r0, 24 + cmp r0, 0 + bne _0810B83C + b _0810B960 +_0810B83C: + ldr r1, _0810B844 @ =gMain + ldr r0, _0810B848 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B844: .4byte gMain +_0810B848: .4byte 0x0000043c +_0810B84C: + bl sub_80F944C + bl LoadScrollIndicatorPalette + movs r0, 0 + movs r1, 0xB0 + movs r2, 0x8 + bl CreateVerticalScrollIndicators + movs r0, 0x1 + movs r1, 0xB0 + movs r2, 0x98 + bl CreateVerticalScrollIndicators + b _0810B91C +_0810B86A: + movs r0, 0x38 + movs r1, 0x40 + movs r2, 0 + bl sub_810BA50 + ldr r1, _0810B884 @ =0x02000000 + ldr r2, _0810B888 @ =0x0001fffe + adds r1, r2 + strb r0, [r1] + ldr r1, _0810B88C @ =gMain + ldr r0, _0810B890 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B884: .4byte 0x02000000 +_0810B888: .4byte 0x0001fffe +_0810B88C: .4byte gMain +_0810B890: .4byte 0x0000043c +_0810B894: + bl sub_810BC98 + bl sub_810BD08 + b _0810B91C +_0810B89E: + bl sub_810BB0C + bl sub_810BB30 + ldr r0, _0810B8B8 @ =gUnknown_02039248 + ldrb r0, [r0, 0x1] + bl sub_810BC84 + ldr r1, _0810B8BC @ =gMain + ldr r0, _0810B8C0 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B8B8: .4byte gUnknown_02039248 +_0810B8BC: .4byte gMain +_0810B8C0: .4byte 0x0000043c +_0810B8C4: + ldr r3, _0810B8FC @ =0x04000208 + ldrh r2, [r3] + movs r0, 0 + strh r0, [r3] + ldr r4, _0810B900 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r2, _0810B904 @ =REG_DISPSTAT + ldrh r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0810B908 @ =sub_810B68C + bl SetVBlankCallback + movs r1, 0x80 + lsls r1, 19 + movs r2, 0xBA + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0810B90C @ =gMain + ldr r0, _0810B910 @ =0x0000043c + adds r1, r0 + b _0810B922 + .align 2, 0 +_0810B8FC: .4byte 0x04000208 +_0810B900: .4byte 0x04000200 +_0810B904: .4byte REG_DISPSTAT +_0810B908: .4byte sub_810B68C +_0810B90C: .4byte gMain +_0810B910: .4byte 0x0000043c +_0810B914: + bl sub_8055870 + cmp r0, 0x1 + beq _0810B960 +_0810B91C: + ldr r1, _0810B92C @ =gMain + ldr r2, _0810B930 @ =0x0000043c + adds r1, r2 +_0810B922: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0810B960 + .align 2, 0 +_0810B92C: .4byte gMain +_0810B930: .4byte 0x0000043c +_0810B934: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + ldr r2, _0810B958 @ =gPaletteFade + ldrb r1, [r2, 0x8] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2, 0x8] + ldr r0, _0810B95C @ =sub_810B674 + bl SetMainCallback2 + movs r0, 0x1 + b _0810B962 + .align 2, 0 +_0810B958: .4byte gPaletteFade +_0810B95C: .4byte sub_810B674 +_0810B960: + movs r0, 0 +_0810B962: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810B6C0 + + thumb_func_start sub_810B96C +sub_810B96C: @ 810B96C + push {lr} +_0810B96E: + bl sub_810B6C0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0810B988 + ldr r0, _0810B984 @ =sub_810BF7C + movs r1, 0 + bl CreateTask + b _0810B994 + .align 2, 0 +_0810B984: .4byte sub_810BF7C +_0810B988: + bl sub_80F9344 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0810B96E +_0810B994: + pop {r0} + bx r0 + thumb_func_end sub_810B96C + + thumb_func_start sub_810B998 +sub_810B998: @ 810B998 + push {lr} + ldr r0, _0810B9B0 @ =0x02000000 + ldr r1, _0810B9B4 @ =0x0001ffff + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x4 + bhi _0810BA48 + lsls r0, 2 + ldr r1, _0810B9B8 @ =_0810B9BC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810B9B0: .4byte 0x02000000 +_0810B9B4: .4byte 0x0001ffff +_0810B9B8: .4byte _0810B9BC + .align 2, 0 +_0810B9BC: + .4byte _0810B9D0 + .4byte _0810B9E4 + .4byte _0810B9F8 + .4byte _0810BA08 + .4byte _0810BA28 +_0810B9D0: + ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx + ldr r1, _0810B9E0 @ =0x06008000 + bl LZDecompressVram + b _0810BA0E + .align 2, 0 +_0810B9DC: .4byte gMenuPokeblock_Gfx +_0810B9E0: .4byte 0x06008000 +_0810B9E4: + ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap + ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000 + bl sub_800D238 + b _0810BA0E + .align 2, 0 +_0810B9F0: .4byte gMenuPokeblock_Tilemap +_0810B9F4: .4byte gBGTilemapBuffers + 0x1000 +_0810B9F8: + ldr r0, _0810BA04 @ =gMenuPokeblock_Pal + movs r1, 0 + movs r2, 0xC0 + bl LoadCompressedPalette + b _0810BA0E + .align 2, 0 +_0810BA04: .4byte gMenuPokeblock_Pal +_0810BA08: + ldr r0, _0810BA1C @ =gUnknown_083F7F74 + bl LoadCompressedObjectPic +_0810BA0E: + ldr r1, _0810BA20 @ =0x02000000 + ldr r0, _0810BA24 @ =0x0001ffff + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0810BA48 + .align 2, 0 +_0810BA1C: .4byte gUnknown_083F7F74 +_0810BA20: .4byte 0x02000000 +_0810BA24: .4byte 0x0001ffff +_0810BA28: + ldr r0, _0810BA3C @ =gUnknown_083F7F7C + bl LoadCompressedObjectPalette + ldr r0, _0810BA40 @ =0x02000000 + ldr r1, _0810BA44 @ =0x0001ffff + adds r0, r1 + movs r1, 0 + strb r1, [r0] + movs r0, 0x1 + b _0810BA4A + .align 2, 0 +_0810BA3C: .4byte gUnknown_083F7F7C +_0810BA40: .4byte 0x02000000 +_0810BA44: .4byte 0x0001ffff +_0810BA48: + movs r0, 0 +_0810BA4A: + pop {r1} + bx r1 + thumb_func_end sub_810B998 + + thumb_func_start sub_810BA50 +sub_810BA50: @ 810BA50 + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r3, r2, 0 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84 + lsls r4, 16 + asrs r4, 16 + lsls r5, 16 + asrs r5, 16 + adds r1, r4, 0 + adds r2, r5, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810BA78: .4byte gSpriteTemplate_83F7F84 + thumb_func_end sub_810BA50 + + thumb_func_start sub_810BA7C +sub_810BA7C: @ 810BA7C + push {lr} + ldr r1, _0810BA98 @ =gUnknown_02039244 + strb r0, [r1] + ldrb r2, [r1] + cmp r2, 0x2 + beq _0810BAA8 + cmp r2, 0x3 + beq _0810BAC0 + ldr r1, _0810BA9C @ =gUnknown_03000758 + ldr r0, _0810BAA0 @ =gUnknown_083F7F1C + str r0, [r1] + ldr r1, _0810BAA4 @ =gUnknown_0203924C + movs r0, 0x3 + b _0810BACA + .align 2, 0 +_0810BA98: .4byte gUnknown_02039244 +_0810BA9C: .4byte gUnknown_03000758 +_0810BAA0: .4byte gUnknown_083F7F1C +_0810BAA4: .4byte gUnknown_0203924C +_0810BAA8: + ldr r0, _0810BAB4 @ =gUnknown_03000758 + ldr r1, _0810BAB8 @ =gUnknown_083F7F1F + str r1, [r0] + ldr r0, _0810BABC @ =gUnknown_0203924C + strb r2, [r0] + b _0810BACC + .align 2, 0 +_0810BAB4: .4byte gUnknown_03000758 +_0810BAB8: .4byte gUnknown_083F7F1F +_0810BABC: .4byte gUnknown_0203924C +_0810BAC0: + ldr r1, _0810BAD0 @ =gUnknown_03000758 + ldr r0, _0810BAD4 @ =gUnknown_083F7F21 + str r0, [r1] + ldr r1, _0810BAD8 @ =gUnknown_0203924C + movs r0, 0x2 +_0810BACA: + strb r0, [r1] +_0810BACC: + pop {r0} + bx r0 + .align 2, 0 +_0810BAD0: .4byte gUnknown_03000758 +_0810BAD4: .4byte gUnknown_083F7F21 +_0810BAD8: .4byte gUnknown_0203924C + thumb_func_end sub_810BA7C + + thumb_func_start sub_810BADC +sub_810BADC: @ 810BADC + push {lr} + movs r0, 0x2 + bl sub_810BA7C + ldr r0, _0810BAF0 @ =sub_810B96C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0810BAF0: .4byte sub_810B96C + thumb_func_end sub_810BADC + + thumb_func_start sub_810BAF4 +sub_810BAF4: @ 810BAF4 + push {lr} + movs r0, 0x3 + bl sub_810BA7C + ldr r0, _0810BB08 @ =sub_810B96C + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0810BB08: .4byte sub_810B96C + thumb_func_end sub_810BAF4 + + thumb_func_start sub_810BB0C +sub_810BB0C: @ 810BB0C + push {lr} + ldr r0, _0810BB28 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + ldr r0, _0810BB2C @ =0x00000111 + bl ItemId_GetItem + movs r1, 0x2 + movs r2, 0x1 + movs r3, 0x48 + bl sub_8072BD8 + pop {r0} + bx r0 + .align 2, 0 +_0810BB28: .4byte gWindowConfig_81E6E34 +_0810BB2C: .4byte 0x00000111 + thumb_func_end sub_810BB0C + + thumb_func_start sub_810BB30 +sub_810BB30: @ 810BB30 + push {lr} + ldr r0, _0810BB70 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + ldr r0, _0810BB74 @ =gContestStatsText_Spicy + movs r1, 0x2 + movs r2, 0xD + bl MenuPrint + ldr r0, _0810BB78 @ =gContestStatsText_Dry + movs r1, 0x2 + movs r2, 0xF + bl MenuPrint + ldr r0, _0810BB7C @ =gContestStatsText_Sweet + movs r1, 0x2 + movs r2, 0x11 + bl MenuPrint + ldr r0, _0810BB80 @ =gContestStatsText_Bitter + movs r1, 0x8 + movs r2, 0xD + bl MenuPrint + ldr r0, _0810BB84 @ =gContestStatsText_Sour + movs r1, 0x8 + movs r2, 0xF + bl MenuPrint + pop {r0} + bx r0 + .align 2, 0 +_0810BB70: .4byte gWindowConfig_81E6E34 +_0810BB74: .4byte gContestStatsText_Spicy +_0810BB78: .4byte gContestStatsText_Dry +_0810BB7C: .4byte gContestStatsText_Sweet +_0810BB80: .4byte gContestStatsText_Bitter +_0810BB84: .4byte gContestStatsText_Sour + thumb_func_end sub_810BB30 + + thumb_func_start sub_810BB88 +sub_810BB88: @ 810BB88 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + mov r6, r8 + adds r0, r6, 0 + adds r0, 0x8 + cmp r6, r0 + bgt _0810BC6C + ldr r0, _0810BBF8 @ =gStringVar1 + mov r9, r0 + ldr r1, _0810BBFC @ =gSaveBlock1 + mov r10, r1 +_0810BBB0: + mov r1, r8 + subs r0, r6, r1 + lsls r0, 25 + lsrs r7, r0, 24 + ldr r0, _0810BC00 @ =gUnknown_02039248 + ldrb r0, [r0, 0x2] + cmp r6, r0 + bne _0810BC08 + mov r0, r9 + ldr r1, _0810BC04 @ =gContestStatsText_StowCase + movs r2, 0x78 + movs r3, 0 + bl sub_8072C74 + movs r2, 0x1 + orrs r2, r7 + mov r0, r9 + movs r1, 0xF + bl MenuPrint + mov r0, r8 + adds r0, 0x8 + cmp r6, r0 + beq _0810BC6C + adds r1, r7, 0x3 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0xF + movs r2, 0x1D + movs r3, 0x12 + bl MenuZeroFillWindowRect + b _0810BC6C + .align 2, 0 +_0810BBF4: .4byte gWindowConfig_81E6E34 +_0810BBF8: .4byte gStringVar1 +_0810BBFC: .4byte gSaveBlock1 +_0810BC00: .4byte gUnknown_02039248 +_0810BC04: .4byte gContestStatsText_StowCase +_0810BC08: + lsls r5, r6, 3 + mov r1, r10 + adds r0, r5, r1 + movs r1, 0xFF + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + ldr r1, _0810BC7C @ =gPokeblockNames + adds r0, r1 + ldr r1, [r0] + mov r0, r9 + movs r2, 0x5E + movs r3, 0 + bl sub_8072C74 + adds r4, r0, 0 + movs r0, 0xFC + strb r0, [r4] + movs r0, 0x14 + strb r0, [r4, 0x1] + movs r0, 0x6 + strb r0, [r4, 0x2] + adds r4, 0x3 + ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8 + adds r5, r0 + adds r0, r5, 0 + bl sub_810C9B0 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + movs r2, 0x1 + orrs r2, r7 + mov r0, r9 + movs r1, 0xF + bl MenuPrint + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + mov r0, r8 + adds r0, 0x8 + cmp r6, r0 + ble _0810BBB0 +_0810BC6C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810BC7C: .4byte gPokeblockNames +_0810BC80: .4byte gSaveBlock1 + 0x7F8 + thumb_func_end sub_810BB88 + + thumb_func_start sub_810BC84 +sub_810BC84: @ 810BC84 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl sub_810BB88 + movs r0, 0 + bl sub_810BDAC + pop {r0} + bx r0 + thumb_func_end sub_810BC84 + + thumb_func_start sub_810BC98 +sub_810BC98: @ 810BC98 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r2, 0 + ldr r0, _0810BD00 @ =gSaveBlock1 + mov r9, r0 +_0810BCA6: + adds r1, r2, 0x1 + lsls r0, r1, 16 + lsrs r5, r0, 16 + mov r8, r1 + cmp r5, 0x27 + bhi _0810BCE8 + lsls r1, r2, 3 + mov r2, r9 + adds r0, r1, r2 + movs r2, 0xFF + lsls r2, 3 + adds r7, r0, r2 + ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8 + mov r12, r0 + adds r6, r1, r0 +_0810BCC4: + ldrb r0, [r7] + cmp r0, 0 + bne _0810BCDE + ldr r3, [r6] + ldr r4, [r6, 0x4] + lsls r2, r5, 3 + add r2, r12 + ldr r0, [r2] + ldr r1, [r2, 0x4] + str r0, [r6] + str r1, [r6, 0x4] + str r3, [r2] + str r4, [r2, 0x4] +_0810BCDE: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x27 + bls _0810BCC4 +_0810BCE8: + mov r1, r8 + lsls r0, r1, 16 + lsrs r2, r0, 16 + cmp r2, 0x26 + bls _0810BCA6 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810BD00: .4byte gSaveBlock1 +_0810BD04: .4byte gSaveBlock1 + 0x7F8 + thumb_func_end sub_810BC98 + + thumb_func_start sub_810BD08 +sub_810BD08: @ 810BD08 + push {r4,r5,lr} + ldr r1, _0810BD5C @ =gUnknown_02039248 + movs r0, 0 + strb r0, [r1, 0x2] + movs r2, 0 + ldr r5, _0810BD60 @ =gSaveBlock1 + movs r4, 0xFF + lsls r4, 3 + adds r3, r1, 0 +_0810BD1A: + lsls r0, r2, 3 + adds r0, r5 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0810BD2C + ldrb r0, [r3, 0x2] + adds r0, 0x1 + strb r0, [r3, 0x2] +_0810BD2C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x27 + bls _0810BD1A + ldrb r0, [r1, 0x2] + cmp r0, 0x7 + bls _0810BD3E + movs r0, 0x8 +_0810BD3E: + strb r0, [r1, 0x3] + ldrb r2, [r1, 0x1] + adds r0, r2, 0 + adds r0, 0x8 + ldrb r3, [r1, 0x2] + cmp r0, r3 + ble _0810BD54 + cmp r2, 0 + beq _0810BD54 + subs r0, r2, 0x1 + strb r0, [r1, 0x1] +_0810BD54: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810BD5C: .4byte gUnknown_02039248 +_0810BD60: .4byte gSaveBlock1 + thumb_func_end sub_810BD08 + + thumb_func_start sub_810BD64 +sub_810BD64: @ 810BD64 + push {r4,r5,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + ldr r5, _0810BDA4 @ =gUnknown_02039248 + ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000 +_0810BD70: + ldrb r0, [r5] + lsls r0, 1 + adds r0, 0x1 + lsls r0, 5 + adds r1, r2, 0 + adds r1, 0xF + adds r0, r1 + lsls r0, 1 + adds r0, r4 + strh r3, [r0] + ldrb r0, [r5] + lsls r0, 6 + adds r0, 0x40 + adds r0, r1 + lsls r0, 1 + adds r0, r4 + strh r3, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xD + bls _0810BD70 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810BDA4: .4byte gUnknown_02039248 +_0810BDA8: .4byte gBGTilemapBuffers + 0x1000 + thumb_func_end sub_810BD64 + + thumb_func_start sub_810BDAC +sub_810BDAC: @ 810BDAC + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + cmp r0, 0 + bne _0810BDCC + ldr r0, _0810BDC4 @ =0x00001005 + ldr r1, _0810BDC8 @ =0x00001014 + bl sub_810BD64 + b _0810BDD4 + .align 2, 0 +_0810BDC4: .4byte 0x00001005 +_0810BDC8: .4byte 0x00001014 +_0810BDCC: + ldr r0, _0810BDE8 @ =0x00002005 + ldr r1, _0810BDEC @ =0x00002014 + bl sub_810BD64 +_0810BDD4: + ldr r0, _0810BDF0 @ =gUnknown_02039248 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0810BDF4 + movs r0, 0 + movs r1, 0 + bl sub_80F979C + b _0810BDFC + .align 2, 0 +_0810BDE8: .4byte 0x00002005 +_0810BDEC: .4byte 0x00002014 +_0810BDF0: .4byte gUnknown_02039248 +_0810BDF4: + movs r0, 0 + movs r1, 0x1 + bl sub_80F979C +_0810BDFC: + ldr r2, _0810BE1C @ =gUnknown_02039248 + ldrb r0, [r2, 0x2] + ldrb r1, [r2, 0x3] + cmp r0, r1 + bls _0810BE20 + ldrb r0, [r2, 0x1] + ldrb r1, [r2, 0x3] + adds r0, r1 + ldrb r2, [r2, 0x2] + cmp r0, r2 + beq _0810BE20 + movs r0, 0x1 + movs r1, 0 + bl sub_80F979C + b _0810BE28 + .align 2, 0 +_0810BE1C: .4byte gUnknown_02039248 +_0810BE20: + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C +_0810BE28: + movs r6, 0 + ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000 + movs r0, 0xF + mov r8, r0 +_0810BE30: + adds r0, r6, 0 + movs r1, 0x3 + bl __umodsi3 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 18 + ldr r1, _0810BE98 @ =0x000001a1 + adds r4, r1 + adds r0, r6, 0 + movs r1, 0x3 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 1 + adds r5, r4, r1 + ldr r1, _0810BE9C @ =gUnknown_02039248 + ldrb r2, [r1] + ldrb r0, [r1, 0x1] + adds r0, r2, r0 + ldrb r1, [r1, 0x2] + cmp r0, r1 + beq _0810BEB8 + lsls r0, 3 + ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8 + adds r0, r1 + adds r4, r6, 0x1 + lsls r1, r4, 24 + lsrs r1, 24 + bl sub_810CA9C + lsls r0, 16 + cmp r0, 0 + ble _0810BEA4 + lsls r1, r5, 1 + adds r1, r7 + lsls r2, r6, 12 + adds r0, r2, 0 + adds r0, 0x17 + strh r0, [r1] + adds r0, r5, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r7 + adds r2, 0x18 + strh r2, [r0] + b _0810BECC + .align 2, 0 +_0810BE94: .4byte gBGTilemapBuffers + 0x1000 +_0810BE98: .4byte 0x000001a1 +_0810BE9C: .4byte gUnknown_02039248 +_0810BEA0: .4byte gSaveBlock1 + 0x7F8 +_0810BEA4: + lsls r0, r5, 1 + adds r0, r7 + mov r1, r8 + strh r1, [r0] + adds r0, r5, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r7 + strh r1, [r0] + b _0810BECC +_0810BEB8: + lsls r0, r5, 1 + adds r0, r7 + mov r1, r8 + strh r1, [r0] + adds r0, r5, 0 + adds r0, 0x20 + lsls r0, 1 + adds r0, r7 + strh r1, [r0] + adds r4, r6, 0x1 +_0810BECC: + lsls r0, r4, 24 + lsrs r6, r0, 24 + cmp r6, 0x4 + bls _0810BE30 + ldr r0, _0810BF10 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + ldr r0, _0810BF14 @ =gUnknown_02039248 + ldrb r2, [r0] + ldrb r1, [r0, 0x1] + adds r2, r1 + ldrb r0, [r0, 0x2] + cmp r2, r0 + beq _0810BF20 + ldr r4, _0810BF18 @ =gStringVar1 + lsls r0, r2, 3 + ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8 + adds r0, r1 + bl sub_810C9E8 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + movs r2, 0x10 + movs r3, 0x1 + bl sub_8072C14 + adds r0, r4, 0 + movs r1, 0xB + movs r2, 0x11 + bl MenuPrint + b _0810BF2C + .align 2, 0 +_0810BF10: .4byte gWindowConfig_81E6E34 +_0810BF14: .4byte gUnknown_02039248 +_0810BF18: .4byte gStringVar1 +_0810BF1C: .4byte gSaveBlock1 + 0x7F8 +_0810BF20: + movs r0, 0xB + movs r1, 0x11 + movs r2, 0xC + movs r3, 0x12 + bl MenuZeroFillWindowRect +_0810BF2C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810BDAC + + thumb_func_start sub_810BF38 +sub_810BF38: @ 810BF38 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x5 + bl PlaySE + ldr r2, _0810BF6C @ =gSprites + ldr r0, _0810BF70 @ =0x02000000 + ldr r1, _0810BF74 @ =0x0001fffe + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0810BF78 @ =sub_810C8D4 + str r1, [r0] + adds r0, r4, 0 + bl sub_810BDAC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810BF6C: .4byte gSprites +_0810BF70: .4byte 0x02000000 +_0810BF74: .4byte 0x0001fffe +_0810BF78: .4byte sub_810C8D4 + thumb_func_end sub_810BF38 + + thumb_func_start sub_810BF7C +sub_810BF7C: @ 810BF7C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + ldr r0, _0810BFB8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0810BF94 + b _0810C0B8 +_0810BF94: + ldr r2, _0810BFBC @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810BFCE + ldr r4, _0810BFC0 @ =gUnknown_02039248 + ldrb r0, [r4] + cmp r0, 0 + beq _0810BFC4 + movs r0, 0x5 + movs r1, 0x14 + bl sub_810BD64 + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + b _0810C00A + .align 2, 0 +_0810BFB8: .4byte gPaletteFade +_0810BFBC: .4byte gMain +_0810BFC0: .4byte gUnknown_02039248 +_0810BFC4: + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _0810C0B8 + subs r0, 0x1 + b _0810C002 +_0810BFCE: + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0810C012 + ldr r4, _0810BFF0 @ =gUnknown_02039248 + ldrb r0, [r4] + ldrb r1, [r4, 0x3] + cmp r0, r1 + beq _0810BFF4 + movs r0, 0x5 + movs r1, 0x14 + bl sub_810BD64 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0810C00A + .align 2, 0 +_0810BFF0: .4byte gUnknown_02039248 +_0810BFF4: + ldrb r1, [r4, 0x1] + ldrb r0, [r4] + adds r0, r1, r0 + ldrb r2, [r4, 0x2] + cmp r0, r2 + beq _0810C0B8 + adds r0, r1, 0x1 +_0810C002: + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + bl sub_810BB88 +_0810C00A: + movs r0, 0 + bl sub_810BF38 + b _0810C0B8 +_0810C012: + ldrh r1, [r2, 0x2E] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0810C05C + ldr r4, _0810C050 @ =gUnknown_02039248 + ldrb r0, [r4, 0x1] + ldrb r1, [r4] + adds r0, r1 + ldrb r1, [r4, 0x2] + cmp r0, r1 + beq _0810C0B8 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl sub_810BDAC + ldr r1, _0810C054 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrb r1, [r4, 0x1] + ldrb r2, [r4] + adds r1, r2 + strh r1, [r0, 0x8] + ldr r1, _0810C058 @ =sub_810C0C8 + str r1, [r0] + b _0810C0B8 + .align 2, 0 +_0810C050: .4byte gUnknown_02039248 +_0810C054: .4byte gTasks +_0810C058: .4byte sub_810C0C8 +_0810C05C: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810C09C + movs r0, 0x5 + bl PlaySE + ldr r0, _0810C088 @ =gUnknown_02039248 + ldrb r1, [r0, 0x1] + ldrb r2, [r0] + adds r1, r2 + ldrb r0, [r0, 0x2] + cmp r1, r0 + bne _0810C094 + ldr r1, _0810C08C @ =gScriptResult + ldr r2, _0810C090 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] + adds r0, r5, 0 + bl sub_810C31C + b _0810C0B8 + .align 2, 0 +_0810C088: .4byte gUnknown_02039248 +_0810C08C: .4byte gScriptResult +_0810C090: .4byte 0x0000ffff +_0810C094: + adds r0, r5, 0 + bl sub_810C368 + b _0810C0B8 +_0810C09C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810C0B8 + movs r0, 0x5 + bl PlaySE + ldr r1, _0810C0C0 @ =gScriptResult + ldr r2, _0810C0C4 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] + adds r0, r4, 0 + bl sub_810C31C +_0810C0B8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C0C0: .4byte gScriptResult +_0810C0C4: .4byte 0x0000ffff + thumb_func_end sub_810BF7C + + thumb_func_start sub_810C0C8 +sub_810C0C8: @ 810C0C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _0810C0F4 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810C110 + ldr r4, _0810C0F8 @ =gUnknown_02039248 + ldrb r0, [r4] + cmp r0, 0 + beq _0810C0FC + movs r0, 0x5 + movs r1, 0x14 + bl sub_810BD64 + ldrb r0, [r4] + subs r0, 0x1 + strb r0, [r4] + b _0810C158 + .align 2, 0 +_0810C0F4: .4byte gMain +_0810C0F8: .4byte gUnknown_02039248 +_0810C0FC: + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _0810C1BA + adds r0, r5, 0 + movs r1, 0 + bl sub_810C1C8 + ldrb r0, [r4, 0x1] + subs r0, 0x1 + b _0810C150 +_0810C110: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0810C168 + ldr r4, _0810C134 @ =gUnknown_02039248 + ldrb r0, [r4] + ldrb r1, [r4, 0x3] + cmp r0, r1 + beq _0810C138 + movs r0, 0x5 + movs r1, 0x14 + bl sub_810BD64 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _0810C158 + .align 2, 0 +_0810C134: .4byte gUnknown_02039248 +_0810C138: + ldrb r0, [r4, 0x1] + ldrb r1, [r4] + adds r0, r1 + ldrb r1, [r4, 0x2] + cmp r0, r1 + beq _0810C1BA + adds r0, r5, 0 + movs r1, 0 + bl sub_810C1C8 + ldrb r0, [r4, 0x1] + adds r0, 0x1 +_0810C150: + strb r0, [r4, 0x1] + ldrb r0, [r4, 0x1] + bl sub_810BB88 +_0810C158: + movs r0, 0x1 + bl sub_810BF38 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_810C1C8 + b _0810C1BA +_0810C168: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810C17A + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0810C190 +_0810C17A: + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + movs r1, 0 + bl sub_810C1C8 + adds r0, r5, 0 + bl sub_810C23C + b _0810C1AC +_0810C190: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810C1BA + movs r0, 0x5 + bl PlaySE + adds r0, r5, 0 + movs r1, 0 + bl sub_810C1C8 + movs r0, 0 + bl sub_810BDAC +_0810C1AC: + ldr r0, _0810C1C0 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _0810C1C4 @ =sub_810BF7C + str r0, [r1] +_0810C1BA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C1C0: .4byte gTasks +_0810C1C4: .4byte sub_810BF7C + thumb_func_end sub_810C0C8 + + thumb_func_start sub_810C1C8 +sub_810C1C8: @ 810C1C8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + ldr r6, _0810C22C @ =0x00001005 + cmp r1, 0 + bne _0810C1D8 + movs r6, 0x5 +_0810C1D8: + ldr r1, _0810C230 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldr r2, _0810C234 @ =gUnknown_02039248 + ldrb r1, [r2, 0x1] + ldrh r0, [r0, 0x8] + subs r0, r1 + lsls r1, r0, 16 + lsrs r0, r1, 16 + cmp r0, 0x8 + bhi _0810C226 + asrs r0, r1, 16 + ldrb r2, [r2] + cmp r0, r2 + beq _0810C226 + movs r2, 0 + lsls r0, 1 + adds r1, r0, 0x1 + lsls r5, r1, 5 + ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000 + adds r0, 0x2 + lsls r4, r0, 5 +_0810C208: + adds r0, r2, 0 + adds r0, 0xF + adds r1, r5, r0 + lsls r1, 1 + adds r1, r3 + strh r6, [r1] + adds r0, r4, r0 + lsls r0, 1 + adds r0, r3 + strh r6, [r0] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0xD + bls _0810C208 +_0810C226: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810C22C: .4byte 0x00001005 +_0810C230: .4byte gTasks +_0810C234: .4byte gUnknown_02039248 +_0810C238: .4byte gBGTilemapBuffers + 0x1000 + thumb_func_end sub_810C1C8 + + thumb_func_start sub_810C23C +sub_810C23C: @ 810C23C + push {r4-r7,lr} + lsls r0, 24 + lsrs r1, r0, 24 + ldr r7, _0810C25C @ =gUnknown_02039248 + ldrb r0, [r7] + ldrb r2, [r7, 0x1] + adds r0, r2 + lsls r0, 24 + lsrs r0, 24 + ldrb r2, [r7, 0x2] + cmp r0, r2 + bne _0810C260 + movs r0, 0 + bl sub_810BDAC + b _0810C2A2 + .align 2, 0 +_0810C25C: .4byte gUnknown_02039248 +_0810C260: + ldr r4, _0810C2A8 @ =gSaveBlock1 + lsls r3, r0, 3 + movs r0, 0xFF + lsls r0, 3 + adds r4, r0 + adds r3, r4 + ldr r5, [r3] + ldr r6, [r3, 0x4] + ldr r0, _0810C2AC @ =gTasks + lsls r2, r1, 2 + adds r2, r1 + lsls r2, 3 + adds r2, r0 + movs r1, 0x8 + ldrsh r0, [r2, r1] + lsls r0, 3 + adds r0, r4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r3] + str r1, [r3, 0x4] + movs r1, 0x8 + ldrsh r0, [r2, r1] + lsls r0, 3 + adds r0, r4 + str r5, [r0] + str r6, [r0, 0x4] + ldrb r0, [r7, 0x1] + bl sub_810BB88 + movs r0, 0 + bl sub_810BDAC +_0810C2A2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810C2A8: .4byte gSaveBlock1 +_0810C2AC: .4byte gTasks + thumb_func_end sub_810C23C + + thumb_func_start sub_810C2B0 +sub_810C2B0: @ 810C2B0 + push {lr} + movs r0, 0 + bl DestroyVerticalScrollIndicator + movs r0, 0x1 + bl DestroyVerticalScrollIndicator + bl BuyMenuFreeMemory + pop {r0} + bx r0 + thumb_func_end sub_810C2B0 + + thumb_func_start sub_810C2C8 +sub_810C2C8: @ 810C2C8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0810C308 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810C300 + ldr r4, _0810C30C @ =gUnknown_02039244 + ldrb r0, [r4] + cmp r0, 0x3 + bne _0810C2E8 + ldr r1, _0810C310 @ =gUnknown_0300485C + ldr r0, _0810C314 @ =sub_8080990 + str r0, [r1] +_0810C2E8: + bl sub_810C2B0 + ldr r0, _0810C318 @ =gUnknown_083F7EA8 + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl SetMainCallback2 + adds r0, r5, 0 + bl DestroyTask +_0810C300: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C308: .4byte gPaletteFade +_0810C30C: .4byte gUnknown_02039244 +_0810C310: .4byte gUnknown_0300485C +_0810C314: .4byte sub_8080990 +_0810C318: .4byte gUnknown_083F7EA8 + thumb_func_end sub_810C2C8 + + thumb_func_start sub_810C31C +sub_810C31C: @ 810C31C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + negs r0, r0 + movs r5, 0 + str r5, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r0, _0810C358 @ =gUnknown_02039244 + ldrb r0, [r0] + cmp r0, 0x1 + bls _0810C342 + ldr r0, _0810C35C @ =gScriptItemId + strh r5, [r0] +_0810C342: + ldr r0, _0810C360 @ =gTasks + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 3 + adds r1, r0 + ldr r0, _0810C364 @ =sub_810C2C8 + str r0, [r1] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C358: .4byte gUnknown_02039244 +_0810C35C: .4byte gScriptItemId +_0810C360: .4byte gTasks +_0810C364: .4byte sub_810C2C8 + thumb_func_end sub_810C31C + + thumb_func_start sub_810C368 +sub_810C368: @ 810C368 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r0, _0810C3E8 @ =gUnknown_02039244 + ldrb r0, [r0] + cmp r0, 0x1 + bls _0810C37C + movs r4, 0x2 +_0810C37C: + movs r0, 0 + bl sub_80F98A4 + movs r0, 0x1 + bl sub_80F98A4 + ldr r0, _0810C3EC @ =gWindowConfig_81E6E50 + bl BasicInitMenuWindow + adds r1, r4, 0x4 + movs r0, 0x7 + movs r2, 0xD + movs r3, 0xB + bl MenuDrawTextWindow + adds r4, 0x5 + ldr r5, _0810C3F0 @ =gUnknown_0203924C + ldrb r2, [r5] + ldr r3, _0810C3F4 @ =gUnknown_083F7EF4 + ldr r0, _0810C3F8 @ =gUnknown_03000758 + ldr r0, [r0] + str r0, [sp] + movs r0, 0x8 + adds r1, r4, 0 + bl PrintMenuItemsReordered + ldrb r3, [r5] + movs r0, 0 + str r0, [sp] + movs r0, 0x5 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x8 + adds r2, r4, 0 + bl InitMenu + ldr r2, _0810C3FC @ =gScriptItemId + ldr r1, _0810C400 @ =gUnknown_02039248 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + adds r0, r1 + strh r0, [r2] + ldr r1, _0810C404 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C408 @ =sub_810C40C + str r1, [r0] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810C3E8: .4byte gUnknown_02039244 +_0810C3EC: .4byte gWindowConfig_81E6E50 +_0810C3F0: .4byte gUnknown_0203924C +_0810C3F4: .4byte gUnknown_083F7EF4 +_0810C3F8: .4byte gUnknown_03000758 +_0810C3FC: .4byte gScriptItemId +_0810C400: .4byte gUnknown_02039248 +_0810C404: .4byte gTasks +_0810C408: .4byte sub_810C40C + thumb_func_end sub_810C368 + + thumb_func_start sub_810C40C +sub_810C40C: @ 810C40C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + ldr r2, _0810C43C @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0810C440 + bl GetMenuCursorPos + lsls r0, 24 + cmp r0, 0 + beq _0810C4BC + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _0810C4BC + .align 2, 0 +_0810C43C: .4byte gMain +_0810C440: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0810C46C + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0810C468 @ =gUnknown_0203924C + ldrb r1, [r1] + subs r1, 0x1 + cmp r0, r1 + beq _0810C4BC + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _0810C4BC + .align 2, 0 +_0810C468: .4byte gUnknown_0203924C +_0810C46C: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810C4A8 + movs r0, 0x5 + bl PlaySE + ldr r4, _0810C4A0 @ =gUnknown_083F7EF4 + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0810C4A4 @ =gUnknown_03000758 + ldr r1, [r1] + adds r1, r0 + ldrb r0, [r1] + lsls r0, 3 + adds r4, 0x4 + adds r0, r4 + ldr r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 + b _0810C4BC + .align 2, 0 +_0810C4A0: .4byte gUnknown_083F7EF4 +_0810C4A4: .4byte gUnknown_03000758 +_0810C4A8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810C4BC + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_810C748 +_0810C4BC: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_810C40C + + thumb_func_start sub_810C4C4 +sub_810C4C4: @ 810C4C4 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0810C4F8 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810C4F0 + bl sub_810C2B0 + ldr r0, _0810C4FC @ =gScriptItemId + ldrh r0, [r0] + lsls r0, 3 + ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8 + adds r0, r1 + ldr r1, _0810C504 @ =sub_810B96C + bl sub_8136130 + adds r0, r4, 0 + bl DestroyTask +_0810C4F0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C4F8: .4byte gPaletteFade +_0810C4FC: .4byte gScriptItemId +_0810C500: .4byte gSaveBlock1 + 0x7F8 +_0810C504: .4byte sub_810B96C + thumb_func_end sub_810C4C4 + + thumb_func_start sub_810C508 +sub_810C508: @ 810C508 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0810C538 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C53C @ =sub_810C4C4 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C538: .4byte gTasks +_0810C53C: .4byte sub_810C4C4 + thumb_func_end sub_810C508 + + thumb_func_start sub_810C540 +sub_810C540: @ 810C540 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50 + bl BasicInitMenuWindow + bl sub_8072DEC + movs r0, 0x7 + movs r1, 0x4 + movs r2, 0xD + movs r3, 0xB + bl MenuZeroFillWindowRect + ldr r0, _0810C5A4 @ =gStringVar1 + ldr r4, _0810C5A8 @ =gPokeblockNames + ldr r3, _0810C5AC @ =gSaveBlock1 + ldr r2, _0810C5B0 @ =gUnknown_02039248 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + adds r1, r2 + lsls r1, 3 + adds r1, r3 + movs r2, 0xFF + lsls r2, 3 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r4 + ldr r1, [r1] + bl StringCopy + ldr r4, _0810C5B4 @ =gStringVar4 + ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _0810C5BC @ =sub_810C5EC + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C5A0: .4byte gWindowConfig_81E6E50 +_0810C5A4: .4byte gStringVar1 +_0810C5A8: .4byte gPokeblockNames +_0810C5AC: .4byte gSaveBlock1 +_0810C5B0: .4byte gUnknown_02039248 +_0810C5B4: .4byte gStringVar4 +_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt +_0810C5BC: .4byte sub_810C5EC + thumb_func_end sub_810C540 + + thumb_func_start sub_810C5C0 +sub_810C5C0: @ 810C5C0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C + ldr r1, _0810C5E4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C5E8 @ =sub_810C540 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C5E4: .4byte gTasks +_0810C5E8: .4byte sub_810C540 + thumb_func_end sub_810C5C0 + + thumb_func_start sub_810C5EC +sub_810C5EC: @ 810C5EC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _0810C60C @ =gUnknown_083F7F24 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C60C: .4byte gUnknown_083F7F24 + thumb_func_end sub_810C5EC + + thumb_func_start sub_810C610 +sub_810C610: @ 810C610 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0xD + movs r3, 0xB + bl MenuZeroFillWindowRect + ldr r1, _0810C658 @ =gUnknown_02039248 + ldrb r0, [r1, 0x1] + ldrb r1, [r1] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_810CA6C + ldr r5, _0810C65C @ =gStringVar4 + ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway + adds r0, r5, 0 + bl StringExpandPlaceholders + ldr r2, _0810C664 @ =sub_810C704 + adds r0, r4, 0 + adds r1, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField + bl sub_810BC98 + bl sub_810BD08 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C658: .4byte gUnknown_02039248 +_0810C65C: .4byte gStringVar4 +_0810C660: .4byte gContestStatsText_WasThrownAway +_0810C664: .4byte sub_810C704 + thumb_func_end sub_810C610 + + thumb_func_start sub_810C668 +sub_810C668: @ 810C668 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0 + bl sub_80F98DC + movs r0, 0x1 + bl sub_80F98DC + ldr r2, _0810C6CC @ =gUnknown_02039248 + ldrb r0, [r2, 0x2] + ldrb r1, [r2, 0x3] + cmp r0, r1 + bls _0810C698 + ldrb r0, [r2, 0x1] + ldrb r1, [r2, 0x3] + adds r0, r1 + ldrb r2, [r2, 0x2] + cmp r0, r2 + beq _0810C698 + movs r0, 0x1 + movs r1, 0 + bl sub_80F979C +_0810C698: + ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50 + bl BasicInitMenuWindow + movs r0, 0x7 + movs r1, 0x6 + movs r2, 0xD + movs r3, 0xB + bl MenuZeroFillWindowRect + movs r0, 0 + movs r1, 0xE + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r1, _0810C6D4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C6D8 @ =sub_810BF7C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C6CC: .4byte gUnknown_02039248 +_0810C6D0: .4byte gWindowConfig_81E6E50 +_0810C6D4: .4byte gTasks +_0810C6D8: .4byte sub_810BF7C + thumb_func_end sub_810C668 + + thumb_func_start sub_810C6DC +sub_810C6DC: @ 810C6DC + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0810C700 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810C6F6 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810C6FC +_0810C6F6: + adds r0, r2, 0 + bl sub_810C668 +_0810C6FC: + pop {r0} + bx r0 + .align 2, 0 +_0810C700: .4byte gMain + thumb_func_end sub_810C6DC + + thumb_func_start sub_810C704 +sub_810C704: @ 810C704 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _0810C738 @ =gWindowConfig_81E6E34 + bl BasicInitMenuWindow + ldr r0, _0810C73C @ =gUnknown_02039248 + ldrb r0, [r0, 0x1] + bl sub_810BC84 + movs r0, 0x1 + movs r1, 0x1 + bl sub_80F979C + ldr r1, _0810C740 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C744 @ =sub_810C6DC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C738: .4byte gWindowConfig_81E6E34 +_0810C73C: .4byte gUnknown_02039248 +_0810C740: .4byte gTasks +_0810C744: .4byte sub_810C6DC + thumb_func_end sub_810C704 + + thumb_func_start sub_810C748 +sub_810C748: @ 810C748 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80F98DC + movs r0, 0x1 + bl sub_80F98DC + bl sub_8072DEC + movs r0, 0x7 + movs r1, 0x4 + movs r2, 0xD + movs r3, 0xB + bl MenuZeroFillWindowRect + ldr r1, _0810C780 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C784 @ =sub_810BF7C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810C780: .4byte gTasks +_0810C784: .4byte sub_810BF7C + thumb_func_end sub_810C748 + + thumb_func_start sub_810C788 +sub_810C788: @ 810C788 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, _0810C834 @ =gEnemyParty + bl GetNature + lsls r0, 24 + lsrs r0, 24 + ldr r7, _0810C838 @ =gScriptItemId + ldrh r1, [r7] + lsls r1, 3 + ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8 + adds r1, r5 + bl sub_810CAE4 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _0810C840 @ =gUnknown_030041C0 + ldr r2, _0810C844 @ =gPokeblockNames + ldr r1, _0810C848 @ =0xfffff808 + adds r5, r1 + ldrh r1, [r7] + lsls r1, 3 + adds r1, r5 + movs r6, 0xFF + lsls r6, 3 + adds r1, r6 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + bl StringCopy + ldrb r0, [r7] + bl sub_810CA6C + ldrh r0, [r7] + lsls r0, 3 + adds r0, r5 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 8 + strh r0, [r7] + lsls r4, 16 + asrs r4, 16 + cmp r4, 0 + bne _0810C7F4 + adds r0, 0x1 + strh r0, [r7] +_0810C7F4: + cmp r4, 0 + ble _0810C7FE + ldrh r0, [r7] + adds r0, 0x2 + strh r0, [r7] +_0810C7FE: + cmp r4, 0 + bge _0810C808 + ldrh r0, [r7] + adds r0, 0x3 + strh r0, [r7] +_0810C808: + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0810C84C @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C850 @ =sub_810C2C8 + str r1, [r0] + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810C834: .4byte gEnemyParty +_0810C838: .4byte gScriptItemId +_0810C83C: .4byte gSaveBlock1 + 0x7F8 +_0810C840: .4byte gUnknown_030041C0 +_0810C844: .4byte gPokeblockNames +_0810C848: .4byte 0xfffff808 +_0810C84C: .4byte gTasks +_0810C850: .4byte sub_810C2C8 + thumb_func_end sub_810C788 + + thumb_func_start sub_810C854 +sub_810C854: @ 810C854 + push {r4,r5,lr} + sub sp, 0x4 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _0810C8B8 @ =gScriptItemId + ldrb r0, [r4] + bl SafariZoneActivatePokeblockFeeder + ldr r0, _0810C8BC @ =gStringVar1 + ldr r3, _0810C8C0 @ =gPokeblockNames + ldr r2, _0810C8C4 @ =gSaveBlock1 + ldrh r1, [r4] + lsls r1, 3 + adds r1, r2 + movs r2, 0xFF + lsls r2, 3 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r3 + ldr r1, [r1] + bl StringCopy + ldr r1, _0810C8C8 @ =gScriptResult + ldrh r0, [r4] + strh r0, [r1] + lsls r0, 24 + lsrs r0, 24 + bl sub_810CA6C + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0810C8CC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810C8D0 @ =sub_810C2C8 + str r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C8B8: .4byte gScriptItemId +_0810C8BC: .4byte gStringVar1 +_0810C8C0: .4byte gPokeblockNames +_0810C8C4: .4byte gSaveBlock1 +_0810C8C8: .4byte gScriptResult +_0810C8CC: .4byte gTasks +_0810C8D0: .4byte sub_810C2C8 + thumb_func_end sub_810C854 + + thumb_func_start sub_810C8D4 +sub_810C8D4: @ 810C8D4 + push {r4,r5,lr} + adds r4, r0, 0 + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1 + ble _0810C8E4 + movs r0, 0 + strh r0, [r4, 0x2E] +_0810C8E4: + movs r0, 0x2E + ldrsh r5, [r4, r0] + cmp r5, 0 + beq _0810C8F2 + cmp r5, 0x1 + beq _0810C918 + b _0810C944 +_0810C8F2: + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] + ldr r0, _0810C914 @ =gUnknown_083F7F70 + str r0, [r4, 0x10] + adds r0, r4, 0 + bl InitSpriteAffineAnim + movs r0, 0x1 + strh r0, [r4, 0x2E] + strh r5, [r4, 0x30] + b _0810C944 + .align 2, 0 +_0810C914: .4byte gUnknown_083F7F70 +_0810C918: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + movs r2, 0 + strh r0, [r4, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xB + ble _0810C944 + ldrb r1, [r4, 0x1] + movs r0, 0x4 + negs r0, r0 + ands r0, r1 + strb r0, [r4, 0x1] + strh r2, [r4, 0x2E] + strh r2, [r4, 0x30] + ldrb r0, [r4, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldr r0, _0810C94C @ =SpriteCallbackDummy + str r0, [r4, 0x1C] +_0810C944: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810C94C: .4byte SpriteCallbackDummy + thumb_func_end sub_810C8D4 + + thumb_func_start sub_810C950 +sub_810C950: @ 810C950 + lsls r0, 24 + ldr r1, _0810C988 @ =gSaveBlock1 + lsrs r0, 21 + adds r0, r1 + movs r2, 0xFF + lsls r2, 3 + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r3, _0810C98C @ =0x000007f9 + adds r1, r0, r3 + strb r2, [r1] + adds r3, 0x1 + adds r1, r0, r3 + strb r2, [r1] + adds r3, 0x1 + adds r1, r0, r3 + strb r2, [r1] + adds r3, 0x1 + adds r1, r0, r3 + strb r2, [r1] + adds r3, 0x1 + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _0810C990 @ =0x000007fe + adds r0, r1 + strb r2, [r0] + bx lr + .align 2, 0 +_0810C988: .4byte gSaveBlock1 +_0810C98C: .4byte 0x000007f9 +_0810C990: .4byte 0x000007fe + thumb_func_end sub_810C950 + + thumb_func_start sub_810C994 +sub_810C994: @ 810C994 + push {r4,lr} + movs r4, 0 +_0810C998: + adds r0, r4, 0 + bl sub_810C950 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x27 + bls _0810C998 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810C994 + + thumb_func_start sub_810C9B0 +sub_810C9B0: @ 810C9B0 + push {r4-r6,lr} + adds r6, r0, 0 + movs r1, 0x1 + bl sub_810CA9C + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0x1 +_0810C9C0: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_810CA9C + lsls r0, 24 + lsrs r0, 24 + cmp r5, r0 + bcs _0810C9D8 + adds r5, r0, 0 +_0810C9D8: + adds r1, r4, 0 + cmp r1, 0x4 + bls _0810C9C0 + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810C9B0 + + thumb_func_start sub_810C9E8 +sub_810C9E8: @ 810C9E8 + push {lr} + movs r1, 0x6 + bl sub_810CA9C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x63 + bls _0810C9FA + movs r0, 0x63 +_0810C9FA: + pop {r1} + bx r1 + thumb_func_end sub_810C9E8 + + thumb_func_start sub_810CA00 +sub_810CA00: @ 810CA00 + push {lr} + movs r1, 0 + ldr r3, _0810CA1C @ =gSaveBlock1 + movs r2, 0xFF + lsls r2, 3 +_0810CA0A: + lsls r0, r1, 3 + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0810CA20 + lsls r0, r1, 24 + asrs r0, 24 + b _0810CA2E + .align 2, 0 +_0810CA1C: .4byte gSaveBlock1 +_0810CA20: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x27 + bls _0810CA0A + movs r0, 0x1 + negs r0, r0 +_0810CA2E: + pop {r1} + bx r1 + thumb_func_end sub_810CA00 + + thumb_func_start sub_810CA34 +sub_810CA34: @ 810CA34 + push {r4,lr} + adds r4, r0, 0 + bl sub_810CA00 + lsls r0, 24 + asrs r2, r0, 24 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + beq _0810CA64 + ldr r0, _0810CA60 @ =gSaveBlock1 + lsls r2, 3 + movs r1, 0xFF + lsls r1, 3 + adds r0, r1 + adds r2, r0 + ldr r0, [r4] + ldr r1, [r4, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0x1 + b _0810CA66 + .align 2, 0 +_0810CA60: .4byte gSaveBlock1 +_0810CA64: + movs r0, 0 +_0810CA66: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810CA34 + + thumb_func_start sub_810CA6C +sub_810CA6C: @ 810CA6C + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _0810CA90 @ =gSaveBlock1 + lsls r0, r2, 3 + adds r0, r1 + movs r1, 0xFF + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0810CA94 + adds r0, r2, 0 + bl sub_810C950 + movs r0, 0x1 + b _0810CA96 + .align 2, 0 +_0810CA90: .4byte gSaveBlock1 +_0810CA94: + movs r0, 0 +_0810CA96: + pop {r1} + bx r1 + thumb_func_end sub_810CA6C + + thumb_func_start sub_810CA9C +sub_810CA9C: @ 810CA9C + push {lr} + lsls r1, 24 + lsrs r1, 24 + adds r2, r1, 0 + cmp r1, 0 + bne _0810CAAC + ldrb r0, [r0] + b _0810CADE +_0810CAAC: + cmp r1, 0x1 + bne _0810CAB4 + ldrb r0, [r0, 0x1] + b _0810CADE +_0810CAB4: + cmp r1, 0x2 + bne _0810CABC + ldrb r0, [r0, 0x2] + b _0810CADE +_0810CABC: + cmp r1, 0x3 + bne _0810CAC4 + ldrb r0, [r0, 0x3] + b _0810CADE +_0810CAC4: + cmp r1, 0x4 + bne _0810CACC + ldrb r0, [r0, 0x4] + b _0810CADE +_0810CACC: + cmp r1, 0x5 + bne _0810CAD4 + ldrb r0, [r0, 0x5] + b _0810CADE +_0810CAD4: + cmp r2, 0x6 + beq _0810CADC + movs r0, 0 + b _0810CADE +_0810CADC: + ldrb r0, [r0, 0x6] +_0810CADE: + pop {r1} + bx r1 + thumb_func_end sub_810CA9C + + thumb_func_start sub_810CAE4 +sub_810CAE4: @ 810CAE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r1 + lsls r0, 24 + lsrs r0, 24 + movs r6, 0 + movs r4, 0 + ldr r1, _0810CB40 @ =gUnknown_083F7E28 + mov r9, r1 + lsls r1, r0, 2 + adds r7, r1, r0 +_0810CAFE: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r8 + adds r1, r5, 0 + bl sub_810CA9C + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + ble _0810CB2A + adds r0, r7, r4 + add r0, r9 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + muls r1, r0 + lsls r0, r6, 16 + asrs r0, 16 + adds r0, r1 + lsls r0, 16 + lsrs r6, r0, 16 +_0810CB2A: + adds r4, r5, 0 + cmp r4, 0x4 + bls _0810CAFE + lsls r0, r6, 16 + asrs r0, 16 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810CB40: .4byte gUnknown_083F7E28 + thumb_func_end sub_810CAE4 + + thumb_func_start sub_810CB44 +sub_810CB44: @ 810CB44 + push {r4,lr} + adds r4, r1, 0 + movs r1, 0 + bl sub_810CA9C + lsls r0, 24 + ldr r1, _0810CB64 @ =gPokeblockNames + lsrs r0, 22 + adds r0, r1 + ldr r1, [r0] + adds r0, r4, 0 + bl StringCopy + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810CB64: .4byte gPokeblockNames + thumb_func_end sub_810CB44 + + thumb_func_start sub_810CB68 +sub_810CB68: @ 810CB68 + push {r4-r7,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r7, _0810CB98 @ =gPokeblockNames +_0810CB74: + lsls r1, r4, 3 + ldr r0, _0810CB9C @ =gUnknown_083F7F9C + adds r1, r0 + adds r0, r5, 0 + bl sub_810CAE4 + lsls r0, 16 + cmp r0, 0 + ble _0810CBA0 + adds r0, r4, 0x1 + lsls r0, 2 + adds r0, r7 + ldr r1, [r0] + adds r0, r6, 0 + bl StringCopy + movs r0, 0x1 + b _0810CBAC + .align 2, 0 +_0810CB98: .4byte gPokeblockNames +_0810CB9C: .4byte gUnknown_083F7F9C +_0810CBA0: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _0810CB74 + movs r0, 0 +_0810CBAC: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810CB68 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom6.s b/asm/rom6.s index f39e08dea..44be269e5 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -471,9393 +471,4 @@ _0810B66C: .4byte task08_080A1C44 _0810B670: .4byte gTasks thumb_func_end sub_810B634 - thumb_func_start sub_810B674 -sub_810B674: @ 810B674 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_810B674 - - thumb_func_start sub_810B68C -sub_810B68C: @ 810B68C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000 - ldr r2, _0810B6B4 @ =0x06007800 - ldr r0, _0810B6B8 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r1, _0810B6BC @ =0x80000400 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_0810B6B0: .4byte gBGTilemapBuffers + 0x1000 -_0810B6B4: .4byte 0x06007800 -_0810B6B8: .4byte 0x040000d4 -_0810B6BC: .4byte 0x80000400 - thumb_func_end sub_810B68C - - thumb_func_start sub_810B6C0 -sub_810B6C0: @ 810B6C0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _0810B6DC @ =gMain - ldr r1, _0810B6E0 @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x12 - bls _0810B6D2 - b _0810B960 -_0810B6D2: - lsls r0, 2 - ldr r1, _0810B6E4 @ =_0810B6E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810B6DC: .4byte gMain -_0810B6E0: .4byte 0x0000043c -_0810B6E4: .4byte _0810B6E8 - .align 2, 0 -_0810B6E8: - .4byte _0810B734 - .4byte _0810B764 - .4byte _0810B76A - .4byte _0810B78C - .4byte _0810B792 - .4byte _0810B7B4 - .4byte _0810B7C0 - .4byte _0810B7DC - .4byte _0810B7E8 - .4byte _0810B804 - .4byte _0810B810 - .4byte _0810B830 - .4byte _0810B84C - .4byte _0810B86A - .4byte _0810B894 - .4byte _0810B89E - .4byte _0810B8C4 - .4byte _0810B914 - .4byte _0810B934 -_0810B734: - bl sub_80F9438 - bl sub_80F9368 - ldr r1, _0810B754 @ =REG_BG2CNT - ldr r2, _0810B758 @ =0x00000f0a - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x44 - movs r0, 0 - strh r0, [r1] - ldr r1, _0810B75C @ =gMain - ldr r0, _0810B760 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B754: .4byte REG_BG2CNT -_0810B758: .4byte 0x00000f0a -_0810B75C: .4byte gMain -_0810B760: .4byte 0x0000043c -_0810B764: - bl remove_some_task - b _0810B91C -_0810B76A: - bl ResetPaletteFade - ldr r2, _0810B780 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, _0810B784 @ =gMain - ldr r0, _0810B788 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B780: .4byte gPaletteFade -_0810B784: .4byte gMain -_0810B788: .4byte 0x0000043c -_0810B78C: - bl ResetSpriteData - b _0810B91C -_0810B792: - ldr r0, _0810B7A8 @ =gUnknown_02039244 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0810B79E - bl ResetTasks -_0810B79E: - ldr r1, _0810B7AC @ =gMain - ldr r0, _0810B7B0 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B7A8: .4byte gUnknown_02039244 -_0810B7AC: .4byte gMain -_0810B7B0: .4byte 0x0000043c -_0810B7B4: - ldr r0, _0810B7BC @ =gWindowConfig_81E6E34 - bl SetUpWindowConfig - b _0810B91C - .align 2, 0 -_0810B7BC: .4byte gWindowConfig_81E6E34 -_0810B7C0: - ldr r0, _0810B7D0 @ =gWindowConfig_81E6E50 - bl SetUpWindowConfig - ldr r1, _0810B7D4 @ =gMain - ldr r0, _0810B7D8 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B7D0: .4byte gWindowConfig_81E6E50 -_0810B7D4: .4byte gMain -_0810B7D8: .4byte 0x0000043c -_0810B7DC: - ldr r0, _0810B7E4 @ =gWindowConfig_81E6E34 - bl MultistepInitMenuWindowBegin - b _0810B91C - .align 2, 0 -_0810B7E4: .4byte gWindowConfig_81E6E34 -_0810B7E8: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _0810B7F2 - b _0810B960 -_0810B7F2: - ldr r1, _0810B7FC @ =gMain - ldr r0, _0810B800 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B7FC: .4byte gMain -_0810B800: .4byte 0x0000043c -_0810B804: - ldr r0, _0810B80C @ =gWindowConfig_81E6E50 - bl MultistepInitMenuWindowBegin - b _0810B91C - .align 2, 0 -_0810B80C: .4byte gWindowConfig_81E6E50 -_0810B810: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _0810B81A - b _0810B960 -_0810B81A: - ldr r0, _0810B828 @ =0x02000000 - ldr r1, _0810B82C @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _0810B91C - .align 2, 0 -_0810B828: .4byte 0x02000000 -_0810B82C: .4byte 0x0001ffff -_0810B830: - bl sub_810B998 - lsls r0, 24 - cmp r0, 0 - bne _0810B83C - b _0810B960 -_0810B83C: - ldr r1, _0810B844 @ =gMain - ldr r0, _0810B848 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B844: .4byte gMain -_0810B848: .4byte 0x0000043c -_0810B84C: - bl sub_80F944C - bl LoadScrollIndicatorPalette - movs r0, 0 - movs r1, 0xB0 - movs r2, 0x8 - bl CreateVerticalScrollIndicators - movs r0, 0x1 - movs r1, 0xB0 - movs r2, 0x98 - bl CreateVerticalScrollIndicators - b _0810B91C -_0810B86A: - movs r0, 0x38 - movs r1, 0x40 - movs r2, 0 - bl sub_810BA50 - ldr r1, _0810B884 @ =0x02000000 - ldr r2, _0810B888 @ =0x0001fffe - adds r1, r2 - strb r0, [r1] - ldr r1, _0810B88C @ =gMain - ldr r0, _0810B890 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B884: .4byte 0x02000000 -_0810B888: .4byte 0x0001fffe -_0810B88C: .4byte gMain -_0810B890: .4byte 0x0000043c -_0810B894: - bl sub_810BC98 - bl sub_810BD08 - b _0810B91C -_0810B89E: - bl sub_810BB0C - bl sub_810BB30 - ldr r0, _0810B8B8 @ =gUnknown_02039248 - ldrb r0, [r0, 0x1] - bl sub_810BC84 - ldr r1, _0810B8BC @ =gMain - ldr r0, _0810B8C0 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B8B8: .4byte gUnknown_02039248 -_0810B8BC: .4byte gMain -_0810B8C0: .4byte 0x0000043c -_0810B8C4: - ldr r3, _0810B8FC @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _0810B900 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _0810B904 @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0810B908 @ =sub_810B68C - bl SetVBlankCallback - movs r1, 0x80 - lsls r1, 19 - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0810B90C @ =gMain - ldr r0, _0810B910 @ =0x0000043c - adds r1, r0 - b _0810B922 - .align 2, 0 -_0810B8FC: .4byte 0x04000208 -_0810B900: .4byte 0x04000200 -_0810B904: .4byte REG_DISPSTAT -_0810B908: .4byte sub_810B68C -_0810B90C: .4byte gMain -_0810B910: .4byte 0x0000043c -_0810B914: - bl sub_8055870 - cmp r0, 0x1 - beq _0810B960 -_0810B91C: - ldr r1, _0810B92C @ =gMain - ldr r2, _0810B930 @ =0x0000043c - adds r1, r2 -_0810B922: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0810B960 - .align 2, 0 -_0810B92C: .4byte gMain -_0810B930: .4byte 0x0000043c -_0810B934: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _0810B958 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, _0810B95C @ =sub_810B674 - bl SetMainCallback2 - movs r0, 0x1 - b _0810B962 - .align 2, 0 -_0810B958: .4byte gPaletteFade -_0810B95C: .4byte sub_810B674 -_0810B960: - movs r0, 0 -_0810B962: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810B6C0 - - thumb_func_start sub_810B96C -sub_810B96C: @ 810B96C - push {lr} -_0810B96E: - bl sub_810B6C0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810B988 - ldr r0, _0810B984 @ =sub_810BF7C - movs r1, 0 - bl CreateTask - b _0810B994 - .align 2, 0 -_0810B984: .4byte sub_810BF7C -_0810B988: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810B96E -_0810B994: - pop {r0} - bx r0 - thumb_func_end sub_810B96C - - thumb_func_start sub_810B998 -sub_810B998: @ 810B998 - push {lr} - ldr r0, _0810B9B0 @ =0x02000000 - ldr r1, _0810B9B4 @ =0x0001ffff - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bhi _0810BA48 - lsls r0, 2 - ldr r1, _0810B9B8 @ =_0810B9BC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810B9B0: .4byte 0x02000000 -_0810B9B4: .4byte 0x0001ffff -_0810B9B8: .4byte _0810B9BC - .align 2, 0 -_0810B9BC: - .4byte _0810B9D0 - .4byte _0810B9E4 - .4byte _0810B9F8 - .4byte _0810BA08 - .4byte _0810BA28 -_0810B9D0: - ldr r0, _0810B9DC @ =gMenuPokeblock_Gfx - ldr r1, _0810B9E0 @ =0x06008000 - bl LZDecompressVram - b _0810BA0E - .align 2, 0 -_0810B9DC: .4byte gMenuPokeblock_Gfx -_0810B9E0: .4byte 0x06008000 -_0810B9E4: - ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap - ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000 - bl sub_800D238 - b _0810BA0E - .align 2, 0 -_0810B9F0: .4byte gMenuPokeblock_Tilemap -_0810B9F4: .4byte gBGTilemapBuffers + 0x1000 -_0810B9F8: - ldr r0, _0810BA04 @ =gMenuPokeblock_Pal - movs r1, 0 - movs r2, 0xC0 - bl LoadCompressedPalette - b _0810BA0E - .align 2, 0 -_0810BA04: .4byte gMenuPokeblock_Pal -_0810BA08: - ldr r0, _0810BA1C @ =gUnknown_083F7F74 - bl LoadCompressedObjectPic -_0810BA0E: - ldr r1, _0810BA20 @ =0x02000000 - ldr r0, _0810BA24 @ =0x0001ffff - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0810BA48 - .align 2, 0 -_0810BA1C: .4byte gUnknown_083F7F74 -_0810BA20: .4byte 0x02000000 -_0810BA24: .4byte 0x0001ffff -_0810BA28: - ldr r0, _0810BA3C @ =gUnknown_083F7F7C - bl LoadCompressedObjectPalette - ldr r0, _0810BA40 @ =0x02000000 - ldr r1, _0810BA44 @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _0810BA4A - .align 2, 0 -_0810BA3C: .4byte gUnknown_083F7F7C -_0810BA40: .4byte 0x02000000 -_0810BA44: .4byte 0x0001ffff -_0810BA48: - movs r0, 0 -_0810BA4A: - pop {r1} - bx r1 - thumb_func_end sub_810B998 - - thumb_func_start sub_810BA50 -sub_810BA50: @ 810BA50 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r3, r2, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _0810BA78 @ =gSpriteTemplate_83F7F84 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810BA78: .4byte gSpriteTemplate_83F7F84 - thumb_func_end sub_810BA50 - - thumb_func_start sub_810BA7C -sub_810BA7C: @ 810BA7C - push {lr} - ldr r1, _0810BA98 @ =gUnknown_02039244 - strb r0, [r1] - ldrb r2, [r1] - cmp r2, 0x2 - beq _0810BAA8 - cmp r2, 0x3 - beq _0810BAC0 - ldr r1, _0810BA9C @ =gUnknown_03000758 - ldr r0, _0810BAA0 @ =gUnknown_083F7F1C - str r0, [r1] - ldr r1, _0810BAA4 @ =gUnknown_0203924C - movs r0, 0x3 - b _0810BACA - .align 2, 0 -_0810BA98: .4byte gUnknown_02039244 -_0810BA9C: .4byte gUnknown_03000758 -_0810BAA0: .4byte gUnknown_083F7F1C -_0810BAA4: .4byte gUnknown_0203924C -_0810BAA8: - ldr r0, _0810BAB4 @ =gUnknown_03000758 - ldr r1, _0810BAB8 @ =gUnknown_083F7F1F - str r1, [r0] - ldr r0, _0810BABC @ =gUnknown_0203924C - strb r2, [r0] - b _0810BACC - .align 2, 0 -_0810BAB4: .4byte gUnknown_03000758 -_0810BAB8: .4byte gUnknown_083F7F1F -_0810BABC: .4byte gUnknown_0203924C -_0810BAC0: - ldr r1, _0810BAD0 @ =gUnknown_03000758 - ldr r0, _0810BAD4 @ =gUnknown_083F7F21 - str r0, [r1] - ldr r1, _0810BAD8 @ =gUnknown_0203924C - movs r0, 0x2 -_0810BACA: - strb r0, [r1] -_0810BACC: - pop {r0} - bx r0 - .align 2, 0 -_0810BAD0: .4byte gUnknown_03000758 -_0810BAD4: .4byte gUnknown_083F7F21 -_0810BAD8: .4byte gUnknown_0203924C - thumb_func_end sub_810BA7C - - thumb_func_start sub_810BADC -sub_810BADC: @ 810BADC - push {lr} - movs r0, 0x2 - bl sub_810BA7C - ldr r0, _0810BAF0 @ =sub_810B96C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0810BAF0: .4byte sub_810B96C - thumb_func_end sub_810BADC - - thumb_func_start sub_810BAF4 -sub_810BAF4: @ 810BAF4 - push {lr} - movs r0, 0x3 - bl sub_810BA7C - ldr r0, _0810BB08 @ =sub_810B96C - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0810BB08: .4byte sub_810B96C - thumb_func_end sub_810BAF4 - - thumb_func_start sub_810BB0C -sub_810BB0C: @ 810BB0C - push {lr} - ldr r0, _0810BB28 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - ldr r0, _0810BB2C @ =0x00000111 - bl ItemId_GetItem - movs r1, 0x2 - movs r2, 0x1 - movs r3, 0x48 - bl sub_8072BD8 - pop {r0} - bx r0 - .align 2, 0 -_0810BB28: .4byte gWindowConfig_81E6E34 -_0810BB2C: .4byte 0x00000111 - thumb_func_end sub_810BB0C - - thumb_func_start sub_810BB30 -sub_810BB30: @ 810BB30 - push {lr} - ldr r0, _0810BB70 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - ldr r0, _0810BB74 @ =gContestStatsText_Spicy - movs r1, 0x2 - movs r2, 0xD - bl MenuPrint - ldr r0, _0810BB78 @ =gContestStatsText_Dry - movs r1, 0x2 - movs r2, 0xF - bl MenuPrint - ldr r0, _0810BB7C @ =gContestStatsText_Sweet - movs r1, 0x2 - movs r2, 0x11 - bl MenuPrint - ldr r0, _0810BB80 @ =gContestStatsText_Bitter - movs r1, 0x8 - movs r2, 0xD - bl MenuPrint - ldr r0, _0810BB84 @ =gContestStatsText_Sour - movs r1, 0x8 - movs r2, 0xF - bl MenuPrint - pop {r0} - bx r0 - .align 2, 0 -_0810BB70: .4byte gWindowConfig_81E6E34 -_0810BB74: .4byte gContestStatsText_Spicy -_0810BB78: .4byte gContestStatsText_Dry -_0810BB7C: .4byte gContestStatsText_Sweet -_0810BB80: .4byte gContestStatsText_Bitter -_0810BB84: .4byte gContestStatsText_Sour - thumb_func_end sub_810BB30 - - thumb_func_start sub_810BB88 -sub_810BB88: @ 810BB88 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0810BBF4 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - mov r6, r8 - adds r0, r6, 0 - adds r0, 0x8 - cmp r6, r0 - bgt _0810BC6C - ldr r0, _0810BBF8 @ =gStringVar1 - mov r9, r0 - ldr r1, _0810BBFC @ =gSaveBlock1 - mov r10, r1 -_0810BBB0: - mov r1, r8 - subs r0, r6, r1 - lsls r0, 25 - lsrs r7, r0, 24 - ldr r0, _0810BC00 @ =gUnknown_02039248 - ldrb r0, [r0, 0x2] - cmp r6, r0 - bne _0810BC08 - mov r0, r9 - ldr r1, _0810BC04 @ =gContestStatsText_StowCase - movs r2, 0x78 - movs r3, 0 - bl sub_8072C74 - movs r2, 0x1 - orrs r2, r7 - mov r0, r9 - movs r1, 0xF - bl MenuPrint - mov r0, r8 - adds r0, 0x8 - cmp r6, r0 - beq _0810BC6C - adds r1, r7, 0x3 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0xF - movs r2, 0x1D - movs r3, 0x12 - bl MenuZeroFillWindowRect - b _0810BC6C - .align 2, 0 -_0810BBF4: .4byte gWindowConfig_81E6E34 -_0810BBF8: .4byte gStringVar1 -_0810BBFC: .4byte gSaveBlock1 -_0810BC00: .4byte gUnknown_02039248 -_0810BC04: .4byte gContestStatsText_StowCase -_0810BC08: - lsls r5, r6, 3 - mov r1, r10 - adds r0, r5, r1 - movs r1, 0xFF - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - ldr r1, _0810BC7C @ =gPokeblockNames - adds r0, r1 - ldr r1, [r0] - mov r0, r9 - movs r2, 0x5E - movs r3, 0 - bl sub_8072C74 - adds r4, r0, 0 - movs r0, 0xFC - strb r0, [r4] - movs r0, 0x14 - strb r0, [r4, 0x1] - movs r0, 0x6 - strb r0, [r4, 0x2] - adds r4, 0x3 - ldr r0, _0810BC80 @ =gSaveBlock1 + 0x7F8 - adds r5, r0 - adds r0, r5, 0 - bl sub_810C9B0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r2, 0x1 - orrs r2, r7 - mov r0, r9 - movs r1, 0xF - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r8 - adds r0, 0x8 - cmp r6, r0 - ble _0810BBB0 -_0810BC6C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810BC7C: .4byte gPokeblockNames -_0810BC80: .4byte gSaveBlock1 + 0x7F8 - thumb_func_end sub_810BB88 - - thumb_func_start sub_810BC84 -sub_810BC84: @ 810BC84 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_810BB88 - movs r0, 0 - bl sub_810BDAC - pop {r0} - bx r0 - thumb_func_end sub_810BC84 - - thumb_func_start sub_810BC98 -sub_810BC98: @ 810BC98 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r2, 0 - ldr r0, _0810BD00 @ =gSaveBlock1 - mov r9, r0 -_0810BCA6: - adds r1, r2, 0x1 - lsls r0, r1, 16 - lsrs r5, r0, 16 - mov r8, r1 - cmp r5, 0x27 - bhi _0810BCE8 - lsls r1, r2, 3 - mov r2, r9 - adds r0, r1, r2 - movs r2, 0xFF - lsls r2, 3 - adds r7, r0, r2 - ldr r0, _0810BD04 @ =gSaveBlock1 + 0x7F8 - mov r12, r0 - adds r6, r1, r0 -_0810BCC4: - ldrb r0, [r7] - cmp r0, 0 - bne _0810BCDE - ldr r3, [r6] - ldr r4, [r6, 0x4] - lsls r2, r5, 3 - add r2, r12 - ldr r0, [r2] - ldr r1, [r2, 0x4] - str r0, [r6] - str r1, [r6, 0x4] - str r3, [r2] - str r4, [r2, 0x4] -_0810BCDE: - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0x27 - bls _0810BCC4 -_0810BCE8: - mov r1, r8 - lsls r0, r1, 16 - lsrs r2, r0, 16 - cmp r2, 0x26 - bls _0810BCA6 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810BD00: .4byte gSaveBlock1 -_0810BD04: .4byte gSaveBlock1 + 0x7F8 - thumb_func_end sub_810BC98 - - thumb_func_start sub_810BD08 -sub_810BD08: @ 810BD08 - push {r4,r5,lr} - ldr r1, _0810BD5C @ =gUnknown_02039248 - movs r0, 0 - strb r0, [r1, 0x2] - movs r2, 0 - ldr r5, _0810BD60 @ =gSaveBlock1 - movs r4, 0xFF - lsls r4, 3 - adds r3, r1, 0 -_0810BD1A: - lsls r0, r2, 3 - adds r0, r5 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0810BD2C - ldrb r0, [r3, 0x2] - adds r0, 0x1 - strb r0, [r3, 0x2] -_0810BD2C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x27 - bls _0810BD1A - ldrb r0, [r1, 0x2] - cmp r0, 0x7 - bls _0810BD3E - movs r0, 0x8 -_0810BD3E: - strb r0, [r1, 0x3] - ldrb r2, [r1, 0x1] - adds r0, r2, 0 - adds r0, 0x8 - ldrb r3, [r1, 0x2] - cmp r0, r3 - ble _0810BD54 - cmp r2, 0 - beq _0810BD54 - subs r0, r2, 0x1 - strb r0, [r1, 0x1] -_0810BD54: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810BD5C: .4byte gUnknown_02039248 -_0810BD60: .4byte gSaveBlock1 - thumb_func_end sub_810BD08 - - thumb_func_start sub_810BD64 -sub_810BD64: @ 810BD64 - push {r4,r5,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r5, _0810BDA4 @ =gUnknown_02039248 - ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000 -_0810BD70: - ldrb r0, [r5] - lsls r0, 1 - adds r0, 0x1 - lsls r0, 5 - adds r1, r2, 0 - adds r1, 0xF - adds r0, r1 - lsls r0, 1 - adds r0, r4 - strh r3, [r0] - ldrb r0, [r5] - lsls r0, 6 - adds r0, 0x40 - adds r0, r1 - lsls r0, 1 - adds r0, r4 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xD - bls _0810BD70 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810BDA4: .4byte gUnknown_02039248 -_0810BDA8: .4byte gBGTilemapBuffers + 0x1000 - thumb_func_end sub_810BD64 - - thumb_func_start sub_810BDAC -sub_810BDAC: @ 810BDAC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - cmp r0, 0 - bne _0810BDCC - ldr r0, _0810BDC4 @ =0x00001005 - ldr r1, _0810BDC8 @ =0x00001014 - bl sub_810BD64 - b _0810BDD4 - .align 2, 0 -_0810BDC4: .4byte 0x00001005 -_0810BDC8: .4byte 0x00001014 -_0810BDCC: - ldr r0, _0810BDE8 @ =0x00002005 - ldr r1, _0810BDEC @ =0x00002014 - bl sub_810BD64 -_0810BDD4: - ldr r0, _0810BDF0 @ =gUnknown_02039248 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0810BDF4 - movs r0, 0 - movs r1, 0 - bl sub_80F979C - b _0810BDFC - .align 2, 0 -_0810BDE8: .4byte 0x00002005 -_0810BDEC: .4byte 0x00002014 -_0810BDF0: .4byte gUnknown_02039248 -_0810BDF4: - movs r0, 0 - movs r1, 0x1 - bl sub_80F979C -_0810BDFC: - ldr r2, _0810BE1C @ =gUnknown_02039248 - ldrb r0, [r2, 0x2] - ldrb r1, [r2, 0x3] - cmp r0, r1 - bls _0810BE20 - ldrb r0, [r2, 0x1] - ldrb r1, [r2, 0x3] - adds r0, r1 - ldrb r2, [r2, 0x2] - cmp r0, r2 - beq _0810BE20 - movs r0, 0x1 - movs r1, 0 - bl sub_80F979C - b _0810BE28 - .align 2, 0 -_0810BE1C: .4byte gUnknown_02039248 -_0810BE20: - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C -_0810BE28: - movs r6, 0 - ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000 - movs r0, 0xF - mov r8, r0 -_0810BE30: - adds r0, r6, 0 - movs r1, 0x3 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 18 - ldr r1, _0810BE98 @ =0x000001a1 - adds r4, r1 - adds r0, r6, 0 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - adds r5, r4, r1 - ldr r1, _0810BE9C @ =gUnknown_02039248 - ldrb r2, [r1] - ldrb r0, [r1, 0x1] - adds r0, r2, r0 - ldrb r1, [r1, 0x2] - cmp r0, r1 - beq _0810BEB8 - lsls r0, 3 - ldr r1, _0810BEA0 @ =gSaveBlock1 + 0x7F8 - adds r0, r1 - adds r4, r6, 0x1 - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_810CA9C - lsls r0, 16 - cmp r0, 0 - ble _0810BEA4 - lsls r1, r5, 1 - adds r1, r7 - lsls r2, r6, 12 - adds r0, r2, 0 - adds r0, 0x17 - strh r0, [r1] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r7 - adds r2, 0x18 - strh r2, [r0] - b _0810BECC - .align 2, 0 -_0810BE94: .4byte gBGTilemapBuffers + 0x1000 -_0810BE98: .4byte 0x000001a1 -_0810BE9C: .4byte gUnknown_02039248 -_0810BEA0: .4byte gSaveBlock1 + 0x7F8 -_0810BEA4: - lsls r0, r5, 1 - adds r0, r7 - mov r1, r8 - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r7 - strh r1, [r0] - b _0810BECC -_0810BEB8: - lsls r0, r5, 1 - adds r0, r7 - mov r1, r8 - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - adds r0, r7 - strh r1, [r0] - adds r4, r6, 0x1 -_0810BECC: - lsls r0, r4, 24 - lsrs r6, r0, 24 - cmp r6, 0x4 - bls _0810BE30 - ldr r0, _0810BF10 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - ldr r0, _0810BF14 @ =gUnknown_02039248 - ldrb r2, [r0] - ldrb r1, [r0, 0x1] - adds r2, r1 - ldrb r0, [r0, 0x2] - cmp r2, r0 - beq _0810BF20 - ldr r4, _0810BF18 @ =gStringVar1 - lsls r0, r2, 3 - ldr r1, _0810BF1C @ =gSaveBlock1 + 0x7F8 - adds r0, r1 - bl sub_810C9E8 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - movs r2, 0x10 - movs r3, 0x1 - bl sub_8072C14 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0x11 - bl MenuPrint - b _0810BF2C - .align 2, 0 -_0810BF10: .4byte gWindowConfig_81E6E34 -_0810BF14: .4byte gUnknown_02039248 -_0810BF18: .4byte gStringVar1 -_0810BF1C: .4byte gSaveBlock1 + 0x7F8 -_0810BF20: - movs r0, 0xB - movs r1, 0x11 - movs r2, 0xC - movs r3, 0x12 - bl MenuZeroFillWindowRect -_0810BF2C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810BDAC - - thumb_func_start sub_810BF38 -sub_810BF38: @ 810BF38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - ldr r2, _0810BF6C @ =gSprites - ldr r0, _0810BF70 @ =0x02000000 - ldr r1, _0810BF74 @ =0x0001fffe - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0810BF78 @ =sub_810C8D4 - str r1, [r0] - adds r0, r4, 0 - bl sub_810BDAC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BF6C: .4byte gSprites -_0810BF70: .4byte 0x02000000 -_0810BF74: .4byte 0x0001fffe -_0810BF78: .4byte sub_810C8D4 - thumb_func_end sub_810BF38 - - thumb_func_start sub_810BF7C -sub_810BF7C: @ 810BF7C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r0, _0810BFB8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810BF94 - b _0810C0B8 -_0810BF94: - ldr r2, _0810BFBC @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810BFCE - ldr r4, _0810BFC0 @ =gUnknown_02039248 - ldrb r0, [r4] - cmp r0, 0 - beq _0810BFC4 - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - b _0810C00A - .align 2, 0 -_0810BFB8: .4byte gPaletteFade -_0810BFBC: .4byte gMain -_0810BFC0: .4byte gUnknown_02039248 -_0810BFC4: - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0810C0B8 - subs r0, 0x1 - b _0810C002 -_0810BFCE: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810C012 - ldr r4, _0810BFF0 @ =gUnknown_02039248 - ldrb r0, [r4] - ldrb r1, [r4, 0x3] - cmp r0, r1 - beq _0810BFF4 - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0810C00A - .align 2, 0 -_0810BFF0: .4byte gUnknown_02039248 -_0810BFF4: - ldrb r1, [r4, 0x1] - ldrb r0, [r4] - adds r0, r1, r0 - ldrb r2, [r4, 0x2] - cmp r0, r2 - beq _0810C0B8 - adds r0, r1, 0x1 -_0810C002: - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - bl sub_810BB88 -_0810C00A: - movs r0, 0 - bl sub_810BF38 - b _0810C0B8 -_0810C012: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0810C05C - ldr r4, _0810C050 @ =gUnknown_02039248 - ldrb r0, [r4, 0x1] - ldrb r1, [r4] - adds r0, r1 - ldrb r1, [r4, 0x2] - cmp r0, r1 - beq _0810C0B8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_810BDAC - ldr r1, _0810C054 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r4, 0x1] - ldrb r2, [r4] - adds r1, r2 - strh r1, [r0, 0x8] - ldr r1, _0810C058 @ =sub_810C0C8 - str r1, [r0] - b _0810C0B8 - .align 2, 0 -_0810C050: .4byte gUnknown_02039248 -_0810C054: .4byte gTasks -_0810C058: .4byte sub_810C0C8 -_0810C05C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810C09C - movs r0, 0x5 - bl PlaySE - ldr r0, _0810C088 @ =gUnknown_02039248 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _0810C094 - ldr r1, _0810C08C @ =gScriptResult - ldr r2, _0810C090 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - adds r0, r5, 0 - bl sub_810C31C - b _0810C0B8 - .align 2, 0 -_0810C088: .4byte gUnknown_02039248 -_0810C08C: .4byte gScriptResult -_0810C090: .4byte 0x0000ffff -_0810C094: - adds r0, r5, 0 - bl sub_810C368 - b _0810C0B8 -_0810C09C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C0B8 - movs r0, 0x5 - bl PlaySE - ldr r1, _0810C0C0 @ =gScriptResult - ldr r2, _0810C0C4 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - adds r0, r4, 0 - bl sub_810C31C -_0810C0B8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C0C0: .4byte gScriptResult -_0810C0C4: .4byte 0x0000ffff - thumb_func_end sub_810BF7C - - thumb_func_start sub_810C0C8 -sub_810C0C8: @ 810C0C8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _0810C0F4 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810C110 - ldr r4, _0810C0F8 @ =gUnknown_02039248 - ldrb r0, [r4] - cmp r0, 0 - beq _0810C0FC - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - b _0810C158 - .align 2, 0 -_0810C0F4: .4byte gMain -_0810C0F8: .4byte gUnknown_02039248 -_0810C0FC: - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0810C1BA - adds r0, r5, 0 - movs r1, 0 - bl sub_810C1C8 - ldrb r0, [r4, 0x1] - subs r0, 0x1 - b _0810C150 -_0810C110: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0810C168 - ldr r4, _0810C134 @ =gUnknown_02039248 - ldrb r0, [r4] - ldrb r1, [r4, 0x3] - cmp r0, r1 - beq _0810C138 - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0810C158 - .align 2, 0 -_0810C134: .4byte gUnknown_02039248 -_0810C138: - ldrb r0, [r4, 0x1] - ldrb r1, [r4] - adds r0, r1 - ldrb r1, [r4, 0x2] - cmp r0, r1 - beq _0810C1BA - adds r0, r5, 0 - movs r1, 0 - bl sub_810C1C8 - ldrb r0, [r4, 0x1] - adds r0, 0x1 -_0810C150: - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - bl sub_810BB88 -_0810C158: - movs r0, 0x1 - bl sub_810BF38 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_810C1C8 - b _0810C1BA -_0810C168: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810C17A - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0810C190 -_0810C17A: - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - movs r1, 0 - bl sub_810C1C8 - adds r0, r5, 0 - bl sub_810C23C - b _0810C1AC -_0810C190: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C1BA - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - movs r1, 0 - bl sub_810C1C8 - movs r0, 0 - bl sub_810BDAC -_0810C1AC: - ldr r0, _0810C1C0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0810C1C4 @ =sub_810BF7C - str r0, [r1] -_0810C1BA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C1C0: .4byte gTasks -_0810C1C4: .4byte sub_810BF7C - thumb_func_end sub_810C0C8 - - thumb_func_start sub_810C1C8 -sub_810C1C8: @ 810C1C8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - ldr r6, _0810C22C @ =0x00001005 - cmp r1, 0 - bne _0810C1D8 - movs r6, 0x5 -_0810C1D8: - ldr r1, _0810C230 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldr r2, _0810C234 @ =gUnknown_02039248 - ldrb r1, [r2, 0x1] - ldrh r0, [r0, 0x8] - subs r0, r1 - lsls r1, r0, 16 - lsrs r0, r1, 16 - cmp r0, 0x8 - bhi _0810C226 - asrs r0, r1, 16 - ldrb r2, [r2] - cmp r0, r2 - beq _0810C226 - movs r2, 0 - lsls r0, 1 - adds r1, r0, 0x1 - lsls r5, r1, 5 - ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000 - adds r0, 0x2 - lsls r4, r0, 5 -_0810C208: - adds r0, r2, 0 - adds r0, 0xF - adds r1, r5, r0 - lsls r1, 1 - adds r1, r3 - strh r6, [r1] - adds r0, r4, r0 - lsls r0, 1 - adds r0, r3 - strh r6, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xD - bls _0810C208 -_0810C226: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810C22C: .4byte 0x00001005 -_0810C230: .4byte gTasks -_0810C234: .4byte gUnknown_02039248 -_0810C238: .4byte gBGTilemapBuffers + 0x1000 - thumb_func_end sub_810C1C8 - - thumb_func_start sub_810C23C -sub_810C23C: @ 810C23C - push {r4-r7,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r7, _0810C25C @ =gUnknown_02039248 - ldrb r0, [r7] - ldrb r2, [r7, 0x1] - adds r0, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r7, 0x2] - cmp r0, r2 - bne _0810C260 - movs r0, 0 - bl sub_810BDAC - b _0810C2A2 - .align 2, 0 -_0810C25C: .4byte gUnknown_02039248 -_0810C260: - ldr r4, _0810C2A8 @ =gSaveBlock1 - lsls r3, r0, 3 - movs r0, 0xFF - lsls r0, 3 - adds r4, r0 - adds r3, r4 - ldr r5, [r3] - ldr r6, [r3, 0x4] - ldr r0, _0810C2AC @ =gTasks - lsls r2, r1, 2 - adds r2, r1 - lsls r2, 3 - adds r2, r0 - movs r1, 0x8 - ldrsh r0, [r2, r1] - lsls r0, 3 - adds r0, r4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r3] - str r1, [r3, 0x4] - movs r1, 0x8 - ldrsh r0, [r2, r1] - lsls r0, 3 - adds r0, r4 - str r5, [r0] - str r6, [r0, 0x4] - ldrb r0, [r7, 0x1] - bl sub_810BB88 - movs r0, 0 - bl sub_810BDAC -_0810C2A2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C2A8: .4byte gSaveBlock1 -_0810C2AC: .4byte gTasks - thumb_func_end sub_810C23C - - thumb_func_start sub_810C2B0 -sub_810C2B0: @ 810C2B0 - push {lr} - movs r0, 0 - bl DestroyVerticalScrollIndicator - movs r0, 0x1 - bl DestroyVerticalScrollIndicator - bl BuyMenuFreeMemory - pop {r0} - bx r0 - thumb_func_end sub_810C2B0 - - thumb_func_start sub_810C2C8 -sub_810C2C8: @ 810C2C8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0810C308 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810C300 - ldr r4, _0810C30C @ =gUnknown_02039244 - ldrb r0, [r4] - cmp r0, 0x3 - bne _0810C2E8 - ldr r1, _0810C310 @ =gUnknown_0300485C - ldr r0, _0810C314 @ =sub_8080990 - str r0, [r1] -_0810C2E8: - bl sub_810C2B0 - ldr r0, _0810C318 @ =gUnknown_083F7EA8 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_0810C300: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C308: .4byte gPaletteFade -_0810C30C: .4byte gUnknown_02039244 -_0810C310: .4byte gUnknown_0300485C -_0810C314: .4byte sub_8080990 -_0810C318: .4byte gUnknown_083F7EA8 - thumb_func_end sub_810C2C8 - - thumb_func_start sub_810C31C -sub_810C31C: @ 810C31C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - movs r5, 0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0810C358 @ =gUnknown_02039244 - ldrb r0, [r0] - cmp r0, 0x1 - bls _0810C342 - ldr r0, _0810C35C @ =gScriptItemId - strh r5, [r0] -_0810C342: - ldr r0, _0810C360 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, _0810C364 @ =sub_810C2C8 - str r0, [r1] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C358: .4byte gUnknown_02039244 -_0810C35C: .4byte gScriptItemId -_0810C360: .4byte gTasks -_0810C364: .4byte sub_810C2C8 - thumb_func_end sub_810C31C - - thumb_func_start sub_810C368 -sub_810C368: @ 810C368 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r0, _0810C3E8 @ =gUnknown_02039244 - ldrb r0, [r0] - cmp r0, 0x1 - bls _0810C37C - movs r4, 0x2 -_0810C37C: - movs r0, 0 - bl sub_80F98A4 - movs r0, 0x1 - bl sub_80F98A4 - ldr r0, _0810C3EC @ =gWindowConfig_81E6E50 - bl BasicInitMenuWindow - adds r1, r4, 0x4 - movs r0, 0x7 - movs r2, 0xD - movs r3, 0xB - bl MenuDrawTextWindow - adds r4, 0x5 - ldr r5, _0810C3F0 @ =gUnknown_0203924C - ldrb r2, [r5] - ldr r3, _0810C3F4 @ =gUnknown_083F7EF4 - ldr r0, _0810C3F8 @ =gUnknown_03000758 - ldr r0, [r0] - str r0, [sp] - movs r0, 0x8 - adds r1, r4, 0 - bl PrintMenuItemsReordered - ldrb r3, [r5] - movs r0, 0 - str r0, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x8 - adds r2, r4, 0 - bl InitMenu - ldr r2, _0810C3FC @ =gScriptItemId - ldr r1, _0810C400 @ =gUnknown_02039248 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - adds r0, r1 - strh r0, [r2] - ldr r1, _0810C404 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C408 @ =sub_810C40C - str r1, [r0] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810C3E8: .4byte gUnknown_02039244 -_0810C3EC: .4byte gWindowConfig_81E6E50 -_0810C3F0: .4byte gUnknown_0203924C -_0810C3F4: .4byte gUnknown_083F7EF4 -_0810C3F8: .4byte gUnknown_03000758 -_0810C3FC: .4byte gScriptItemId -_0810C400: .4byte gUnknown_02039248 -_0810C404: .4byte gTasks -_0810C408: .4byte sub_810C40C - thumb_func_end sub_810C368 - - thumb_func_start sub_810C40C -sub_810C40C: @ 810C40C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r2, _0810C43C @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810C440 - bl GetMenuCursorPos - lsls r0, 24 - cmp r0, 0 - beq _0810C4BC - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _0810C4BC - .align 2, 0 -_0810C43C: .4byte gMain -_0810C440: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0810C46C - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810C468 @ =gUnknown_0203924C - ldrb r1, [r1] - subs r1, 0x1 - cmp r0, r1 - beq _0810C4BC - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _0810C4BC - .align 2, 0 -_0810C468: .4byte gUnknown_0203924C -_0810C46C: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810C4A8 - movs r0, 0x5 - bl PlaySE - ldr r4, _0810C4A0 @ =gUnknown_083F7EF4 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810C4A4 @ =gUnknown_03000758 - ldr r1, [r1] - adds r1, r0 - ldrb r0, [r1] - lsls r0, 3 - adds r4, 0x4 - adds r0, r4 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _0810C4BC - .align 2, 0 -_0810C4A0: .4byte gUnknown_083F7EF4 -_0810C4A4: .4byte gUnknown_03000758 -_0810C4A8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C4BC - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_810C748 -_0810C4BC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_810C40C - - thumb_func_start sub_810C4C4 -sub_810C4C4: @ 810C4C4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810C4F8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810C4F0 - bl sub_810C2B0 - ldr r0, _0810C4FC @ =gScriptItemId - ldrh r0, [r0] - lsls r0, 3 - ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8 - adds r0, r1 - ldr r1, _0810C504 @ =sub_810B96C - bl sub_8136130 - adds r0, r4, 0 - bl DestroyTask -_0810C4F0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C4F8: .4byte gPaletteFade -_0810C4FC: .4byte gScriptItemId -_0810C500: .4byte gSaveBlock1 + 0x7F8 -_0810C504: .4byte sub_810B96C - thumb_func_end sub_810C4C4 - - thumb_func_start sub_810C508 -sub_810C508: @ 810C508 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0810C538 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C53C @ =sub_810C4C4 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C538: .4byte gTasks -_0810C53C: .4byte sub_810C4C4 - thumb_func_end sub_810C508 - - thumb_func_start sub_810C540 -sub_810C540: @ 810C540 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0810C5A0 @ =gWindowConfig_81E6E50 - bl BasicInitMenuWindow - bl sub_8072DEC - movs r0, 0x7 - movs r1, 0x4 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r0, _0810C5A4 @ =gStringVar1 - ldr r4, _0810C5A8 @ =gPokeblockNames - ldr r3, _0810C5AC @ =gSaveBlock1 - ldr r2, _0810C5B0 @ =gUnknown_02039248 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - adds r1, r2 - lsls r1, 3 - adds r1, r3 - movs r2, 0xFF - lsls r2, 3 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r4 - ldr r1, [r1] - bl StringCopy - ldr r4, _0810C5B4 @ =gStringVar4 - ldr r1, _0810C5B8 @ =gContestStatsText_ThrowAwayPrompt - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _0810C5BC @ =sub_810C5EC - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0 - bl DisplayItemMessageOnField - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C5A0: .4byte gWindowConfig_81E6E50 -_0810C5A4: .4byte gStringVar1 -_0810C5A8: .4byte gPokeblockNames -_0810C5AC: .4byte gSaveBlock1 -_0810C5B0: .4byte gUnknown_02039248 -_0810C5B4: .4byte gStringVar4 -_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt -_0810C5BC: .4byte sub_810C5EC - thumb_func_end sub_810C540 - - thumb_func_start sub_810C5C0 -sub_810C5C0: @ 810C5C0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - ldr r1, _0810C5E4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C5E8 @ =sub_810C540 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C5E4: .4byte gTasks -_0810C5E8: .4byte sub_810C540 - thumb_func_end sub_810C5C0 - - thumb_func_start sub_810C5EC -sub_810C5EC: @ 810C5EC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0x1 - bl DisplayYesNoMenu - ldr r1, _0810C60C @ =gUnknown_083F7F24 - adds r0, r4, 0 - bl sub_80F914C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C60C: .4byte gUnknown_083F7F24 - thumb_func_end sub_810C5EC - - thumb_func_start sub_810C610 -sub_810C610: @ 810C610 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r1, _0810C658 @ =gUnknown_02039248 - ldrb r0, [r1, 0x1] - ldrb r1, [r1] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl sub_810CA6C - ldr r5, _0810C65C @ =gStringVar4 - ldr r1, _0810C660 @ =gContestStatsText_WasThrownAway - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r2, _0810C664 @ =sub_810C704 - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0 - bl DisplayItemMessageOnField - bl sub_810BC98 - bl sub_810BD08 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C658: .4byte gUnknown_02039248 -_0810C65C: .4byte gStringVar4 -_0810C660: .4byte gContestStatsText_WasThrownAway -_0810C664: .4byte sub_810C704 - thumb_func_end sub_810C610 - - thumb_func_start sub_810C668 -sub_810C668: @ 810C668 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - bl sub_80F98DC - movs r0, 0x1 - bl sub_80F98DC - ldr r2, _0810C6CC @ =gUnknown_02039248 - ldrb r0, [r2, 0x2] - ldrb r1, [r2, 0x3] - cmp r0, r1 - bls _0810C698 - ldrb r0, [r2, 0x1] - ldrb r1, [r2, 0x3] - adds r0, r1 - ldrb r2, [r2, 0x2] - cmp r0, r2 - beq _0810C698 - movs r0, 0x1 - movs r1, 0 - bl sub_80F979C -_0810C698: - ldr r0, _0810C6D0 @ =gWindowConfig_81E6E50 - bl BasicInitMenuWindow - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _0810C6D4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C6D8 @ =sub_810BF7C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C6CC: .4byte gUnknown_02039248 -_0810C6D0: .4byte gWindowConfig_81E6E50 -_0810C6D4: .4byte gTasks -_0810C6D8: .4byte sub_810BF7C - thumb_func_end sub_810C668 - - thumb_func_start sub_810C6DC -sub_810C6DC: @ 810C6DC - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0810C700 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810C6F6 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C6FC -_0810C6F6: - adds r0, r2, 0 - bl sub_810C668 -_0810C6FC: - pop {r0} - bx r0 - .align 2, 0 -_0810C700: .4byte gMain - thumb_func_end sub_810C6DC - - thumb_func_start sub_810C704 -sub_810C704: @ 810C704 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810C738 @ =gWindowConfig_81E6E34 - bl BasicInitMenuWindow - ldr r0, _0810C73C @ =gUnknown_02039248 - ldrb r0, [r0, 0x1] - bl sub_810BC84 - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - ldr r1, _0810C740 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C744 @ =sub_810C6DC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C738: .4byte gWindowConfig_81E6E34 -_0810C73C: .4byte gUnknown_02039248 -_0810C740: .4byte gTasks -_0810C744: .4byte sub_810C6DC - thumb_func_end sub_810C704 - - thumb_func_start sub_810C748 -sub_810C748: @ 810C748 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80F98DC - movs r0, 0x1 - bl sub_80F98DC - bl sub_8072DEC - movs r0, 0x7 - movs r1, 0x4 - movs r2, 0xD - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r1, _0810C780 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C784 @ =sub_810BF7C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810C780: .4byte gTasks -_0810C784: .4byte sub_810BF7C - thumb_func_end sub_810C748 - - thumb_func_start sub_810C788 -sub_810C788: @ 810C788 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _0810C834 @ =gEnemyParty - bl GetNature - lsls r0, 24 - lsrs r0, 24 - ldr r7, _0810C838 @ =gScriptItemId - ldrh r1, [r7] - lsls r1, 3 - ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8 - adds r1, r5 - bl sub_810CAE4 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _0810C840 @ =gUnknown_030041C0 - ldr r2, _0810C844 @ =gPokeblockNames - ldr r1, _0810C848 @ =0xfffff808 - adds r5, r1 - ldrh r1, [r7] - lsls r1, 3 - adds r1, r5 - movs r6, 0xFF - lsls r6, 3 - adds r1, r6 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - ldrb r0, [r7] - bl sub_810CA6C - ldrh r0, [r7] - lsls r0, 3 - adds r0, r5 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 8 - strh r0, [r7] - lsls r4, 16 - asrs r4, 16 - cmp r4, 0 - bne _0810C7F4 - adds r0, 0x1 - strh r0, [r7] -_0810C7F4: - cmp r4, 0 - ble _0810C7FE - ldrh r0, [r7] - adds r0, 0x2 - strh r0, [r7] -_0810C7FE: - cmp r4, 0 - bge _0810C808 - ldrh r0, [r7] - adds r0, 0x3 - strh r0, [r7] -_0810C808: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0810C84C @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C850 @ =sub_810C2C8 - str r1, [r0] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810C834: .4byte gEnemyParty -_0810C838: .4byte gScriptItemId -_0810C83C: .4byte gSaveBlock1 + 0x7F8 -_0810C840: .4byte gUnknown_030041C0 -_0810C844: .4byte gPokeblockNames -_0810C848: .4byte 0xfffff808 -_0810C84C: .4byte gTasks -_0810C850: .4byte sub_810C2C8 - thumb_func_end sub_810C788 - - thumb_func_start sub_810C854 -sub_810C854: @ 810C854 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _0810C8B8 @ =gScriptItemId - ldrb r0, [r4] - bl SafariZoneActivatePokeblockFeeder - ldr r0, _0810C8BC @ =gStringVar1 - ldr r3, _0810C8C0 @ =gPokeblockNames - ldr r2, _0810C8C4 @ =gSaveBlock1 - ldrh r1, [r4] - lsls r1, 3 - adds r1, r2 - movs r2, 0xFF - lsls r2, 3 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl StringCopy - ldr r1, _0810C8C8 @ =gScriptResult - ldrh r0, [r4] - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl sub_810CA6C - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0810C8CC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810C8D0 @ =sub_810C2C8 - str r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C8B8: .4byte gScriptItemId -_0810C8BC: .4byte gStringVar1 -_0810C8C0: .4byte gPokeblockNames -_0810C8C4: .4byte gSaveBlock1 -_0810C8C8: .4byte gScriptResult -_0810C8CC: .4byte gTasks -_0810C8D0: .4byte sub_810C2C8 - thumb_func_end sub_810C854 - - thumb_func_start sub_810C8D4 -sub_810C8D4: @ 810C8D4 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - ble _0810C8E4 - movs r0, 0 - strh r0, [r4, 0x2E] -_0810C8E4: - movs r0, 0x2E - ldrsh r5, [r4, r0] - cmp r5, 0 - beq _0810C8F2 - cmp r5, 0x1 - beq _0810C918 - b _0810C944 -_0810C8F2: - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _0810C914 @ =gUnknown_083F7F70 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - movs r0, 0x1 - strh r0, [r4, 0x2E] - strh r5, [r4, 0x30] - b _0810C944 - .align 2, 0 -_0810C914: .4byte gUnknown_083F7F70 -_0810C918: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - movs r2, 0 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _0810C944 - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - strh r2, [r4, 0x2E] - strh r2, [r4, 0x30] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldr r0, _0810C94C @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_0810C944: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C94C: .4byte SpriteCallbackDummy - thumb_func_end sub_810C8D4 - - thumb_func_start sub_810C950 -sub_810C950: @ 810C950 - lsls r0, 24 - ldr r1, _0810C988 @ =gSaveBlock1 - lsrs r0, 21 - adds r0, r1 - movs r2, 0xFF - lsls r2, 3 - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r3, _0810C98C @ =0x000007f9 - adds r1, r0, r3 - strb r2, [r1] - adds r3, 0x1 - adds r1, r0, r3 - strb r2, [r1] - adds r3, 0x1 - adds r1, r0, r3 - strb r2, [r1] - adds r3, 0x1 - adds r1, r0, r3 - strb r2, [r1] - adds r3, 0x1 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _0810C990 @ =0x000007fe - adds r0, r1 - strb r2, [r0] - bx lr - .align 2, 0 -_0810C988: .4byte gSaveBlock1 -_0810C98C: .4byte 0x000007f9 -_0810C990: .4byte 0x000007fe - thumb_func_end sub_810C950 - - thumb_func_start sub_810C994 -sub_810C994: @ 810C994 - push {r4,lr} - movs r4, 0 -_0810C998: - adds r0, r4, 0 - bl sub_810C950 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x27 - bls _0810C998 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810C994 - - thumb_func_start sub_810C9B0 -sub_810C9B0: @ 810C9B0 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x1 - bl sub_810CA9C - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x1 -_0810C9C0: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_810CA9C - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bcs _0810C9D8 - adds r5, r0, 0 -_0810C9D8: - adds r1, r4, 0 - cmp r1, 0x4 - bls _0810C9C0 - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_810C9B0 - - thumb_func_start sub_810C9E8 -sub_810C9E8: @ 810C9E8 - push {lr} - movs r1, 0x6 - bl sub_810CA9C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x63 - bls _0810C9FA - movs r0, 0x63 -_0810C9FA: - pop {r1} - bx r1 - thumb_func_end sub_810C9E8 - - thumb_func_start sub_810CA00 -sub_810CA00: @ 810CA00 - push {lr} - movs r1, 0 - ldr r3, _0810CA1C @ =gSaveBlock1 - movs r2, 0xFF - lsls r2, 3 -_0810CA0A: - lsls r0, r1, 3 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0810CA20 - lsls r0, r1, 24 - asrs r0, 24 - b _0810CA2E - .align 2, 0 -_0810CA1C: .4byte gSaveBlock1 -_0810CA20: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x27 - bls _0810CA0A - movs r0, 0x1 - negs r0, r0 -_0810CA2E: - pop {r1} - bx r1 - thumb_func_end sub_810CA00 - - thumb_func_start sub_810CA34 -sub_810CA34: @ 810CA34 - push {r4,lr} - adds r4, r0, 0 - bl sub_810CA00 - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _0810CA64 - ldr r0, _0810CA60 @ =gSaveBlock1 - lsls r2, 3 - movs r1, 0xFF - lsls r1, 3 - adds r0, r1 - adds r2, r0 - ldr r0, [r4] - ldr r1, [r4, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - movs r0, 0x1 - b _0810CA66 - .align 2, 0 -_0810CA60: .4byte gSaveBlock1 -_0810CA64: - movs r0, 0 -_0810CA66: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810CA34 - - thumb_func_start sub_810CA6C -sub_810CA6C: @ 810CA6C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _0810CA90 @ =gSaveBlock1 - lsls r0, r2, 3 - adds r0, r1 - movs r1, 0xFF - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0810CA94 - adds r0, r2, 0 - bl sub_810C950 - movs r0, 0x1 - b _0810CA96 - .align 2, 0 -_0810CA90: .4byte gSaveBlock1 -_0810CA94: - movs r0, 0 -_0810CA96: - pop {r1} - bx r1 - thumb_func_end sub_810CA6C - - thumb_func_start sub_810CA9C -sub_810CA9C: @ 810CA9C - push {lr} - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0 - bne _0810CAAC - ldrb r0, [r0] - b _0810CADE -_0810CAAC: - cmp r1, 0x1 - bne _0810CAB4 - ldrb r0, [r0, 0x1] - b _0810CADE -_0810CAB4: - cmp r1, 0x2 - bne _0810CABC - ldrb r0, [r0, 0x2] - b _0810CADE -_0810CABC: - cmp r1, 0x3 - bne _0810CAC4 - ldrb r0, [r0, 0x3] - b _0810CADE -_0810CAC4: - cmp r1, 0x4 - bne _0810CACC - ldrb r0, [r0, 0x4] - b _0810CADE -_0810CACC: - cmp r1, 0x5 - bne _0810CAD4 - ldrb r0, [r0, 0x5] - b _0810CADE -_0810CAD4: - cmp r2, 0x6 - beq _0810CADC - movs r0, 0 - b _0810CADE -_0810CADC: - ldrb r0, [r0, 0x6] -_0810CADE: - pop {r1} - bx r1 - thumb_func_end sub_810CA9C - - thumb_func_start sub_810CAE4 -sub_810CAE4: @ 810CAE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r1 - lsls r0, 24 - lsrs r0, 24 - movs r6, 0 - movs r4, 0 - ldr r1, _0810CB40 @ =gUnknown_083F7E28 - mov r9, r1 - lsls r1, r0, 2 - adds r7, r1, r0 -_0810CAFE: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r8 - adds r1, r5, 0 - bl sub_810CA9C - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - ble _0810CB2A - adds r0, r7, r4 - add r0, r9 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - muls r1, r0 - lsls r0, r6, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r6, r0, 16 -_0810CB2A: - adds r4, r5, 0 - cmp r4, 0x4 - bls _0810CAFE - lsls r0, r6, 16 - asrs r0, 16 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810CB40: .4byte gUnknown_083F7E28 - thumb_func_end sub_810CAE4 - - thumb_func_start sub_810CB44 -sub_810CB44: @ 810CB44 - push {r4,lr} - adds r4, r1, 0 - movs r1, 0 - bl sub_810CA9C - lsls r0, 24 - ldr r1, _0810CB64 @ =gPokeblockNames - lsrs r0, 22 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810CB64: .4byte gPokeblockNames - thumb_func_end sub_810CB44 - - thumb_func_start sub_810CB68 -sub_810CB68: @ 810CB68 - push {r4-r7,lr} - adds r6, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r7, _0810CB98 @ =gPokeblockNames -_0810CB74: - lsls r1, r4, 3 - ldr r0, _0810CB9C @ =gUnknown_083F7F9C - adds r1, r0 - adds r0, r5, 0 - bl sub_810CAE4 - lsls r0, 16 - cmp r0, 0 - ble _0810CBA0 - adds r0, r4, 0x1 - lsls r0, 2 - adds r0, r7 - ldr r1, [r0] - adds r0, r6, 0 - bl StringCopy - movs r0, 0x1 - b _0810CBAC - .align 2, 0 -_0810CB98: .4byte gPokeblockNames -_0810CB9C: .4byte gUnknown_083F7F9C -_0810CBA0: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0810CB74 - movs r0, 0 -_0810CBAC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810CB68 - - thumb_func_start SetUpFieldMove_Flash -SetUpFieldMove_Flash: @ 810CBB4 - push {lr} - ldr r0, _0810CBDC @ =gMapHeader - ldrb r0, [r0, 0x15] - cmp r0, 0x1 - bne _0810CBF4 - ldr r0, _0810CBE0 @ =0x00000828 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0810CBF4 - ldr r1, _0810CBE4 @ =gUnknown_0300485C - ldr r0, _0810CBE8 @ =sub_808AB90 - str r0, [r1] - ldr r1, _0810CBEC @ =gUnknown_03005CE4 - ldr r0, _0810CBF0 @ =sub_810CBFC - str r0, [r1] - movs r0, 0x1 - b _0810CBF6 - .align 2, 0 -_0810CBDC: .4byte gMapHeader -_0810CBE0: .4byte 0x00000828 -_0810CBE4: .4byte gUnknown_0300485C -_0810CBE8: .4byte sub_808AB90 -_0810CBEC: .4byte gUnknown_03005CE4 -_0810CBF0: .4byte sub_810CBFC -_0810CBF4: - movs r0, 0 -_0810CBF6: - pop {r1} - bx r1 - thumb_func_end SetUpFieldMove_Flash - - thumb_func_start sub_810CBFC -sub_810CBFC: @ 810CBFC - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CC24 @ =gUnknown_0202FF84 - ldr r1, _0810CC28 @ =gUnknown_03005CE0 - ldrb r1, [r1] - str r1, [r2] - ldr r2, _0810CC2C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _0810CC30 @ =sub_810CC34 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - pop {r0} - bx r0 - .align 2, 0 -_0810CC24: .4byte gUnknown_0202FF84 -_0810CC28: .4byte gUnknown_03005CE0 -_0810CC2C: .4byte gTasks -_0810CC30: .4byte sub_810CC34 - thumb_func_end sub_810CBFC - - thumb_func_start sub_810CC34 -sub_810CC34: @ 810CC34 - push {lr} - movs r0, 0xCF - bl PlaySE - ldr r0, _0810CC4C @ =0x00000828 - bl FlagSet - ldr r0, _0810CC50 @ =gUnknown_081B694A - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_0810CC4C: .4byte 0x00000828 -_0810CC50: .4byte gUnknown_081B694A - thumb_func_end sub_810CC34 - - thumb_func_start sub_810CC54 -sub_810CC54: @ 810CC54 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_810CC54 - - thumb_func_start sub_810CC6C -sub_810CC6C: @ 810CC6C - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_810CC6C - - thumb_func_start sub_810CC80 -sub_810CC80: @ 810CC80 - push {r4,lr} - sub sp, 0x8 - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0xC - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x10 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - mov r0, sp - strh r1, [r0] - ldr r1, _0810CD34 @ =0x040000d4 - str r0, [r1] - movs r0, 0xC0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0810CD38 @ =0x8100c000 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r4, 0 - str r4, [sp, 0x4] - add r0, sp, 0x4 - str r0, [r1] - movs r0, 0xE0 - lsls r0, 19 - str r0, [r1, 0x4] - ldr r0, _0810CD3C @ =0x85000100 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r0, sp - strh r4, [r0] - str r0, [r1] - ldr r0, _0810CD40 @ =0x05000002 - str r0, [r1, 0x4] - ldr r0, _0810CD44 @ =0x810001ff - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - bl ResetPaletteFade - bl ResetTasks - bl ResetSpriteData - ldr r3, _0810CD48 @ =0x04000208 - ldrh r2, [r3] - strh r4, [r3] - ldr r4, _0810CD4C @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r0, _0810CD50 @ =sub_810CC6C - bl SetVBlankCallback - ldr r0, _0810CD54 @ =sub_810CC54 - bl SetMainCallback2 - bl sub_810CD5C - lsls r0, 24 - cmp r0, 0 - bne _0810CD2A - ldr r0, _0810CD58 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_0810CD2A: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810CD34: .4byte 0x040000d4 -_0810CD38: .4byte 0x8100c000 -_0810CD3C: .4byte 0x85000100 -_0810CD40: .4byte 0x05000002 -_0810CD44: .4byte 0x810001ff -_0810CD48: .4byte 0x04000208 -_0810CD4C: .4byte 0x04000200 -_0810CD50: .4byte sub_810CC6C -_0810CD54: .4byte sub_810CC54 -_0810CD58: .4byte gMain - thumb_func_end sub_810CC80 - - thumb_func_start sub_810CD5C -sub_810CD5C: @ 810CD5C - push {r4-r7,lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r6, r0, 24 - bl sav1_map_get_light_level - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r4, _0810CD9C @ =gUnknown_083F7FC4 - ldrb r0, [r4] - cmp r0, 0 - beq _0810CDB0 - adds r7, r4, 0 - adds r0, r4, 0x4 - mov r12, r0 -_0810CD7E: - lsls r2, r3, 3 - adds r1, r2, r7 - ldrb r0, [r1] - cmp r0, r6 - bne _0810CDA0 - ldrb r0, [r1, 0x1] - cmp r0, r5 - bne _0810CDA0 - mov r1, r12 - adds r0, r2, r1 - ldr r0, [r0] - bl _call_via_r0 - movs r0, 0x1 - b _0810CDB2 - .align 2, 0 -_0810CD9C: .4byte gUnknown_083F7FC4 -_0810CDA0: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _0810CD7E -_0810CDB0: - movs r0, 0 -_0810CDB2: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810CD5C - - thumb_func_start sub_810CDB8 -sub_810CDB8: @ 810CDB8 - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r5, r0, 24 - lsrs r4, r1, 24 - movs r3, 0 - ldr r1, _0810CDE4 @ =gUnknown_083F7FC4 - ldrb r0, [r1] - cmp r0, 0 - beq _0810CDF8 - adds r6, r1, 0 -_0810CDCE: - lsls r0, r3, 3 - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, r5 - bne _0810CDE8 - ldrb r0, [r2, 0x1] - cmp r0, r4 - bne _0810CDE8 - ldrb r0, [r2, 0x2] - b _0810CDFA - .align 2, 0 -_0810CDE4: .4byte gUnknown_083F7FC4 -_0810CDE8: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0810CDCE -_0810CDF8: - movs r0, 0 -_0810CDFA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_810CDB8 - - thumb_func_start fade_type_for_given_maplight_pair -fade_type_for_given_maplight_pair: @ 810CE00 - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r5, r0, 24 - lsrs r4, r1, 24 - movs r3, 0 - ldr r1, _0810CE2C @ =gUnknown_083F7FC4 - ldrb r0, [r1] - cmp r0, 0 - beq _0810CE40 - adds r6, r1, 0 -_0810CE16: - lsls r0, r3, 3 - adds r2, r0, r6 - ldrb r0, [r2] - cmp r0, r5 - bne _0810CE30 - ldrb r0, [r2, 0x1] - cmp r0, r4 - bne _0810CE30 - ldrb r0, [r2, 0x3] - b _0810CE42 - .align 2, 0 -_0810CE2C: .4byte gUnknown_083F7FC4 -_0810CE30: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0810CE16 -_0810CE40: - movs r0, 0 -_0810CE42: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end fade_type_for_given_maplight_pair - - thumb_func_start sub_810CE48 -sub_810CE48: @ 810CE48 - push {lr} - ldr r0, _0810CE58 @ =sub_810CE5C - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810CE58: .4byte sub_810CE5C - thumb_func_end sub_810CE48 - - thumb_func_start sub_810CE5C -sub_810CE5C: @ 810CE5C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CE70 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0810CE74 @ =sub_810CE78 - str r0, [r1] - bx lr - .align 2, 0 -_0810CE70: .4byte gTasks -_0810CE74: .4byte sub_810CE78 - thumb_func_end sub_810CE5C - - thumb_func_start sub_810CE78 -sub_810CE78: @ 810CE78 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r6, 0x80 - lsls r6, 19 - movs r5, 0 - strh r5, [r6] - ldr r0, _0810CEE8 @ =gCaveTransitionTiles - ldr r1, _0810CEEC @ =0x0600c000 - bl LZ77UnCompVram - ldr r0, _0810CEF0 @ =gCaveTransitionTilemap - ldr r1, _0810CEF4 @ =0x0600f800 - bl LZ77UnCompVram - ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White - movs r1, 0xE0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810CEFC @ =gUnknown_083F809C - movs r1, 0xE0 - movs r2, 0x10 - bl LoadPalette - ldr r1, _0810CF00 @ =REG_BLDCNT - ldr r2, _0810CF04 @ =0x00003e41 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0810CF08 @ =REG_BLDALPHA - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - subs r1, 0x48 - ldr r2, _0810CF0C @ =0x00001f0c - adds r0, r2, 0 - strh r0, [r1] - movs r1, 0x8A - lsls r1, 5 - adds r0, r1, 0 - strh r0, [r6] - ldr r1, _0810CF10 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810CF14 @ =sub_810CF18 - str r1, [r0] - movs r2, 0 - movs r1, 0x10 - strh r1, [r0, 0x8] - strh r2, [r0, 0xA] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810CEE8: .4byte gCaveTransitionTiles -_0810CEEC: .4byte 0x0600c000 -_0810CEF0: .4byte gCaveTransitionTilemap -_0810CEF4: .4byte 0x0600f800 -_0810CEF8: .4byte gCaveTransitionPalette_White -_0810CEFC: .4byte gUnknown_083F809C -_0810CF00: .4byte REG_BLDCNT -_0810CF04: .4byte 0x00003e41 -_0810CF08: .4byte REG_BLDALPHA -_0810CF0C: .4byte 0x00001f0c -_0810CF10: .4byte gTasks -_0810CF14: .4byte sub_810CF18 - thumb_func_end sub_810CE78 - - thumb_func_start sub_810CF18 -sub_810CF18: @ 810CF18 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CF44 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r2, [r3, 0xA] - movs r1, 0x80 - lsls r1, 5 - adds r0, r2, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0810CF48 @ =REG_BLDALPHA - strh r0, [r1] - cmp r2, 0x10 - bhi _0810CF4C - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - b _0810CF54 - .align 2, 0 -_0810CF44: .4byte gTasks -_0810CF48: .4byte REG_BLDALPHA -_0810CF4C: - movs r0, 0 - strh r0, [r3, 0xC] - ldr r0, _0810CF58 @ =sub_810CF5C - str r0, [r3] -_0810CF54: - pop {r0} - bx r0 - .align 2, 0 -_0810CF58: .4byte sub_810CF5C - thumb_func_end sub_810CF18 - - thumb_func_start sub_810CF5C -sub_810CF5C: @ 810CF5C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CF94 @ =REG_BLDALPHA - ldr r3, _0810CF98 @ =0x00001010 - adds r1, r3, 0 - strh r1, [r2] - ldr r2, _0810CF9C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 - ldrh r1, [r4, 0xC] - cmp r1, 0x7 - bhi _0810CFA4 - adds r0, r1, 0x1 - strh r0, [r4, 0xC] - lsls r1, 1 - ldr r0, _0810CFA0 @ =gUnknown_083F809C - adds r0, r1, r0 - movs r2, 0x10 - subs r2, r1 - lsls r2, 16 - lsrs r2, 16 - movs r1, 0xE0 - bl LoadPalette - b _0810CFB6 - .align 2, 0 -_0810CF94: .4byte REG_BLDALPHA -_0810CF98: .4byte 0x00001010 -_0810CF9C: .4byte gTasks -_0810CFA0: .4byte gUnknown_083F809C -_0810CFA4: - ldr r0, _0810CFBC @ =gCaveTransitionPalette_White - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810CFC0 @ =sub_810CFC4 - str r0, [r4] - movs r0, 0x8 - strh r0, [r4, 0xC] -_0810CFB6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810CFBC: .4byte gCaveTransitionPalette_White -_0810CFC0: .4byte sub_810CFC4 - thumb_func_end sub_810CF5C - - thumb_func_start sub_810CFC4 -sub_810CFC4: @ 810CFC4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810CFE4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r2, [r1, 0xC] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _0810CFE8 - subs r0, r2, 0x1 - strh r0, [r1, 0xC] - b _0810CFF0 - .align 2, 0 -_0810CFE4: .4byte gTasks -_0810CFE8: - ldr r0, _0810CFF4 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_0810CFF0: - pop {r0} - bx r0 - .align 2, 0 -_0810CFF4: .4byte gMain - thumb_func_end sub_810CFC4 - - thumb_func_start sub_810CFF8 -sub_810CFF8: @ 810CFF8 - push {lr} - ldr r0, _0810D008 @ =sub_810D00C - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810D008: .4byte sub_810D00C - thumb_func_end sub_810CFF8 - - thumb_func_start sub_810D00C -sub_810D00C: @ 810D00C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810D020 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0810D024 @ =sub_810D028 - str r0, [r1] - bx lr - .align 2, 0 -_0810D020: .4byte gTasks -_0810D024: .4byte sub_810D028 - thumb_func_end sub_810D00C - - thumb_func_start sub_810D028 -sub_810D028: @ 810D028 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r6, 0x80 - lsls r6, 19 - movs r4, 0 - strh r4, [r6] - ldr r0, _0810D098 @ =gCaveTransitionTiles - ldr r1, _0810D09C @ =0x0600c000 - bl LZ77UnCompVram - ldr r0, _0810D0A0 @ =gCaveTransitionTilemap - ldr r1, _0810D0A4 @ =0x0600f800 - bl LZ77UnCompVram - ldr r0, _0810D0A8 @ =REG_BLDCNT - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r1, _0810D0AC @ =REG_BG0CNT - ldr r2, _0810D0B0 @ =0x00001f0c - adds r0, r2, 0 - strh r0, [r1] - movs r1, 0x8A - lsls r1, 5 - adds r0, r1, 0 - strh r0, [r6] - ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White - movs r1, 0xE0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r1, _0810D0BC @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810D0C0 @ =sub_810D0C4 - str r1, [r0] - movs r2, 0 - movs r1, 0x10 - strh r1, [r0, 0x8] - strh r2, [r0, 0xA] - strh r2, [r0, 0xC] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810D098: .4byte gCaveTransitionTiles -_0810D09C: .4byte 0x0600c000 -_0810D0A0: .4byte gCaveTransitionTilemap -_0810D0A4: .4byte 0x0600f800 -_0810D0A8: .4byte REG_BLDCNT -_0810D0AC: .4byte REG_BG0CNT -_0810D0B0: .4byte 0x00001f0c -_0810D0B4: .4byte gCaveTransitionPalette_White -_0810D0B8: .4byte gCaveTransitionPalette_Black -_0810D0BC: .4byte gTasks -_0810D0C0: .4byte sub_810D0C4 - thumb_func_end sub_810D028 - - thumb_func_start sub_810D0C4 -sub_810D0C4: @ 810D0C4 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810D0F8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r1, [r3, 0xC] - cmp r1, 0xF - bhi _0810D100 - adds r2, r1, 0x1 - adds r0, r2, 0x1 - strh r0, [r3, 0xC] - movs r0, 0xF - subs r0, r1 - lsls r0, 1 - ldr r1, _0810D0FC @ =gUnknown_083F808C - adds r0, r1 - lsls r2, 17 - lsrs r2, 16 - movs r1, 0xE0 - bl LoadPalette - b _0810D114 - .align 2, 0 -_0810D0F8: .4byte gTasks -_0810D0FC: .4byte gUnknown_083F808C -_0810D100: - ldr r1, _0810D118 @ =REG_BLDALPHA - ldr r2, _0810D11C @ =0x00001010 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _0810D120 @ =0x00003e41 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0810D124 @ =sub_810D128 - str r0, [r3] -_0810D114: - pop {r0} - bx r0 - .align 2, 0 -_0810D118: .4byte REG_BLDALPHA -_0810D11C: .4byte 0x00001010 -_0810D120: .4byte 0x00003e41 -_0810D124: .4byte sub_810D128 - thumb_func_end sub_810D0C4 - - thumb_func_start sub_810D128 -sub_810D128: @ 810D128 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810D158 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r3, r1, r2 - ldrh r0, [r3, 0xA] - movs r1, 0x10 - subs r1, r0 - lsls r1, 16 - movs r2, 0x80 - lsls r2, 21 - adds r0, r1, r2 - lsrs r0, 16 - ldr r2, _0810D15C @ =REG_BLDALPHA - strh r0, [r2] - cmp r1, 0 - beq _0810D160 - ldrh r0, [r3, 0xA] - adds r0, 0x1 - strh r0, [r3, 0xA] - b _0810D172 - .align 2, 0 -_0810D158: .4byte gTasks -_0810D15C: .4byte REG_BLDALPHA -_0810D160: - ldr r0, _0810D178 @ =gCaveTransitionPalette_Black - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _0810D17C @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_0810D172: - pop {r0} - bx r0 - .align 2, 0 -_0810D178: .4byte gCaveTransitionPalette_Black -_0810D17C: .4byte gMain - thumb_func_end sub_810D128 - - thumb_func_start sub_810D180 -sub_810D180: @ 810D180 - push {r4-r7,lr} - sub sp, 0x4 - bl HealPlayerParty - ldr r4, _0810D1A0 @ =0x00000804 - adds r0, r4, 0 - bl FlagGet - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _0810D1A8 - ldr r0, _0810D1A4 @ =gUnknown_02039324 - strb r1, [r0] - b _0810D1B4 - .align 2, 0 -_0810D1A0: .4byte 0x00000804 -_0810D1A4: .4byte gUnknown_02039324 -_0810D1A8: - ldr r1, _0810D1E8 @ =gUnknown_02039324 - movs r0, 0 - strb r0, [r1] - adds r0, r4, 0 - bl FlagSet -_0810D1B4: - movs r0, 0x1 - bl sub_8053108 - cmp r0, 0 - bne _0810D1D4 - ldr r2, _0810D1EC @ =gSaveBlock2 - ldrh r1, [r2, 0xE] - lsls r1, 16 - ldrb r0, [r2, 0x10] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r2, 0x11] - orrs r1, r0 - movs r0, 0x1 - bl sav12_xor_set -_0810D1D4: - bl SetSecretBase2Field_9 - ldr r0, _0810D1EC @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0810D1F0 - movs r0, 0x1 - bl sub_80537CC - b _0810D1F6 - .align 2, 0 -_0810D1E8: .4byte gUnknown_02039324 -_0810D1EC: .4byte gSaveBlock2 -_0810D1F0: - movs r0, 0x2 - bl sub_80537CC -_0810D1F6: - movs r6, 0 - movs r5, 0 - mov r7, sp -_0810D1FC: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0810D260 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _0810D23A - adds r0, r4, 0 - movs r1, 0x6 - bl GetMonData - cmp r0, 0 - bne _0810D23A - adds r0, r4, 0 - movs r1, 0x43 - bl GetMonData - cmp r0, 0 - bne _0810D23A - movs r0, 0x1 - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x43 - mov r2, sp - bl SetMonData - movs r6, 0x1 -_0810D23A: - adds r5, 0x1 - cmp r5, 0x5 - ble _0810D1FC - cmp r6, 0x1 - bne _0810D250 - movs r0, 0x2A - bl sav12_xor_increment - ldr r0, _0810D264 @ =0x0000083b - bl FlagSet -_0810D250: - ldr r0, _0810D268 @ =sub_8141F90 - bl SetMainCallback2 - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810D260: .4byte gPlayerParty -_0810D264: .4byte 0x0000083b -_0810D268: .4byte sub_8141F90 - thumb_func_end sub_810D180 - - thumb_func_start sp0C8_whiteout_maybe -sp0C8_whiteout_maybe: @ 810D26C - push {lr} - ldr r0, _0810D27C @ =c2_whiteout - bl SetMainCallback2 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0810D27C: .4byte c2_whiteout - thumb_func_end sp0C8_whiteout_maybe - - thumb_func_start sub_810D280 -sub_810D280: @ 810D280 - push {r4,lr} - ldr r0, _0810D2A4 @ =0x00004024 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _0810D2A8 @ =0x00004025 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - lsls r4, 16 - orrs r4, r0 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810D2A4: .4byte 0x00004024 -_0810D2A8: .4byte 0x00004025 - thumb_func_end sub_810D280 - - thumb_func_start sub_810D2AC -sub_810D2AC: @ 810D2AC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0810D2CC @ =0x00004024 - lsrs r1, r4, 16 - bl VarSet - ldr r0, _0810D2D0 @ =0x00004025 - lsls r4, 16 - lsrs r4, 16 - adds r1, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D2CC: .4byte 0x00004024 -_0810D2D0: .4byte 0x00004025 - thumb_func_end sub_810D2AC - - thumb_func_start unref_sub_810D2D4 -unref_sub_810D2D4: @ 810D2D4 - push {r4,lr} - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsls r0, 16 - lsrs r0, 16 - orrs r4, r0 - adds r0, r4, 0 - bl sub_810D2AC - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_810D2D4 - - thumb_func_start sub_810D2F4 -sub_810D2F4: @ 810D2F4 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl sub_810D280 - adds r1, r0, 0 - cmp r4, 0 - beq _0810D318 - ldr r3, _0810D324 @ =0x41c64e6d - ldr r2, _0810D328 @ =0x00003039 -_0810D308: - adds r0, r1, 0 - muls r0, r3 - adds r1, r0, r2 - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _0810D308 -_0810D318: - adds r0, r1, 0 - bl sub_810D2AC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D324: .4byte 0x41c64e6d -_0810D328: .4byte 0x00003039 - thumb_func_end sub_810D2F4 - - thumb_func_start sub_810D32C -sub_810D32C: @ 810D32C - push {r4-r6,lr} - bl sub_810D280 - lsrs r6, r0, 16 - movs r5, 0 -_0810D336: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0810D360 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0810D368 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - ldr r1, _0810D364 @ =0x0000ffff - ands r1, r0 - cmp r1, r6 - bne _0810D368 - movs r0, 0x1 - b _0810D370 - .align 2, 0 -_0810D360: .4byte gPlayerParty -_0810D364: .4byte 0x0000ffff -_0810D368: - adds r5, 0x1 - cmp r5, 0x5 - ble _0810D336 - movs r0, 0 -_0810D370: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_810D32C - - thumb_func_start sub_810D378 -sub_810D378: @ 810D378 - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 - lsls r0, 24 - cmp r0, 0 - beq _0810D3BE - bl RtcCalcLocalTime - ldr r1, _0810D3AC @ =gUnknown_083F8340 - ldr r0, _0810D3B0 @ =gLocalTime - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0810D3B8 - ldr r0, _0810D3B4 @ =0x0000083a - bl FlagSet - b _0810D3BE - .align 2, 0 -_0810D3AC: .4byte gUnknown_083F8340 -_0810D3B0: .4byte gLocalTime -_0810D3B4: .4byte 0x0000083a -_0810D3B8: - ldr r0, _0810D3C4 @ =0x0000083a - bl FlagReset -_0810D3BE: - pop {r0} - bx r0 - .align 2, 0 -_0810D3C4: .4byte 0x0000083a - thumb_func_end sub_810D378 - - thumb_func_start sub_810D3C8 -sub_810D3C8: @ 810D3C8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807DDFC - lsls r0, 24 - cmp r0, 0 - beq _0810D3E2 - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_0810D3E2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_810D3C8 - - thumb_func_start sub_810D3E8 -sub_810D3E8: @ 810D3E8 - push {lr} - ldr r0, _0810D3F8 @ =sub_810D3C8 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810D3F8: .4byte sub_810D3C8 - thumb_func_end sub_810D3E8 - - thumb_func_start sub_810D3FC -sub_810D3FC: @ 810D3FC - push {lr} - ldr r0, _0810D40C @ =0x00004049 - bl GetVarPointer - movs r1, 0 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0810D40C: .4byte 0x00004049 - thumb_func_end sub_810D3FC - - thumb_func_start UpdateBirchState -UpdateBirchState: @ 810D410 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _0810D438 @ =0x00004049 - bl GetVarPointer - adds r5, r0, 0 - ldrh r0, [r5] - adds r4, r0 - strh r4, [r5] - ldrh r0, [r5] - movs r1, 0x7 - bl __umodsi3 - strh r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810D438: .4byte 0x00004049 - thumb_func_end UpdateBirchState - - thumb_func_start ScriptGetPokedexInfo -ScriptGetPokedexInfo: @ 810D43C - push {lr} - ldr r0, _0810D458 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0810D460 - movs r0, 0 - bl GetHoennPokedexCount - ldr r1, _0810D45C @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl GetHoennPokedexCount - b _0810D470 - .align 2, 0 -_0810D458: .4byte gSpecialVar_0x8004 -_0810D45C: .4byte gSpecialVar_0x8005 -_0810D460: - movs r0, 0 - bl GetNationalPokedexCount - ldr r1, _0810D480 @ =gSpecialVar_0x8005 - strh r0, [r1] - movs r0, 0x1 - bl GetNationalPokedexCount -_0810D470: - ldr r1, _0810D484 @ =gSpecialVar_0x8006 - strh r0, [r1] - bl IsNationalPokedex - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0810D480: .4byte gSpecialVar_0x8005 -_0810D484: .4byte gSpecialVar_0x8006 - thumb_func_end ScriptGetPokedexInfo - - thumb_func_start GetPokedexRatingText -GetPokedexRatingText: @ 810D488 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x9 - bhi _0810D494 - b _0810D5EC -_0810D494: - cmp r0, 0x13 - bhi _0810D4A0 - ldr r0, _0810D49C @ =gUnknown_081C456A - b _0810D5F6 - .align 2, 0 -_0810D49C: .4byte gUnknown_081C456A -_0810D4A0: - cmp r0, 0x1D - bhi _0810D4AC - ldr r0, _0810D4A8 @ =gUnknown_081C45B0 - b _0810D5F6 - .align 2, 0 -_0810D4A8: .4byte gUnknown_081C45B0 -_0810D4AC: - cmp r0, 0x27 - bhi _0810D4B8 - ldr r0, _0810D4B4 @ =gUnknown_081C45F9 - b _0810D5F6 - .align 2, 0 -_0810D4B4: .4byte gUnknown_081C45F9 -_0810D4B8: - cmp r0, 0x31 - bhi _0810D4C4 - ldr r0, _0810D4C0 @ =gUnknown_081C4648 - b _0810D5F6 - .align 2, 0 -_0810D4C0: .4byte gUnknown_081C4648 -_0810D4C4: - cmp r0, 0x3B - bhi _0810D4D0 - ldr r0, _0810D4CC @ =gUnknown_081C467E - b _0810D5F6 - .align 2, 0 -_0810D4CC: .4byte gUnknown_081C467E -_0810D4D0: - cmp r0, 0x45 - bhi _0810D4DC - ldr r0, _0810D4D8 @ =gUnknown_081C46B9 - b _0810D5F6 - .align 2, 0 -_0810D4D8: .4byte gUnknown_081C46B9 -_0810D4DC: - cmp r0, 0x4F - bhi _0810D4E8 - ldr r0, _0810D4E4 @ =gUnknown_081C46FE - b _0810D5F6 - .align 2, 0 -_0810D4E4: .4byte gUnknown_081C46FE -_0810D4E8: - cmp r0, 0x59 - bhi _0810D4F4 - ldr r0, _0810D4F0 @ =gUnknown_081C4747 - b _0810D5F6 - .align 2, 0 -_0810D4F0: .4byte gUnknown_081C4747 -_0810D4F4: - cmp r0, 0x63 - bhi _0810D500 - ldr r0, _0810D4FC @ =gUnknown_081C4780 - b _0810D5F6 - .align 2, 0 -_0810D4FC: .4byte gUnknown_081C4780 -_0810D500: - cmp r0, 0x6D - bhi _0810D50C - ldr r0, _0810D508 @ =gUnknown_081C47DF - b _0810D5F6 - .align 2, 0 -_0810D508: .4byte gUnknown_081C47DF -_0810D50C: - cmp r0, 0x77 - bhi _0810D518 - ldr r0, _0810D514 @ =gUnknown_081C4828 - b _0810D5F6 - .align 2, 0 -_0810D514: .4byte gUnknown_081C4828 -_0810D518: - cmp r0, 0x81 - bhi _0810D524 - ldr r0, _0810D520 @ =gUnknown_081C4863 - b _0810D5F6 - .align 2, 0 -_0810D520: .4byte gUnknown_081C4863 -_0810D524: - cmp r0, 0x8B - bhi _0810D530 - ldr r0, _0810D52C @ =gUnknown_081C489C - b _0810D5F6 - .align 2, 0 -_0810D52C: .4byte gUnknown_081C489C -_0810D530: - cmp r0, 0x95 - bhi _0810D53C - ldr r0, _0810D538 @ =gUnknown_081C48EB - b _0810D5F6 - .align 2, 0 -_0810D538: .4byte gUnknown_081C48EB -_0810D53C: - cmp r0, 0x9F - bhi _0810D548 - ldr r0, _0810D544 @ =gUnknown_081C4936 - b _0810D5F6 - .align 2, 0 -_0810D544: .4byte gUnknown_081C4936 -_0810D548: - cmp r0, 0xA9 - bhi _0810D554 - ldr r0, _0810D550 @ =gUnknown_081C49A2 - b _0810D5F6 - .align 2, 0 -_0810D550: .4byte gUnknown_081C49A2 -_0810D554: - cmp r0, 0xB3 - bhi _0810D560 - ldr r0, _0810D55C @ =gUnknown_081C4A06 - b _0810D5F6 - .align 2, 0 -_0810D55C: .4byte gUnknown_081C4A06 -_0810D560: - cmp r0, 0xBD - bhi _0810D56C - ldr r0, _0810D568 @ =gUnknown_081C4A4F - b _0810D5F6 - .align 2, 0 -_0810D568: .4byte gUnknown_081C4A4F -_0810D56C: - cmp r0, 0xC7 - bls _0810D5DA - cmp r0, 0xC8 - bne _0810D5A8 - ldr r0, _0810D5A4 @ =0x00000199 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - bne _0810D5DA - movs r0, 0xCD - lsls r0, 1 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - bne _0810D5DA - b _0810D5F4 - .align 2, 0 -_0810D5A4: .4byte 0x00000199 -_0810D5A8: - cmp r0, 0xC9 - bne _0810D5E8 - ldr r0, _0810D5E0 @ =0x00000199 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _0810D5F4 - movs r0, 0xCD - lsls r0, 1 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _0810D5F4 -_0810D5DA: - ldr r0, _0810D5E4 @ =gUnknown_081C4A91 - b _0810D5F6 - .align 2, 0 -_0810D5E0: .4byte 0x00000199 -_0810D5E4: .4byte gUnknown_081C4A91 -_0810D5E8: - cmp r0, 0xCA - beq _0810D5F4 -_0810D5EC: - ldr r0, _0810D5F0 @ =gUnknown_081C4520 - b _0810D5F6 - .align 2, 0 -_0810D5F0: .4byte gUnknown_081C4520 -_0810D5F4: - ldr r0, _0810D5FC @ =gUnknown_081C4ADA -_0810D5F6: - pop {r1} - bx r1 - .align 2, 0 -_0810D5FC: .4byte gUnknown_081C4ADA - thumb_func_end GetPokedexRatingText - - thumb_func_start ShowPokedexRatingMessage -ShowPokedexRatingMessage: @ 810D600 - push {lr} - ldr r0, _0810D614 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - bl GetPokedexRatingText - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_0810D614: .4byte gSpecialVar_0x8004 - thumb_func_end ShowPokedexRatingMessage - - thumb_func_start AccessHallOfFamePC -AccessHallOfFamePC: @ 810D618 - push {lr} - ldr r0, _0810D628 @ =sub_81428CC - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0810D628: .4byte sub_81428CC - thumb_func_end AccessHallOfFamePC - - thumb_func_start ReturnFromHallOfFamePC -ReturnFromHallOfFamePC: @ 810D62C - push {lr} - ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - ldr r1, _0810D644 @ =gUnknown_0300485C - ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0810D640: .4byte c2_exit_to_overworld_2_switch -_0810D644: .4byte gUnknown_0300485C -_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC - thumb_func_end ReturnFromHallOfFamePC - - thumb_func_start ReshowPCMenuAfterHallOfFamePC -ReshowPCMenuAfterHallOfFamePC: @ 810D64C - push {lr} - sub sp, 0x4 - bl ScriptContext2_Enable - bl sub_8053E90 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - bl TryCreatePCMenu - bl sub_80B5838 - ldr r0, _0810D680 @ =sub_810D684 - movs r1, 0xA - bl CreateTask - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0810D680: .4byte sub_810D684 - thumb_func_end ReshowPCMenuAfterHallOfFamePC - - thumb_func_start sub_810D684 -sub_810D684: @ 810D684 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0810D6A0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810D69C - adds r0, r2, 0 - bl DestroyTask -_0810D69C: - pop {r0} - bx r0 - .align 2, 0 -_0810D6A0: .4byte gPaletteFade - thumb_func_end sub_810D684 - - thumb_func_start sub_810D6A4 -sub_810D6A4: @ 810D6A4 - push {lr} - ldr r0, _0810D6B4 @ =sub_8145D88 - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0810D6B4: .4byte sub_8145D88 - thumb_func_end sub_810D6A4 - - thumb_func_start sub_810D6B8 -sub_810D6B8: @ 810D6B8 - push {lr} - ldr r0, _0810D6D0 @ =gMain - ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch - str r1, [r0, 0x8] - ldr r0, _0810D6D8 @ =Cb2_ViewWallClock - bl SetMainCallback2 - bl ScriptContext2_Enable - pop {r0} - bx r0 - .align 2, 0 -_0810D6D0: .4byte gMain -_0810D6D4: .4byte c2_exit_to_overworld_2_switch -_0810D6D8: .4byte Cb2_ViewWallClock - thumb_func_end sub_810D6B8 - - thumb_func_start ResetCyclingRoadChallengeData -ResetCyclingRoadChallengeData: @ 810D6DC - ldr r0, _0810D6F0 @ =gUnknown_02039250 - movs r1, 0 - strb r1, [r0] - ldr r0, _0810D6F4 @ =gUnknown_02039251 - strb r1, [r0] - ldr r1, _0810D6F8 @ =gUnknown_02039254 - movs r0, 0 - str r0, [r1] - bx lr - .align 2, 0 -_0810D6F0: .4byte gUnknown_02039250 -_0810D6F4: .4byte gUnknown_02039251 -_0810D6F8: .4byte gUnknown_02039254 - thumb_func_end ResetCyclingRoadChallengeData - - thumb_func_start BeginCyclingRoadChallenge -BeginCyclingRoadChallenge: @ 810D6FC - ldr r1, _0810D714 @ =gUnknown_02039250 - movs r0, 0x1 - strb r0, [r1] - ldr r1, _0810D718 @ =gUnknown_02039251 - movs r0, 0 - strb r0, [r1] - ldr r1, _0810D71C @ =gUnknown_02039254 - ldr r0, _0810D720 @ =gMain - ldr r0, [r0, 0x20] - str r0, [r1] - bx lr - .align 2, 0 -_0810D714: .4byte gUnknown_02039250 -_0810D718: .4byte gUnknown_02039251 -_0810D71C: .4byte gUnknown_02039254 -_0810D720: .4byte gMain - thumb_func_end BeginCyclingRoadChallenge - - thumb_func_start GetPlayerAvatarBike -GetPlayerAvatarBike: @ 810D724 - push {lr} - movs r0, 0x4 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _0810D736 - movs r0, 0x1 - b _0810D748 -_0810D736: - movs r0, 0x2 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - bne _0810D746 - movs r0, 0 - b _0810D748 -_0810D746: - movs r0, 0x2 -_0810D748: - pop {r1} - bx r1 - thumb_func_end GetPlayerAvatarBike - - thumb_func_start DetermineCyclingRoadResults -DetermineCyclingRoadResults: @ 810D74C - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - cmp r6, 0x63 - bhi _0810D778 - ldr r4, _0810D770 @ =gStringVar1 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, _0810D774 @ =gOtherText_Times - adds r0, r4, 0 - bl StringAppend - b _0810D780 - .align 2, 0 -_0810D770: .4byte gStringVar1 -_0810D774: .4byte gOtherText_Times -_0810D778: - ldr r0, _0810D7CC @ =gStringVar1 - ldr r1, _0810D7D0 @ =gOtherText_99Times - bl StringCopy -_0810D780: - ldr r0, _0810D7D4 @ =0x00000e0f - cmp r7, r0 - bhi _0810D7E0 - ldr r4, _0810D7D8 @ =gStringVar2 - adds r0, r7, 0 - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - movs r0, 0xAD - strb r0, [r4, 0x2] - adds r5, r4, 0x3 - adds r0, r7, 0 - movs r1, 0x3C - bl __umodsi3 - movs r1, 0x64 - muls r0, r1 - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r1, _0810D7DC @ =gOtherText_Seconds - adds r0, r4, 0 - bl StringAppend - b _0810D7E8 - .align 2, 0 -_0810D7CC: .4byte gStringVar1 -_0810D7D0: .4byte gOtherText_99Times -_0810D7D4: .4byte 0x00000e0f -_0810D7D8: .4byte gStringVar2 -_0810D7DC: .4byte gOtherText_Seconds -_0810D7E0: - ldr r0, _0810D7F4 @ =gStringVar2 - ldr r1, _0810D7F8 @ =gOtherText_1Minute - bl StringCopy -_0810D7E8: - movs r4, 0 - cmp r6, 0 - bne _0810D7FC - movs r4, 0x5 - b _0810D81A - .align 2, 0 -_0810D7F4: .4byte gStringVar2 -_0810D7F8: .4byte gOtherText_1Minute -_0810D7FC: - cmp r6, 0x3 - bhi _0810D804 - movs r4, 0x4 - b _0810D81A -_0810D804: - cmp r6, 0x9 - bhi _0810D80C - movs r4, 0x3 - b _0810D81A -_0810D80C: - cmp r6, 0x13 - bhi _0810D814 - movs r4, 0x2 - b _0810D81A -_0810D814: - cmp r6, 0x63 - bhi _0810D81A - movs r4, 0x1 -_0810D81A: - adds r0, r7, 0 - movs r1, 0x3C - bl __udivsi3 - cmp r0, 0xA - bhi _0810D82A - adds r0, r4, 0x5 - b _0810D848 -_0810D82A: - cmp r0, 0xF - bhi _0810D832 - adds r0, r4, 0x4 - b _0810D848 -_0810D832: - cmp r0, 0x14 - bhi _0810D83A - adds r0, r4, 0x3 - b _0810D848 -_0810D83A: - cmp r0, 0x28 - bhi _0810D842 - adds r0, r4, 0x2 - b _0810D848 -_0810D842: - cmp r0, 0x3B - bhi _0810D84C - adds r0, r4, 0x1 -_0810D848: - lsls r0, 24 - lsrs r4, r0, 24 -_0810D84C: - ldr r0, _0810D858 @ =gScriptResult - strh r4, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810D858: .4byte gScriptResult - thumb_func_end DetermineCyclingRoadResults - - thumb_func_start FinishCyclingRoadChallenge -FinishCyclingRoadChallenge: @ 810D85C - push {r4,r5,lr} - ldr r0, _0810D880 @ =gMain - ldr r1, _0810D884 @ =gUnknown_02039254 - ldr r4, [r0, 0x20] - ldr r0, [r1] - subs r4, r0 - ldr r5, _0810D888 @ =gUnknown_02039251 - ldrb r1, [r5] - adds r0, r4, 0 - bl DetermineCyclingRoadResults - ldrb r1, [r5] - adds r0, r4, 0 - bl RecordCyclingRoadResults - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810D880: .4byte gMain -_0810D884: .4byte gUnknown_02039254 -_0810D888: .4byte gUnknown_02039251 - thumb_func_end FinishCyclingRoadChallenge - - thumb_func_start RecordCyclingRoadResults -RecordCyclingRoadResults: @ 810D88C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r6, _0810D8E0 @ =0x00004028 - adds r0, r6, 0 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r7, _0810D8E4 @ =0x00004029 - adds r0, r7, 0 - bl VarGet - lsls r0, 16 - adds r4, r0 - cmp r4, r5 - bhi _0810D8BC - cmp r4, 0 - bne _0810D8D6 -_0810D8BC: - lsls r1, r5, 16 - lsrs r1, 16 - adds r0, r6, 0 - bl VarSet - lsrs r1, r5, 16 - adds r0, r7, 0 - bl VarSet - ldr r0, _0810D8E8 @ =0x00004027 - mov r1, r8 - bl VarSet -_0810D8D6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810D8E0: .4byte 0x00004028 -_0810D8E4: .4byte 0x00004029 -_0810D8E8: .4byte 0x00004027 - thumb_func_end RecordCyclingRoadResults - - thumb_func_start GetRecordedCyclingRoadResults -GetRecordedCyclingRoadResults: @ 810D8EC - push {r4,lr} - ldr r0, _0810D920 @ =0x00004028 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _0810D924 @ =0x00004029 - bl VarGet - lsls r0, 16 - adds r4, r0 - cmp r4, 0 - beq _0810D92C - ldr r0, _0810D928 @ =0x00004027 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl DetermineCyclingRoadResults - movs r0, 0x1 - b _0810D92E - .align 2, 0 -_0810D920: .4byte 0x00004028 -_0810D924: .4byte 0x00004029 -_0810D928: .4byte 0x00004027 -_0810D92C: - movs r0, 0 -_0810D92E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetRecordedCyclingRoadResults - - thumb_func_start UpdateCyclingRoadState -UpdateCyclingRoadState: @ 810D934 - push {r4,lr} - ldr r0, _0810D974 @ =gUnknown_020297F0 - ldrh r1, [r0] - ldr r0, _0810D978 @ =0x00000c1d - cmp r1, r0 - beq _0810D96C - ldr r4, _0810D97C @ =0x000040a9 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - beq _0810D95E - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3 - bne _0810D96C -_0810D95E: - adds r0, r4, 0 - movs r1, 0 - bl VarSet - movs r0, 0 - bl sav1_set_battle_music_maybe -_0810D96C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810D974: .4byte gUnknown_020297F0 -_0810D978: .4byte 0x00000c1d -_0810D97C: .4byte 0x000040a9 - thumb_func_end UpdateCyclingRoadState - - thumb_func_start SetSSTidalFlag -SetSSTidalFlag: @ 810D980 - push {lr} - ldr r0, _0810D998 @ =0x0000082d - bl FlagSet - ldr r0, _0810D99C @ =0x0000404a - bl GetVarPointer - movs r1, 0 - strh r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0810D998: .4byte 0x0000082d -_0810D99C: .4byte 0x0000404a - thumb_func_end SetSSTidalFlag - - thumb_func_start ResetSSTidalFlag -ResetSSTidalFlag: @ 810D9A0 - push {lr} - ldr r0, _0810D9AC @ =0x0000082d - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_0810D9AC: .4byte 0x0000082d - thumb_func_end ResetSSTidalFlag - - thumb_func_start sub_810D9B0 -sub_810D9B0: @ 810D9B0 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _0810D9DC @ =0x0000082d - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810D9D6 - ldr r0, _0810D9E0 @ =0x0000404a - bl GetVarPointer - ldrh r1, [r0] - adds r1, r4, r1 - strh r1, [r0] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xCC - bhi _0810D9E4 -_0810D9D6: - movs r0, 0 - b _0810D9E6 - .align 2, 0 -_0810D9DC: .4byte 0x0000082d -_0810D9E0: .4byte 0x0000404a -_0810D9E4: - movs r0, 0x1 -_0810D9E6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810D9B0 - - thumb_func_start sub_810D9EC -sub_810D9EC: @ 810D9EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r7, r3, 0 - ldr r0, _0810DA1C @ =0x0000404a - bl GetVarPointer - adds r4, r0, 0 - ldr r0, _0810DA20 @ =0x000040b4 - bl GetVarPointer - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x9 - bhi _0810DAB2 - lsls r0, 2 - ldr r1, _0810DA24 @ =_0810DA28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810DA1C: .4byte 0x0000404a -_0810DA20: .4byte 0x000040b4 -_0810DA24: .4byte _0810DA28 - .align 2, 0 -_0810DA28: - .4byte _0810DA50 - .4byte _0810DA60 - .4byte _0810DA54 - .4byte _0810DA58 - .4byte _0810DA58 - .4byte _0810DA5C - .4byte _0810DA88 - .4byte _0810DA50 - .4byte _0810DA54 - .4byte _0810DA5C -_0810DA50: - movs r0, 0x1 - b _0810DABE -_0810DA54: - movs r0, 0x4 - b _0810DABE -_0810DA58: - movs r0, 0x2 - b _0810DABE -_0810DA5C: - movs r0, 0x3 - b _0810DABE -_0810DA60: - ldrh r0, [r4] - cmp r0, 0x3B - bhi _0810DA70 - movs r0, 0x31 - strb r0, [r5] - ldrh r0, [r4] - adds r0, 0x13 - b _0810DAB0 -_0810DA70: - cmp r0, 0x8B - bhi _0810DA7E - movs r0, 0x30 - strb r0, [r5] - ldrh r0, [r4] - subs r0, 0x3C - b _0810DAB0 -_0810DA7E: - movs r0, 0x2F - strb r0, [r5] - ldrh r0, [r4] - subs r0, 0x8C - b _0810DAB0 -_0810DA88: - ldrh r0, [r4] - cmp r0, 0x41 - bhi _0810DA98 - movs r0, 0x2F - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0x41 - b _0810DAAE -_0810DA98: - cmp r0, 0x91 - bhi _0810DAA6 - movs r0, 0x30 - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0x91 - b _0810DAAE -_0810DAA6: - movs r0, 0x31 - strb r0, [r5] - ldrh r1, [r4] - movs r0, 0xE0 -_0810DAAE: - subs r0, r1 -_0810DAB0: - strh r0, [r6] -_0810DAB2: - movs r0, 0 - mov r1, r8 - strb r0, [r1] - movs r0, 0x14 - strh r0, [r7] - movs r0, 0 -_0810DABE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_810D9EC - - thumb_func_start GetLinkPartnerNames -GetLinkPartnerNames: @ 810DAC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - bl sub_8008218 - lsls r0, 24 - lsrs r7, r0, 24 - bl sub_800820C - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _0810DB12 - ldr r0, _0810DB20 @ =gUnknown_083D1464 - mov r8, r0 -_0810DAEA: - cmp r7, r4 - beq _0810DB08 - lsls r0, r6, 2 - add r0, r8 - ldr r0, [r0] - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r2, _0810DB24 @ =gLinkPlayers + 0x8 - adds r1, r2 - bl StringCopy - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0810DB08: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0810DAEA -_0810DB12: - adds r0, r5, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810DB20: .4byte gUnknown_083D1464 -_0810DB24: .4byte gLinkPlayers + 0x8 - thumb_func_end GetLinkPartnerNames - - thumb_func_start sub_810DB28 -sub_810DB28: @ 810DB28 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - movs r7, 0 - movs r0, 0 - mov r9, r0 - mov r8, r0 - ldr r1, _0810DB74 @ =gUnknown_083F8358 - add r0, sp, 0x8 - movs r2, 0x4 - bl memcpy - add r4, sp, 0xC - ldr r1, _0810DB78 @ =gUnknown_083F835C - adds r0, r4, 0 - movs r2, 0x8 - bl memcpy - bl sub_8008218 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x2 - beq _0810DB94 - cmp r0, 0x2 - bgt _0810DB7C - cmp r0, 0x1 - beq _0810DBC0 - b _0810DBD2 - .align 2, 0 -_0810DB74: .4byte gUnknown_083F8358 -_0810DB78: .4byte gUnknown_083F835C -_0810DB7C: - cmp r1, 0x3 - beq _0810DB86 - cmp r1, 0x4 - beq _0810DBA8 - b _0810DBD2 -_0810DB86: - movs r7, 0x2 - ldr r1, _0810DB90 @ =gSaveBlock1 - ldrh r0, [r1] - subs r0, 0x1 - b _0810DBAE - .align 2, 0 -_0810DB90: .4byte gSaveBlock1 -_0810DB94: - movs r7, 0x1 - ldr r0, _0810DBA4 @ =gSaveBlock1 - ldrh r1, [r0] - mov r9, r1 - ldrh r0, [r0, 0x2] - subs r0, 0x1 - b _0810DBCC - .align 2, 0 -_0810DBA4: .4byte gSaveBlock1 -_0810DBA8: - ldr r1, _0810DBBC @ =gSaveBlock1 - ldrh r0, [r1] - adds r0, 0x1 -_0810DBAE: - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - ldrh r1, [r1, 0x2] - mov r8, r1 - b _0810DBD2 - .align 2, 0 -_0810DBBC: .4byte gSaveBlock1 -_0810DBC0: - movs r7, 0x3 - ldr r0, _0810DBD8 @ =gSaveBlock1 - ldrh r4, [r0] - mov r9, r4 - ldrh r0, [r0, 0x2] - adds r0, 0x1 -_0810DBCC: - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_0810DBD2: - movs r6, 0 - b _0810DC5C - .align 2, 0 -_0810DBD8: .4byte gSaveBlock1 -_0810DBDC: - cmp r10, r6 - beq _0810DC56 - ldr r1, _0810DC74 @ =gLinkPlayers - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x13] - movs r0, 0 - bl sub_805983C - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - adds r1, r7 - adds r1, 0x8 - ldrb r1, [r1] - movs r2, 0xF0 - subs r2, r6 - lsls r2, 24 - lsrs r2, 24 - lsls r5, r7, 1 - mov r3, sp - adds r3, r5 - adds r3, 0xC - ldrb r3, [r3] - lsls r3, 24 - asrs r3, 24 - mov r12, r3 - mov r4, r9 - lsls r3, r4, 16 - asrs r3, 16 - add r3, r12 - adds r3, 0x7 - lsls r3, 16 - asrs r3, 16 - mov r4, sp - adds r4, 0xD - adds r4, r5 - ldrb r4, [r4] - lsls r4, 24 - asrs r4, 24 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 16 - asrs r4, 16 - add r4, r12 - adds r4, 0x7 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl SpawnSpecialFieldObjectParametrized - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x4 - bne _0810DC56 - movs r7, 0 -_0810DC56: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0810DC5C: - ldr r0, _0810DC78 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r6, r0 - bcc _0810DBDC - 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 -_0810DC74: .4byte gLinkPlayers -_0810DC78: .4byte gSpecialVar_0x8004 - thumb_func_end sub_810DB28 - - thumb_func_start sub_810DC7C -sub_810DC7C: @ 810DC7C - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0810DC9C @ =gUnknown_083F8364 -_0810DC82: - ldr r0, _0810DCA0 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r4, r0 - bne _0810DCA8 - lsls r1, r4, 2 - adds r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - ldr r2, _0810DCA4 @ =0x00000206 - bl MapGridSetMetatileIdAt - b _0810DCB6 - .align 2, 0 -_0810DC9C: .4byte gUnknown_083F8364 -_0810DCA0: .4byte gSpecialVar_0x8004 -_0810DCA4: .4byte 0x00000206 -_0810DCA8: - lsls r1, r4, 2 - adds r1, r5 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - ldr r2, _0810DCC8 @ =0x00000205 - bl MapGridSetMetatileIdAt -_0810DCB6: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _0810DC82 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810DCC8: .4byte 0x00000205 - thumb_func_end sub_810DC7C - - thumb_func_start sub_810DCCC -sub_810DCCC: @ 810DCCC - push {r4-r6,lr} - movs r5, 0xC -_0810DCD0: - movs r4, 0x7 - adds r6, r5, 0x1 -_0810DCD4: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - ldr r1, _0810DCF0 @ =0xfffffde6 - adds r0, r1 - cmp r0, 0x37 - bls _0810DCE6 - b _0810DEC0 -_0810DCE6: - lsls r0, 2 - ldr r1, _0810DCF4 @ =_0810DCF8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810DCF0: .4byte 0xfffffde6 -_0810DCF4: .4byte _0810DCF8 - .align 2, 0 -_0810DCF8: - .4byte _0810DE7E - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DDD8 - .4byte _0810DDDE - .4byte _0810DE18 - .4byte _0810DE20 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DDE8 - .4byte _0810DDEE - .4byte _0810DE28 - .4byte _0810DE30 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DDF8 - .4byte _0810DDFE - .4byte _0810DE38 - .4byte _0810DE40 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DE08 - .4byte _0810DE10 - .4byte _0810DE48 - .4byte _0810DE50 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DE58 - .4byte _0810DE68 - .4byte _0810DE78 - .4byte _0810DEA0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DE60 - .4byte _0810DE70 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEC0 - .4byte _0810DEB6 - .4byte _0810DEA8 -_0810DDD8: - movs r2, 0x8C - lsls r2, 2 - b _0810DEAC -_0810DDDE: - ldr r2, _0810DDE4 @ =0x00000231 - b _0810DEAC - .align 2, 0 -_0810DDE4: .4byte 0x00000231 -_0810DDE8: - movs r2, 0x8E - lsls r2, 2 - b _0810DEAC -_0810DDEE: - ldr r2, _0810DDF4 @ =0x00000239 - b _0810DEAC - .align 2, 0 -_0810DDF4: .4byte 0x00000239 -_0810DDF8: - movs r2, 0x88 - lsls r2, 2 - b _0810DEAC -_0810DDFE: - ldr r2, _0810DE04 @ =0x00000221 - b _0810DEAC - .align 2, 0 -_0810DE04: .4byte 0x00000221 -_0810DE08: - ldr r2, _0810DE0C @ =0x00000e28 - b _0810DEAC - .align 2, 0 -_0810DE0C: .4byte 0x00000e28 -_0810DE10: - ldr r2, _0810DE14 @ =0x00000e29 - b _0810DEAC - .align 2, 0 -_0810DE14: .4byte 0x00000e29 -_0810DE18: - ldr r2, _0810DE1C @ =0x00000232 - b _0810DEAC - .align 2, 0 -_0810DE1C: .4byte 0x00000232 -_0810DE20: - ldr r2, _0810DE24 @ =0x00000233 - b _0810DEAC - .align 2, 0 -_0810DE24: .4byte 0x00000233 -_0810DE28: - ldr r2, _0810DE2C @ =0x0000023a - b _0810DEAC - .align 2, 0 -_0810DE2C: .4byte 0x0000023a -_0810DE30: - ldr r2, _0810DE34 @ =0x0000023b - b _0810DEAC - .align 2, 0 -_0810DE34: .4byte 0x0000023b -_0810DE38: - ldr r2, _0810DE3C @ =0x00000222 - b _0810DEAC - .align 2, 0 -_0810DE3C: .4byte 0x00000222 -_0810DE40: - ldr r2, _0810DE44 @ =0x00000223 - b _0810DEAC - .align 2, 0 -_0810DE44: .4byte 0x00000223 -_0810DE48: - ldr r2, _0810DE4C @ =0x00000e2a - b _0810DEAC - .align 2, 0 -_0810DE4C: .4byte 0x00000e2a -_0810DE50: - ldr r2, _0810DE54 @ =0x00000e2b - b _0810DEAC - .align 2, 0 -_0810DE54: .4byte 0x00000e2b -_0810DE58: - ldr r2, _0810DE5C @ =0x00000e42 - b _0810DEAC - .align 2, 0 -_0810DE5C: .4byte 0x00000e42 -_0810DE60: - ldr r2, _0810DE64 @ =0x0000021a - b _0810DEAC - .align 2, 0 -_0810DE64: .4byte 0x0000021a -_0810DE68: - ldr r2, _0810DE6C @ =0x00000e43 - b _0810DEAC - .align 2, 0 -_0810DE6C: .4byte 0x00000e43 -_0810DE70: - ldr r2, _0810DE74 @ =0x0000021a - b _0810DEAC - .align 2, 0 -_0810DE74: .4byte 0x0000021a -_0810DE78: - movs r2, 0xE4 - lsls r2, 4 - b _0810DEAC -_0810DE7E: - subs r1, r5, 0x1 - adds r0, r4, 0 - bl MapGridGetMetatileIdAt - movs r1, 0x90 - lsls r1, 2 - cmp r0, r1 - bne _0810DE98 - ldr r2, _0810DE94 @ =0x00000e48 - b _0810DEAC - .align 2, 0 -_0810DE94: .4byte 0x00000e48 -_0810DE98: - ldr r2, _0810DE9C @ =0x00000e49 - b _0810DEAC - .align 2, 0 -_0810DE9C: .4byte 0x00000e49 -_0810DEA0: - ldr r2, _0810DEA4 @ =0x00000e41 - b _0810DEAC - .align 2, 0 -_0810DEA4: .4byte 0x00000e41 -_0810DEA8: - movs r2, 0xE5 - lsls r2, 4 -_0810DEAC: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _0810DEC0 -_0810DEB6: - ldr r2, _0810DED8 @ =0x00000251 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0810DEC0: - adds r4, 0x1 - cmp r4, 0xF - bgt _0810DEC8 - b _0810DCD4 -_0810DEC8: - adds r5, r6, 0 - cmp r5, 0x17 - bgt _0810DED0 - b _0810DCD0 -_0810DED0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810DED8: .4byte 0x00000251 - thumb_func_end sub_810DCCC - - thumb_func_start sub_810DEDC -sub_810DEDC: @ 810DEDC - push {r4-r6,lr} - ldr r4, _0810DF18 @ =gUnknown_083F8364 - movs r5, 0x2 -_0810DEE2: - ldrb r0, [r4] - ldrb r1, [r4, 0x1] - ldr r2, _0810DF1C @ =0x00000206 - bl MapGridSetMetatileIdAt - adds r4, 0x4 - subs r5, 0x1 - cmp r5, 0 - bge _0810DEE2 - movs r5, 0xC -_0810DEF6: - movs r4, 0x7 - adds r6, r5, 0x1 -_0810DEFA: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileIdAt - ldr r1, _0810DF20 @ =0xfffffde0 - adds r0, r1 - cmp r0, 0x30 - bls _0810DF0C - b _0810E056 -_0810DF0C: - lsls r0, 2 - ldr r1, _0810DF24 @ =_0810DF28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810DF18: .4byte gUnknown_083F8364 -_0810DF1C: .4byte 0x00000206 -_0810DF20: .4byte 0xfffffde0 -_0810DF24: .4byte _0810DF28 - .align 2, 0 -_0810DF28: - .4byte _0810DFEC - .4byte _0810DFF2 - .4byte _0810E00C - .4byte _0810E014 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810DFFC - .4byte _0810E002 - .4byte _0810E01C - .4byte _0810E024 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E02C - .4byte _0810E034 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E03C - .4byte _0810E03C - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E056 - .4byte _0810E04C -_0810DFEC: - movs r2, 0x8C - lsls r2, 2 - b _0810E03E -_0810DFF2: - ldr r2, _0810DFF8 @ =0x00000231 - b _0810E03E - .align 2, 0 -_0810DFF8: .4byte 0x00000231 -_0810DFFC: - movs r2, 0x8E - lsls r2, 2 - b _0810E03E -_0810E002: - ldr r2, _0810E008 @ =0x00000239 - b _0810E03E - .align 2, 0 -_0810E008: .4byte 0x00000239 -_0810E00C: - ldr r2, _0810E010 @ =0x00000232 - b _0810E03E - .align 2, 0 -_0810E010: .4byte 0x00000232 -_0810E014: - ldr r2, _0810E018 @ =0x00000233 - b _0810E03E - .align 2, 0 -_0810E018: .4byte 0x00000233 -_0810E01C: - ldr r2, _0810E020 @ =0x0000023a - b _0810E03E - .align 2, 0 -_0810E020: .4byte 0x0000023a -_0810E024: - ldr r2, _0810E028 @ =0x0000023b - b _0810E03E - .align 2, 0 -_0810E028: .4byte 0x0000023b -_0810E02C: - ldr r2, _0810E030 @ =0x00000e42 - b _0810E03E - .align 2, 0 -_0810E030: .4byte 0x00000e42 -_0810E034: - ldr r2, _0810E038 @ =0x00000e43 - b _0810E03E - .align 2, 0 -_0810E038: .4byte 0x00000e43 -_0810E03C: - ldr r2, _0810E048 @ =0x0000021a -_0810E03E: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt - b _0810E056 - .align 2, 0 -_0810E048: .4byte 0x0000021a -_0810E04C: - ldr r2, _0810E06C @ =0x00000251 - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0810E056: - adds r4, 0x1 - cmp r4, 0xF - bgt _0810E05E - b _0810DEFA -_0810E05E: - adds r5, r6, 0 - cmp r5, 0x17 - bgt _0810E066 - b _0810DEF6 -_0810E066: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E06C: .4byte 0x00000251 - thumb_func_end sub_810DEDC - - thumb_func_start sub_810E070 -sub_810E070: @ 810E070 - push {lr} - ldr r0, _0810E090 @ =gUnknown_02039258 - movs r1, 0 - strb r1, [r0] - ldr r0, _0810E094 @ =gUnknown_02039259 - strb r1, [r0] - movs r0, 0x2C - bl PlaySE - ldr r0, _0810E098 @ =sub_810E09C - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_0810E090: .4byte gUnknown_02039258 -_0810E094: .4byte gUnknown_02039259 -_0810E098: .4byte sub_810E09C - thumb_func_end sub_810E070 - - thumb_func_start sub_810E09C -sub_810E09C: @ 810E09C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0810E0E4 @ =gUnknown_083F8370 - ldr r5, _0810E0E8 @ =gUnknown_02039259 - ldrb r1, [r5] - adds r0, r1, r0 - ldr r4, _0810E0EC @ =gUnknown_02039258 - ldrb r2, [r4] - ldrb r0, [r0] - cmp r0, r2 - bne _0810E0F8 - ldr r0, _0810E0F0 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - ldr r2, _0810E0F4 @ =gUnknown_083F8376 - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - bl sub_810E104 - movs r0, 0 - strb r0, [r4] - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _0810E0FC - adds r0, r6, 0 - bl DestroyTask - bl EnableBothScriptContexts - b _0810E0FC - .align 2, 0 -_0810E0E4: .4byte gUnknown_083F8370 -_0810E0E8: .4byte gUnknown_02039259 -_0810E0EC: .4byte gUnknown_02039258 -_0810E0F0: .4byte gSpecialVar_0x8004 -_0810E0F4: .4byte gUnknown_083F8376 -_0810E0F8: - adds r0, r2, 0x1 - strb r0, [r4] -_0810E0FC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810E09C - - thumb_func_start sub_810E104 -sub_810E104: @ 810E104 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r2, r1, 16 - movs r7, 0 - subs r0, 0x1 - cmp r0, 0x7 - bhi _0810E1CC - lsls r0, 2 - ldr r1, _0810E128 @ =_0810E12C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810E128: .4byte _0810E12C - .align 2, 0 -_0810E12C: - .4byte _0810E14C - .4byte _0810E15E - .4byte _0810E170 - .4byte _0810E182 - .4byte _0810E190 - .4byte _0810E1A6 - .4byte _0810E1B2 - .4byte _0810E1C0 -_0810E14C: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x68 - b _0810E1A0 -_0810E15E: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x4E - b _0810E1A0 -_0810E170: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x5B - b _0810E1A0 -_0810E182: - movs r7, 0x1 - mov r1, sp - movs r0, 0x7 - strh r0, [r1] - add r1, sp, 0x8 - movs r0, 0x27 - b _0810E1CA -_0810E190: - movs r7, 0x2 - mov r1, sp - movs r0, 0x1 - strh r0, [r1] - movs r0, 0x7 - strh r0, [r1, 0x2] - add r1, sp, 0x8 - movs r0, 0x34 -_0810E1A0: - strh r0, [r1] - strh r0, [r1, 0x2] - b _0810E1CC -_0810E1A6: - movs r7, 0x1 - mov r0, sp - strh r7, [r0] - add r1, sp, 0x8 - movs r0, 0x41 - b _0810E1CA -_0810E1B2: - movs r7, 0x1 - mov r1, sp - movs r0, 0x7 - strh r0, [r1] - add r1, sp, 0x8 - movs r0, 0xD - b _0810E1CA -_0810E1C0: - movs r7, 0x1 - mov r0, sp - strh r7, [r0] - add r1, sp, 0x8 - movs r0, 0x1A -_0810E1CA: - strh r0, [r1] -_0810E1CC: - movs r6, 0 - cmp r6, r7 - bcs _0810E21E - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - adds r1, r2, 0 - orrs r1, r0 - lsls r1, 16 - mov r9, r1 - adds r1, r2, 0 - adds r1, 0x8 - orrs r1, r0 - lsls r1, 16 - mov r8, r1 -_0810E1EA: - lsls r1, r6, 1 - mov r3, sp - adds r5, r3, r1 - ldrh r0, [r5] - adds r0, 0x7 - add r4, sp, 0x8 - adds r4, r1 - ldrh r1, [r4] - adds r1, 0x7 - mov r3, r9 - lsrs r2, r3, 16 - bl MapGridSetMetatileIdAt - ldrh r0, [r5] - adds r0, 0x7 - ldrh r1, [r4] - adds r1, 0x8 - mov r3, r8 - lsrs r2, r3, 16 - bl MapGridSetMetatileIdAt - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _0810E1EA -_0810E21E: - bl DrawWholeMapView - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810E104 - - thumb_func_start sub_810E230 -sub_810E230: @ 810E230 - push {lr} - ldr r0, _0810E244 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - ldr r1, _0810E248 @ =gUnknown_083F8376 - ldrh r1, [r1, 0x8] - bl sub_810E104 - pop {r0} - bx r0 - .align 2, 0 -_0810E244: .4byte gSpecialVar_0x8004 -_0810E248: .4byte gUnknown_083F8376 - thumb_func_end sub_810E230 - - thumb_func_start ShowFieldMessageStringVar4 -ShowFieldMessageStringVar4: @ 810E24C - push {lr} - ldr r0, _0810E258 @ =gStringVar4 - bl ShowFieldMessage - pop {r0} - bx r0 - .align 2, 0 -_0810E258: .4byte gStringVar4 - thumb_func_end ShowFieldMessageStringVar4 - - thumb_func_start StorePlayerCoordsInVars -StorePlayerCoordsInVars: @ 810E25C - ldr r1, _0810E26C @ =gSpecialVar_0x8004 - ldr r2, _0810E270 @ =gSaveBlock1 - ldrh r0, [r2] - strh r0, [r1] - ldr r1, _0810E274 @ =gSpecialVar_0x8005 - ldrh r0, [r2, 0x2] - strh r0, [r1] - bx lr - .align 2, 0 -_0810E26C: .4byte gSpecialVar_0x8004 -_0810E270: .4byte gSaveBlock1 -_0810E274: .4byte gSpecialVar_0x8005 - thumb_func_end StorePlayerCoordsInVars - - thumb_func_start GetPlayerTrainerIdOnesDigit -GetPlayerTrainerIdOnesDigit: @ 810E278 - push {lr} - ldr r0, _0810E294 @ =gSaveBlock2 - ldrb r1, [r0, 0xB] - lsls r1, 8 - ldrb r0, [r0, 0xA] - orrs r0, r1 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0810E294: .4byte gSaveBlock2 - thumb_func_end GetPlayerTrainerIdOnesDigit - - thumb_func_start GetPlayerBigGuyGirlString -GetPlayerBigGuyGirlString: @ 810E298 - push {lr} - ldr r0, _0810E2AC @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0810E2B8 - ldr r0, _0810E2B0 @ =gStringVar1 - ldr r1, _0810E2B4 @ =gOtherText_BigGuy - bl StringCopy - b _0810E2C0 - .align 2, 0 -_0810E2AC: .4byte gSaveBlock2 -_0810E2B0: .4byte gStringVar1 -_0810E2B4: .4byte gOtherText_BigGuy -_0810E2B8: - ldr r0, _0810E2C4 @ =gStringVar1 - ldr r1, _0810E2C8 @ =gOtherText_BigGirl - bl StringCopy -_0810E2C0: - pop {r0} - bx r0 - .align 2, 0 -_0810E2C4: .4byte gStringVar1 -_0810E2C8: .4byte gOtherText_BigGirl - thumb_func_end GetPlayerBigGuyGirlString - - thumb_func_start GetRivalSonDaughterString -GetRivalSonDaughterString: @ 810E2CC - push {lr} - ldr r0, _0810E2E0 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _0810E2EC - ldr r0, _0810E2E4 @ =gStringVar1 - ldr r1, _0810E2E8 @ =gOtherText_Daughter - bl StringCopy - b _0810E2F4 - .align 2, 0 -_0810E2E0: .4byte gSaveBlock2 -_0810E2E4: .4byte gStringVar1 -_0810E2E8: .4byte gOtherText_Daughter -_0810E2EC: - ldr r0, _0810E2F8 @ =gStringVar1 - ldr r1, _0810E2FC @ =gOtherText_Son - bl StringCopy -_0810E2F4: - pop {r0} - bx r0 - .align 2, 0 -_0810E2F8: .4byte gStringVar1 -_0810E2FC: .4byte gOtherText_Son - thumb_func_end GetRivalSonDaughterString - - thumb_func_start sub_810E300 -sub_810E300: @ 810E300 - ldr r0, _0810E308 @ =gUnknown_02024D26 - ldrb r0, [r0] - bx lr - .align 2, 0 -_0810E308: .4byte gUnknown_02024D26 - thumb_func_end sub_810E300 - - thumb_func_start CableCarWarp -CableCarWarp: @ 810E30C - push {lr} - sub sp, 0x4 - ldr r0, _0810E32C @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - beq _0810E330 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r3, 0x6 - bl warp1_set - b _0810E342 - .align 2, 0 -_0810E32C: .4byte gSpecialVar_0x8004 -_0810E330: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x4 - str r0, [sp] - movs r0, 0x13 - movs r1, 0x1 - movs r3, 0x6 - bl warp1_set -_0810E342: - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end CableCarWarp - - thumb_func_start SetFlagInVar -SetFlagInVar: @ 810E348 - push {lr} - ldr r0, _0810E358 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0810E358: .4byte gSpecialVar_0x8004 - thumb_func_end SetFlagInVar - - thumb_func_start GetWeekCount -GetWeekCount: @ 810E35C - push {lr} - ldr r0, _0810E37C @ =gLocalTime - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x7 - bl __divsi3 - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0810E380 @ =0x0000270f - cmp r0, r1 - bls _0810E376 - adds r0, r1, 0 -_0810E376: - pop {r1} - bx r1 - .align 2, 0 -_0810E37C: .4byte gLocalTime -_0810E380: .4byte 0x0000270f - thumb_func_end GetWeekCount - - thumb_func_start GetLeadMonFriendshipScore -GetLeadMonFriendshipScore: @ 810E384 - push {r4,lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, _0810E3A8 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xFF - bne _0810E3AC - movs r0, 0x6 - b _0810E3FE - .align 2, 0 -_0810E3A8: .4byte gPlayerParty -_0810E3AC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0xC7 - bls _0810E3BC - movs r0, 0x5 - b _0810E3FE -_0810E3BC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x95 - bls _0810E3CC - movs r0, 0x4 - b _0810E3FE -_0810E3CC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x63 - bls _0810E3DC - movs r0, 0x3 - b _0810E3FE -_0810E3DC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0x31 - bls _0810E3EC - movs r0, 0x2 - b _0810E3FE -_0810E3EC: - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - cmp r0, 0 - bne _0810E3FC - movs r0, 0 - b _0810E3FE -_0810E3FC: - movs r0, 0x1 -_0810E3FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetLeadMonFriendshipScore - - thumb_func_start CB2_FieldShowRegionMap -CB2_FieldShowRegionMap: @ 810E404 - push {lr} - ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music - bl FieldInitRegionMap - pop {r0} - bx r0 - .align 2, 0 -_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music - thumb_func_end CB2_FieldShowRegionMap - - thumb_func_start FieldShowRegionMap -FieldShowRegionMap: @ 810E414 - push {lr} - ldr r0, _0810E420 @ =CB2_FieldShowRegionMap - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0810E420: .4byte CB2_FieldShowRegionMap - thumb_func_end FieldShowRegionMap - - thumb_func_start DoPCTurnOnEffect -DoPCTurnOnEffect: @ 810E424 - push {r4,lr} - ldr r4, _0810E460 @ =Task_PCTurnOnEffect - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810E458 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810E464 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_0810E458: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E460: .4byte Task_PCTurnOnEffect -_0810E464: .4byte gTasks - thumb_func_end DoPCTurnOnEffect - - thumb_func_start Task_PCTurnOnEffect -Task_PCTurnOnEffect: @ 810E468 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0810E48C @ =gTasks - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0810E486 - adds r0, r1, 0 - bl PCTurnOffEffect_0 -_0810E486: - pop {r0} - bx r0 - .align 2, 0 -_0810E48C: .4byte gTasks - thumb_func_end Task_PCTurnOnEffect - - thumb_func_start PCTurnOffEffect_0 -PCTurnOffEffect_0: @ 810E490 - push {r4-r6,lr} - adds r4, r0, 0 - movs r6, 0 - movs r5, 0 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bne _0810E4FC - strh r5, [r4, 0xE] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _0810E4C4 - cmp r0, 0x3 - bgt _0810E4BA - cmp r0, 0x2 - beq _0810E4C0 - b _0810E4CC -_0810E4BA: - cmp r1, 0x4 - beq _0810E4C8 - b _0810E4CC -_0810E4C0: - movs r6, 0 - b _0810E4CA -_0810E4C4: - movs r6, 0xFF - b _0810E4CA -_0810E4C8: - movs r6, 0x1 -_0810E4CA: - movs r5, 0xFF -_0810E4CC: - movs r1, 0x10 - ldrsh r0, [r4, r1] - lsls r1, r6, 24 - asrs r1, 24 - lsls r2, r5, 24 - asrs r2, 24 - bl PCTurnOffEffect_1 - bl DrawWholeMapView - ldrh r0, [r4, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _0810E4FC - ldrb r0, [r4, 0xA] - bl DestroyTask -_0810E4FC: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end PCTurnOffEffect_0 - - thumb_func_start PCTurnOffEffect_1 -PCTurnOffEffect_1: @ 810E508 - push {r4,r5,lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - movs r3, 0 - lsls r0, 16 - cmp r0, 0 - beq _0810E544 - ldr r0, _0810E528 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0810E52C - movs r3, 0x4 - b _0810E566 - .align 2, 0 -_0810E528: .4byte gSpecialVar_0x8004 -_0810E52C: - cmp r0, 0x1 - bne _0810E538 - ldr r3, _0810E534 @ =0x0000025a - b _0810E566 - .align 2, 0 -_0810E534: .4byte 0x0000025a -_0810E538: - cmp r0, 0x2 - bne _0810E566 - ldr r3, _0810E540 @ =0x00000259 - b _0810E566 - .align 2, 0 -_0810E540: .4byte 0x00000259 -_0810E544: - ldr r0, _0810E550 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0810E554 - movs r3, 0x5 - b _0810E566 - .align 2, 0 -_0810E550: .4byte gSpecialVar_0x8004 -_0810E554: - cmp r0, 0x1 - bne _0810E560 - ldr r3, _0810E55C @ =0x0000027f - b _0810E566 - .align 2, 0 -_0810E55C: .4byte 0x0000027f -_0810E560: - cmp r0, 0x2 - bne _0810E566 - ldr r3, _0810E594 @ =0x0000027e -_0810E566: - ldr r2, _0810E598 @ =gSaveBlock1 - movs r5, 0 - ldrsh r0, [r2, r5] - lsls r1, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r5, 0x2 - ldrsh r1, [r2, r5] - lsls r2, r4, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r4, 0xC0 - lsls r4, 4 - adds r2, r4, 0 - orrs r3, r2 - adds r2, r3, 0 - bl MapGridSetMetatileIdAt - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E594: .4byte 0x0000027e -_0810E598: .4byte gSaveBlock1 - thumb_func_end PCTurnOffEffect_1 - - thumb_func_start DoPCTurnOffEffect -DoPCTurnOffEffect: @ 810E59C - push {lr} - bl PCTurnOffEffect - pop {r0} - bx r0 - thumb_func_end DoPCTurnOffEffect - - thumb_func_start PCTurnOffEffect -PCTurnOffEffect: @ 810E5A8 - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 - movs r4, 0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - cmp r0, 0x3 - beq _0810E5D2 - cmp r0, 0x3 - bgt _0810E5C8 - cmp r0, 0x2 - beq _0810E5CE - b _0810E5DA -_0810E5C8: - cmp r1, 0x4 - beq _0810E5D6 - b _0810E5DA -_0810E5CE: - movs r6, 0 - b _0810E5D8 -_0810E5D2: - movs r6, 0xFF - b _0810E5D8 -_0810E5D6: - movs r6, 0x1 -_0810E5D8: - movs r5, 0xFF -_0810E5DA: - ldr r0, _0810E5E8 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _0810E5EC - movs r4, 0x4 - b _0810E5FE - .align 2, 0 -_0810E5E8: .4byte gSpecialVar_0x8004 -_0810E5EC: - cmp r0, 0x1 - bne _0810E5F8 - ldr r4, _0810E5F4 @ =0x0000025a - b _0810E5FE - .align 2, 0 -_0810E5F4: .4byte 0x0000025a -_0810E5F8: - cmp r0, 0x2 - bne _0810E5FE - ldr r4, _0810E630 @ =0x00000259 -_0810E5FE: - ldr r2, _0810E634 @ =gSaveBlock1 - movs r1, 0 - ldrsh r0, [r2, r1] - lsls r1, r6, 24 - asrs r1, 24 - adds r0, r1 - adds r0, 0x7 - movs r3, 0x2 - ldrsh r1, [r2, r3] - lsls r2, r5, 24 - asrs r2, 24 - adds r1, r2 - adds r1, 0x7 - movs r3, 0xC0 - lsls r3, 4 - adds r2, r3, 0 - orrs r4, r2 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E630: .4byte 0x00000259 -_0810E634: .4byte gSaveBlock1 - thumb_func_end PCTurnOffEffect - - thumb_func_start DoLotteryCornerComputerEffect -DoLotteryCornerComputerEffect: @ 810E638 - push {r4,lr} - ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810E66C - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810E678 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_0810E66C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E674: .4byte Task_LotteryCornerComputerEffect -_0810E678: .4byte gTasks - thumb_func_end DoLotteryCornerComputerEffect - - thumb_func_start Task_LotteryCornerComputerEffect -Task_LotteryCornerComputerEffect: @ 810E67C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0810E6A0 @ =gTasks - adds r1, r0 - movs r2, 0x8 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _0810E69A - adds r0, r1, 0 - bl LotteryCornerComputerEffect -_0810E69A: - pop {r0} - bx r0 - .align 2, 0 -_0810E6A0: .4byte gTasks - thumb_func_end Task_LotteryCornerComputerEffect - - thumb_func_start LotteryCornerComputerEffect -LotteryCornerComputerEffect: @ 810E6A4 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0x6 - bne _0810E712 - movs r0, 0 - strh r0, [r4, 0xE] - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _0810E6DC - ldr r2, _0810E6D4 @ =0x00000e9d - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _0810E6D8 @ =0x00000ea5 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - b _0810E6F2 - .align 2, 0 -_0810E6D4: .4byte 0x00000e9d -_0810E6D8: .4byte 0x00000ea5 -_0810E6DC: - ldr r2, _0810E720 @ =0x00000e58 - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - movs r2, 0xE6 - lsls r2, 4 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt -_0810E6F2: - bl DrawWholeMapView - ldrh r0, [r4, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - bne _0810E712 - ldrb r0, [r4, 0xA] - bl DestroyTask -_0810E712: - ldrh r0, [r4, 0xE] - adds r0, 0x1 - strh r0, [r4, 0xE] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810E720: .4byte 0x00000e58 - thumb_func_end LotteryCornerComputerEffect - - thumb_func_start EndLotteryCornerComputerEffect -EndLotteryCornerComputerEffect: @ 810E724 - push {lr} - ldr r2, _0810E744 @ =0x00000e9d - movs r0, 0x12 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _0810E748 @ =0x00000ea5 - movs r0, 0x12 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - bl DrawWholeMapView - pop {r0} - bx r0 - .align 2, 0 -_0810E744: .4byte 0x00000e9d -_0810E748: .4byte 0x00000ea5 - thumb_func_end EndLotteryCornerComputerEffect - - thumb_func_start SetDepartmentStoreFloorVar -SetDepartmentStoreFloorVar: @ 810E74C - push {lr} - ldr r0, _0810E768 @ =gSaveBlock1 - ldrb r0, [r0, 0x15] - subs r0, 0x11 - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x5 - bhi _0810E79C - lsls r0, 2 - ldr r1, _0810E76C @ =_0810E770 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810E768: .4byte gSaveBlock1 -_0810E76C: .4byte _0810E770 - .align 2, 0 -_0810E770: - .4byte _0810E79C - .4byte _0810E788 - .4byte _0810E78C - .4byte _0810E790 - .4byte _0810E794 - .4byte _0810E798 -_0810E788: - movs r1, 0x1 - b _0810E79E -_0810E78C: - movs r1, 0x2 - b _0810E79E -_0810E790: - movs r1, 0x3 - b _0810E79E -_0810E794: - movs r1, 0x4 - b _0810E79E -_0810E798: - movs r1, 0xF - b _0810E79E -_0810E79C: - movs r1, 0 -_0810E79E: - ldr r0, _0810E7A8 @ =0x00004043 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_0810E7A8: .4byte 0x00004043 - thumb_func_end SetDepartmentStoreFloorVar - - thumb_func_start ScriptAddElevatorMenuItem -ScriptAddElevatorMenuItem: @ 810E7AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r2, 24 - mov r12, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - ldr r0, _0810E81C @ =gSpecialVar_0x8004 - ldrh r1, [r0] - adds r2, r0, 0 - ldr r3, _0810E820 @ =gUnknown_03000760 - cmp r1, 0 - bne _0810E7E8 - movs r1, 0 - adds r5, r3, 0 - movs r4, 0x10 -_0810E7D8: - lsls r0, r1, 2 - adds r0, r5 - strb r4, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bls _0810E7D8 -_0810E7E8: - ldrh r0, [r2] - lsls r0, 2 - adds r0, r3 - strb r6, [r0] - ldrh r0, [r2] - lsls r0, 2 - adds r0, r3 - strb r7, [r0, 0x1] - ldrh r0, [r2] - lsls r0, 2 - adds r0, r3 - mov r1, r12 - strb r1, [r0, 0x2] - ldrh r0, [r2] - lsls r0, 2 - adds r0, r3 - mov r1, r8 - strb r1, [r0, 0x3] - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810E81C: .4byte gSpecialVar_0x8004 -_0810E820: .4byte gUnknown_03000760 - thumb_func_end ScriptAddElevatorMenuItem - - thumb_func_start ScriptShowElevatorMenu -ScriptShowElevatorMenu: @ 810E824 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _0810E868 @ =gUnknown_0203925A - strb r4, [r5] - ldr r0, _0810E86C @ =gUnknown_0203925B - strb r4, [r0] - movs r0, 0x10 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl ScriptAddElevatorMenuItem - ldr r2, _0810E870 @ =gUnknown_03000760 - ldrb r0, [r2] - cmp r0, 0x10 - beq _0810E85C - adds r1, r5, 0 -_0810E846: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x10 - bne _0810E846 -_0810E85C: - bl sub_810E874 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810E868: .4byte gUnknown_0203925A -_0810E86C: .4byte gUnknown_0203925B -_0810E870: .4byte gUnknown_03000760 - thumb_func_end ScriptShowElevatorMenu - - thumb_func_start sub_810E874 -sub_810E874: @ 810E874 - push {r4-r6,lr} - sub sp, 0x8 - bl ScriptContext2_Enable - ldr r4, _0810E8B8 @ =gUnknown_0203925A - ldrb r0, [r4] - cmp r0, 0x5 - bls _0810E8C0 - movs r0, 0 - movs r1, 0 - movs r2, 0x8 - movs r3, 0xB - bl MenuDrawTextWindow - movs r4, 0 - str r4, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x5 - bl InitMenu - ldr r0, _0810E8BC @ =gUnknown_0203925C - strb r4, [r0] - bl sub_80F944C - bl LoadScrollIndicatorPalette - bl sub_810ECD4 - b _0810E8E8 - .align 2, 0 -_0810E8B8: .4byte gUnknown_0203925A -_0810E8BC: .4byte gUnknown_0203925C -_0810E8C0: - ldrb r3, [r4] - lsls r3, 1 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0 - movs r1, 0 - movs r2, 0x8 - bl MenuDrawTextWindow - ldrb r3, [r4] - movs r0, 0 - str r0, [sp] - movs r0, 0x7 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl InitMenu -_0810E8E8: - movs r4, 0 - ldr r1, _0810E938 @ =gUnknown_03000760 - ldrb r0, [r1] - cmp r0, 0x10 - beq _0810E924 - ldr r6, _0810E93C @ =gUnknown_083F8380 - adds r5, r1, 0 -_0810E8F6: - lsls r0, r4, 2 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - lsls r2, r4, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bhi _0810E924 - lsls r0, r4, 2 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0x10 - bne _0810E8F6 -_0810E924: - bl sub_810E944 - ldr r0, _0810E940 @ =sub_810E984 - movs r1, 0x8 - bl CreateTask - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810E938: .4byte gUnknown_03000760 -_0810E93C: .4byte gUnknown_083F8380 -_0810E940: .4byte sub_810E984 - thumb_func_end sub_810E874 - - thumb_func_start sub_810E944 -sub_810E944: @ 810E944 - push {lr} - movs r0, 0x14 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x5 - bl MenuDrawTextWindow - ldr r0, _0810E978 @ =gOtherText_NowOn - movs r1, 0x15 - movs r2, 0x1 - movs r3, 0x40 - bl sub_8072BD8 - ldr r1, _0810E97C @ =gUnknown_083F8380 - ldr r0, _0810E980 @ =gSpecialVar_0x8005 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x15 - movs r2, 0x3 - movs r3, 0x40 - bl sub_8072BD8 - pop {r0} - bx r0 - .align 2, 0 -_0810E978: .4byte gOtherText_NowOn -_0810E97C: .4byte gUnknown_083F8380 -_0810E980: .4byte gSpecialVar_0x8005 - thumb_func_end sub_810E944 - - thumb_func_start sub_810E984 -sub_810E984: @ 810E984 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0810EA44 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x40 - bne _0810E9B8 - ldr r1, _0810EA48 @ =gUnknown_0203925B - ldrb r0, [r1] - cmp r0, 0 - beq _0810E9B8 - subs r0, 0x1 - strb r0, [r1] - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursorNoWrap - adds r0, r4, 0 - movs r1, 0x40 - bl sub_810EAC8 -_0810E9B8: - ldr r0, _0810EA44 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x80 - bne _0810E9E8 - ldr r2, _0810EA48 @ =gUnknown_0203925B - ldrb r1, [r2] - ldr r0, _0810EA4C @ =gUnknown_0203925A - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _0810E9E8 - adds r0, r1, 0x1 - strb r0, [r2] - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - bl MoveMenuCursorNoWrap - adds r0, r4, 0 - movs r1, 0x80 - bl sub_810EAC8 -_0810E9E8: - ldr r0, _0810EA44 @ =gMain - ldrh r2, [r0, 0x2E] - movs r5, 0x1 - adds r1, r5, 0 - ands r1, r2 - cmp r1, 0 - beq _0810EA94 - ldr r1, _0810EA50 @ =gUnknown_03000760 - ldr r4, _0810EA48 @ =gUnknown_0203925B - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - movs r1, 0x1 - ldrsb r1, [r0, r1] - movs r2, 0x2 - ldrsb r2, [r0, r2] - movs r3, 0x1 - negs r3, r3 - movs r0, 0x2 - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0 - bl saved_warp2_set_2 - ldr r1, _0810EA54 @ =gSpecialVar_0x8005 - ldrh r0, [r1] - ldrb r2, [r4] - cmp r0, r2 - bne _0810EA5C - ldr r1, _0810EA58 @ =gScriptResult - movs r0, 0 - strh r0, [r1] - movs r0, 0x5 - bl PlaySE - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r6, 0 - bl sub_810EC9C - b _0810EABC - .align 2, 0 -_0810EA44: .4byte gMain -_0810EA48: .4byte gUnknown_0203925B -_0810EA4C: .4byte gUnknown_0203925A -_0810EA50: .4byte gUnknown_03000760 -_0810EA54: .4byte gSpecialVar_0x8005 -_0810EA58: .4byte gScriptResult -_0810EA5C: - ldr r0, _0810EA88 @ =gScriptResult - strh r5, [r0] - ldrb r0, [r4] - strh r0, [r1] - bl sub_810EBEC - ldr r0, _0810EA8C @ =gScriptLastTalked - ldrb r0, [r0] - ldr r2, _0810EA90 @ =gSaveBlock1 - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - movs r3, 0x1 - bl FieldObjectTurnByLocalIdAndMap - bl sub_810EEDC - bl MenuZeroFillScreen - adds r0, r6, 0 - bl DestroyTask - b _0810EABC - .align 2, 0 -_0810EA88: .4byte gScriptResult -_0810EA8C: .4byte gScriptLastTalked -_0810EA90: .4byte gSaveBlock1 -_0810EA94: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _0810EABC - ldr r0, _0810EAC4 @ =gScriptResult - strh r1, [r0] - movs r0, 0x5 - bl PlaySE - bl sub_810EEDC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r6, 0 - bl sub_810EC9C -_0810EABC: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810EAC4: .4byte gScriptResult - thumb_func_end sub_810E984 - - thumb_func_start sub_810EAC8 -sub_810EAC8: @ 810EAC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - lsls r1, 24 - lsrs r1, 24 - adds r3, r1, 0 - movs r7, 0 - movs r4, 0 - ldr r0, _0810EAEC @ =gUnknown_0203925A - ldrb r0, [r0] - cmp r0, 0x4 - bhi _0810EAF0 - movs r0, 0 - b _0810EB78 - .align 2, 0 -_0810EAEC: .4byte gUnknown_0203925A -_0810EAF0: - cmp r1, 0x40 - bne _0810EB04 - cmp r2, 0 - bne _0810EB18 - ldr r0, _0810EB00 @ =gUnknown_0203925B - ldrb r4, [r0] - movs r7, 0x1 - b _0810EB1C - .align 2, 0 -_0810EB00: .4byte gUnknown_0203925B -_0810EB04: - cmp r3, 0x80 - bne _0810EB18 - cmp r5, 0x4 - bne _0810EB18 - ldr r0, _0810EB84 @ =gUnknown_0203925B - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r7, 0x1 -_0810EB18: - cmp r7, 0 - beq _0810EB76 -_0810EB1C: - adds r0, r4, 0 - movs r1, 0x5 - bl sub_810EB90 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0xA - bl MenuFillWindowRectWithBlankTile - movs r5, 0 - ldr r2, _0810EB88 @ =gUnknown_03000760 - lsls r1, r4, 2 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x10 - beq _0810EB76 - ldr r0, _0810EB8C @ =gUnknown_083F8380 - mov r8, r0 - adds r6, r2, 0 -_0810EB44: - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, 2 - add r0, r8 - ldr r0, [r0] - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bhi _0810EB76 - lsls r1, r4, 2 - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, 0x10 - bne _0810EB44 -_0810EB76: - adds r0, r7, 0 -_0810EB78: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810EB84: .4byte gUnknown_0203925B -_0810EB88: .4byte gUnknown_03000760 -_0810EB8C: .4byte gUnknown_083F8380 - thumb_func_end sub_810EAC8 - - thumb_func_start sub_810EB90 -sub_810EB90: @ 810EB90 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0 - bne _0810EBB4 - ldr r0, _0810EBB0 @ =gUnknown_0203925C - ldrb r1, [r0] - movs r2, 0x2 - eors r1, r2 - strb r1, [r0] - movs r0, 0 - bl DestroyVerticalScrollIndicator - b _0810EBB8 - .align 2, 0 -_0810EBB0: .4byte gUnknown_0203925C -_0810EBB4: - bl sub_810ECB0 -_0810EBB8: - adds r1, r4, r5 - ldr r0, _0810EBC8 @ =gUnknown_0203925A - ldrb r0, [r0] - cmp r1, r0 - bge _0810EBCC - bl sub_810ECD4 - b _0810EBE0 - .align 2, 0 -_0810EBC8: .4byte gUnknown_0203925A -_0810EBCC: - cmp r1, r0 - bne _0810EBE0 - ldr r0, _0810EBE8 @ =gUnknown_0203925C - ldrb r1, [r0] - movs r2, 0x1 - eors r1, r2 - strb r1, [r0] - movs r0, 0x1 - bl DestroyVerticalScrollIndicator -_0810EBE0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810EBE8: .4byte gUnknown_0203925C - thumb_func_end sub_810EB90 - - thumb_func_start sub_810EBEC -sub_810EBEC: @ 810EBEC - push {lr} - ldr r0, _0810EC2C @ =sub_810EC34 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810EC30 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - movs r2, 0x1 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - strh r2, [r1, 0x10] - movs r0, 0x3 - strh r0, [r1, 0x12] - movs r0, 0 - bl SetCameraPanningCallback - bl sub_810ECFC - movs r0, 0x59 - bl PlaySE - pop {r0} - bx r0 - .align 2, 0 -_0810EC2C: .4byte sub_810EC34 -_0810EC30: .4byte gTasks - thumb_func_end sub_810EBEC - - thumb_func_start sub_810EC34 -sub_810EC34: @ 810EC34 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810EC98 @ =gTasks - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _0810EC92 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0810EC92 - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] - movs r2, 0x10 - ldrsh r1, [r4, r2] - movs r0, 0 - bl SetCameraPanning - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x17 - bne _0810EC92 - movs r0, 0x49 - bl PlaySE - adds r0, r5, 0 - bl sub_810EC9C - bl InstallCameraPanAheadCallback -_0810EC92: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810EC98: .4byte gTasks - thumb_func_end sub_810EC34 - - thumb_func_start sub_810EC9C -sub_810EC9C: @ 810EC9C - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_810EC9C - - thumb_func_start sub_810ECB0 -sub_810ECB0: @ 810ECB0 - push {lr} - ldr r2, _0810ECD0 @ =gUnknown_0203925C - ldrb r1, [r2] - lsrs r0, r1, 1 - cmp r0, 0x1 - beq _0810ECCC - movs r0, 0x2 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - movs r1, 0x24 - movs r2, 0x8 - bl CreateVerticalScrollIndicators -_0810ECCC: - pop {r0} - bx r0 - .align 2, 0 -_0810ECD0: .4byte gUnknown_0203925C - thumb_func_end sub_810ECB0 - - thumb_func_start sub_810ECD4 -sub_810ECD4: @ 810ECD4 - push {lr} - ldr r2, _0810ECF8 @ =gUnknown_0203925C - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810ECF2 - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 - movs r1, 0x24 - movs r2, 0x48 - bl CreateVerticalScrollIndicators -_0810ECF2: - pop {r0} - bx r0 - .align 2, 0 -_0810ECF8: .4byte gUnknown_0203925C - thumb_func_end sub_810ECD4 - - thumb_func_start sub_810ECFC -sub_810ECFC: @ 810ECFC - push {r4,lr} - ldr r4, _0810ED38 @ =sub_810ED40 - adds r0, r4, 0 - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810ED30 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810ED3C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] -_0810ED30: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810ED38: .4byte sub_810ED40 -_0810ED3C: .4byte gTasks - thumb_func_end sub_810ECFC - - thumb_func_start sub_810ED40 -sub_810ED40: @ 810ED40 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, _0810ED5C @ =gTasks - adds r0, r1 - bl sub_810ED60 - pop {r0} - bx r0 - .align 2, 0 -_0810ED5C: .4byte gTasks - thumb_func_end sub_810ED40 - - thumb_func_start sub_810ED60 -sub_810ED60: @ 810ED60 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0xE - ldrsh r0, [r5, r1] - cmp r0, 0x8 - beq _0810ED6E - b _0810EEB2 -_0810ED6E: - movs r0, 0 - strh r0, [r5, 0xE] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0810EE14 - ldr r2, _0810EDFC @ =0x00000e68 - movs r0, 0x7 - movs r1, 0x7 - bl MapGridSetMetatileIdAt - ldr r4, _0810EE00 @ =0x00000e69 - movs r0, 0x8 - movs r1, 0x7 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x7 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EE04 @ =0x00000e6a - movs r0, 0xA - movs r1, 0x7 - bl MapGridSetMetatileIdAt - movs r2, 0xE7 - lsls r2, 4 - movs r0, 0x7 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - adds r4, 0x8 - movs r0, 0x8 - movs r1, 0x8 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x8 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EE08 @ =0x00000e72 - movs r0, 0xA - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _0810EE0C @ =0x00000e78 - movs r0, 0x7 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - adds r4, 0x8 - movs r0, 0x8 - movs r1, 0x9 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x9 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EE10 @ =0x00000e7a - movs r0, 0xA - movs r1, 0x9 - bl MapGridSetMetatileIdAt - b _0810EE92 - .align 2, 0 -_0810EDFC: .4byte 0x00000e68 -_0810EE00: .4byte 0x00000e69 -_0810EE04: .4byte 0x00000e6a -_0810EE08: .4byte 0x00000e72 -_0810EE0C: .4byte 0x00000e78 -_0810EE10: .4byte 0x00000e7a -_0810EE14: - ldr r2, _0810EEC0 @ =0x00000e6b - movs r0, 0x7 - movs r1, 0x7 - bl MapGridSetMetatileIdAt - ldr r4, _0810EEC4 @ =0x00000e6c - movs r0, 0x8 - movs r1, 0x7 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x7 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EEC8 @ =0x00000e6d - movs r0, 0xA - movs r1, 0x7 - bl MapGridSetMetatileIdAt - ldr r2, _0810EECC @ =0x00000e73 - movs r0, 0x7 - movs r1, 0x8 - bl MapGridSetMetatileIdAt - adds r4, 0x8 - movs r0, 0x8 - movs r1, 0x8 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x8 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EED0 @ =0x00000e75 - movs r0, 0xA - movs r1, 0x8 - bl MapGridSetMetatileIdAt - ldr r2, _0810EED4 @ =0x00000e7b - movs r0, 0x7 - movs r1, 0x9 - bl MapGridSetMetatileIdAt - adds r4, 0x8 - movs r0, 0x8 - movs r1, 0x9 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - movs r0, 0x9 - movs r1, 0x9 - adds r2, r4, 0 - bl MapGridSetMetatileIdAt - ldr r2, _0810EED8 @ =0x00000e7d - movs r0, 0xA - movs r1, 0x9 - bl MapGridSetMetatileIdAt -_0810EE92: - bl DrawWholeMapView - ldrh r0, [r5, 0x10] - movs r1, 0x1 - eors r0, r1 - strh r0, [r5, 0x10] - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bne _0810EEB2 - ldrb r0, [r5, 0xA] - bl DestroyTask -_0810EEB2: - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810EEC0: .4byte 0x00000e6b -_0810EEC4: .4byte 0x00000e6c -_0810EEC8: .4byte 0x00000e6d -_0810EECC: .4byte 0x00000e73 -_0810EED0: .4byte 0x00000e75 -_0810EED4: .4byte 0x00000e7b -_0810EED8: .4byte 0x00000e7d - thumb_func_end sub_810ED60 - - thumb_func_start sub_810EEDC -sub_810EEDC: @ 810EEDC - push {r4,lr} - ldr r4, _0810EF08 @ =gUnknown_0203925C - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810EEF0 - movs r0, 0x1 - bl DestroyVerticalScrollIndicator -_0810EEF0: - ldrb r0, [r4] - lsrs r0, 1 - cmp r0, 0x1 - bne _0810EEFE - movs r0, 0 - bl DestroyVerticalScrollIndicator -_0810EEFE: - bl BuyMenuFreeMemory - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810EF08: .4byte gUnknown_0203925C - thumb_func_end sub_810EEDC - - thumb_func_start SetTrickHouseEndRoomFlag -SetTrickHouseEndRoomFlag: @ 810EF0C - push {lr} - ldr r1, _0810EF1C @ =gSpecialVar_0x8004 - ldr r0, _0810EF20 @ =0x00000259 - strh r0, [r1] - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0810EF1C: .4byte gSpecialVar_0x8004 -_0810EF20: .4byte 0x00000259 - thumb_func_end SetTrickHouseEndRoomFlag - - thumb_func_start ResetTrickHouseEndRoomFlag -ResetTrickHouseEndRoomFlag: @ 810EF24 - push {lr} - ldr r1, _0810EF34 @ =gSpecialVar_0x8004 - ldr r0, _0810EF38 @ =0x00000259 - strh r0, [r1] - bl FlagReset - pop {r0} - bx r0 - .align 2, 0 -_0810EF34: .4byte gSpecialVar_0x8004 -_0810EF38: .4byte 0x00000259 - thumb_func_end ResetTrickHouseEndRoomFlag - - thumb_func_start CheckLeadMonCool -CheckLeadMonCool: @ 810EF3C - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810EF5C @ =gPlayerParty - adds r0, r1 - movs r1, 0x16 - bl GetMonData - cmp r0, 0xC7 - bls _0810EF60 - movs r0, 0x1 - b _0810EF62 - .align 2, 0 -_0810EF5C: .4byte gPlayerParty -_0810EF60: - movs r0, 0 -_0810EF62: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonCool - - thumb_func_start CheckLeadMonBeauty -CheckLeadMonBeauty: @ 810EF68 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810EF88 @ =gPlayerParty - adds r0, r1 - movs r1, 0x17 - bl GetMonData - cmp r0, 0xC7 - bls _0810EF8C - movs r0, 0x1 - b _0810EF8E - .align 2, 0 -_0810EF88: .4byte gPlayerParty -_0810EF8C: - movs r0, 0 -_0810EF8E: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonBeauty - - thumb_func_start CheckLeadMonCute -CheckLeadMonCute: @ 810EF94 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810EFB4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x18 - bl GetMonData - cmp r0, 0xC7 - bls _0810EFB8 - movs r0, 0x1 - b _0810EFBA - .align 2, 0 -_0810EFB4: .4byte gPlayerParty -_0810EFB8: - movs r0, 0 -_0810EFBA: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonCute - - thumb_func_start CheckLeadMonSmart -CheckLeadMonSmart: @ 810EFC0 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810EFE0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x21 - bl GetMonData - cmp r0, 0xC7 - bls _0810EFE4 - movs r0, 0x1 - b _0810EFE6 - .align 2, 0 -_0810EFE0: .4byte gPlayerParty -_0810EFE4: - movs r0, 0 -_0810EFE6: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonSmart - - thumb_func_start CheckLeadMonTough -CheckLeadMonTough: @ 810EFEC - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F00C @ =gPlayerParty - adds r0, r1 - movs r1, 0x2F - bl GetMonData - cmp r0, 0xC7 - bls _0810F010 - movs r0, 0x1 - b _0810F012 - .align 2, 0 -_0810F00C: .4byte gPlayerParty -_0810F010: - movs r0, 0 -_0810F012: - pop {r1} - bx r1 - thumb_func_end CheckLeadMonTough - - thumb_func_start IsGrassTypeInParty -IsGrassTypeInParty: @ 810F018 - push {r4-r6,lr} - movs r5, 0 - ldr r6, _0810F068 @ =gBaseStats -_0810F01E: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0810F06C @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _0810F074 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0810F074 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x6] - cmp r0, 0xC - beq _0810F060 - ldrb r0, [r1, 0x7] - cmp r0, 0xC - bne _0810F074 -_0810F060: - ldr r1, _0810F070 @ =gScriptResult - movs r0, 0x1 - b _0810F082 - .align 2, 0 -_0810F068: .4byte gBaseStats -_0810F06C: .4byte gPlayerParty -_0810F070: .4byte gScriptResult -_0810F074: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0810F01E - ldr r1, _0810F08C @ =gScriptResult - movs r0, 0 -_0810F082: - strh r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810F08C: .4byte gScriptResult - thumb_func_end IsGrassTypeInParty - - thumb_func_start ShowGlassWorkshopMenu -ShowGlassWorkshopMenu: @ 810F090 - push {r4,r5,lr} - sub sp, 0x8 - bl ScriptContext2_Enable - movs r0, 0 - movs r1, 0 - movs r2, 0xA - movs r3, 0xB - bl MenuDrawTextWindow - movs r4, 0 - str r4, [sp] - movs r0, 0x9 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0x5 - bl InitMenu - ldr r0, _0810F104 @ =gUnknown_0203925C - strb r4, [r0] - bl sub_80F944C - bl LoadScrollIndicatorPalette - bl sub_810F2B4 - ldr r5, _0810F108 @ =gUnknown_083F83C0 -_0810F0CA: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - lsls r2, r4, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0810F0CA - ldr r1, _0810F10C @ =gUnknown_0203925B - movs r0, 0 - strb r0, [r1] - ldr r1, _0810F110 @ =gUnknown_0203925A - movs r0, 0x8 - strb r0, [r1] - ldr r0, _0810F114 @ =sub_810F118 - movs r1, 0x8 - bl CreateTask - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F104: .4byte gUnknown_0203925C -_0810F108: .4byte gUnknown_083F83C0 -_0810F10C: .4byte gUnknown_0203925B -_0810F110: .4byte gUnknown_0203925A -_0810F114: .4byte sub_810F118 - thumb_func_end ShowGlassWorkshopMenu - - thumb_func_start sub_810F118 -sub_810F118: @ 810F118 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0810F1E4 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x40 - bne _0810F14A - ldr r1, _0810F1E8 @ =gUnknown_0203925B - ldrb r0, [r1] - cmp r0, 0 - beq _0810F14A - subs r0, 0x1 - strb r0, [r1] - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursorNoWrap - adds r0, r4, 0 - movs r1, 0x40 - bl sub_810F1F4 -_0810F14A: - ldr r0, _0810F1E4 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0x80 - bne _0810F17A - ldr r2, _0810F1E8 @ =gUnknown_0203925B - ldrb r1, [r2] - ldr r0, _0810F1EC @ =gUnknown_0203925A - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _0810F17A - adds r0, r1, 0x1 - strb r0, [r2] - bl GetMenuCursorPos - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x1 - bl MoveMenuCursorNoWrap - adds r0, r4, 0 - movs r1, 0x80 - bl sub_810F1F4 -_0810F17A: - ldr r4, _0810F1E4 @ =gMain - ldrh r1, [r4, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810F1AE - bl sub_8072DEC - ldr r0, _0810F1F0 @ =gScriptResult - ldr r1, _0810F1E8 @ =gUnknown_0203925B - ldrb r1, [r1] - strh r1, [r0] - movs r0, 0x5 - bl PlaySE - bl sub_810EEDC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl sub_810EC9C -_0810F1AE: - ldrh r1, [r4, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810F1DE - bl sub_8072DEC - ldr r1, _0810F1F0 @ =gScriptResult - movs r0, 0x7F - strh r0, [r1] - movs r0, 0x5 - bl PlaySE - bl sub_810EEDC - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r5, 0 - bl sub_810EC9C -_0810F1DE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F1E4: .4byte gMain -_0810F1E8: .4byte gUnknown_0203925B -_0810F1EC: .4byte gUnknown_0203925A -_0810F1F0: .4byte gScriptResult - thumb_func_end sub_810F118 - - thumb_func_start sub_810F1F4 -sub_810F1F4: @ 810F1F4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - lsls r1, 24 - lsrs r1, 24 - adds r3, r1, 0 - movs r6, 0 - movs r4, 0 - ldr r0, _0810F214 @ =gUnknown_0203925A - ldrb r0, [r0] - cmp r0, 0x4 - bhi _0810F218 - movs r0, 0 - b _0810F282 - .align 2, 0 -_0810F214: .4byte gUnknown_0203925A -_0810F218: - cmp r1, 0x40 - bne _0810F22C - cmp r2, 0 - bne _0810F240 - ldr r0, _0810F228 @ =gUnknown_0203925B - ldrb r4, [r0] - movs r6, 0x1 - b _0810F244 - .align 2, 0 -_0810F228: .4byte gUnknown_0203925B -_0810F22C: - cmp r3, 0x80 - bne _0810F240 - cmp r5, 0x4 - bne _0810F240 - ldr r0, _0810F288 @ =gUnknown_0203925B - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r6, 0x1 -_0810F240: - cmp r6, 0 - beq _0810F280 -_0810F244: - adds r0, r4, 0 - movs r1, 0x5 - bl GlassWorkshopUpdateScrollIndicators - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x9 - movs r3, 0xA - bl MenuFillWindowRectWithBlankTile - movs r5, 0 - ldr r7, _0810F28C @ =gUnknown_083F83C0 -_0810F25C: - lsls r0, r4, 2 - adds r0, r7 - ldr r0, [r0] - lsls r2, r5, 1 - adds r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0810F25C -_0810F280: - adds r0, r6, 0 -_0810F282: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810F288: .4byte gUnknown_0203925B -_0810F28C: .4byte gUnknown_083F83C0 - thumb_func_end sub_810F1F4 - - thumb_func_start sub_810F290 -sub_810F290: @ 810F290 - push {lr} - ldr r2, _0810F2B0 @ =gUnknown_0203925C - ldrb r1, [r2] - lsrs r0, r1, 1 - cmp r0, 0x1 - beq _0810F2AC - movs r0, 0x2 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - movs r1, 0x2C - movs r2, 0x8 - bl CreateVerticalScrollIndicators -_0810F2AC: - pop {r0} - bx r0 - .align 2, 0 -_0810F2B0: .4byte gUnknown_0203925C - thumb_func_end sub_810F290 - - thumb_func_start sub_810F2B4 -sub_810F2B4: @ 810F2B4 - push {lr} - ldr r2, _0810F2D8 @ =gUnknown_0203925C - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810F2D2 - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x1 - movs r1, 0x2C - movs r2, 0x58 - bl CreateVerticalScrollIndicators -_0810F2D2: - pop {r0} - bx r0 - .align 2, 0 -_0810F2D8: .4byte gUnknown_0203925C - thumb_func_end sub_810F2B4 - - thumb_func_start GlassWorkshopUpdateScrollIndicators -GlassWorkshopUpdateScrollIndicators: @ 810F2DC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - cmp r4, 0 - bne _0810F300 - ldr r0, _0810F2FC @ =gUnknown_0203925C - ldrb r1, [r0] - movs r2, 0x2 - eors r1, r2 - strb r1, [r0] - movs r0, 0 - bl DestroyVerticalScrollIndicator - b _0810F304 - .align 2, 0 -_0810F2FC: .4byte gUnknown_0203925C -_0810F300: - bl sub_810F290 -_0810F304: - adds r1, r4, r5 - ldr r0, _0810F314 @ =gUnknown_0203925A - ldrb r0, [r0] - cmp r1, r0 - bge _0810F318 - bl sub_810F2B4 - b _0810F32C - .align 2, 0 -_0810F314: .4byte gUnknown_0203925A -_0810F318: - cmp r1, r0 - bne _0810F32C - ldr r0, _0810F334 @ =gUnknown_0203925C - ldrb r1, [r0] - movs r2, 0x1 - eors r1, r2 - strb r1, [r0] - movs r0, 0x1 - bl DestroyVerticalScrollIndicator -_0810F32C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F334: .4byte gUnknown_0203925C - thumb_func_end GlassWorkshopUpdateScrollIndicators - - thumb_func_start SpawnCameraDummy -SpawnCameraDummy: @ 810F338 - push {lr} - sub sp, 0x8 - ldr r0, _0810F380 @ =gSaveBlock1 - ldrh r3, [r0] - adds r3, 0x7 - lsls r3, 16 - asrs r3, 16 - ldrh r0, [r0, 0x2] - adds r0, 0x7 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - movs r0, 0x3 - str r0, [sp, 0x4] - movs r0, 0x7 - movs r1, 0x8 - movs r2, 0x7F - bl SpawnSpecialFieldObjectParametrized - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810F384 @ =gMapObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r1, 0x4] - bl CameraObjectSetFollowedObjectId - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0810F380: .4byte gSaveBlock1 -_0810F384: .4byte gMapObjects - thumb_func_end SpawnCameraDummy - - thumb_func_start RemoveCameraDummy -RemoveCameraDummy: @ 810F388 - push {lr} - bl GetPlayerAvatarObjectId - lsls r0, 24 - lsrs r0, 24 - bl CameraObjectSetFollowedObjectId - ldr r0, _0810F3A8 @ =gSaveBlock1 - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x7F - bl RemoveFieldObjectByLocalIdAndMap - pop {r0} - bx r0 - .align 2, 0 -_0810F3A8: .4byte gSaveBlock1 - thumb_func_end RemoveCameraDummy - - thumb_func_start GetPokeblockNameByMonNature -GetPokeblockNameByMonNature: @ 810F3AC - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F3D4 @ =gPlayerParty - adds r0, r1 - bl GetNature - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810F3D8 @ =gStringVar1 - bl sub_810CB68 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0810F3D4: .4byte gPlayerParty -_0810F3D8: .4byte gStringVar1 - thumb_func_end GetPokeblockNameByMonNature - - thumb_func_start GetSecretBaseNearbyMapName -GetSecretBaseNearbyMapName: @ 810F3DC - push {r4,lr} - ldr r4, _0810F3FC @ =gStringVar1 - ldr r0, _0810F400 @ =0x00004026 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0 - bl sub_80FBFB4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810F3FC: .4byte gStringVar1 -_0810F400: .4byte 0x00004026 - thumb_func_end GetSecretBaseNearbyMapName - - thumb_func_start sub_810F404 -sub_810F404: @ 810F404 - push {lr} - movs r0, 0x20 - bl sub_8053108 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_810F404 - - thumb_func_start sub_810F414 -sub_810F414: @ 810F414 - push {lr} - ldr r0, _0810F420 @ =gStringVar1 - bl sub_8135FF4 - pop {r0} - bx r0 - .align 2, 0 -_0810F420: .4byte gStringVar1 - thumb_func_end sub_810F414 - - thumb_func_start sub_810F424 -sub_810F424: @ 810F424 - push {r4,r5,lr} - ldr r2, _0810F458 @ =gSaveBlock1 - ldr r1, _0810F45C @ =0x00002dd4 - adds r0, r2, r1 - ldrb r1, [r0] - lsls r1, 25 - ldr r0, _0810F460 @ =0x00002dd6 - adds r2, r0 - lsrs r1, 25 - ldrh r2, [r2] - adds r1, r2 - ldr r2, _0810F464 @ =gUnknown_083F83E0 - ldr r0, _0810F468 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - adds r0, r2 - ldrb r0, [r0] - adds r5, r1, r0 - movs r0, 0x2 - bl GetPriceReduction - lsls r0, 24 - cmp r0, 0 - bne _0810F470 - ldr r4, _0810F46C @ =gUnknown_083F83EC - b _0810F472 - .align 2, 0 -_0810F458: .4byte gSaveBlock1 -_0810F45C: .4byte 0x00002dd4 -_0810F460: .4byte 0x00002dd6 -_0810F464: .4byte gUnknown_083F83E0 -_0810F468: .4byte gSpecialVar_0x8004 -_0810F46C: .4byte gUnknown_083F83EC -_0810F470: - ldr r4, _0810F484 @ =gUnknown_083F83F8 -_0810F472: - adds r0, r5, 0 - movs r1, 0xC - bl __umodsi3 - adds r0, r4 - ldrb r0, [r0] - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810F484: .4byte gUnknown_083F83F8 - thumb_func_end sub_810F424 - - thumb_func_start sub_810F488 -sub_810F488: @ 810F488 - push {lr} - ldr r1, _0810F4A0 @ =gSpecialVar_0x8004 - ldr r0, _0810F4A4 @ =0x00000277 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F4A8 - movs r0, 0x1 - b _0810F4AA - .align 2, 0 -_0810F4A0: .4byte gSpecialVar_0x8004 -_0810F4A4: .4byte 0x00000277 -_0810F4A8: - movs r0, 0 -_0810F4AA: - pop {r1} - bx r1 - thumb_func_end sub_810F488 - - thumb_func_start sub_810F4B0 -sub_810F4B0: @ 810F4B0 - push {lr} - ldr r1, _0810F4C8 @ =gSpecialVar_0x8004 - movs r0, 0x9E - lsls r0, 2 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F4CC - movs r0, 0x1 - b _0810F4CE - .align 2, 0 -_0810F4C8: .4byte gSpecialVar_0x8004 -_0810F4CC: - movs r0, 0 -_0810F4CE: - pop {r1} - bx r1 - thumb_func_end sub_810F4B0 - - thumb_func_start sub_810F4D4 -sub_810F4D4: @ 810F4D4 - push {lr} - ldr r1, _0810F4EC @ =gSpecialVar_0x8004 - ldr r0, _0810F4F0 @ =0x00000279 - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F4F4 - movs r0, 0x1 - b _0810F4F6 - .align 2, 0 -_0810F4EC: .4byte gSpecialVar_0x8004 -_0810F4F0: .4byte 0x00000279 -_0810F4F4: - movs r0, 0 -_0810F4F6: - pop {r1} - bx r1 - thumb_func_end sub_810F4D4 - - thumb_func_start sub_810F4FC -sub_810F4FC: @ 810F4FC - push {lr} - ldr r1, _0810F514 @ =gSpecialVar_0x8004 - ldr r0, _0810F518 @ =0x0000027a - strh r0, [r1] - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F51C - movs r0, 0x1 - b _0810F51E - .align 2, 0 -_0810F514: .4byte gSpecialVar_0x8004 -_0810F518: .4byte 0x0000027a -_0810F51C: - movs r0, 0 -_0810F51E: - pop {r1} - bx r1 - thumb_func_end sub_810F4FC - - thumb_func_start LeadMonHasEffortRibbon -LeadMonHasEffortRibbon: @ 810F524 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F548 @ =gPlayerParty - adds r0, r1 - movs r1, 0x47 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0810F548: .4byte gPlayerParty - thumb_func_end LeadMonHasEffortRibbon - - thumb_func_start GivLeadMonEffortRibbon -GivLeadMonEffortRibbon: @ 810F54C - push {lr} - sub sp, 0x4 - movs r0, 0x2A - bl sav12_xor_increment - ldr r0, _0810F580 @ =0x0000083b - bl FlagSet - movs r1, 0x1 - mov r0, sp - strb r1, [r0] - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F584 @ =gPlayerParty - adds r0, r1 - movs r1, 0x47 - mov r2, sp - bl SetMonData - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0810F580: .4byte 0x0000083b -_0810F584: .4byte gPlayerParty - thumb_func_end GivLeadMonEffortRibbon - - thumb_func_start GetLeadMonEVCount -GetLeadMonEVCount: @ 810F588 - push {lr} - bl GetLeadMonIndex - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, _0810F5AC @ =gPlayerParty - adds r0, r1 - bl GetMonEVCount - lsls r0, 16 - ldr r1, _0810F5B0 @ =0x01fd0000 - cmp r0, r1 - bhi _0810F5B4 - movs r0, 0 - b _0810F5B6 - .align 2, 0 -_0810F5AC: .4byte gPlayerParty -_0810F5B0: .4byte 0x01fd0000 -_0810F5B4: - movs r0, 0x1 -_0810F5B6: - pop {r1} - bx r1 - thumb_func_end GetLeadMonEVCount - - thumb_func_start sub_810F5BC -sub_810F5BC: @ 810F5BC - push {lr} - movs r0, 0xC7 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0810F610 - ldr r0, _0810F5E8 @ =gSaveBlock1 - ldrh r1, [r0, 0x4] - movs r0, 0x83 - lsls r0, 3 - cmp r1, r0 - bne _0810F610 - subs r0, 0x75 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F5F0 - ldr r0, _0810F5EC @ =0x0000409a - movs r1, 0x4 - b _0810F602 - .align 2, 0 -_0810F5E8: .4byte gSaveBlock1 -_0810F5EC: .4byte 0x0000409a -_0810F5F0: - movs r0, 0xE9 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0810F610 - ldr r0, _0810F60C @ =0x0000409a - movs r1, 0x5 -_0810F602: - bl VarSet - movs r0, 0x1 - b _0810F612 - .align 2, 0 -_0810F60C: .4byte 0x0000409a -_0810F610: - movs r0, 0 -_0810F612: - pop {r1} - bx r1 - thumb_func_end sub_810F5BC - - thumb_func_start sub_810F618 -sub_810F618: @ 810F618 - push {lr} - ldr r0, _0810F624 @ =0x0000085f - bl FlagSet - pop {r0} - bx r0 - .align 2, 0 -_0810F624: .4byte 0x0000085f - thumb_func_end sub_810F618 - - thumb_func_start PutZigzagoonInPlayerParty -PutZigzagoonInPlayerParty: @ 810F628 - push {r4,r5,lr} - sub sp, 0x14 - ldr r5, _0810F690 @ =gPlayerParty - movs r1, 0x90 - lsls r1, 1 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - str r4, [sp, 0xC] - adds r0, r5, 0 - movs r2, 0x7 - movs r3, 0x20 - bl CreateMon - movs r1, 0x1 - add r0, sp, 0x10 - strh r1, [r0] - adds r0, r5, 0 - movs r1, 0x2E - add r2, sp, 0x10 - bl SetMonData - add r1, sp, 0x10 - movs r0, 0x21 - strh r0, [r1] - adds r0, r5, 0 - movs r1, 0xD - add r2, sp, 0x10 - bl SetMonData - add r0, sp, 0x10 - strh r4, [r0] - adds r0, r5, 0 - movs r1, 0xE - add r2, sp, 0x10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xF - add r2, sp, 0x10 - bl SetMonData - adds r0, r5, 0 - movs r1, 0x10 - add r2, sp, 0x10 - bl SetMonData - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F690: .4byte gPlayerParty - thumb_func_end PutZigzagoonInPlayerParty - - thumb_func_start IsStarterInParty -IsStarterInParty: @ 810F694 - push {r4-r6,lr} - ldr r0, _0810F6D0 @ =0x00004023 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl GetStarterPokemon - lsls r0, 16 - lsrs r6, r0, 16 - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _0810F6E2 -_0810F6B6: - movs r0, 0x64 - muls r0, r4 - ldr r1, _0810F6D4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, r6 - bne _0810F6D8 - movs r0, 0x1 - b _0810F6E4 - .align 2, 0 -_0810F6D0: .4byte 0x00004023 -_0810F6D4: .4byte gPlayerParty -_0810F6D8: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0810F6B6 -_0810F6E2: - movs r0, 0 -_0810F6E4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsStarterInParty - - thumb_func_start CheckFreePokemonStorageSpace -CheckFreePokemonStorageSpace: @ 810F6EC - push {r4-r6,lr} - movs r5, 0 -_0810F6F0: - movs r4, 0 - lsls r1, r5, 2 - adds r1, r5 - lsls r0, r1, 4 - subs r0, r1 - lsls r6, r0, 5 -_0810F6FC: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - ldr r1, _0810F718 @ =gUnknown_020300A4 - adds r0, r1 - adds r0, r6, r0 - movs r1, 0xB - movs r2, 0 - bl GetBoxMonData - cmp r0, 0 - bne _0810F71C - movs r0, 0x1 - b _0810F732 - .align 2, 0 -_0810F718: .4byte gUnknown_020300A4 -_0810F71C: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x1D - bls _0810F6FC - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0xD - bls _0810F6F0 - movs r0, 0 -_0810F732: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CheckFreePokemonStorageSpace - - thumb_func_start IsPokerusInParty -IsPokerusInParty: @ 810F738 - push {lr} - ldr r0, _0810F74C @ =gPlayerParty - movs r1, 0x3F - bl CheckPartyPokerus - lsls r0, 24 - cmp r0, 0 - beq _0810F750 - movs r0, 0x1 - b _0810F752 - .align 2, 0 -_0810F74C: .4byte gPlayerParty -_0810F750: - movs r0, 0 -_0810F752: - pop {r1} - bx r1 - thumb_func_end IsPokerusInParty - - thumb_func_start sub_810F758 -sub_810F758: @ 810F758 - push {lr} - ldr r0, _0810F798 @ =sub_810F7A8 - movs r1, 0x9 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810F79C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0810F7A0 @ =gSpecialVar_0x8005 - ldrh r2, [r0] - movs r0, 0 - strh r2, [r1, 0x8] - strh r0, [r1, 0xA] - strh r0, [r1, 0xC] - strh r0, [r1, 0xE] - ldr r0, _0810F7A4 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - strh r0, [r1, 0x10] - movs r0, 0x5 - strh r0, [r1, 0x12] - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0xD6 - bl PlaySE - pop {r0} - bx r0 - .align 2, 0 -_0810F798: .4byte sub_810F7A8 -_0810F79C: .4byte gTasks -_0810F7A0: .4byte gSpecialVar_0x8005 -_0810F7A4: .4byte gSpecialVar_0x8004 - thumb_func_end sub_810F758 - - thumb_func_start sub_810F7A8 -sub_810F7A8: @ 810F7A8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810F810 @ =gTasks - adds r4, r0, r1 - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _0810F808 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0810F808 - ldrh r0, [r4, 0x8] - negs r0, r0 - strh r0, [r4, 0x8] - ldrh r0, [r4, 0x10] - negs r0, r0 - strh r0, [r4, 0x10] - movs r2, 0x8 - ldrsh r0, [r4, r2] - movs r2, 0x10 - ldrsh r1, [r4, r2] - bl SetCameraPanning - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x8 - bne _0810F808 - adds r0, r5, 0 - bl sub_810F814 - bl InstallCameraPanAheadCallback -_0810F808: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810F810: .4byte gTasks - thumb_func_end sub_810F7A8 - - thumb_func_start sub_810F814 -sub_810F814: @ 810F814 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_810F814 - - thumb_func_start sub_810F828 -sub_810F828: @ 810F828 - push {lr} - movs r0, 0xAE - lsls r0, 2 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_810F828 - - thumb_func_start SetRoute119Weather -SetRoute119Weather: @ 810F83C - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810F858 - movs r0, 0x14 - bl SetSav1Weather -_0810F858: - pop {r0} - bx r0 - thumb_func_end SetRoute119Weather - - thumb_func_start SetRoute123Weather -SetRoute123Weather: @ 810F85C - push {lr} - bl get_map_light_from_warp0 - lsls r0, 24 - lsrs r0, 24 - bl is_light_level_1_2_3_5_or_6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810F878 - movs r0, 0x15 - bl SetSav1Weather -_0810F878: - pop {r0} - bx r0 - thumb_func_end SetRoute123Weather - - thumb_func_start GetLeadMonIndex -GetLeadMonIndex: @ 810F87C - push {r4-r6,lr} - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - cmp r5, r6 - bcs _0810F8CA -_0810F88C: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0810F8BC @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _0810F8C0 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _0810F8C0 - adds r0, r5, 0 - b _0810F8CC - .align 2, 0 -_0810F8BC: .4byte gPlayerParty -_0810F8C0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r6 - bcc _0810F88C -_0810F8CA: - movs r0, 0 -_0810F8CC: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetLeadMonIndex - - thumb_func_start ScriptGetPartyMonSpecies -ScriptGetPartyMonSpecies: @ 810F8D4 - push {lr} - ldr r0, _0810F8F4 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0810F8F8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .align 2, 0 -_0810F8F4: .4byte gSpecialVar_0x8004 -_0810F8F8: .4byte gPlayerParty - thumb_func_end ScriptGetPartyMonSpecies - - thumb_func_start sub_810F8FC -sub_810F8FC: @ 810F8FC - push {lr} - movs r0, 0x6 - bl sub_805ADDC - pop {r0} - bx r0 - thumb_func_end sub_810F8FC - - thumb_func_start sub_810F908 -sub_810F908: @ 810F908 - push {r4,lr} - ldr r0, _0810F928 @ =0x000040c2 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - adds r3, r0, 0 - ldr r2, _0810F92C @ =gLocalTime - movs r1, 0 - ldrsh r0, [r2, r1] - subs r0, r3 - cmp r0, 0x6 - ble _0810F930 - movs r0, 0 - b _0810F948 - .align 2, 0 -_0810F928: .4byte 0x000040c2 -_0810F92C: .4byte gLocalTime -_0810F930: - ldrh r1, [r2] - movs r4, 0 - ldrsh r0, [r2, r4] - cmp r0, 0 - blt _0810F946 - subs r1, r3 - movs r0, 0x7 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - b _0810F948 -_0810F946: - movs r0, 0x8 -_0810F948: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810F908 - - thumb_func_start sub_810F950 -sub_810F950: @ 810F950 - push {r4,lr} - ldr r0, _0810F964 @ =0x000040c2 - ldr r4, _0810F968 @ =gLocalTime - ldrh r1, [r4] - bl VarSet - ldrh r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810F964: .4byte 0x000040c2 -_0810F968: .4byte gLocalTime - thumb_func_end sub_810F950 - - thumb_func_start sub_810F96C -sub_810F96C: @ 810F96C - push {r4,lr} - ldr r0, _0810F994 @ =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0810F998 @ =gPlayerParty - adds r0, r1 - ldr r4, _0810F99C @ =gStringVar1 - movs r1, 0x7 - adds r2, r4, 0 - bl GetMonData - ldr r0, _0810F9A0 @ =gSaveBlock2 - adds r1, r4, 0 - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - beq _0810F9A4 - movs r0, 0x1 - b _0810F9A6 - .align 2, 0 -_0810F994: .4byte gSpecialVar_0x8004 -_0810F998: .4byte gPlayerParty -_0810F99C: .4byte gStringVar1 -_0810F9A0: .4byte gSaveBlock2 -_0810F9A4: - movs r0, 0 -_0810F9A6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_810F96C - - thumb_func_start sub_810F9AC -sub_810F9AC: @ 810F9AC - push {r4,r5,lr} - ldr r2, _0810F9C0 @ =gScriptResult - ldrh r1, [r2] - ldr r0, _0810F9C4 @ =0x0000270f - cmp r1, r0 - bls _0810F9C8 - movs r0, 0 - bl sub_80BF088 - b _0810FA4A - .align 2, 0 -_0810F9C0: .4byte gScriptResult -_0810F9C4: .4byte 0x0000270f -_0810F9C8: - ldr r0, _0810F9D8 @ =0x000003e7 - cmp r1, r0 - bls _0810F9E0 - ldr r4, _0810F9DC @ =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - adds r4, 0x1 - b _0810FA04 - .align 2, 0 -_0810F9D8: .4byte 0x000003e7 -_0810F9DC: .4byte gStringVar1 -_0810F9E0: - cmp r1, 0x63 - bls _0810F9F4 - ldr r4, _0810F9F0 @ =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r4, 0x2 - b _0810FA04 - .align 2, 0 -_0810F9F0: .4byte gStringVar1 -_0810F9F4: - cmp r1, 0x9 - bls _0810FA24 - ldr r4, _0810FA20 @ =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - adds r4, 0x3 -_0810FA04: - ldrh r5, [r2] - adds r0, r5, 0 - bl sub_80BF0B8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - b _0810FA4A - .align 2, 0 -_0810FA20: .4byte gStringVar1 -_0810FA24: - ldr r4, _0810FA50 @ =gStringVar1 - movs r0, 0xA1 - strb r0, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - adds r4, 0x4 - ldrh r5, [r2] - adds r0, r5, 0 - bl sub_80BF0B8 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN -_0810FA4A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810FA50: .4byte gStringVar1 - thumb_func_end sub_810F9AC - - thumb_func_start sub_810FA54 -sub_810FA54: @ 810FA54 - ldr r0, _0810FA68 @ =gSaveBlock1 - ldr r2, _0810FA6C @ =0x000013c2 - adds r1, r0, r2 - movs r2, 0 - strh r2, [r1] - ldr r1, _0810FA70 @ =0x000013c4 - adds r0, r1 - strh r2, [r0] - bx lr - .align 2, 0 -_0810FA68: .4byte gSaveBlock1 -_0810FA6C: .4byte 0x000013c2 -_0810FA70: .4byte 0x000013c4 - thumb_func_end sub_810FA54 - - thumb_func_start sub_810FA74 -sub_810FA74: @ 810FA74 - push {lr} - bl sub_810FF30 - lsls r0, 24 - cmp r0, 0 - beq _0810FA90 - bl sub_810FCE8 - ldr r0, _0810FA94 @ =gSaveBlock1 - ldr r1, _0810FA98 @ =gSaveBlock2 - ldrh r1, [r1, 0xE] - ldr r2, _0810FA9C @ =0x000013c4 - adds r0, r2 - strh r1, [r0] -_0810FA90: - pop {r0} - bx r0 - .align 2, 0 -_0810FA94: .4byte gSaveBlock1 -_0810FA98: .4byte gSaveBlock2 -_0810FA9C: .4byte 0x000013c4 - thumb_func_end sub_810FA74 - - thumb_func_start sub_810FAA0 -sub_810FAA0: @ 810FAA0 - push {r4,lr} - ldr r4, _0810FAF0 @ =gSaveBlock1 - ldr r1, _0810FAF4 @ =0x000013c2 - adds r0, r4, r1 - ldrh r0, [r0] - lsrs r0, 7 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810FAE8 - bl sub_810FF48 - bl sub_810FD80 - ldr r0, _0810FAF8 @ =gSaveBlock2 - ldrh r1, [r0, 0xE] - ldr r2, _0810FAFC @ =0x000013c4 - adds r0, r4, r2 - strh r1, [r0] - ldr r0, _0810FB00 @ =0x00000315 - bl FlagReset - ldr r0, _0810FB04 @ =0x00000316 - bl FlagReset - ldr r0, _0810FB08 @ =0x00000317 - bl FlagReset - movs r0, 0xC6 - lsls r0, 2 - bl FlagReset - ldr r0, _0810FB0C @ =0x00004095 - movs r1, 0x1 - bl VarSet -_0810FAE8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810FAF0: .4byte gSaveBlock1 -_0810FAF4: .4byte 0x000013c2 -_0810FAF8: .4byte gSaveBlock2 -_0810FAFC: .4byte 0x000013c4 -_0810FB00: .4byte 0x00000315 -_0810FB04: .4byte 0x00000316 -_0810FB08: .4byte 0x00000317 -_0810FB0C: .4byte 0x00004095 - thumb_func_end sub_810FAA0 - - thumb_func_start sub_810FB10 -sub_810FB10: @ 810FB10 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0810FB54 @ =0x00004095 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _0810FB80 - ldr r0, _0810FB58 @ =gSaveBlock1 - ldr r1, _0810FB5C @ =0x000013c2 - adds r4, r0, r1 - ldrh r2, [r4] - movs r1, 0x7F - ands r1, r2 - ldr r0, _0810FB60 @ =gUnknown_083F8404 - adds r0, r5, r0 - ldrb r0, [r0] - adds r1, r0 - cmp r1, 0x13 - ble _0810FB7C - bl sub_810FCB0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bhi _0810FB68 - bl sub_810FB9C - ldrh r1, [r4] - ldr r0, _0810FB64 @ =0x0000ff80 - ands r0, r1 - b _0810FB7E - .align 2, 0 -_0810FB54: .4byte 0x00004095 -_0810FB58: .4byte gSaveBlock1 -_0810FB5C: .4byte 0x000013c2 -_0810FB60: .4byte gUnknown_083F8404 -_0810FB64: .4byte 0x0000ff80 -_0810FB68: - ldrh r0, [r4] - ldr r1, _0810FB78 @ =0x0000ff80 - ands r1, r0 - movs r0, 0x14 - orrs r1, r0 - strh r1, [r4] - b _0810FB80 - .align 2, 0 -_0810FB78: .4byte 0x0000ff80 -_0810FB7C: - adds r0, r2, r0 -_0810FB7E: - strh r0, [r4] -_0810FB80: - ldr r0, _0810FB94 @ =gSaveBlock1 - ldr r1, _0810FB98 @ =0x000013c2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x7F - ands r0, r1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810FB94: .4byte gSaveBlock1 -_0810FB98: .4byte 0x000013c2 - thumb_func_end sub_810FB10 - - thumb_func_start sub_810FB9C -sub_810FB9C: @ 810FB9C - push {r4-r7,lr} - sub sp, 0x4 - movs r3, 0 - movs r5, 0 - ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2 - movs r6, 0x1 -_0810FBA8: - ldrh r1, [r7] - ldr r0, _0810FBDC @ =gUnknown_083F8408 - adds r0, r5, r0 - ldrb r4, [r0] - asrs r1, r4 - ands r1, r6 - cmp r1, 0 - bne _0810FBE0 - adds r3, r5, 0 - str r3, [sp] - bl Random - adds r1, r6, 0 - ands r1, r0 - ldr r3, [sp] - cmp r1, 0 - beq _0810FBE0 - adds r0, r6, 0 - lsls r0, r4 - ldrh r1, [r7] - orrs r0, r1 - strh r0, [r7] - b _0810FC00 - .align 2, 0 -_0810FBD8: .4byte gSaveBlock1 + 0x13C2 -_0810FBDC: .4byte gUnknown_083F8408 -_0810FBE0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0810FBA8 - ldr r2, _0810FC0C @ =gSaveBlock1 - ldr r0, _0810FC10 @ =0x000013c2 - adds r2, r0 - ldr r1, _0810FC14 @ =gUnknown_083F8408 - adds r1, r3, r1 - movs r0, 0x1 - ldrb r1, [r1] - lsls r0, r1 - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] -_0810FC00: - adds r0, r3, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810FC0C: .4byte gSaveBlock1 -_0810FC10: .4byte 0x000013c2 -_0810FC14: .4byte gUnknown_083F8408 - thumb_func_end sub_810FB9C - - thumb_func_start sub_810FC18 -sub_810FC18: @ 810FC18 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - movs r0, 0 - mov r8, r0 - bl sub_810FCB0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _0810FC3E - movs r0, 0 - b _0810FC94 -_0810FC34: - lsls r4, r6 - ldrh r0, [r2] - eors r4, r0 - strh r4, [r2] - b _0810FC92 -_0810FC3E: - movs r5, 0 - ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2 - movs r4, 0x1 -_0810FC44: - ldrh r1, [r2] - ldr r7, _0810FCA4 @ =gUnknown_083F8410 - adds r0, r5, r7 - ldrb r6, [r0] - asrs r1, r6 - ands r1, r4 - cmp r1, 0 - beq _0810FC66 - mov r8, r5 - str r2, [sp] - bl Random - adds r1, r4, 0 - ands r1, r0 - ldr r2, [sp] - cmp r1, 0 - bne _0810FC34 -_0810FC66: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x7 - bls _0810FC44 - ldr r0, _0810FCA8 @ =gSaveBlock1 - ldr r1, _0810FCAC @ =0x000013c2 - adds r4, r0, r1 - ldrh r1, [r4] - mov r2, r8 - adds r0, r2, r7 - ldrb r2, [r0] - adds r0, r1, 0 - asrs r0, r2 - movs r3, 0x1 - ands r0, r3 - cmp r0, 0 - beq _0810FC92 - adds r0, r3, 0 - lsls r0, r2 - eors r1, r0 - strh r1, [r4] -_0810FC92: - mov r0, r8 -_0810FC94: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0810FCA0: .4byte gSaveBlock1 + 0x13C2 -_0810FCA4: .4byte gUnknown_083F8410 -_0810FCA8: .4byte gSaveBlock1 -_0810FCAC: .4byte 0x000013c2 - thumb_func_end sub_810FC18 - - thumb_func_start sub_810FCB0 -sub_810FCB0: @ 810FCB0 - push {r4,r5,lr} - movs r3, 0 - movs r2, 0 - ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2 - ldrh r4, [r0] - movs r5, 0x1 -_0810FCBC: - adds r1, r2, 0 - adds r1, 0x8 - adds r0, r4, 0 - asrs r0, r1 - ands r0, r5 - cmp r0, 0 - beq _0810FCD0 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_0810FCD0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _0810FCBC - adds r0, r3, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0810FCE4: .4byte gSaveBlock1 + 0x13C2 - thumb_func_end sub_810FCB0 - - thumb_func_start sub_810FCE8 -sub_810FCE8: @ 810FCE8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r2, _0810FD08 @ =gSaveBlock2 - ldrh r1, [r2, 0xE] - ldr r0, _0810FD0C @ =0x000003e6 - cmp r1, r0 - bhi _0810FD54 - ldr r7, _0810FD10 @ =gSaveBlock1 - adds r6, r2, 0 - ldr r0, _0810FD14 @ =0x000013c4 - adds r0, r7 - mov r8, r0 - b _0810FD36 - .align 2, 0 -_0810FD08: .4byte gSaveBlock2 -_0810FD0C: .4byte 0x000003e6 -_0810FD10: .4byte gSaveBlock1 -_0810FD14: .4byte 0x000013c4 -_0810FD18: - ldrh r1, [r6, 0xE] - ldr r0, _0810FD4C @ =0x000013c4 - adds r4, r7, r0 - ldrh r0, [r4] - subs r1, r0 - cmp r1, 0xB - ble _0810FD54 - bl sub_810FC18 - ldrh r0, [r4] - adds r0, 0xC - strh r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0810FD36: - bl sub_810FCB0 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _0810FD50 - ldrh r0, [r6, 0xE] - mov r1, r8 - strh r0, [r1] - b _0810FD54 - .align 2, 0 -_0810FD4C: .4byte 0x000013c4 -_0810FD50: - cmp r5, 0x8 - bne _0810FD18 -_0810FD54: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810FCE8 - - thumb_func_start sub_810FD60 -sub_810FD60: @ 810FD60 - ldr r0, _0810FD74 @ =gSaveBlock1 - ldr r1, _0810FD78 @ =0x000013c2 - adds r0, r1 - ldrh r0, [r0] - ldr r1, _0810FD7C @ =gSpecialVar_0x8004 - ldrh r1, [r1] - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - bx lr - .align 2, 0 -_0810FD74: .4byte gSaveBlock1 -_0810FD78: .4byte 0x000013c2 -_0810FD7C: .4byte gSpecialVar_0x8004 - thumb_func_end sub_810FD60 - - thumb_func_start sub_810FD80 -sub_810FD80: @ 810FD80 - ldr r2, _0810FDA4 @ =gSaveBlock1 - ldr r0, _0810FDA8 @ =0x000013c2 - adds r2, r0 - ldrh r1, [r2] - movs r3, 0x80 - lsls r3, 6 - adds r0, r3, 0 - orrs r0, r1 - movs r3, 0x80 - lsls r3, 1 - adds r1, r3, 0 - orrs r0, r1 - movs r3, 0x80 - lsls r3, 3 - adds r1, r3, 0 - orrs r0, r1 - strh r0, [r2] - bx lr - .align 2, 0 -_0810FDA4: .4byte gSaveBlock1 -_0810FDA8: .4byte 0x000013c2 - thumb_func_end sub_810FD80 - - thumb_func_start sub_810FDAC -sub_810FDAC: @ 810FDAC - push {lr} - movs r3, 0 - movs r2, 0 - ldr r0, _0810FDC8 @ =gSpecialVar_0x8004 - ldrh r0, [r0] - subs r0, 0x8 - cmp r0, 0x7 - bhi _0810FE0C - lsls r0, 2 - ldr r1, _0810FDCC @ =_0810FDD0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810FDC8: .4byte gSpecialVar_0x8004 -_0810FDCC: .4byte _0810FDD0 - .align 2, 0 -_0810FDD0: - .4byte _0810FE0C - .4byte _0810FE0C - .4byte _0810FDF0 - .4byte _0810FDF6 - .4byte _0810FDFC - .4byte _0810FE02 - .4byte _0810FE08 - .4byte _0810FE0C -_0810FDF0: - movs r3, 0 - movs r2, 0x3 - b _0810FE0C -_0810FDF6: - movs r3, 0 - movs r2, 0x1 - b _0810FE0C -_0810FDFC: - movs r3, 0x1 - movs r2, 0 - b _0810FE0C -_0810FE02: - movs r3, 0 - movs r2, 0x4 - b _0810FE0C -_0810FE08: - movs r3, 0x1 - movs r2, 0x5 -_0810FE0C: - ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8 - adds r1, r3, 0 - bl sub_810FE1C - pop {r0} - bx r0 - .align 2, 0 -_0810FE18: .4byte gSaveBlock1 + 0x30B8 - thumb_func_end sub_810FDAC - - thumb_func_start sub_810FE1C -sub_810FE1C: @ 810FE1C - push {r4,lr} - lsls r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsrs r1, 20 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0810FED0 - cmp r2, 0x5 - bhi _0810FEBC - lsls r0, r2, 2 - ldr r1, _0810FE3C @ =_0810FE40 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810FE3C: .4byte _0810FE40 - .align 2, 0 -_0810FE40: - .4byte _0810FEBC - .4byte _0810FE58 - .4byte _0810FE6C - .4byte _0810FE80 - .4byte _0810FE94 - .4byte _0810FEA8 -_0810FE58: - ldr r0, _0810FE64 @ =gStringVar1 - ldr r1, _0810FE68 @ =gOtherText_Steven - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FE64: .4byte gStringVar1 -_0810FE68: .4byte gOtherText_Steven -_0810FE6C: - ldr r0, _0810FE78 @ =gStringVar1 - ldr r1, _0810FE7C @ =gOtherText_Brawly - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FE78: .4byte gStringVar1 -_0810FE7C: .4byte gOtherText_Brawly -_0810FE80: - ldr r0, _0810FE8C @ =gStringVar1 - ldr r1, _0810FE90 @ =gOtherText_Winona - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FE8C: .4byte gStringVar1 -_0810FE90: .4byte gOtherText_Winona -_0810FE94: - ldr r0, _0810FEA0 @ =gStringVar1 - ldr r1, _0810FEA4 @ =gOtherText_Phoebe - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FEA0: .4byte gStringVar1 -_0810FEA4: .4byte gOtherText_Phoebe -_0810FEA8: - ldr r0, _0810FEB4 @ =gStringVar1 - ldr r1, _0810FEB8 @ =gOtherText_Glacia - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FEB4: .4byte gStringVar1 -_0810FEB8: .4byte gOtherText_Glacia -_0810FEBC: - ldr r0, _0810FEC8 @ =gStringVar1 - ldr r1, _0810FECC @ =gOtherText_Wallace - bl StringCopy - b _0810FEF2 - .align 2, 0 -_0810FEC8: .4byte gStringVar1 -_0810FECC: .4byte gOtherText_Wallace -_0810FED0: - ldr r4, _0810FEF8 @ =gStringVar1 - adds r0, r4, 0 - movs r2, 0x7 - bl StringCopyN - movs r0, 0xFF - strb r0, [r4, 0x7] - ldrb r0, [r4] - cmp r0, 0xFC - bne _0810FEF2 - ldrb r0, [r4, 0x1] - cmp r0, 0x15 - bne _0810FEF2 - adds r0, r4, 0 - movs r1, 0x1 - bl ConvertInternationalString -_0810FEF2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810FEF8: .4byte gStringVar1 - thumb_func_end sub_810FE1C - - thumb_func_start sub_810FEFC -sub_810FEFC: @ 810FEFC - push {lr} - ldr r0, _0810FF20 @ =0x00004095 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bne _0810FF2C - bl sub_810FA74 - ldr r0, _0810FF24 @ =gUnknown_02024D26 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0810FF28 - bl sub_810FB9C - b _0810FF2C - .align 2, 0 -_0810FF20: .4byte 0x00004095 -_0810FF24: .4byte gUnknown_02024D26 -_0810FF28: - bl sub_810FC18 -_0810FF2C: - pop {r0} - bx r0 - thumb_func_end sub_810FEFC - - thumb_func_start sub_810FF30 -sub_810FF30: @ 810FF30 - ldr r0, _0810FF40 @ =gSaveBlock1 - ldr r1, _0810FF44 @ =0x000013c2 - adds r0, r1 - ldrh r0, [r0] - lsrs r0, 7 - movs r1, 0x1 - ands r0, r1 - bx lr - .align 2, 0 -_0810FF40: .4byte gSaveBlock1 -_0810FF44: .4byte 0x000013c2 - thumb_func_end sub_810FF30 - - thumb_func_start sub_810FF48 -sub_810FF48: @ 810FF48 - ldr r0, _0810FF58 @ =gSaveBlock1 - ldr r1, _0810FF5C @ =0x000013c2 - adds r0, r1 - ldrh r2, [r0] - movs r1, 0x80 - orrs r1, r2 - strh r1, [r0] - bx lr - .align 2, 0 -_0810FF58: .4byte gSaveBlock1 -_0810FF5C: .4byte 0x000013c2 - thumb_func_end sub_810FF48 - - thumb_func_start sub_810FF60 -sub_810FF60: @ 810FF60 - push {lr} - ldr r0, _0810FF74 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_810FB10 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_0810FF74: .4byte gSpecialVar_0x8004 - thumb_func_end sub_810FF60 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_810CBB4.s b/asm/rom_810CBB4.s new file mode 100644 index 000000000..fee17ab5b --- /dev/null +++ b/asm/rom_810CBB4.s @@ -0,0 +1,6732 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start SetUpFieldMove_Flash +SetUpFieldMove_Flash: @ 810CBB4 + push {lr} + ldr r0, _0810CBDC @ =gMapHeader + ldrb r0, [r0, 0x15] + cmp r0, 0x1 + bne _0810CBF4 + ldr r0, _0810CBE0 @ =0x00000828 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _0810CBF4 + ldr r1, _0810CBE4 @ =gUnknown_0300485C + ldr r0, _0810CBE8 @ =sub_808AB90 + str r0, [r1] + ldr r1, _0810CBEC @ =gUnknown_03005CE4 + ldr r0, _0810CBF0 @ =sub_810CBFC + str r0, [r1] + movs r0, 0x1 + b _0810CBF6 + .align 2, 0 +_0810CBDC: .4byte gMapHeader +_0810CBE0: .4byte 0x00000828 +_0810CBE4: .4byte gUnknown_0300485C +_0810CBE8: .4byte sub_808AB90 +_0810CBEC: .4byte gUnknown_03005CE4 +_0810CBF0: .4byte sub_810CBFC +_0810CBF4: + movs r0, 0 +_0810CBF6: + pop {r1} + bx r1 + thumb_func_end SetUpFieldMove_Flash + + thumb_func_start sub_810CBFC +sub_810CBFC: @ 810CBFC + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CC24 @ =gUnknown_0202FF84 + ldr r1, _0810CC28 @ =gUnknown_03005CE0 + ldrb r1, [r1] + str r1, [r2] + ldr r2, _0810CC2C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _0810CC30 @ =sub_810CC34 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + pop {r0} + bx r0 + .align 2, 0 +_0810CC24: .4byte gUnknown_0202FF84 +_0810CC28: .4byte gUnknown_03005CE0 +_0810CC2C: .4byte gTasks +_0810CC30: .4byte sub_810CC34 + thumb_func_end sub_810CBFC + + thumb_func_start sub_810CC34 +sub_810CC34: @ 810CC34 + push {lr} + movs r0, 0xCF + bl PlaySE + ldr r0, _0810CC4C @ =0x00000828 + bl FlagSet + ldr r0, _0810CC50 @ =gUnknown_081B694A + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_0810CC4C: .4byte 0x00000828 +_0810CC50: .4byte gUnknown_081B694A + thumb_func_end sub_810CC34 + + thumb_func_start sub_810CC54 +sub_810CC54: @ 810CC54 + push {lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + pop {r0} + bx r0 + thumb_func_end sub_810CC54 + + thumb_func_start sub_810CC6C +sub_810CC6C: @ 810CC6C + push {lr} + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + pop {r0} + bx r0 + thumb_func_end sub_810CC6C + + thumb_func_start sub_810CC80 +sub_810CC80: @ 810CC80 + push {r4,lr} + sub sp, 0x8 + movs r0, 0 + bl SetVBlankCallback + movs r0, 0x80 + lsls r0, 19 + movs r1, 0 + strh r1, [r0] + adds r0, 0xC + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + subs r0, 0x2 + strh r1, [r0] + adds r0, 0x10 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + subs r0, 0x6 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + mov r0, sp + strh r1, [r0] + ldr r1, _0810CD34 @ =0x040000d4 + str r0, [r1] + movs r0, 0xC0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _0810CD38 @ =0x8100c000 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + movs r4, 0 + str r4, [sp, 0x4] + add r0, sp, 0x4 + str r0, [r1] + movs r0, 0xE0 + lsls r0, 19 + str r0, [r1, 0x4] + ldr r0, _0810CD3C @ =0x85000100 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r0, sp + strh r4, [r0] + str r0, [r1] + ldr r0, _0810CD40 @ =0x05000002 + str r0, [r1, 0x4] + ldr r0, _0810CD44 @ =0x810001ff + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + bl ResetPaletteFade + bl ResetTasks + bl ResetSpriteData + ldr r3, _0810CD48 @ =0x04000208 + ldrh r2, [r3] + strh r4, [r3] + ldr r4, _0810CD4C @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r0, _0810CD50 @ =sub_810CC6C + bl SetVBlankCallback + ldr r0, _0810CD54 @ =sub_810CC54 + bl SetMainCallback2 + bl sub_810CD5C + lsls r0, 24 + cmp r0, 0 + bne _0810CD2A + ldr r0, _0810CD58 @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_0810CD2A: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810CD34: .4byte 0x040000d4 +_0810CD38: .4byte 0x8100c000 +_0810CD3C: .4byte 0x85000100 +_0810CD40: .4byte 0x05000002 +_0810CD44: .4byte 0x810001ff +_0810CD48: .4byte 0x04000208 +_0810CD4C: .4byte 0x04000200 +_0810CD50: .4byte sub_810CC6C +_0810CD54: .4byte sub_810CC54 +_0810CD58: .4byte gMain + thumb_func_end sub_810CC80 + + thumb_func_start sub_810CD5C +sub_810CD5C: @ 810CD5C + push {r4-r7,lr} + bl get_map_light_from_warp0 + lsls r0, 24 + lsrs r6, r0, 24 + bl sav1_map_get_light_level + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r4, _0810CD9C @ =gUnknown_083F7FC4 + ldrb r0, [r4] + cmp r0, 0 + beq _0810CDB0 + adds r7, r4, 0 + adds r0, r4, 0x4 + mov r12, r0 +_0810CD7E: + lsls r2, r3, 3 + adds r1, r2, r7 + ldrb r0, [r1] + cmp r0, r6 + bne _0810CDA0 + ldrb r0, [r1, 0x1] + cmp r0, r5 + bne _0810CDA0 + mov r1, r12 + adds r0, r2, r1 + ldr r0, [r0] + bl _call_via_r0 + movs r0, 0x1 + b _0810CDB2 + .align 2, 0 +_0810CD9C: .4byte gUnknown_083F7FC4 +_0810CDA0: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 3 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _0810CD7E +_0810CDB0: + movs r0, 0 +_0810CDB2: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810CD5C + + thumb_func_start sub_810CDB8 +sub_810CDB8: @ 810CDB8 + push {r4-r6,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r5, r0, 24 + lsrs r4, r1, 24 + movs r3, 0 + ldr r1, _0810CDE4 @ =gUnknown_083F7FC4 + ldrb r0, [r1] + cmp r0, 0 + beq _0810CDF8 + adds r6, r1, 0 +_0810CDCE: + lsls r0, r3, 3 + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, r5 + bne _0810CDE8 + ldrb r0, [r2, 0x1] + cmp r0, r4 + bne _0810CDE8 + ldrb r0, [r2, 0x2] + b _0810CDFA + .align 2, 0 +_0810CDE4: .4byte gUnknown_083F7FC4 +_0810CDE8: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0810CDCE +_0810CDF8: + movs r0, 0 +_0810CDFA: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810CDB8 + + thumb_func_start fade_type_for_given_maplight_pair +fade_type_for_given_maplight_pair: @ 810CE00 + push {r4-r6,lr} + lsls r0, 24 + lsls r1, 24 + lsrs r5, r0, 24 + lsrs r4, r1, 24 + movs r3, 0 + ldr r1, _0810CE2C @ =gUnknown_083F7FC4 + ldrb r0, [r1] + cmp r0, 0 + beq _0810CE40 + adds r6, r1, 0 +_0810CE16: + lsls r0, r3, 3 + adds r2, r0, r6 + ldrb r0, [r2] + cmp r0, r5 + bne _0810CE30 + ldrb r0, [r2, 0x1] + cmp r0, r4 + bne _0810CE30 + ldrb r0, [r2, 0x3] + b _0810CE42 + .align 2, 0 +_0810CE2C: .4byte gUnknown_083F7FC4 +_0810CE30: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + lsls r0, r3, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0810CE16 +_0810CE40: + movs r0, 0 +_0810CE42: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end fade_type_for_given_maplight_pair + + thumb_func_start sub_810CE48 +sub_810CE48: @ 810CE48 + push {lr} + ldr r0, _0810CE58 @ =sub_810CE5C + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0810CE58: .4byte sub_810CE5C + thumb_func_end sub_810CE48 + + thumb_func_start sub_810CE5C +sub_810CE5C: @ 810CE5C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CE70 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _0810CE74 @ =sub_810CE78 + str r0, [r1] + bx lr + .align 2, 0 +_0810CE70: .4byte gTasks +_0810CE74: .4byte sub_810CE78 + thumb_func_end sub_810CE5C + + thumb_func_start sub_810CE78 +sub_810CE78: @ 810CE78 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r6, 0x80 + lsls r6, 19 + movs r5, 0 + strh r5, [r6] + ldr r0, _0810CEE8 @ =gCaveTransitionTiles + ldr r1, _0810CEEC @ =0x0600c000 + bl LZ77UnCompVram + ldr r0, _0810CEF0 @ =gCaveTransitionTilemap + ldr r1, _0810CEF4 @ =0x0600f800 + bl LZ77UnCompVram + ldr r0, _0810CEF8 @ =gCaveTransitionPalette_White + movs r1, 0xE0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0810CEFC @ =gUnknown_083F809C + movs r1, 0xE0 + movs r2, 0x10 + bl LoadPalette + ldr r1, _0810CF00 @ =REG_BLDCNT + ldr r2, _0810CF04 @ =0x00003e41 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0810CF08 @ =REG_BLDALPHA + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + subs r1, 0x48 + ldr r2, _0810CF0C @ =0x00001f0c + adds r0, r2, 0 + strh r0, [r1] + movs r1, 0x8A + lsls r1, 5 + adds r0, r1, 0 + strh r0, [r6] + ldr r1, _0810CF10 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810CF14 @ =sub_810CF18 + str r1, [r0] + movs r2, 0 + movs r1, 0x10 + strh r1, [r0, 0x8] + strh r2, [r0, 0xA] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810CEE8: .4byte gCaveTransitionTiles +_0810CEEC: .4byte 0x0600c000 +_0810CEF0: .4byte gCaveTransitionTilemap +_0810CEF4: .4byte 0x0600f800 +_0810CEF8: .4byte gCaveTransitionPalette_White +_0810CEFC: .4byte gUnknown_083F809C +_0810CF00: .4byte REG_BLDCNT +_0810CF04: .4byte 0x00003e41 +_0810CF08: .4byte REG_BLDALPHA +_0810CF0C: .4byte 0x00001f0c +_0810CF10: .4byte gTasks +_0810CF14: .4byte sub_810CF18 + thumb_func_end sub_810CE78 + + thumb_func_start sub_810CF18 +sub_810CF18: @ 810CF18 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CF44 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r2, [r3, 0xA] + movs r1, 0x80 + lsls r1, 5 + adds r0, r2, r1 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0810CF48 @ =REG_BLDALPHA + strh r0, [r1] + cmp r2, 0x10 + bhi _0810CF4C + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + b _0810CF54 + .align 2, 0 +_0810CF44: .4byte gTasks +_0810CF48: .4byte REG_BLDALPHA +_0810CF4C: + movs r0, 0 + strh r0, [r3, 0xC] + ldr r0, _0810CF58 @ =sub_810CF5C + str r0, [r3] +_0810CF54: + pop {r0} + bx r0 + .align 2, 0 +_0810CF58: .4byte sub_810CF5C + thumb_func_end sub_810CF18 + + thumb_func_start sub_810CF5C +sub_810CF5C: @ 810CF5C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CF94 @ =REG_BLDALPHA + ldr r3, _0810CF98 @ =0x00001010 + adds r1, r3, 0 + strh r1, [r2] + ldr r2, _0810CF9C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r4, r1, r2 + ldrh r1, [r4, 0xC] + cmp r1, 0x7 + bhi _0810CFA4 + adds r0, r1, 0x1 + strh r0, [r4, 0xC] + lsls r1, 1 + ldr r0, _0810CFA0 @ =gUnknown_083F809C + adds r0, r1, r0 + movs r2, 0x10 + subs r2, r1 + lsls r2, 16 + lsrs r2, 16 + movs r1, 0xE0 + bl LoadPalette + b _0810CFB6 + .align 2, 0 +_0810CF94: .4byte REG_BLDALPHA +_0810CF98: .4byte 0x00001010 +_0810CF9C: .4byte gTasks +_0810CFA0: .4byte gUnknown_083F809C +_0810CFA4: + ldr r0, _0810CFBC @ =gCaveTransitionPalette_White + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0810CFC0 @ =sub_810CFC4 + str r0, [r4] + movs r0, 0x8 + strh r0, [r4, 0xC] +_0810CFB6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810CFBC: .4byte gCaveTransitionPalette_White +_0810CFC0: .4byte sub_810CFC4 + thumb_func_end sub_810CF5C + + thumb_func_start sub_810CFC4 +sub_810CFC4: @ 810CFC4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810CFE4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldrh r2, [r1, 0xC] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _0810CFE8 + subs r0, r2, 0x1 + strh r0, [r1, 0xC] + b _0810CFF0 + .align 2, 0 +_0810CFE4: .4byte gTasks +_0810CFE8: + ldr r0, _0810CFF4 @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_0810CFF0: + pop {r0} + bx r0 + .align 2, 0 +_0810CFF4: .4byte gMain + thumb_func_end sub_810CFC4 + + thumb_func_start sub_810CFF8 +sub_810CFF8: @ 810CFF8 + push {lr} + ldr r0, _0810D008 @ =sub_810D00C + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0810D008: .4byte sub_810D00C + thumb_func_end sub_810CFF8 + + thumb_func_start sub_810D00C +sub_810D00C: @ 810D00C + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810D020 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _0810D024 @ =sub_810D028 + str r0, [r1] + bx lr + .align 2, 0 +_0810D020: .4byte gTasks +_0810D024: .4byte sub_810D028 + thumb_func_end sub_810D00C + + thumb_func_start sub_810D028 +sub_810D028: @ 810D028 + push {r4-r6,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + movs r6, 0x80 + lsls r6, 19 + movs r4, 0 + strh r4, [r6] + ldr r0, _0810D098 @ =gCaveTransitionTiles + ldr r1, _0810D09C @ =0x0600c000 + bl LZ77UnCompVram + ldr r0, _0810D0A0 @ =gCaveTransitionTilemap + ldr r1, _0810D0A4 @ =0x0600f800 + bl LZ77UnCompVram + ldr r0, _0810D0A8 @ =REG_BLDCNT + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r1, _0810D0AC @ =REG_BG0CNT + ldr r2, _0810D0B0 @ =0x00001f0c + adds r0, r2, 0 + strh r0, [r1] + movs r1, 0x8A + lsls r1, 5 + adds r0, r1, 0 + strh r0, [r6] + ldr r0, _0810D0B4 @ =gCaveTransitionPalette_White + movs r1, 0xE0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0810D0B8 @ =gCaveTransitionPalette_Black + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r1, _0810D0BC @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _0810D0C0 @ =sub_810D0C4 + str r1, [r0] + movs r2, 0 + movs r1, 0x10 + strh r1, [r0, 0x8] + strh r2, [r0, 0xA] + strh r2, [r0, 0xC] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810D098: .4byte gCaveTransitionTiles +_0810D09C: .4byte 0x0600c000 +_0810D0A0: .4byte gCaveTransitionTilemap +_0810D0A4: .4byte 0x0600f800 +_0810D0A8: .4byte REG_BLDCNT +_0810D0AC: .4byte REG_BG0CNT +_0810D0B0: .4byte 0x00001f0c +_0810D0B4: .4byte gCaveTransitionPalette_White +_0810D0B8: .4byte gCaveTransitionPalette_Black +_0810D0BC: .4byte gTasks +_0810D0C0: .4byte sub_810D0C4 + thumb_func_end sub_810D028 + + thumb_func_start sub_810D0C4 +sub_810D0C4: @ 810D0C4 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810D0F8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r1, [r3, 0xC] + cmp r1, 0xF + bhi _0810D100 + adds r2, r1, 0x1 + adds r0, r2, 0x1 + strh r0, [r3, 0xC] + movs r0, 0xF + subs r0, r1 + lsls r0, 1 + ldr r1, _0810D0FC @ =gUnknown_083F808C + adds r0, r1 + lsls r2, 17 + lsrs r2, 16 + movs r1, 0xE0 + bl LoadPalette + b _0810D114 + .align 2, 0 +_0810D0F8: .4byte gTasks +_0810D0FC: .4byte gUnknown_083F808C +_0810D100: + ldr r1, _0810D118 @ =REG_BLDALPHA + ldr r2, _0810D11C @ =0x00001010 + adds r0, r2, 0 + strh r0, [r1] + subs r1, 0x2 + ldr r2, _0810D120 @ =0x00003e41 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0810D124 @ =sub_810D128 + str r0, [r3] +_0810D114: + pop {r0} + bx r0 + .align 2, 0 +_0810D118: .4byte REG_BLDALPHA +_0810D11C: .4byte 0x00001010 +_0810D120: .4byte 0x00003e41 +_0810D124: .4byte sub_810D128 + thumb_func_end sub_810D0C4 + + thumb_func_start sub_810D128 +sub_810D128: @ 810D128 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810D158 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r3, r1, r2 + ldrh r0, [r3, 0xA] + movs r1, 0x10 + subs r1, r0 + lsls r1, 16 + movs r2, 0x80 + lsls r2, 21 + adds r0, r1, r2 + lsrs r0, 16 + ldr r2, _0810D15C @ =REG_BLDALPHA + strh r0, [r2] + cmp r1, 0 + beq _0810D160 + ldrh r0, [r3, 0xA] + adds r0, 0x1 + strh r0, [r3, 0xA] + b _0810D172 + .align 2, 0 +_0810D158: .4byte gTasks +_0810D15C: .4byte REG_BLDALPHA +_0810D160: + ldr r0, _0810D178 @ =gCaveTransitionPalette_Black + movs r1, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _0810D17C @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_0810D172: + pop {r0} + bx r0 + .align 2, 0 +_0810D178: .4byte gCaveTransitionPalette_Black +_0810D17C: .4byte gMain + thumb_func_end sub_810D128 + + thumb_func_start sub_810D180 +sub_810D180: @ 810D180 + push {r4-r7,lr} + sub sp, 0x4 + bl HealPlayerParty + ldr r4, _0810D1A0 @ =0x00000804 + adds r0, r4, 0 + bl FlagGet + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _0810D1A8 + ldr r0, _0810D1A4 @ =gUnknown_02039324 + strb r1, [r0] + b _0810D1B4 + .align 2, 0 +_0810D1A0: .4byte 0x00000804 +_0810D1A4: .4byte gUnknown_02039324 +_0810D1A8: + ldr r1, _0810D1E8 @ =gUnknown_02039324 + movs r0, 0 + strb r0, [r1] + adds r0, r4, 0 + bl FlagSet +_0810D1B4: + movs r0, 0x1 + bl sub_8053108 + cmp r0, 0 + bne _0810D1D4 + ldr r2, _0810D1EC @ =gSaveBlock2 + ldrh r1, [r2, 0xE] + lsls r1, 16 + ldrb r0, [r2, 0x10] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r2, 0x11] + orrs r1, r0 + movs r0, 0x1 + bl sav12_xor_set +_0810D1D4: + bl SetSecretBase2Field_9 + ldr r0, _0810D1EC @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0810D1F0 + movs r0, 0x1 + bl sub_80537CC + b _0810D1F6 + .align 2, 0 +_0810D1E8: .4byte gUnknown_02039324 +_0810D1EC: .4byte gSaveBlock2 +_0810D1F0: + movs r0, 0x2 + bl sub_80537CC +_0810D1F6: + movs r6, 0 + movs r5, 0 + mov r7, sp +_0810D1FC: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0810D260 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _0810D23A + adds r0, r4, 0 + movs r1, 0x6 + bl GetMonData + cmp r0, 0 + bne _0810D23A + adds r0, r4, 0 + movs r1, 0x43 + bl GetMonData + cmp r0, 0 + bne _0810D23A + movs r0, 0x1 + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x43 + mov r2, sp + bl SetMonData + movs r6, 0x1 +_0810D23A: + adds r5, 0x1 + cmp r5, 0x5 + ble _0810D1FC + cmp r6, 0x1 + bne _0810D250 + movs r0, 0x2A + bl sav12_xor_increment + ldr r0, _0810D264 @ =0x0000083b + bl FlagSet +_0810D250: + ldr r0, _0810D268 @ =sub_8141F90 + bl SetMainCallback2 + movs r0, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810D260: .4byte gPlayerParty +_0810D264: .4byte 0x0000083b +_0810D268: .4byte sub_8141F90 + thumb_func_end sub_810D180 + + thumb_func_start sp0C8_whiteout_maybe +sp0C8_whiteout_maybe: @ 810D26C + push {lr} + ldr r0, _0810D27C @ =c2_whiteout + bl SetMainCallback2 + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_0810D27C: .4byte c2_whiteout + thumb_func_end sp0C8_whiteout_maybe + + thumb_func_start sub_810D280 +sub_810D280: @ 810D280 + push {r4,lr} + ldr r0, _0810D2A4 @ =0x00004024 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _0810D2A8 @ =0x00004025 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + lsls r4, 16 + orrs r4, r0 + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0810D2A4: .4byte 0x00004024 +_0810D2A8: .4byte 0x00004025 + thumb_func_end sub_810D280 + + thumb_func_start sub_810D2AC +sub_810D2AC: @ 810D2AC + push {r4,lr} + adds r4, r0, 0 + ldr r0, _0810D2CC @ =0x00004024 + lsrs r1, r4, 16 + bl VarSet + ldr r0, _0810D2D0 @ =0x00004025 + lsls r4, 16 + lsrs r4, 16 + adds r1, r4, 0 + bl VarSet + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D2CC: .4byte 0x00004024 +_0810D2D0: .4byte 0x00004025 + thumb_func_end sub_810D2AC + + thumb_func_start unref_sub_810D2D4 +unref_sub_810D2D4: @ 810D2D4 + push {r4,lr} + bl Random + adds r4, r0, 0 + bl Random + lsls r4, 16 + lsls r0, 16 + lsrs r0, 16 + orrs r4, r0 + adds r0, r4, 0 + bl sub_810D2AC + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_810D2D4 + + thumb_func_start sub_810D2F4 +sub_810D2F4: @ 810D2F4 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + bl sub_810D280 + adds r1, r0, 0 + cmp r4, 0 + beq _0810D318 + ldr r3, _0810D324 @ =0x41c64e6d + ldr r2, _0810D328 @ =0x00003039 +_0810D308: + adds r0, r1, 0 + muls r0, r3 + adds r1, r0, r2 + subs r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + bne _0810D308 +_0810D318: + adds r0, r1, 0 + bl sub_810D2AC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D324: .4byte 0x41c64e6d +_0810D328: .4byte 0x00003039 + thumb_func_end sub_810D2F4 + + thumb_func_start sub_810D32C +sub_810D32C: @ 810D32C + push {r4-r6,lr} + bl sub_810D280 + lsrs r6, r0, 16 + movs r5, 0 +_0810D336: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0810D360 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0810D368 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + ldr r1, _0810D364 @ =0x0000ffff + ands r1, r0 + cmp r1, r6 + bne _0810D368 + movs r0, 0x1 + b _0810D370 + .align 2, 0 +_0810D360: .4byte gPlayerParty +_0810D364: .4byte 0x0000ffff +_0810D368: + adds r5, 0x1 + cmp r5, 0x5 + ble _0810D336 + movs r0, 0 +_0810D370: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_810D32C + + thumb_func_start sub_810D378 +sub_810D378: @ 810D378 + push {lr} + bl get_map_light_from_warp0 + lsls r0, 24 + lsrs r0, 24 + bl is_light_level_1_2_3_5_or_6 + lsls r0, 24 + cmp r0, 0 + beq _0810D3BE + bl RtcCalcLocalTime + ldr r1, _0810D3AC @ =gUnknown_083F8340 + ldr r0, _0810D3B0 @ =gLocalTime + ldrb r0, [r0, 0x2] + lsls r0, 24 + asrs r0, 24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0810D3B8 + ldr r0, _0810D3B4 @ =0x0000083a + bl FlagSet + b _0810D3BE + .align 2, 0 +_0810D3AC: .4byte gUnknown_083F8340 +_0810D3B0: .4byte gLocalTime +_0810D3B4: .4byte 0x0000083a +_0810D3B8: + ldr r0, _0810D3C4 @ =0x0000083a + bl FlagReset +_0810D3BE: + pop {r0} + bx r0 + .align 2, 0 +_0810D3C4: .4byte 0x0000083a + thumb_func_end sub_810D378 + + thumb_func_start sub_810D3C8 +sub_810D3C8: @ 810D3C8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl sub_807DDFC + lsls r0, 24 + cmp r0, 0 + beq _0810D3E2 + bl EnableBothScriptContexts + adds r0, r4, 0 + bl DestroyTask +_0810D3E2: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_810D3C8 + + thumb_func_start sub_810D3E8 +sub_810D3E8: @ 810D3E8 + push {lr} + ldr r0, _0810D3F8 @ =sub_810D3C8 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0810D3F8: .4byte sub_810D3C8 + thumb_func_end sub_810D3E8 + + thumb_func_start sub_810D3FC +sub_810D3FC: @ 810D3FC + push {lr} + ldr r0, _0810D40C @ =0x00004049 + bl GetVarPointer + movs r1, 0 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0810D40C: .4byte 0x00004049 + thumb_func_end sub_810D3FC + + thumb_func_start UpdateBirchState +UpdateBirchState: @ 810D410 + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _0810D438 @ =0x00004049 + bl GetVarPointer + adds r5, r0, 0 + ldrh r0, [r5] + adds r4, r0 + strh r4, [r5] + ldrh r0, [r5] + movs r1, 0x7 + bl __umodsi3 + strh r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810D438: .4byte 0x00004049 + thumb_func_end UpdateBirchState + + thumb_func_start ScriptGetPokedexInfo +ScriptGetPokedexInfo: @ 810D43C + push {lr} + ldr r0, _0810D458 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + bne _0810D460 + movs r0, 0 + bl GetHoennPokedexCount + ldr r1, _0810D45C @ =gSpecialVar_0x8005 + strh r0, [r1] + movs r0, 0x1 + bl GetHoennPokedexCount + b _0810D470 + .align 2, 0 +_0810D458: .4byte gSpecialVar_0x8004 +_0810D45C: .4byte gSpecialVar_0x8005 +_0810D460: + movs r0, 0 + bl GetNationalPokedexCount + ldr r1, _0810D480 @ =gSpecialVar_0x8005 + strh r0, [r1] + movs r0, 0x1 + bl GetNationalPokedexCount +_0810D470: + ldr r1, _0810D484 @ =gSpecialVar_0x8006 + strh r0, [r1] + bl IsNationalPokedex + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_0810D480: .4byte gSpecialVar_0x8005 +_0810D484: .4byte gSpecialVar_0x8006 + thumb_func_end ScriptGetPokedexInfo + + thumb_func_start GetPokedexRatingText +GetPokedexRatingText: @ 810D488 + push {lr} + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x9 + bhi _0810D494 + b _0810D5EC +_0810D494: + cmp r0, 0x13 + bhi _0810D4A0 + ldr r0, _0810D49C @ =gUnknown_081C456A + b _0810D5F6 + .align 2, 0 +_0810D49C: .4byte gUnknown_081C456A +_0810D4A0: + cmp r0, 0x1D + bhi _0810D4AC + ldr r0, _0810D4A8 @ =gUnknown_081C45B0 + b _0810D5F6 + .align 2, 0 +_0810D4A8: .4byte gUnknown_081C45B0 +_0810D4AC: + cmp r0, 0x27 + bhi _0810D4B8 + ldr r0, _0810D4B4 @ =gUnknown_081C45F9 + b _0810D5F6 + .align 2, 0 +_0810D4B4: .4byte gUnknown_081C45F9 +_0810D4B8: + cmp r0, 0x31 + bhi _0810D4C4 + ldr r0, _0810D4C0 @ =gUnknown_081C4648 + b _0810D5F6 + .align 2, 0 +_0810D4C0: .4byte gUnknown_081C4648 +_0810D4C4: + cmp r0, 0x3B + bhi _0810D4D0 + ldr r0, _0810D4CC @ =gUnknown_081C467E + b _0810D5F6 + .align 2, 0 +_0810D4CC: .4byte gUnknown_081C467E +_0810D4D0: + cmp r0, 0x45 + bhi _0810D4DC + ldr r0, _0810D4D8 @ =gUnknown_081C46B9 + b _0810D5F6 + .align 2, 0 +_0810D4D8: .4byte gUnknown_081C46B9 +_0810D4DC: + cmp r0, 0x4F + bhi _0810D4E8 + ldr r0, _0810D4E4 @ =gUnknown_081C46FE + b _0810D5F6 + .align 2, 0 +_0810D4E4: .4byte gUnknown_081C46FE +_0810D4E8: + cmp r0, 0x59 + bhi _0810D4F4 + ldr r0, _0810D4F0 @ =gUnknown_081C4747 + b _0810D5F6 + .align 2, 0 +_0810D4F0: .4byte gUnknown_081C4747 +_0810D4F4: + cmp r0, 0x63 + bhi _0810D500 + ldr r0, _0810D4FC @ =gUnknown_081C4780 + b _0810D5F6 + .align 2, 0 +_0810D4FC: .4byte gUnknown_081C4780 +_0810D500: + cmp r0, 0x6D + bhi _0810D50C + ldr r0, _0810D508 @ =gUnknown_081C47DF + b _0810D5F6 + .align 2, 0 +_0810D508: .4byte gUnknown_081C47DF +_0810D50C: + cmp r0, 0x77 + bhi _0810D518 + ldr r0, _0810D514 @ =gUnknown_081C4828 + b _0810D5F6 + .align 2, 0 +_0810D514: .4byte gUnknown_081C4828 +_0810D518: + cmp r0, 0x81 + bhi _0810D524 + ldr r0, _0810D520 @ =gUnknown_081C4863 + b _0810D5F6 + .align 2, 0 +_0810D520: .4byte gUnknown_081C4863 +_0810D524: + cmp r0, 0x8B + bhi _0810D530 + ldr r0, _0810D52C @ =gUnknown_081C489C + b _0810D5F6 + .align 2, 0 +_0810D52C: .4byte gUnknown_081C489C +_0810D530: + cmp r0, 0x95 + bhi _0810D53C + ldr r0, _0810D538 @ =gUnknown_081C48EB + b _0810D5F6 + .align 2, 0 +_0810D538: .4byte gUnknown_081C48EB +_0810D53C: + cmp r0, 0x9F + bhi _0810D548 + ldr r0, _0810D544 @ =gUnknown_081C4936 + b _0810D5F6 + .align 2, 0 +_0810D544: .4byte gUnknown_081C4936 +_0810D548: + cmp r0, 0xA9 + bhi _0810D554 + ldr r0, _0810D550 @ =gUnknown_081C49A2 + b _0810D5F6 + .align 2, 0 +_0810D550: .4byte gUnknown_081C49A2 +_0810D554: + cmp r0, 0xB3 + bhi _0810D560 + ldr r0, _0810D55C @ =gUnknown_081C4A06 + b _0810D5F6 + .align 2, 0 +_0810D55C: .4byte gUnknown_081C4A06 +_0810D560: + cmp r0, 0xBD + bhi _0810D56C + ldr r0, _0810D568 @ =gUnknown_081C4A4F + b _0810D5F6 + .align 2, 0 +_0810D568: .4byte gUnknown_081C4A4F +_0810D56C: + cmp r0, 0xC7 + bls _0810D5DA + cmp r0, 0xC8 + bne _0810D5A8 + ldr r0, _0810D5A4 @ =0x00000199 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + bne _0810D5DA + movs r0, 0xCD + lsls r0, 1 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + bne _0810D5DA + b _0810D5F4 + .align 2, 0 +_0810D5A4: .4byte 0x00000199 +_0810D5A8: + cmp r0, 0xC9 + bne _0810D5E8 + ldr r0, _0810D5E0 @ =0x00000199 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + beq _0810D5F4 + movs r0, 0xCD + lsls r0, 1 + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + beq _0810D5F4 +_0810D5DA: + ldr r0, _0810D5E4 @ =gUnknown_081C4A91 + b _0810D5F6 + .align 2, 0 +_0810D5E0: .4byte 0x00000199 +_0810D5E4: .4byte gUnknown_081C4A91 +_0810D5E8: + cmp r0, 0xCA + beq _0810D5F4 +_0810D5EC: + ldr r0, _0810D5F0 @ =gUnknown_081C4520 + b _0810D5F6 + .align 2, 0 +_0810D5F0: .4byte gUnknown_081C4520 +_0810D5F4: + ldr r0, _0810D5FC @ =gUnknown_081C4ADA +_0810D5F6: + pop {r1} + bx r1 + .align 2, 0 +_0810D5FC: .4byte gUnknown_081C4ADA + thumb_func_end GetPokedexRatingText + + thumb_func_start ShowPokedexRatingMessage +ShowPokedexRatingMessage: @ 810D600 + push {lr} + ldr r0, _0810D614 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + bl GetPokedexRatingText + bl ShowFieldMessage + pop {r0} + bx r0 + .align 2, 0 +_0810D614: .4byte gSpecialVar_0x8004 + thumb_func_end ShowPokedexRatingMessage + + thumb_func_start AccessHallOfFamePC +AccessHallOfFamePC: @ 810D618 + push {lr} + ldr r0, _0810D628 @ =sub_81428CC + bl SetMainCallback2 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_0810D628: .4byte sub_81428CC + thumb_func_end AccessHallOfFamePC + + thumb_func_start ReturnFromHallOfFamePC +ReturnFromHallOfFamePC: @ 810D62C + push {lr} + ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch + bl SetMainCallback2 + ldr r1, _0810D644 @ =gUnknown_0300485C + ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0810D640: .4byte c2_exit_to_overworld_2_switch +_0810D644: .4byte gUnknown_0300485C +_0810D648: .4byte ReshowPCMenuAfterHallOfFamePC + thumb_func_end ReturnFromHallOfFamePC + + thumb_func_start ReshowPCMenuAfterHallOfFamePC +ReshowPCMenuAfterHallOfFamePC: @ 810D64C + push {lr} + sub sp, 0x4 + bl ScriptContext2_Enable + bl sub_8053E90 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0x10 + movs r3, 0 + bl BeginNormalPaletteFade + bl TryCreatePCMenu + bl sub_80B5838 + ldr r0, _0810D680 @ =sub_810D684 + movs r1, 0xA + bl CreateTask + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0810D680: .4byte sub_810D684 + thumb_func_end ReshowPCMenuAfterHallOfFamePC + + thumb_func_start sub_810D684 +sub_810D684: @ 810D684 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0810D6A0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0810D69C + adds r0, r2, 0 + bl DestroyTask +_0810D69C: + pop {r0} + bx r0 + .align 2, 0 +_0810D6A0: .4byte gPaletteFade + thumb_func_end sub_810D684 + + thumb_func_start sub_810D6A4 +sub_810D6A4: @ 810D6A4 + push {lr} + ldr r0, _0810D6B4 @ =sub_8145D88 + bl SetMainCallback2 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_0810D6B4: .4byte sub_8145D88 + thumb_func_end sub_810D6A4 + + thumb_func_start sub_810D6B8 +sub_810D6B8: @ 810D6B8 + push {lr} + ldr r0, _0810D6D0 @ =gMain + ldr r1, _0810D6D4 @ =c2_exit_to_overworld_2_switch + str r1, [r0, 0x8] + ldr r0, _0810D6D8 @ =Cb2_ViewWallClock + bl SetMainCallback2 + bl ScriptContext2_Enable + pop {r0} + bx r0 + .align 2, 0 +_0810D6D0: .4byte gMain +_0810D6D4: .4byte c2_exit_to_overworld_2_switch +_0810D6D8: .4byte Cb2_ViewWallClock + thumb_func_end sub_810D6B8 + + thumb_func_start ResetCyclingRoadChallengeData +ResetCyclingRoadChallengeData: @ 810D6DC + ldr r0, _0810D6F0 @ =gUnknown_02039250 + movs r1, 0 + strb r1, [r0] + ldr r0, _0810D6F4 @ =gUnknown_02039251 + strb r1, [r0] + ldr r1, _0810D6F8 @ =gUnknown_02039254 + movs r0, 0 + str r0, [r1] + bx lr + .align 2, 0 +_0810D6F0: .4byte gUnknown_02039250 +_0810D6F4: .4byte gUnknown_02039251 +_0810D6F8: .4byte gUnknown_02039254 + thumb_func_end ResetCyclingRoadChallengeData + + thumb_func_start BeginCyclingRoadChallenge +BeginCyclingRoadChallenge: @ 810D6FC + ldr r1, _0810D714 @ =gUnknown_02039250 + movs r0, 0x1 + strb r0, [r1] + ldr r1, _0810D718 @ =gUnknown_02039251 + movs r0, 0 + strb r0, [r1] + ldr r1, _0810D71C @ =gUnknown_02039254 + ldr r0, _0810D720 @ =gMain + ldr r0, [r0, 0x20] + str r0, [r1] + bx lr + .align 2, 0 +_0810D714: .4byte gUnknown_02039250 +_0810D718: .4byte gUnknown_02039251 +_0810D71C: .4byte gUnknown_02039254 +_0810D720: .4byte gMain + thumb_func_end BeginCyclingRoadChallenge + + thumb_func_start GetPlayerAvatarBike +GetPlayerAvatarBike: @ 810D724 + push {lr} + movs r0, 0x4 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + beq _0810D736 + movs r0, 0x1 + b _0810D748 +_0810D736: + movs r0, 0x2 + bl TestPlayerAvatarFlags + lsls r0, 24 + cmp r0, 0 + bne _0810D746 + movs r0, 0 + b _0810D748 +_0810D746: + movs r0, 0x2 +_0810D748: + pop {r1} + bx r1 + thumb_func_end GetPlayerAvatarBike + + thumb_func_start DetermineCyclingRoadResults +DetermineCyclingRoadResults: @ 810D74C + push {r4-r7,lr} + adds r7, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + cmp r6, 0x63 + bhi _0810D778 + ldr r4, _0810D770 @ =gStringVar1 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r1, _0810D774 @ =gOtherText_Times + adds r0, r4, 0 + bl StringAppend + b _0810D780 + .align 2, 0 +_0810D770: .4byte gStringVar1 +_0810D774: .4byte gOtherText_Times +_0810D778: + ldr r0, _0810D7CC @ =gStringVar1 + ldr r1, _0810D7D0 @ =gOtherText_99Times + bl StringCopy +_0810D780: + ldr r0, _0810D7D4 @ =0x00000e0f + cmp r7, r0 + bhi _0810D7E0 + ldr r4, _0810D7D8 @ =gStringVar2 + adds r0, r7, 0 + movs r1, 0x3C + bl __udivsi3 + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + movs r0, 0xAD + strb r0, [r4, 0x2] + adds r5, r4, 0x3 + adds r0, r7, 0 + movs r1, 0x3C + bl __umodsi3 + movs r1, 0x64 + muls r0, r1 + movs r1, 0x3C + bl __udivsi3 + adds r1, r0, 0 + adds r0, r5, 0 + movs r2, 0x2 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r1, _0810D7DC @ =gOtherText_Seconds + adds r0, r4, 0 + bl StringAppend + b _0810D7E8 + .align 2, 0 +_0810D7CC: .4byte gStringVar1 +_0810D7D0: .4byte gOtherText_99Times +_0810D7D4: .4byte 0x00000e0f +_0810D7D8: .4byte gStringVar2 +_0810D7DC: .4byte gOtherText_Seconds +_0810D7E0: + ldr r0, _0810D7F4 @ =gStringVar2 + ldr r1, _0810D7F8 @ =gOtherText_1Minute + bl StringCopy +_0810D7E8: + movs r4, 0 + cmp r6, 0 + bne _0810D7FC + movs r4, 0x5 + b _0810D81A + .align 2, 0 +_0810D7F4: .4byte gStringVar2 +_0810D7F8: .4byte gOtherText_1Minute +_0810D7FC: + cmp r6, 0x3 + bhi _0810D804 + movs r4, 0x4 + b _0810D81A +_0810D804: + cmp r6, 0x9 + bhi _0810D80C + movs r4, 0x3 + b _0810D81A +_0810D80C: + cmp r6, 0x13 + bhi _0810D814 + movs r4, 0x2 + b _0810D81A +_0810D814: + cmp r6, 0x63 + bhi _0810D81A + movs r4, 0x1 +_0810D81A: + adds r0, r7, 0 + movs r1, 0x3C + bl __udivsi3 + cmp r0, 0xA + bhi _0810D82A + adds r0, r4, 0x5 + b _0810D848 +_0810D82A: + cmp r0, 0xF + bhi _0810D832 + adds r0, r4, 0x4 + b _0810D848 +_0810D832: + cmp r0, 0x14 + bhi _0810D83A + adds r0, r4, 0x3 + b _0810D848 +_0810D83A: + cmp r0, 0x28 + bhi _0810D842 + adds r0, r4, 0x2 + b _0810D848 +_0810D842: + cmp r0, 0x3B + bhi _0810D84C + adds r0, r4, 0x1 +_0810D848: + lsls r0, 24 + lsrs r4, r0, 24 +_0810D84C: + ldr r0, _0810D858 @ =gScriptResult + strh r4, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810D858: .4byte gScriptResult + thumb_func_end DetermineCyclingRoadResults + + thumb_func_start FinishCyclingRoadChallenge +FinishCyclingRoadChallenge: @ 810D85C + push {r4,r5,lr} + ldr r0, _0810D880 @ =gMain + ldr r1, _0810D884 @ =gUnknown_02039254 + ldr r4, [r0, 0x20] + ldr r0, [r1] + subs r4, r0 + ldr r5, _0810D888 @ =gUnknown_02039251 + ldrb r1, [r5] + adds r0, r4, 0 + bl DetermineCyclingRoadResults + ldrb r1, [r5] + adds r0, r4, 0 + bl RecordCyclingRoadResults + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810D880: .4byte gMain +_0810D884: .4byte gUnknown_02039254 +_0810D888: .4byte gUnknown_02039251 + thumb_func_end FinishCyclingRoadChallenge + + thumb_func_start RecordCyclingRoadResults +RecordCyclingRoadResults: @ 810D88C + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + ldr r6, _0810D8E0 @ =0x00004028 + adds r0, r6, 0 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r7, _0810D8E4 @ =0x00004029 + adds r0, r7, 0 + bl VarGet + lsls r0, 16 + adds r4, r0 + cmp r4, r5 + bhi _0810D8BC + cmp r4, 0 + bne _0810D8D6 +_0810D8BC: + lsls r1, r5, 16 + lsrs r1, 16 + adds r0, r6, 0 + bl VarSet + lsrs r1, r5, 16 + adds r0, r7, 0 + bl VarSet + ldr r0, _0810D8E8 @ =0x00004027 + mov r1, r8 + bl VarSet +_0810D8D6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810D8E0: .4byte 0x00004028 +_0810D8E4: .4byte 0x00004029 +_0810D8E8: .4byte 0x00004027 + thumb_func_end RecordCyclingRoadResults + + thumb_func_start GetRecordedCyclingRoadResults +GetRecordedCyclingRoadResults: @ 810D8EC + push {r4,lr} + ldr r0, _0810D920 @ =0x00004028 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _0810D924 @ =0x00004029 + bl VarGet + lsls r0, 16 + adds r4, r0 + cmp r4, 0 + beq _0810D92C + ldr r0, _0810D928 @ =0x00004027 + bl VarGet + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl DetermineCyclingRoadResults + movs r0, 0x1 + b _0810D92E + .align 2, 0 +_0810D920: .4byte 0x00004028 +_0810D924: .4byte 0x00004029 +_0810D928: .4byte 0x00004027 +_0810D92C: + movs r0, 0 +_0810D92E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetRecordedCyclingRoadResults + + thumb_func_start UpdateCyclingRoadState +UpdateCyclingRoadState: @ 810D934 + push {r4,lr} + ldr r0, _0810D974 @ =gUnknown_020297F0 + ldrh r1, [r0] + ldr r0, _0810D978 @ =0x00000c1d + cmp r1, r0 + beq _0810D96C + ldr r4, _0810D97C @ =0x000040a9 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + beq _0810D95E + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x3 + bne _0810D96C +_0810D95E: + adds r0, r4, 0 + movs r1, 0 + bl VarSet + movs r0, 0 + bl sav1_set_battle_music_maybe +_0810D96C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810D974: .4byte gUnknown_020297F0 +_0810D978: .4byte 0x00000c1d +_0810D97C: .4byte 0x000040a9 + thumb_func_end UpdateCyclingRoadState + + thumb_func_start SetSSTidalFlag +SetSSTidalFlag: @ 810D980 + push {lr} + ldr r0, _0810D998 @ =0x0000082d + bl FlagSet + ldr r0, _0810D99C @ =0x0000404a + bl GetVarPointer + movs r1, 0 + strh r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0810D998: .4byte 0x0000082d +_0810D99C: .4byte 0x0000404a + thumb_func_end SetSSTidalFlag + + thumb_func_start ResetSSTidalFlag +ResetSSTidalFlag: @ 810D9A0 + push {lr} + ldr r0, _0810D9AC @ =0x0000082d + bl FlagReset + pop {r0} + bx r0 + .align 2, 0 +_0810D9AC: .4byte 0x0000082d + thumb_func_end ResetSSTidalFlag + + thumb_func_start sub_810D9B0 +sub_810D9B0: @ 810D9B0 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, _0810D9DC @ =0x0000082d + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810D9D6 + ldr r0, _0810D9E0 @ =0x0000404a + bl GetVarPointer + ldrh r1, [r0] + adds r1, r4, r1 + strh r1, [r0] + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0xCC + bhi _0810D9E4 +_0810D9D6: + movs r0, 0 + b _0810D9E6 + .align 2, 0 +_0810D9DC: .4byte 0x0000082d +_0810D9E0: .4byte 0x0000404a +_0810D9E4: + movs r0, 0x1 +_0810D9E6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810D9B0 + + thumb_func_start sub_810D9EC +sub_810D9EC: @ 810D9EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r0 + adds r5, r1, 0 + adds r6, r2, 0 + adds r7, r3, 0 + ldr r0, _0810DA1C @ =0x0000404a + bl GetVarPointer + adds r4, r0, 0 + ldr r0, _0810DA20 @ =0x000040b4 + bl GetVarPointer + ldrh r0, [r0] + subs r0, 0x1 + cmp r0, 0x9 + bhi _0810DAB2 + lsls r0, 2 + ldr r1, _0810DA24 @ =_0810DA28 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810DA1C: .4byte 0x0000404a +_0810DA20: .4byte 0x000040b4 +_0810DA24: .4byte _0810DA28 + .align 2, 0 +_0810DA28: + .4byte _0810DA50 + .4byte _0810DA60 + .4byte _0810DA54 + .4byte _0810DA58 + .4byte _0810DA58 + .4byte _0810DA5C + .4byte _0810DA88 + .4byte _0810DA50 + .4byte _0810DA54 + .4byte _0810DA5C +_0810DA50: + movs r0, 0x1 + b _0810DABE +_0810DA54: + movs r0, 0x4 + b _0810DABE +_0810DA58: + movs r0, 0x2 + b _0810DABE +_0810DA5C: + movs r0, 0x3 + b _0810DABE +_0810DA60: + ldrh r0, [r4] + cmp r0, 0x3B + bhi _0810DA70 + movs r0, 0x31 + strb r0, [r5] + ldrh r0, [r4] + adds r0, 0x13 + b _0810DAB0 +_0810DA70: + cmp r0, 0x8B + bhi _0810DA7E + movs r0, 0x30 + strb r0, [r5] + ldrh r0, [r4] + subs r0, 0x3C + b _0810DAB0 +_0810DA7E: + movs r0, 0x2F + strb r0, [r5] + ldrh r0, [r4] + subs r0, 0x8C + b _0810DAB0 +_0810DA88: + ldrh r0, [r4] + cmp r0, 0x41 + bhi _0810DA98 + movs r0, 0x2F + strb r0, [r5] + ldrh r1, [r4] + movs r0, 0x41 + b _0810DAAE +_0810DA98: + cmp r0, 0x91 + bhi _0810DAA6 + movs r0, 0x30 + strb r0, [r5] + ldrh r1, [r4] + movs r0, 0x91 + b _0810DAAE +_0810DAA6: + movs r0, 0x31 + strb r0, [r5] + ldrh r1, [r4] + movs r0, 0xE0 +_0810DAAE: + subs r0, r1 +_0810DAB0: + strh r0, [r6] +_0810DAB2: + movs r0, 0 + mov r1, r8 + strb r0, [r1] + movs r0, 0x14 + strh r0, [r7] + movs r0, 0 +_0810DABE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_810D9EC + + thumb_func_start GetLinkPartnerNames +GetLinkPartnerNames: @ 810DAC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + bl sub_8008218 + lsls r0, 24 + lsrs r7, r0, 24 + bl sub_800820C + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + cmp r4, r5 + bcs _0810DB12 + ldr r0, _0810DB20 @ =gUnknown_083D1464 + mov r8, r0 +_0810DAEA: + cmp r7, r4 + beq _0810DB08 + lsls r0, r6, 2 + add r0, r8 + ldr r0, [r0] + lsls r1, r4, 3 + subs r1, r4 + lsls r1, 2 + ldr r2, _0810DB24 @ =gLinkPlayers + 0x8 + adds r1, r2 + bl StringCopy + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0810DB08: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _0810DAEA +_0810DB12: + adds r0, r5, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810DB20: .4byte gUnknown_083D1464 +_0810DB24: .4byte gLinkPlayers + 0x8 + thumb_func_end GetLinkPartnerNames + + thumb_func_start sub_810DB28 +sub_810DB28: @ 810DB28 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + movs r7, 0 + movs r0, 0 + mov r9, r0 + mov r8, r0 + ldr r1, _0810DB74 @ =gUnknown_083F8358 + add r0, sp, 0x8 + movs r2, 0x4 + bl memcpy + add r4, sp, 0xC + ldr r1, _0810DB78 @ =gUnknown_083F835C + adds r0, r4, 0 + movs r2, 0x8 + bl memcpy + bl sub_8008218 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x2 + beq _0810DB94 + cmp r0, 0x2 + bgt _0810DB7C + cmp r0, 0x1 + beq _0810DBC0 + b _0810DBD2 + .align 2, 0 +_0810DB74: .4byte gUnknown_083F8358 +_0810DB78: .4byte gUnknown_083F835C +_0810DB7C: + cmp r1, 0x3 + beq _0810DB86 + cmp r1, 0x4 + beq _0810DBA8 + b _0810DBD2 +_0810DB86: + movs r7, 0x2 + ldr r1, _0810DB90 @ =gSaveBlock1 + ldrh r0, [r1] + subs r0, 0x1 + b _0810DBAE + .align 2, 0 +_0810DB90: .4byte gSaveBlock1 +_0810DB94: + movs r7, 0x1 + ldr r0, _0810DBA4 @ =gSaveBlock1 + ldrh r1, [r0] + mov r9, r1 + ldrh r0, [r0, 0x2] + subs r0, 0x1 + b _0810DBCC + .align 2, 0 +_0810DBA4: .4byte gSaveBlock1 +_0810DBA8: + ldr r1, _0810DBBC @ =gSaveBlock1 + ldrh r0, [r1] + adds r0, 0x1 +_0810DBAE: + lsls r0, 16 + lsrs r0, 16 + mov r9, r0 + ldrh r1, [r1, 0x2] + mov r8, r1 + b _0810DBD2 + .align 2, 0 +_0810DBBC: .4byte gSaveBlock1 +_0810DBC0: + movs r7, 0x3 + ldr r0, _0810DBD8 @ =gSaveBlock1 + ldrh r4, [r0] + mov r9, r4 + ldrh r0, [r0, 0x2] + adds r0, 0x1 +_0810DBCC: + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 +_0810DBD2: + movs r6, 0 + b _0810DC5C + .align 2, 0 +_0810DBD8: .4byte gSaveBlock1 +_0810DBDC: + cmp r10, r6 + beq _0810DC56 + ldr r1, _0810DC74 @ =gLinkPlayers + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x13] + movs r0, 0 + bl sub_805983C + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + adds r1, r7 + adds r1, 0x8 + ldrb r1, [r1] + movs r2, 0xF0 + subs r2, r6 + lsls r2, 24 + lsrs r2, 24 + lsls r5, r7, 1 + mov r3, sp + adds r3, r5 + adds r3, 0xC + ldrb r3, [r3] + lsls r3, 24 + asrs r3, 24 + mov r12, r3 + mov r4, r9 + lsls r3, r4, 16 + asrs r3, 16 + add r3, r12 + adds r3, 0x7 + lsls r3, 16 + asrs r3, 16 + mov r4, sp + adds r4, 0xD + adds r4, r5 + ldrb r4, [r4] + lsls r4, 24 + asrs r4, 24 + mov r12, r4 + mov r5, r8 + lsls r4, r5, 16 + asrs r4, 16 + add r4, r12 + adds r4, 0x7 + lsls r4, 16 + asrs r4, 16 + str r4, [sp] + movs r4, 0 + str r4, [sp, 0x4] + bl SpawnSpecialFieldObjectParametrized + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0x4 + bne _0810DC56 + movs r7, 0 +_0810DC56: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0810DC5C: + ldr r0, _0810DC78 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r6, r0 + bcc _0810DBDC + 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 +_0810DC74: .4byte gLinkPlayers +_0810DC78: .4byte gSpecialVar_0x8004 + thumb_func_end sub_810DB28 + + thumb_func_start sub_810DC7C +sub_810DC7C: @ 810DC7C + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0810DC9C @ =gUnknown_083F8364 +_0810DC82: + ldr r0, _0810DCA0 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r4, r0 + bne _0810DCA8 + lsls r1, r4, 2 + adds r1, r5 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + ldr r2, _0810DCA4 @ =0x00000206 + bl MapGridSetMetatileIdAt + b _0810DCB6 + .align 2, 0 +_0810DC9C: .4byte gUnknown_083F8364 +_0810DCA0: .4byte gSpecialVar_0x8004 +_0810DCA4: .4byte 0x00000206 +_0810DCA8: + lsls r1, r4, 2 + adds r1, r5 + ldrb r0, [r1] + ldrb r1, [r1, 0x1] + ldr r2, _0810DCC8 @ =0x00000205 + bl MapGridSetMetatileIdAt +_0810DCB6: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x2 + bls _0810DC82 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810DCC8: .4byte 0x00000205 + thumb_func_end sub_810DC7C + + thumb_func_start sub_810DCCC +sub_810DCCC: @ 810DCCC + push {r4-r6,lr} + movs r5, 0xC +_0810DCD0: + movs r4, 0x7 + adds r6, r5, 0x1 +_0810DCD4: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileIdAt + ldr r1, _0810DCF0 @ =0xfffffde6 + adds r0, r1 + cmp r0, 0x37 + bls _0810DCE6 + b _0810DEC0 +_0810DCE6: + lsls r0, 2 + ldr r1, _0810DCF4 @ =_0810DCF8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810DCF0: .4byte 0xfffffde6 +_0810DCF4: .4byte _0810DCF8 + .align 2, 0 +_0810DCF8: + .4byte _0810DE7E + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DDD8 + .4byte _0810DDDE + .4byte _0810DE18 + .4byte _0810DE20 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DDE8 + .4byte _0810DDEE + .4byte _0810DE28 + .4byte _0810DE30 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DDF8 + .4byte _0810DDFE + .4byte _0810DE38 + .4byte _0810DE40 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DE08 + .4byte _0810DE10 + .4byte _0810DE48 + .4byte _0810DE50 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DE58 + .4byte _0810DE68 + .4byte _0810DE78 + .4byte _0810DEA0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DE60 + .4byte _0810DE70 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEC0 + .4byte _0810DEB6 + .4byte _0810DEA8 +_0810DDD8: + movs r2, 0x8C + lsls r2, 2 + b _0810DEAC +_0810DDDE: + ldr r2, _0810DDE4 @ =0x00000231 + b _0810DEAC + .align 2, 0 +_0810DDE4: .4byte 0x00000231 +_0810DDE8: + movs r2, 0x8E + lsls r2, 2 + b _0810DEAC +_0810DDEE: + ldr r2, _0810DDF4 @ =0x00000239 + b _0810DEAC + .align 2, 0 +_0810DDF4: .4byte 0x00000239 +_0810DDF8: + movs r2, 0x88 + lsls r2, 2 + b _0810DEAC +_0810DDFE: + ldr r2, _0810DE04 @ =0x00000221 + b _0810DEAC + .align 2, 0 +_0810DE04: .4byte 0x00000221 +_0810DE08: + ldr r2, _0810DE0C @ =0x00000e28 + b _0810DEAC + .align 2, 0 +_0810DE0C: .4byte 0x00000e28 +_0810DE10: + ldr r2, _0810DE14 @ =0x00000e29 + b _0810DEAC + .align 2, 0 +_0810DE14: .4byte 0x00000e29 +_0810DE18: + ldr r2, _0810DE1C @ =0x00000232 + b _0810DEAC + .align 2, 0 +_0810DE1C: .4byte 0x00000232 +_0810DE20: + ldr r2, _0810DE24 @ =0x00000233 + b _0810DEAC + .align 2, 0 +_0810DE24: .4byte 0x00000233 +_0810DE28: + ldr r2, _0810DE2C @ =0x0000023a + b _0810DEAC + .align 2, 0 +_0810DE2C: .4byte 0x0000023a +_0810DE30: + ldr r2, _0810DE34 @ =0x0000023b + b _0810DEAC + .align 2, 0 +_0810DE34: .4byte 0x0000023b +_0810DE38: + ldr r2, _0810DE3C @ =0x00000222 + b _0810DEAC + .align 2, 0 +_0810DE3C: .4byte 0x00000222 +_0810DE40: + ldr r2, _0810DE44 @ =0x00000223 + b _0810DEAC + .align 2, 0 +_0810DE44: .4byte 0x00000223 +_0810DE48: + ldr r2, _0810DE4C @ =0x00000e2a + b _0810DEAC + .align 2, 0 +_0810DE4C: .4byte 0x00000e2a +_0810DE50: + ldr r2, _0810DE54 @ =0x00000e2b + b _0810DEAC + .align 2, 0 +_0810DE54: .4byte 0x00000e2b +_0810DE58: + ldr r2, _0810DE5C @ =0x00000e42 + b _0810DEAC + .align 2, 0 +_0810DE5C: .4byte 0x00000e42 +_0810DE60: + ldr r2, _0810DE64 @ =0x0000021a + b _0810DEAC + .align 2, 0 +_0810DE64: .4byte 0x0000021a +_0810DE68: + ldr r2, _0810DE6C @ =0x00000e43 + b _0810DEAC + .align 2, 0 +_0810DE6C: .4byte 0x00000e43 +_0810DE70: + ldr r2, _0810DE74 @ =0x0000021a + b _0810DEAC + .align 2, 0 +_0810DE74: .4byte 0x0000021a +_0810DE78: + movs r2, 0xE4 + lsls r2, 4 + b _0810DEAC +_0810DE7E: + subs r1, r5, 0x1 + adds r0, r4, 0 + bl MapGridGetMetatileIdAt + movs r1, 0x90 + lsls r1, 2 + cmp r0, r1 + bne _0810DE98 + ldr r2, _0810DE94 @ =0x00000e48 + b _0810DEAC + .align 2, 0 +_0810DE94: .4byte 0x00000e48 +_0810DE98: + ldr r2, _0810DE9C @ =0x00000e49 + b _0810DEAC + .align 2, 0 +_0810DE9C: .4byte 0x00000e49 +_0810DEA0: + ldr r2, _0810DEA4 @ =0x00000e41 + b _0810DEAC + .align 2, 0 +_0810DEA4: .4byte 0x00000e41 +_0810DEA8: + movs r2, 0xE5 + lsls r2, 4 +_0810DEAC: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt + b _0810DEC0 +_0810DEB6: + ldr r2, _0810DED8 @ =0x00000251 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt +_0810DEC0: + adds r4, 0x1 + cmp r4, 0xF + bgt _0810DEC8 + b _0810DCD4 +_0810DEC8: + adds r5, r6, 0 + cmp r5, 0x17 + bgt _0810DED0 + b _0810DCD0 +_0810DED0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810DED8: .4byte 0x00000251 + thumb_func_end sub_810DCCC + + thumb_func_start sub_810DEDC +sub_810DEDC: @ 810DEDC + push {r4-r6,lr} + ldr r4, _0810DF18 @ =gUnknown_083F8364 + movs r5, 0x2 +_0810DEE2: + ldrb r0, [r4] + ldrb r1, [r4, 0x1] + ldr r2, _0810DF1C @ =0x00000206 + bl MapGridSetMetatileIdAt + adds r4, 0x4 + subs r5, 0x1 + cmp r5, 0 + bge _0810DEE2 + movs r5, 0xC +_0810DEF6: + movs r4, 0x7 + adds r6, r5, 0x1 +_0810DEFA: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridGetMetatileIdAt + ldr r1, _0810DF20 @ =0xfffffde0 + adds r0, r1 + cmp r0, 0x30 + bls _0810DF0C + b _0810E056 +_0810DF0C: + lsls r0, 2 + ldr r1, _0810DF24 @ =_0810DF28 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810DF18: .4byte gUnknown_083F8364 +_0810DF1C: .4byte 0x00000206 +_0810DF20: .4byte 0xfffffde0 +_0810DF24: .4byte _0810DF28 + .align 2, 0 +_0810DF28: + .4byte _0810DFEC + .4byte _0810DFF2 + .4byte _0810E00C + .4byte _0810E014 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810DFFC + .4byte _0810E002 + .4byte _0810E01C + .4byte _0810E024 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E02C + .4byte _0810E034 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E03C + .4byte _0810E03C + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E056 + .4byte _0810E04C +_0810DFEC: + movs r2, 0x8C + lsls r2, 2 + b _0810E03E +_0810DFF2: + ldr r2, _0810DFF8 @ =0x00000231 + b _0810E03E + .align 2, 0 +_0810DFF8: .4byte 0x00000231 +_0810DFFC: + movs r2, 0x8E + lsls r2, 2 + b _0810E03E +_0810E002: + ldr r2, _0810E008 @ =0x00000239 + b _0810E03E + .align 2, 0 +_0810E008: .4byte 0x00000239 +_0810E00C: + ldr r2, _0810E010 @ =0x00000232 + b _0810E03E + .align 2, 0 +_0810E010: .4byte 0x00000232 +_0810E014: + ldr r2, _0810E018 @ =0x00000233 + b _0810E03E + .align 2, 0 +_0810E018: .4byte 0x00000233 +_0810E01C: + ldr r2, _0810E020 @ =0x0000023a + b _0810E03E + .align 2, 0 +_0810E020: .4byte 0x0000023a +_0810E024: + ldr r2, _0810E028 @ =0x0000023b + b _0810E03E + .align 2, 0 +_0810E028: .4byte 0x0000023b +_0810E02C: + ldr r2, _0810E030 @ =0x00000e42 + b _0810E03E + .align 2, 0 +_0810E030: .4byte 0x00000e42 +_0810E034: + ldr r2, _0810E038 @ =0x00000e43 + b _0810E03E + .align 2, 0 +_0810E038: .4byte 0x00000e43 +_0810E03C: + ldr r2, _0810E048 @ =0x0000021a +_0810E03E: + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt + b _0810E056 + .align 2, 0 +_0810E048: .4byte 0x0000021a +_0810E04C: + ldr r2, _0810E06C @ =0x00000251 + adds r0, r4, 0 + adds r1, r5, 0 + bl MapGridSetMetatileIdAt +_0810E056: + adds r4, 0x1 + cmp r4, 0xF + bgt _0810E05E + b _0810DEFA +_0810E05E: + adds r5, r6, 0 + cmp r5, 0x17 + bgt _0810E066 + b _0810DEF6 +_0810E066: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810E06C: .4byte 0x00000251 + thumb_func_end sub_810DEDC + + thumb_func_start sub_810E070 +sub_810E070: @ 810E070 + push {lr} + ldr r0, _0810E090 @ =gUnknown_02039258 + movs r1, 0 + strb r1, [r0] + ldr r0, _0810E094 @ =gUnknown_02039259 + strb r1, [r0] + movs r0, 0x2C + bl PlaySE + ldr r0, _0810E098 @ =sub_810E09C + movs r1, 0x8 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_0810E090: .4byte gUnknown_02039258 +_0810E094: .4byte gUnknown_02039259 +_0810E098: .4byte sub_810E09C + thumb_func_end sub_810E070 + + thumb_func_start sub_810E09C +sub_810E09C: @ 810E09C + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _0810E0E4 @ =gUnknown_083F8370 + ldr r5, _0810E0E8 @ =gUnknown_02039259 + ldrb r1, [r5] + adds r0, r1, r0 + ldr r4, _0810E0EC @ =gUnknown_02039258 + ldrb r2, [r4] + ldrb r0, [r0] + cmp r0, r2 + bne _0810E0F8 + ldr r0, _0810E0F0 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + ldr r2, _0810E0F4 @ =gUnknown_083F8376 + lsls r1, 1 + adds r1, r2 + ldrh r1, [r1] + bl sub_810E104 + movs r0, 0 + strb r0, [r4] + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bne _0810E0FC + adds r0, r6, 0 + bl DestroyTask + bl EnableBothScriptContexts + b _0810E0FC + .align 2, 0 +_0810E0E4: .4byte gUnknown_083F8370 +_0810E0E8: .4byte gUnknown_02039259 +_0810E0EC: .4byte gUnknown_02039258 +_0810E0F0: .4byte gSpecialVar_0x8004 +_0810E0F4: .4byte gUnknown_083F8376 +_0810E0F8: + adds r0, r2, 0x1 + strb r0, [r4] +_0810E0FC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_810E09C + + thumb_func_start sub_810E104 +sub_810E104: @ 810E104 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r2, r1, 16 + movs r7, 0 + subs r0, 0x1 + cmp r0, 0x7 + bhi _0810E1CC + lsls r0, 2 + ldr r1, _0810E128 @ =_0810E12C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810E128: .4byte _0810E12C + .align 2, 0 +_0810E12C: + .4byte _0810E14C + .4byte _0810E15E + .4byte _0810E170 + .4byte _0810E182 + .4byte _0810E190 + .4byte _0810E1A6 + .4byte _0810E1B2 + .4byte _0810E1C0 +_0810E14C: + movs r7, 0x2 + mov r1, sp + movs r0, 0x1 + strh r0, [r1] + movs r0, 0x7 + strh r0, [r1, 0x2] + add r1, sp, 0x8 + movs r0, 0x68 + b _0810E1A0 +_0810E15E: + movs r7, 0x2 + mov r1, sp + movs r0, 0x1 + strh r0, [r1] + movs r0, 0x7 + strh r0, [r1, 0x2] + add r1, sp, 0x8 + movs r0, 0x4E + b _0810E1A0 +_0810E170: + movs r7, 0x2 + mov r1, sp + movs r0, 0x1 + strh r0, [r1] + movs r0, 0x7 + strh r0, [r1, 0x2] + add r1, sp, 0x8 + movs r0, 0x5B + b _0810E1A0 +_0810E182: + movs r7, 0x1 + mov r1, sp + movs r0, 0x7 + strh r0, [r1] + add r1, sp, 0x8 + movs r0, 0x27 + b _0810E1CA +_0810E190: + movs r7, 0x2 + mov r1, sp + movs r0, 0x1 + strh r0, [r1] + movs r0, 0x7 + strh r0, [r1, 0x2] + add r1, sp, 0x8 + movs r0, 0x34 +_0810E1A0: + strh r0, [r1] + strh r0, [r1, 0x2] + b _0810E1CC +_0810E1A6: + movs r7, 0x1 + mov r0, sp + strh r7, [r0] + add r1, sp, 0x8 + movs r0, 0x41 + b _0810E1CA +_0810E1B2: + movs r7, 0x1 + mov r1, sp + movs r0, 0x7 + strh r0, [r1] + add r1, sp, 0x8 + movs r0, 0xD + b _0810E1CA +_0810E1C0: + movs r7, 0x1 + mov r0, sp + strh r7, [r0] + add r1, sp, 0x8 + movs r0, 0x1A +_0810E1CA: + strh r0, [r1] +_0810E1CC: + movs r6, 0 + cmp r6, r7 + bcs _0810E21E + movs r1, 0xC0 + lsls r1, 4 + adds r0, r1, 0 + adds r1, r2, 0 + orrs r1, r0 + lsls r1, 16 + mov r9, r1 + adds r1, r2, 0 + adds r1, 0x8 + orrs r1, r0 + lsls r1, 16 + mov r8, r1 +_0810E1EA: + lsls r1, r6, 1 + mov r3, sp + adds r5, r3, r1 + ldrh r0, [r5] + adds r0, 0x7 + add r4, sp, 0x8 + adds r4, r1 + ldrh r1, [r4] + adds r1, 0x7 + mov r3, r9 + lsrs r2, r3, 16 + bl MapGridSetMetatileIdAt + ldrh r0, [r5] + adds r0, 0x7 + ldrh r1, [r4] + adds r1, 0x8 + mov r3, r8 + lsrs r2, r3, 16 + bl MapGridSetMetatileIdAt + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, r7 + bcc _0810E1EA +_0810E21E: + bl DrawWholeMapView + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810E104 + + thumb_func_start sub_810E230 +sub_810E230: @ 810E230 + push {lr} + ldr r0, _0810E244 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + ldr r1, _0810E248 @ =gUnknown_083F8376 + ldrh r1, [r1, 0x8] + bl sub_810E104 + pop {r0} + bx r0 + .align 2, 0 +_0810E244: .4byte gSpecialVar_0x8004 +_0810E248: .4byte gUnknown_083F8376 + thumb_func_end sub_810E230 + + thumb_func_start ShowFieldMessageStringVar4 +ShowFieldMessageStringVar4: @ 810E24C + push {lr} + ldr r0, _0810E258 @ =gStringVar4 + bl ShowFieldMessage + pop {r0} + bx r0 + .align 2, 0 +_0810E258: .4byte gStringVar4 + thumb_func_end ShowFieldMessageStringVar4 + + thumb_func_start StorePlayerCoordsInVars +StorePlayerCoordsInVars: @ 810E25C + ldr r1, _0810E26C @ =gSpecialVar_0x8004 + ldr r2, _0810E270 @ =gSaveBlock1 + ldrh r0, [r2] + strh r0, [r1] + ldr r1, _0810E274 @ =gSpecialVar_0x8005 + ldrh r0, [r2, 0x2] + strh r0, [r1] + bx lr + .align 2, 0 +_0810E26C: .4byte gSpecialVar_0x8004 +_0810E270: .4byte gSaveBlock1 +_0810E274: .4byte gSpecialVar_0x8005 + thumb_func_end StorePlayerCoordsInVars + + thumb_func_start GetPlayerTrainerIdOnesDigit +GetPlayerTrainerIdOnesDigit: @ 810E278 + push {lr} + ldr r0, _0810E294 @ =gSaveBlock2 + ldrb r1, [r0, 0xB] + lsls r1, 8 + ldrb r0, [r0, 0xA] + orrs r0, r1 + movs r1, 0xA + bl __umodsi3 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0810E294: .4byte gSaveBlock2 + thumb_func_end GetPlayerTrainerIdOnesDigit + + thumb_func_start GetPlayerBigGuyGirlString +GetPlayerBigGuyGirlString: @ 810E298 + push {lr} + ldr r0, _0810E2AC @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0810E2B8 + ldr r0, _0810E2B0 @ =gStringVar1 + ldr r1, _0810E2B4 @ =gOtherText_BigGuy + bl StringCopy + b _0810E2C0 + .align 2, 0 +_0810E2AC: .4byte gSaveBlock2 +_0810E2B0: .4byte gStringVar1 +_0810E2B4: .4byte gOtherText_BigGuy +_0810E2B8: + ldr r0, _0810E2C4 @ =gStringVar1 + ldr r1, _0810E2C8 @ =gOtherText_BigGirl + bl StringCopy +_0810E2C0: + pop {r0} + bx r0 + .align 2, 0 +_0810E2C4: .4byte gStringVar1 +_0810E2C8: .4byte gOtherText_BigGirl + thumb_func_end GetPlayerBigGuyGirlString + + thumb_func_start GetRivalSonDaughterString +GetRivalSonDaughterString: @ 810E2CC + push {lr} + ldr r0, _0810E2E0 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + cmp r0, 0 + bne _0810E2EC + ldr r0, _0810E2E4 @ =gStringVar1 + ldr r1, _0810E2E8 @ =gOtherText_Daughter + bl StringCopy + b _0810E2F4 + .align 2, 0 +_0810E2E0: .4byte gSaveBlock2 +_0810E2E4: .4byte gStringVar1 +_0810E2E8: .4byte gOtherText_Daughter +_0810E2EC: + ldr r0, _0810E2F8 @ =gStringVar1 + ldr r1, _0810E2FC @ =gOtherText_Son + bl StringCopy +_0810E2F4: + pop {r0} + bx r0 + .align 2, 0 +_0810E2F8: .4byte gStringVar1 +_0810E2FC: .4byte gOtherText_Son + thumb_func_end GetRivalSonDaughterString + + thumb_func_start sub_810E300 +sub_810E300: @ 810E300 + ldr r0, _0810E308 @ =gUnknown_02024D26 + ldrb r0, [r0] + bx lr + .align 2, 0 +_0810E308: .4byte gUnknown_02024D26 + thumb_func_end sub_810E300 + + thumb_func_start CableCarWarp +CableCarWarp: @ 810E30C + push {lr} + sub sp, 0x4 + ldr r0, _0810E32C @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + beq _0810E330 + movs r2, 0x1 + negs r2, r2 + movs r0, 0x4 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r3, 0x6 + bl warp1_set + b _0810E342 + .align 2, 0 +_0810E32C: .4byte gSpecialVar_0x8004 +_0810E330: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x4 + str r0, [sp] + movs r0, 0x13 + movs r1, 0x1 + movs r3, 0x6 + bl warp1_set +_0810E342: + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end CableCarWarp + + thumb_func_start SetFlagInVar +SetFlagInVar: @ 810E348 + push {lr} + ldr r0, _0810E358 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0810E358: .4byte gSpecialVar_0x8004 + thumb_func_end SetFlagInVar + + thumb_func_start GetWeekCount +GetWeekCount: @ 810E35C + push {lr} + ldr r0, _0810E37C @ =gLocalTime + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0x7 + bl __divsi3 + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0810E380 @ =0x0000270f + cmp r0, r1 + bls _0810E376 + adds r0, r1, 0 +_0810E376: + pop {r1} + bx r1 + .align 2, 0 +_0810E37C: .4byte gLocalTime +_0810E380: .4byte 0x0000270f + thumb_func_end GetWeekCount + + thumb_func_start GetLeadMonFriendshipScore +GetLeadMonFriendshipScore: @ 810E384 + push {r4,lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r1, r0 + ldr r0, _0810E3A8 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0xFF + bne _0810E3AC + movs r0, 0x6 + b _0810E3FE + .align 2, 0 +_0810E3A8: .4byte gPlayerParty +_0810E3AC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0xC7 + bls _0810E3BC + movs r0, 0x5 + b _0810E3FE +_0810E3BC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0x95 + bls _0810E3CC + movs r0, 0x4 + b _0810E3FE +_0810E3CC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0x63 + bls _0810E3DC + movs r0, 0x3 + b _0810E3FE +_0810E3DC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0x31 + bls _0810E3EC + movs r0, 0x2 + b _0810E3FE +_0810E3EC: + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + cmp r0, 0 + bne _0810E3FC + movs r0, 0 + b _0810E3FE +_0810E3FC: + movs r0, 0x1 +_0810E3FE: + pop {r4} + pop {r1} + bx r1 + thumb_func_end GetLeadMonFriendshipScore + + thumb_func_start CB2_FieldShowRegionMap +CB2_FieldShowRegionMap: @ 810E404 + push {lr} + ldr r0, _0810E410 @ =c2_exit_to_overworld_1_continue_scripts_restart_music + bl FieldInitRegionMap + pop {r0} + bx r0 + .align 2, 0 +_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music + thumb_func_end CB2_FieldShowRegionMap + + thumb_func_start FieldShowRegionMap +FieldShowRegionMap: @ 810E414 + push {lr} + ldr r0, _0810E420 @ =CB2_FieldShowRegionMap + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0810E420: .4byte CB2_FieldShowRegionMap + thumb_func_end FieldShowRegionMap + + thumb_func_start DoPCTurnOnEffect +DoPCTurnOnEffect: @ 810E424 + push {r4,lr} + ldr r4, _0810E460 @ =Task_PCTurnOnEffect + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810E458 + adds r0, r4, 0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810E464 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + strh r2, [r1, 0xE] + strh r2, [r1, 0x10] +_0810E458: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E460: .4byte Task_PCTurnOnEffect +_0810E464: .4byte gTasks + thumb_func_end DoPCTurnOnEffect + + thumb_func_start Task_PCTurnOnEffect +Task_PCTurnOnEffect: @ 810E468 + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _0810E48C @ =gTasks + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0810E486 + adds r0, r1, 0 + bl PCTurnOffEffect_0 +_0810E486: + pop {r0} + bx r0 + .align 2, 0 +_0810E48C: .4byte gTasks + thumb_func_end Task_PCTurnOnEffect + + thumb_func_start PCTurnOffEffect_0 +PCTurnOffEffect_0: @ 810E490 + push {r4-r6,lr} + adds r4, r0, 0 + movs r6, 0 + movs r5, 0 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bne _0810E4FC + strh r5, [r4, 0xE] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x3 + beq _0810E4C4 + cmp r0, 0x3 + bgt _0810E4BA + cmp r0, 0x2 + beq _0810E4C0 + b _0810E4CC +_0810E4BA: + cmp r1, 0x4 + beq _0810E4C8 + b _0810E4CC +_0810E4C0: + movs r6, 0 + b _0810E4CA +_0810E4C4: + movs r6, 0xFF + b _0810E4CA +_0810E4C8: + movs r6, 0x1 +_0810E4CA: + movs r5, 0xFF +_0810E4CC: + movs r1, 0x10 + ldrsh r0, [r4, r1] + lsls r1, r6, 24 + asrs r1, 24 + lsls r2, r5, 24 + asrs r2, 24 + bl PCTurnOffEffect_1 + bl DrawWholeMapView + ldrh r0, [r4, 0x10] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _0810E4FC + ldrb r0, [r4, 0xA] + bl DestroyTask +_0810E4FC: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end PCTurnOffEffect_0 + + thumb_func_start PCTurnOffEffect_1 +PCTurnOffEffect_1: @ 810E508 + push {r4,r5,lr} + lsls r1, 24 + lsrs r1, 24 + lsls r2, 24 + lsrs r4, r2, 24 + movs r3, 0 + lsls r0, 16 + cmp r0, 0 + beq _0810E544 + ldr r0, _0810E528 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + bne _0810E52C + movs r3, 0x4 + b _0810E566 + .align 2, 0 +_0810E528: .4byte gSpecialVar_0x8004 +_0810E52C: + cmp r0, 0x1 + bne _0810E538 + ldr r3, _0810E534 @ =0x0000025a + b _0810E566 + .align 2, 0 +_0810E534: .4byte 0x0000025a +_0810E538: + cmp r0, 0x2 + bne _0810E566 + ldr r3, _0810E540 @ =0x00000259 + b _0810E566 + .align 2, 0 +_0810E540: .4byte 0x00000259 +_0810E544: + ldr r0, _0810E550 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + bne _0810E554 + movs r3, 0x5 + b _0810E566 + .align 2, 0 +_0810E550: .4byte gSpecialVar_0x8004 +_0810E554: + cmp r0, 0x1 + bne _0810E560 + ldr r3, _0810E55C @ =0x0000027f + b _0810E566 + .align 2, 0 +_0810E55C: .4byte 0x0000027f +_0810E560: + cmp r0, 0x2 + bne _0810E566 + ldr r3, _0810E594 @ =0x0000027e +_0810E566: + ldr r2, _0810E598 @ =gSaveBlock1 + movs r5, 0 + ldrsh r0, [r2, r5] + lsls r1, 24 + asrs r1, 24 + adds r0, r1 + adds r0, 0x7 + movs r5, 0x2 + ldrsh r1, [r2, r5] + lsls r2, r4, 24 + asrs r2, 24 + adds r1, r2 + adds r1, 0x7 + movs r4, 0xC0 + lsls r4, 4 + adds r2, r4, 0 + orrs r3, r2 + adds r2, r3, 0 + bl MapGridSetMetatileIdAt + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810E594: .4byte 0x0000027e +_0810E598: .4byte gSaveBlock1 + thumb_func_end PCTurnOffEffect_1 + + thumb_func_start DoPCTurnOffEffect +DoPCTurnOffEffect: @ 810E59C + push {lr} + bl PCTurnOffEffect + pop {r0} + bx r0 + thumb_func_end DoPCTurnOffEffect + + thumb_func_start PCTurnOffEffect +PCTurnOffEffect: @ 810E5A8 + push {r4-r6,lr} + movs r6, 0 + movs r5, 0 + movs r4, 0 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0x3 + beq _0810E5D2 + cmp r0, 0x3 + bgt _0810E5C8 + cmp r0, 0x2 + beq _0810E5CE + b _0810E5DA +_0810E5C8: + cmp r1, 0x4 + beq _0810E5D6 + b _0810E5DA +_0810E5CE: + movs r6, 0 + b _0810E5D8 +_0810E5D2: + movs r6, 0xFF + b _0810E5D8 +_0810E5D6: + movs r6, 0x1 +_0810E5D8: + movs r5, 0xFF +_0810E5DA: + ldr r0, _0810E5E8 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + cmp r0, 0 + bne _0810E5EC + movs r4, 0x4 + b _0810E5FE + .align 2, 0 +_0810E5E8: .4byte gSpecialVar_0x8004 +_0810E5EC: + cmp r0, 0x1 + bne _0810E5F8 + ldr r4, _0810E5F4 @ =0x0000025a + b _0810E5FE + .align 2, 0 +_0810E5F4: .4byte 0x0000025a +_0810E5F8: + cmp r0, 0x2 + bne _0810E5FE + ldr r4, _0810E630 @ =0x00000259 +_0810E5FE: + ldr r2, _0810E634 @ =gSaveBlock1 + movs r1, 0 + ldrsh r0, [r2, r1] + lsls r1, r6, 24 + asrs r1, 24 + adds r0, r1 + adds r0, 0x7 + movs r3, 0x2 + ldrsh r1, [r2, r3] + lsls r2, r5, 24 + asrs r2, 24 + adds r1, r2 + adds r1, 0x7 + movs r3, 0xC0 + lsls r3, 4 + adds r2, r3, 0 + orrs r4, r2 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810E630: .4byte 0x00000259 +_0810E634: .4byte gSaveBlock1 + thumb_func_end PCTurnOffEffect + + thumb_func_start DoLotteryCornerComputerEffect +DoLotteryCornerComputerEffect: @ 810E638 + push {r4,lr} + ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810E66C + adds r0, r4, 0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810E678 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + strh r2, [r1, 0xE] + strh r2, [r1, 0x10] +_0810E66C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E674: .4byte Task_LotteryCornerComputerEffect +_0810E678: .4byte gTasks + thumb_func_end DoLotteryCornerComputerEffect + + thumb_func_start Task_LotteryCornerComputerEffect +Task_LotteryCornerComputerEffect: @ 810E67C + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _0810E6A0 @ =gTasks + adds r1, r0 + movs r2, 0x8 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _0810E69A + adds r0, r1, 0 + bl LotteryCornerComputerEffect +_0810E69A: + pop {r0} + bx r0 + .align 2, 0 +_0810E6A0: .4byte gTasks + thumb_func_end Task_LotteryCornerComputerEffect + + thumb_func_start LotteryCornerComputerEffect +LotteryCornerComputerEffect: @ 810E6A4 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0x6 + bne _0810E712 + movs r0, 0 + strh r0, [r4, 0xE] + movs r1, 0x10 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _0810E6DC + ldr r2, _0810E6D4 @ =0x00000e9d + movs r0, 0x12 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _0810E6D8 @ =0x00000ea5 + movs r0, 0x12 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + b _0810E6F2 + .align 2, 0 +_0810E6D4: .4byte 0x00000e9d +_0810E6D8: .4byte 0x00000ea5 +_0810E6DC: + ldr r2, _0810E720 @ =0x00000e58 + movs r0, 0x12 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + movs r2, 0xE6 + lsls r2, 4 + movs r0, 0x12 + movs r1, 0x9 + bl MapGridSetMetatileIdAt +_0810E6F2: + bl DrawWholeMapView + ldrh r0, [r4, 0x10] + movs r1, 0x1 + eors r0, r1 + strh r0, [r4, 0x10] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + bne _0810E712 + ldrb r0, [r4, 0xA] + bl DestroyTask +_0810E712: + ldrh r0, [r4, 0xE] + adds r0, 0x1 + strh r0, [r4, 0xE] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810E720: .4byte 0x00000e58 + thumb_func_end LotteryCornerComputerEffect + + thumb_func_start EndLotteryCornerComputerEffect +EndLotteryCornerComputerEffect: @ 810E724 + push {lr} + ldr r2, _0810E744 @ =0x00000e9d + movs r0, 0x12 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _0810E748 @ =0x00000ea5 + movs r0, 0x12 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + bl DrawWholeMapView + pop {r0} + bx r0 + .align 2, 0 +_0810E744: .4byte 0x00000e9d +_0810E748: .4byte 0x00000ea5 + thumb_func_end EndLotteryCornerComputerEffect + + thumb_func_start SetDepartmentStoreFloorVar +SetDepartmentStoreFloorVar: @ 810E74C + push {lr} + ldr r0, _0810E768 @ =gSaveBlock1 + ldrb r0, [r0, 0x15] + subs r0, 0x11 + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x5 + bhi _0810E79C + lsls r0, 2 + ldr r1, _0810E76C @ =_0810E770 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810E768: .4byte gSaveBlock1 +_0810E76C: .4byte _0810E770 + .align 2, 0 +_0810E770: + .4byte _0810E79C + .4byte _0810E788 + .4byte _0810E78C + .4byte _0810E790 + .4byte _0810E794 + .4byte _0810E798 +_0810E788: + movs r1, 0x1 + b _0810E79E +_0810E78C: + movs r1, 0x2 + b _0810E79E +_0810E790: + movs r1, 0x3 + b _0810E79E +_0810E794: + movs r1, 0x4 + b _0810E79E +_0810E798: + movs r1, 0xF + b _0810E79E +_0810E79C: + movs r1, 0 +_0810E79E: + ldr r0, _0810E7A8 @ =0x00004043 + bl VarSet + pop {r0} + bx r0 + .align 2, 0 +_0810E7A8: .4byte 0x00004043 + thumb_func_end SetDepartmentStoreFloorVar + + thumb_func_start ScriptAddElevatorMenuItem +ScriptAddElevatorMenuItem: @ 810E7AC + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r2, 24 + mov r12, r2 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + ldr r0, _0810E81C @ =gSpecialVar_0x8004 + ldrh r1, [r0] + adds r2, r0, 0 + ldr r3, _0810E820 @ =gUnknown_03000760 + cmp r1, 0 + bne _0810E7E8 + movs r1, 0 + adds r5, r3, 0 + movs r4, 0x10 +_0810E7D8: + lsls r0, r1, 2 + adds r0, r5 + strb r4, [r0] + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x13 + bls _0810E7D8 +_0810E7E8: + ldrh r0, [r2] + lsls r0, 2 + adds r0, r3 + strb r6, [r0] + ldrh r0, [r2] + lsls r0, 2 + adds r0, r3 + strb r7, [r0, 0x1] + ldrh r0, [r2] + lsls r0, 2 + adds r0, r3 + mov r1, r12 + strb r1, [r0, 0x2] + ldrh r0, [r2] + lsls r0, 2 + adds r0, r3 + mov r1, r8 + strb r1, [r0, 0x3] + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0810E81C: .4byte gSpecialVar_0x8004 +_0810E820: .4byte gUnknown_03000760 + thumb_func_end ScriptAddElevatorMenuItem + + thumb_func_start ScriptShowElevatorMenu +ScriptShowElevatorMenu: @ 810E824 + push {r4,r5,lr} + movs r4, 0 + ldr r5, _0810E868 @ =gUnknown_0203925A + strb r4, [r5] + ldr r0, _0810E86C @ =gUnknown_0203925B + strb r4, [r0] + movs r0, 0x10 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl ScriptAddElevatorMenuItem + ldr r2, _0810E870 @ =gUnknown_03000760 + ldrb r0, [r2] + cmp r0, 0x10 + beq _0810E85C + adds r1, r5, 0 +_0810E846: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r4, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x10 + bne _0810E846 +_0810E85C: + bl sub_810E874 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810E868: .4byte gUnknown_0203925A +_0810E86C: .4byte gUnknown_0203925B +_0810E870: .4byte gUnknown_03000760 + thumb_func_end ScriptShowElevatorMenu + + thumb_func_start sub_810E874 +sub_810E874: @ 810E874 + push {r4-r6,lr} + sub sp, 0x8 + bl ScriptContext2_Enable + ldr r4, _0810E8B8 @ =gUnknown_0203925A + ldrb r0, [r4] + cmp r0, 0x5 + bls _0810E8C0 + movs r0, 0 + movs r1, 0 + movs r2, 0x8 + movs r3, 0xB + bl MenuDrawTextWindow + movs r4, 0 + str r4, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x5 + bl InitMenu + ldr r0, _0810E8BC @ =gUnknown_0203925C + strb r4, [r0] + bl sub_80F944C + bl LoadScrollIndicatorPalette + bl sub_810ECD4 + b _0810E8E8 + .align 2, 0 +_0810E8B8: .4byte gUnknown_0203925A +_0810E8BC: .4byte gUnknown_0203925C +_0810E8C0: + ldrb r3, [r4] + lsls r3, 1 + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x8 + bl MenuDrawTextWindow + ldrb r3, [r4] + movs r0, 0 + str r0, [sp] + movs r0, 0x7 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl InitMenu +_0810E8E8: + movs r4, 0 + ldr r1, _0810E938 @ =gUnknown_03000760 + ldrb r0, [r1] + cmp r0, 0x10 + beq _0810E924 + ldr r6, _0810E93C @ =gUnknown_083F8380 + adds r5, r1, 0 +_0810E8F6: + lsls r0, r4, 2 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + lsls r2, r4, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bhi _0810E924 + lsls r0, r4, 2 + adds r0, r5 + ldrb r0, [r0] + cmp r0, 0x10 + bne _0810E8F6 +_0810E924: + bl sub_810E944 + ldr r0, _0810E940 @ =sub_810E984 + movs r1, 0x8 + bl CreateTask + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810E938: .4byte gUnknown_03000760 +_0810E93C: .4byte gUnknown_083F8380 +_0810E940: .4byte sub_810E984 + thumb_func_end sub_810E874 + + thumb_func_start sub_810E944 +sub_810E944: @ 810E944 + push {lr} + movs r0, 0x14 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x5 + bl MenuDrawTextWindow + ldr r0, _0810E978 @ =gOtherText_NowOn + movs r1, 0x15 + movs r2, 0x1 + movs r3, 0x40 + bl sub_8072BD8 + ldr r1, _0810E97C @ =gUnknown_083F8380 + ldr r0, _0810E980 @ =gSpecialVar_0x8005 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x15 + movs r2, 0x3 + movs r3, 0x40 + bl sub_8072BD8 + pop {r0} + bx r0 + .align 2, 0 +_0810E978: .4byte gOtherText_NowOn +_0810E97C: .4byte gUnknown_083F8380 +_0810E980: .4byte gSpecialVar_0x8005 + thumb_func_end sub_810E944 + + thumb_func_start sub_810E984 +sub_810E984: @ 810E984 + push {r4-r6,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _0810EA44 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x40 + bne _0810E9B8 + ldr r1, _0810EA48 @ =gUnknown_0203925B + ldrb r0, [r1] + cmp r0, 0 + beq _0810E9B8 + subs r0, 0x1 + strb r0, [r1] + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursorNoWrap + adds r0, r4, 0 + movs r1, 0x40 + bl sub_810EAC8 +_0810E9B8: + ldr r0, _0810EA44 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x80 + bne _0810E9E8 + ldr r2, _0810EA48 @ =gUnknown_0203925B + ldrb r1, [r2] + ldr r0, _0810EA4C @ =gUnknown_0203925A + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _0810E9E8 + adds r0, r1, 0x1 + strb r0, [r2] + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + bl MoveMenuCursorNoWrap + adds r0, r4, 0 + movs r1, 0x80 + bl sub_810EAC8 +_0810E9E8: + ldr r0, _0810EA44 @ =gMain + ldrh r2, [r0, 0x2E] + movs r5, 0x1 + adds r1, r5, 0 + ands r1, r2 + cmp r1, 0 + beq _0810EA94 + ldr r1, _0810EA50 @ =gUnknown_03000760 + ldr r4, _0810EA48 @ =gUnknown_0203925B + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + movs r1, 0x1 + ldrsb r1, [r0, r1] + movs r2, 0x2 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0x2 + str r0, [sp] + str r5, [sp, 0x4] + movs r0, 0 + bl saved_warp2_set_2 + ldr r1, _0810EA54 @ =gSpecialVar_0x8005 + ldrh r0, [r1] + ldrb r2, [r4] + cmp r0, r2 + bne _0810EA5C + ldr r1, _0810EA58 @ =gScriptResult + movs r0, 0 + strh r0, [r1] + movs r0, 0x5 + bl PlaySE + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r6, 0 + bl sub_810EC9C + b _0810EABC + .align 2, 0 +_0810EA44: .4byte gMain +_0810EA48: .4byte gUnknown_0203925B +_0810EA4C: .4byte gUnknown_0203925A +_0810EA50: .4byte gUnknown_03000760 +_0810EA54: .4byte gSpecialVar_0x8005 +_0810EA58: .4byte gScriptResult +_0810EA5C: + ldr r0, _0810EA88 @ =gScriptResult + strh r5, [r0] + ldrb r0, [r4] + strh r0, [r1] + bl sub_810EBEC + ldr r0, _0810EA8C @ =gScriptLastTalked + ldrb r0, [r0] + ldr r2, _0810EA90 @ =gSaveBlock1 + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + movs r3, 0x1 + bl FieldObjectTurnByLocalIdAndMap + bl sub_810EEDC + bl MenuZeroFillScreen + adds r0, r6, 0 + bl DestroyTask + b _0810EABC + .align 2, 0 +_0810EA88: .4byte gScriptResult +_0810EA8C: .4byte gScriptLastTalked +_0810EA90: .4byte gSaveBlock1 +_0810EA94: + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _0810EABC + ldr r0, _0810EAC4 @ =gScriptResult + strh r1, [r0] + movs r0, 0x5 + bl PlaySE + bl sub_810EEDC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r6, 0 + bl sub_810EC9C +_0810EABC: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810EAC4: .4byte gScriptResult + thumb_func_end sub_810E984 + + thumb_func_start sub_810EAC8 +sub_810EAC8: @ 810EAC8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r2, 0 + lsls r1, 24 + lsrs r1, 24 + adds r3, r1, 0 + movs r7, 0 + movs r4, 0 + ldr r0, _0810EAEC @ =gUnknown_0203925A + ldrb r0, [r0] + cmp r0, 0x4 + bhi _0810EAF0 + movs r0, 0 + b _0810EB78 + .align 2, 0 +_0810EAEC: .4byte gUnknown_0203925A +_0810EAF0: + cmp r1, 0x40 + bne _0810EB04 + cmp r2, 0 + bne _0810EB18 + ldr r0, _0810EB00 @ =gUnknown_0203925B + ldrb r4, [r0] + movs r7, 0x1 + b _0810EB1C + .align 2, 0 +_0810EB00: .4byte gUnknown_0203925B +_0810EB04: + cmp r3, 0x80 + bne _0810EB18 + cmp r5, 0x4 + bne _0810EB18 + ldr r0, _0810EB84 @ =gUnknown_0203925B + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r7, 0x1 +_0810EB18: + cmp r7, 0 + beq _0810EB76 +_0810EB1C: + adds r0, r4, 0 + movs r1, 0x5 + bl sub_810EB90 + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0xA + bl MenuFillWindowRectWithBlankTile + movs r5, 0 + ldr r2, _0810EB88 @ =gUnknown_03000760 + lsls r1, r4, 2 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x10 + beq _0810EB76 + ldr r0, _0810EB8C @ =gUnknown_083F8380 + mov r8, r0 + adds r6, r2, 0 +_0810EB44: + adds r0, r1, r6 + ldrb r0, [r0] + lsls r0, 2 + add r0, r8 + ldr r0, [r0] + lsls r2, r5, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bhi _0810EB76 + lsls r1, r4, 2 + adds r0, r1, r6 + ldrb r0, [r0] + cmp r0, 0x10 + bne _0810EB44 +_0810EB76: + adds r0, r7, 0 +_0810EB78: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810EB84: .4byte gUnknown_0203925B +_0810EB88: .4byte gUnknown_03000760 +_0810EB8C: .4byte gUnknown_083F8380 + thumb_func_end sub_810EAC8 + + thumb_func_start sub_810EB90 +sub_810EB90: @ 810EB90 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r4, 0 + bne _0810EBB4 + ldr r0, _0810EBB0 @ =gUnknown_0203925C + ldrb r1, [r0] + movs r2, 0x2 + eors r1, r2 + strb r1, [r0] + movs r0, 0 + bl DestroyVerticalScrollIndicator + b _0810EBB8 + .align 2, 0 +_0810EBB0: .4byte gUnknown_0203925C +_0810EBB4: + bl sub_810ECB0 +_0810EBB8: + adds r1, r4, r5 + ldr r0, _0810EBC8 @ =gUnknown_0203925A + ldrb r0, [r0] + cmp r1, r0 + bge _0810EBCC + bl sub_810ECD4 + b _0810EBE0 + .align 2, 0 +_0810EBC8: .4byte gUnknown_0203925A +_0810EBCC: + cmp r1, r0 + bne _0810EBE0 + ldr r0, _0810EBE8 @ =gUnknown_0203925C + ldrb r1, [r0] + movs r2, 0x1 + eors r1, r2 + strb r1, [r0] + movs r0, 0x1 + bl DestroyVerticalScrollIndicator +_0810EBE0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810EBE8: .4byte gUnknown_0203925C + thumb_func_end sub_810EB90 + + thumb_func_start sub_810EBEC +sub_810EBEC: @ 810EBEC + push {lr} + ldr r0, _0810EC2C @ =sub_810EC34 + movs r1, 0x9 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810EC30 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + movs r2, 0x1 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r0, [r1, 0xC] + strh r0, [r1, 0xE] + strh r2, [r1, 0x10] + movs r0, 0x3 + strh r0, [r1, 0x12] + movs r0, 0 + bl SetCameraPanningCallback + bl sub_810ECFC + movs r0, 0x59 + bl PlaySE + pop {r0} + bx r0 + .align 2, 0 +_0810EC2C: .4byte sub_810EC34 +_0810EC30: .4byte gTasks + thumb_func_end sub_810EBEC + + thumb_func_start sub_810EC34 +sub_810EC34: @ 810EC34 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0810EC98 @ =gTasks + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _0810EC92 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0810EC92 + ldrh r0, [r4, 0x10] + negs r0, r0 + strh r0, [r4, 0x10] + movs r2, 0x10 + ldrsh r1, [r4, r2] + movs r0, 0 + bl SetCameraPanning + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x17 + bne _0810EC92 + movs r0, 0x49 + bl PlaySE + adds r0, r5, 0 + bl sub_810EC9C + bl InstallCameraPanAheadCallback +_0810EC92: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810EC98: .4byte gTasks + thumb_func_end sub_810EC34 + + thumb_func_start sub_810EC9C +sub_810EC9C: @ 810EC9C + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_810EC9C + + thumb_func_start sub_810ECB0 +sub_810ECB0: @ 810ECB0 + push {lr} + ldr r2, _0810ECD0 @ =gUnknown_0203925C + ldrb r1, [r2] + lsrs r0, r1, 1 + cmp r0, 0x1 + beq _0810ECCC + movs r0, 0x2 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + movs r1, 0x24 + movs r2, 0x8 + bl CreateVerticalScrollIndicators +_0810ECCC: + pop {r0} + bx r0 + .align 2, 0 +_0810ECD0: .4byte gUnknown_0203925C + thumb_func_end sub_810ECB0 + + thumb_func_start sub_810ECD4 +sub_810ECD4: @ 810ECD4 + push {lr} + ldr r2, _0810ECF8 @ =gUnknown_0203925C + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810ECF2 + movs r0, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x1 + movs r1, 0x24 + movs r2, 0x48 + bl CreateVerticalScrollIndicators +_0810ECF2: + pop {r0} + bx r0 + .align 2, 0 +_0810ECF8: .4byte gUnknown_0203925C + thumb_func_end sub_810ECD4 + + thumb_func_start sub_810ECFC +sub_810ECFC: @ 810ECFC + push {r4,lr} + ldr r4, _0810ED38 @ =sub_810ED40 + adds r0, r4, 0 + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810ED30 + adds r0, r4, 0 + movs r1, 0x8 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810ED3C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + strh r2, [r1, 0xE] + strh r2, [r1, 0x10] +_0810ED30: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810ED38: .4byte sub_810ED40 +_0810ED3C: .4byte gTasks + thumb_func_end sub_810ECFC + + thumb_func_start sub_810ED40 +sub_810ED40: @ 810ED40 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + ldr r1, _0810ED5C @ =gTasks + adds r0, r1 + bl sub_810ED60 + pop {r0} + bx r0 + .align 2, 0 +_0810ED5C: .4byte gTasks + thumb_func_end sub_810ED40 + + thumb_func_start sub_810ED60 +sub_810ED60: @ 810ED60 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0xE + ldrsh r0, [r5, r1] + cmp r0, 0x8 + beq _0810ED6E + b _0810EEB2 +_0810ED6E: + movs r0, 0 + strh r0, [r5, 0xE] + movs r1, 0x10 + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _0810EE14 + ldr r2, _0810EDFC @ =0x00000e68 + movs r0, 0x7 + movs r1, 0x7 + bl MapGridSetMetatileIdAt + ldr r4, _0810EE00 @ =0x00000e69 + movs r0, 0x8 + movs r1, 0x7 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x7 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EE04 @ =0x00000e6a + movs r0, 0xA + movs r1, 0x7 + bl MapGridSetMetatileIdAt + movs r2, 0xE7 + lsls r2, 4 + movs r0, 0x7 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + adds r4, 0x8 + movs r0, 0x8 + movs r1, 0x8 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x8 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EE08 @ =0x00000e72 + movs r0, 0xA + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _0810EE0C @ =0x00000e78 + movs r0, 0x7 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + adds r4, 0x8 + movs r0, 0x8 + movs r1, 0x9 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x9 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EE10 @ =0x00000e7a + movs r0, 0xA + movs r1, 0x9 + bl MapGridSetMetatileIdAt + b _0810EE92 + .align 2, 0 +_0810EDFC: .4byte 0x00000e68 +_0810EE00: .4byte 0x00000e69 +_0810EE04: .4byte 0x00000e6a +_0810EE08: .4byte 0x00000e72 +_0810EE0C: .4byte 0x00000e78 +_0810EE10: .4byte 0x00000e7a +_0810EE14: + ldr r2, _0810EEC0 @ =0x00000e6b + movs r0, 0x7 + movs r1, 0x7 + bl MapGridSetMetatileIdAt + ldr r4, _0810EEC4 @ =0x00000e6c + movs r0, 0x8 + movs r1, 0x7 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x7 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EEC8 @ =0x00000e6d + movs r0, 0xA + movs r1, 0x7 + bl MapGridSetMetatileIdAt + ldr r2, _0810EECC @ =0x00000e73 + movs r0, 0x7 + movs r1, 0x8 + bl MapGridSetMetatileIdAt + adds r4, 0x8 + movs r0, 0x8 + movs r1, 0x8 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x8 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EED0 @ =0x00000e75 + movs r0, 0xA + movs r1, 0x8 + bl MapGridSetMetatileIdAt + ldr r2, _0810EED4 @ =0x00000e7b + movs r0, 0x7 + movs r1, 0x9 + bl MapGridSetMetatileIdAt + adds r4, 0x8 + movs r0, 0x8 + movs r1, 0x9 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + movs r0, 0x9 + movs r1, 0x9 + adds r2, r4, 0 + bl MapGridSetMetatileIdAt + ldr r2, _0810EED8 @ =0x00000e7d + movs r0, 0xA + movs r1, 0x9 + bl MapGridSetMetatileIdAt +_0810EE92: + bl DrawWholeMapView + ldrh r0, [r5, 0x10] + movs r1, 0x1 + eors r0, r1 + strh r0, [r5, 0x10] + ldrh r0, [r5, 0xC] + adds r0, 0x1 + strh r0, [r5, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bne _0810EEB2 + ldrb r0, [r5, 0xA] + bl DestroyTask +_0810EEB2: + ldrh r0, [r5, 0xE] + adds r0, 0x1 + strh r0, [r5, 0xE] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810EEC0: .4byte 0x00000e6b +_0810EEC4: .4byte 0x00000e6c +_0810EEC8: .4byte 0x00000e6d +_0810EECC: .4byte 0x00000e73 +_0810EED0: .4byte 0x00000e75 +_0810EED4: .4byte 0x00000e7b +_0810EED8: .4byte 0x00000e7d + thumb_func_end sub_810ED60 + + thumb_func_start sub_810EEDC +sub_810EEDC: @ 810EEDC + push {r4,lr} + ldr r4, _0810EF08 @ =gUnknown_0203925C + ldrb r1, [r4] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810EEF0 + movs r0, 0x1 + bl DestroyVerticalScrollIndicator +_0810EEF0: + ldrb r0, [r4] + lsrs r0, 1 + cmp r0, 0x1 + bne _0810EEFE + movs r0, 0 + bl DestroyVerticalScrollIndicator +_0810EEFE: + bl BuyMenuFreeMemory + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810EF08: .4byte gUnknown_0203925C + thumb_func_end sub_810EEDC + + thumb_func_start SetTrickHouseEndRoomFlag +SetTrickHouseEndRoomFlag: @ 810EF0C + push {lr} + ldr r1, _0810EF1C @ =gSpecialVar_0x8004 + ldr r0, _0810EF20 @ =0x00000259 + strh r0, [r1] + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0810EF1C: .4byte gSpecialVar_0x8004 +_0810EF20: .4byte 0x00000259 + thumb_func_end SetTrickHouseEndRoomFlag + + thumb_func_start ResetTrickHouseEndRoomFlag +ResetTrickHouseEndRoomFlag: @ 810EF24 + push {lr} + ldr r1, _0810EF34 @ =gSpecialVar_0x8004 + ldr r0, _0810EF38 @ =0x00000259 + strh r0, [r1] + bl FlagReset + pop {r0} + bx r0 + .align 2, 0 +_0810EF34: .4byte gSpecialVar_0x8004 +_0810EF38: .4byte 0x00000259 + thumb_func_end ResetTrickHouseEndRoomFlag + + thumb_func_start CheckLeadMonCool +CheckLeadMonCool: @ 810EF3C + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810EF5C @ =gPlayerParty + adds r0, r1 + movs r1, 0x16 + bl GetMonData + cmp r0, 0xC7 + bls _0810EF60 + movs r0, 0x1 + b _0810EF62 + .align 2, 0 +_0810EF5C: .4byte gPlayerParty +_0810EF60: + movs r0, 0 +_0810EF62: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonCool + + thumb_func_start CheckLeadMonBeauty +CheckLeadMonBeauty: @ 810EF68 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810EF88 @ =gPlayerParty + adds r0, r1 + movs r1, 0x17 + bl GetMonData + cmp r0, 0xC7 + bls _0810EF8C + movs r0, 0x1 + b _0810EF8E + .align 2, 0 +_0810EF88: .4byte gPlayerParty +_0810EF8C: + movs r0, 0 +_0810EF8E: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonBeauty + + thumb_func_start CheckLeadMonCute +CheckLeadMonCute: @ 810EF94 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810EFB4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x18 + bl GetMonData + cmp r0, 0xC7 + bls _0810EFB8 + movs r0, 0x1 + b _0810EFBA + .align 2, 0 +_0810EFB4: .4byte gPlayerParty +_0810EFB8: + movs r0, 0 +_0810EFBA: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonCute + + thumb_func_start CheckLeadMonSmart +CheckLeadMonSmart: @ 810EFC0 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810EFE0 @ =gPlayerParty + adds r0, r1 + movs r1, 0x21 + bl GetMonData + cmp r0, 0xC7 + bls _0810EFE4 + movs r0, 0x1 + b _0810EFE6 + .align 2, 0 +_0810EFE0: .4byte gPlayerParty +_0810EFE4: + movs r0, 0 +_0810EFE6: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonSmart + + thumb_func_start CheckLeadMonTough +CheckLeadMonTough: @ 810EFEC + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F00C @ =gPlayerParty + adds r0, r1 + movs r1, 0x2F + bl GetMonData + cmp r0, 0xC7 + bls _0810F010 + movs r0, 0x1 + b _0810F012 + .align 2, 0 +_0810F00C: .4byte gPlayerParty +_0810F010: + movs r0, 0 +_0810F012: + pop {r1} + bx r1 + thumb_func_end CheckLeadMonTough + + thumb_func_start IsGrassTypeInParty +IsGrassTypeInParty: @ 810F018 + push {r4-r6,lr} + movs r5, 0 + ldr r6, _0810F068 @ =gBaseStats +_0810F01E: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0810F06C @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x5 + bl GetMonData + cmp r0, 0 + beq _0810F074 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0810F074 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1, 0x6] + cmp r0, 0xC + beq _0810F060 + ldrb r0, [r1, 0x7] + cmp r0, 0xC + bne _0810F074 +_0810F060: + ldr r1, _0810F070 @ =gScriptResult + movs r0, 0x1 + b _0810F082 + .align 2, 0 +_0810F068: .4byte gBaseStats +_0810F06C: .4byte gPlayerParty +_0810F070: .4byte gScriptResult +_0810F074: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0810F01E + ldr r1, _0810F08C @ =gScriptResult + movs r0, 0 +_0810F082: + strh r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0810F08C: .4byte gScriptResult + thumb_func_end IsGrassTypeInParty + + thumb_func_start ShowGlassWorkshopMenu +ShowGlassWorkshopMenu: @ 810F090 + push {r4,r5,lr} + sub sp, 0x8 + bl ScriptContext2_Enable + movs r0, 0 + movs r1, 0 + movs r2, 0xA + movs r3, 0xB + bl MenuDrawTextWindow + movs r4, 0 + str r4, [sp] + movs r0, 0x9 + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + movs r3, 0x5 + bl InitMenu + ldr r0, _0810F104 @ =gUnknown_0203925C + strb r4, [r0] + bl sub_80F944C + bl LoadScrollIndicatorPalette + bl sub_810F2B4 + ldr r5, _0810F108 @ =gUnknown_083F83C0 +_0810F0CA: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + lsls r2, r4, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _0810F0CA + ldr r1, _0810F10C @ =gUnknown_0203925B + movs r0, 0 + strb r0, [r1] + ldr r1, _0810F110 @ =gUnknown_0203925A + movs r0, 0x8 + strb r0, [r1] + ldr r0, _0810F114 @ =sub_810F118 + movs r1, 0x8 + bl CreateTask + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F104: .4byte gUnknown_0203925C +_0810F108: .4byte gUnknown_083F83C0 +_0810F10C: .4byte gUnknown_0203925B +_0810F110: .4byte gUnknown_0203925A +_0810F114: .4byte sub_810F118 + thumb_func_end ShowGlassWorkshopMenu + + thumb_func_start sub_810F118 +sub_810F118: @ 810F118 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0810F1E4 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x40 + bne _0810F14A + ldr r1, _0810F1E8 @ =gUnknown_0203925B + ldrb r0, [r1] + cmp r0, 0 + beq _0810F14A + subs r0, 0x1 + strb r0, [r1] + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursorNoWrap + adds r0, r4, 0 + movs r1, 0x40 + bl sub_810F1F4 +_0810F14A: + ldr r0, _0810F1E4 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0x80 + bne _0810F17A + ldr r2, _0810F1E8 @ =gUnknown_0203925B + ldrb r1, [r2] + ldr r0, _0810F1EC @ =gUnknown_0203925A + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + beq _0810F17A + adds r0, r1, 0x1 + strb r0, [r2] + bl GetMenuCursorPos + lsls r0, 24 + lsrs r4, r0, 24 + movs r0, 0x1 + bl MoveMenuCursorNoWrap + adds r0, r4, 0 + movs r1, 0x80 + bl sub_810F1F4 +_0810F17A: + ldr r4, _0810F1E4 @ =gMain + ldrh r1, [r4, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0810F1AE + bl sub_8072DEC + ldr r0, _0810F1F0 @ =gScriptResult + ldr r1, _0810F1E8 @ =gUnknown_0203925B + ldrb r1, [r1] + strh r1, [r0] + movs r0, 0x5 + bl PlaySE + bl sub_810EEDC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_810EC9C +_0810F1AE: + ldrh r1, [r4, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0810F1DE + bl sub_8072DEC + ldr r1, _0810F1F0 @ =gScriptResult + movs r0, 0x7F + strh r0, [r1] + movs r0, 0x5 + bl PlaySE + bl sub_810EEDC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0xC + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_810EC9C +_0810F1DE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F1E4: .4byte gMain +_0810F1E8: .4byte gUnknown_0203925B +_0810F1EC: .4byte gUnknown_0203925A +_0810F1F0: .4byte gScriptResult + thumb_func_end sub_810F118 + + thumb_func_start sub_810F1F4 +sub_810F1F4: @ 810F1F4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r2, 0 + lsls r1, 24 + lsrs r1, 24 + adds r3, r1, 0 + movs r6, 0 + movs r4, 0 + ldr r0, _0810F214 @ =gUnknown_0203925A + ldrb r0, [r0] + cmp r0, 0x4 + bhi _0810F218 + movs r0, 0 + b _0810F282 + .align 2, 0 +_0810F214: .4byte gUnknown_0203925A +_0810F218: + cmp r1, 0x40 + bne _0810F22C + cmp r2, 0 + bne _0810F240 + ldr r0, _0810F228 @ =gUnknown_0203925B + ldrb r4, [r0] + movs r6, 0x1 + b _0810F244 + .align 2, 0 +_0810F228: .4byte gUnknown_0203925B +_0810F22C: + cmp r3, 0x80 + bne _0810F240 + cmp r5, 0x4 + bne _0810F240 + ldr r0, _0810F288 @ =gUnknown_0203925B + ldrb r0, [r0] + subs r0, 0x4 + lsls r0, 24 + lsrs r4, r0, 24 + movs r6, 0x1 +_0810F240: + cmp r6, 0 + beq _0810F280 +_0810F244: + adds r0, r4, 0 + movs r1, 0x5 + bl GlassWorkshopUpdateScrollIndicators + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x9 + movs r3, 0xA + bl MenuFillWindowRectWithBlankTile + movs r5, 0 + ldr r7, _0810F28C @ =gUnknown_083F83C0 +_0810F25C: + lsls r0, r4, 2 + adds r0, r7 + ldr r0, [r0] + lsls r2, r5, 1 + adds r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + movs r1, 0x1 + bl MenuPrint + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bls _0810F25C +_0810F280: + adds r0, r6, 0 +_0810F282: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810F288: .4byte gUnknown_0203925B +_0810F28C: .4byte gUnknown_083F83C0 + thumb_func_end sub_810F1F4 + + thumb_func_start sub_810F290 +sub_810F290: @ 810F290 + push {lr} + ldr r2, _0810F2B0 @ =gUnknown_0203925C + ldrb r1, [r2] + lsrs r0, r1, 1 + cmp r0, 0x1 + beq _0810F2AC + movs r0, 0x2 + orrs r0, r1 + strb r0, [r2] + movs r0, 0 + movs r1, 0x2C + movs r2, 0x8 + bl CreateVerticalScrollIndicators +_0810F2AC: + pop {r0} + bx r0 + .align 2, 0 +_0810F2B0: .4byte gUnknown_0203925C + thumb_func_end sub_810F290 + + thumb_func_start sub_810F2B4 +sub_810F2B4: @ 810F2B4 + push {lr} + ldr r2, _0810F2D8 @ =gUnknown_0203925C + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810F2D2 + movs r0, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x1 + movs r1, 0x2C + movs r2, 0x58 + bl CreateVerticalScrollIndicators +_0810F2D2: + pop {r0} + bx r0 + .align 2, 0 +_0810F2D8: .4byte gUnknown_0203925C + thumb_func_end sub_810F2B4 + + thumb_func_start GlassWorkshopUpdateScrollIndicators +GlassWorkshopUpdateScrollIndicators: @ 810F2DC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + cmp r4, 0 + bne _0810F300 + ldr r0, _0810F2FC @ =gUnknown_0203925C + ldrb r1, [r0] + movs r2, 0x2 + eors r1, r2 + strb r1, [r0] + movs r0, 0 + bl DestroyVerticalScrollIndicator + b _0810F304 + .align 2, 0 +_0810F2FC: .4byte gUnknown_0203925C +_0810F300: + bl sub_810F290 +_0810F304: + adds r1, r4, r5 + ldr r0, _0810F314 @ =gUnknown_0203925A + ldrb r0, [r0] + cmp r1, r0 + bge _0810F318 + bl sub_810F2B4 + b _0810F32C + .align 2, 0 +_0810F314: .4byte gUnknown_0203925A +_0810F318: + cmp r1, r0 + bne _0810F32C + ldr r0, _0810F334 @ =gUnknown_0203925C + ldrb r1, [r0] + movs r2, 0x1 + eors r1, r2 + strb r1, [r0] + movs r0, 0x1 + bl DestroyVerticalScrollIndicator +_0810F32C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F334: .4byte gUnknown_0203925C + thumb_func_end GlassWorkshopUpdateScrollIndicators + + thumb_func_start SpawnCameraDummy +SpawnCameraDummy: @ 810F338 + push {lr} + sub sp, 0x8 + ldr r0, _0810F380 @ =gSaveBlock1 + ldrh r3, [r0] + adds r3, 0x7 + lsls r3, 16 + asrs r3, 16 + ldrh r0, [r0, 0x2] + adds r0, 0x7 + lsls r0, 16 + asrs r0, 16 + str r0, [sp] + movs r0, 0x3 + str r0, [sp, 0x4] + movs r0, 0x7 + movs r1, 0x8 + movs r2, 0x7F + bl SpawnSpecialFieldObjectParametrized + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810F384 @ =gMapObjects + lsls r1, r0, 3 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x1] + movs r2, 0x20 + orrs r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r1, 0x4] + bl CameraObjectSetFollowedObjectId + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_0810F380: .4byte gSaveBlock1 +_0810F384: .4byte gMapObjects + thumb_func_end SpawnCameraDummy + + thumb_func_start RemoveCameraDummy +RemoveCameraDummy: @ 810F388 + push {lr} + bl GetPlayerAvatarObjectId + lsls r0, 24 + lsrs r0, 24 + bl CameraObjectSetFollowedObjectId + ldr r0, _0810F3A8 @ =gSaveBlock1 + ldrb r1, [r0, 0x5] + ldrb r2, [r0, 0x4] + movs r0, 0x7F + bl RemoveFieldObjectByLocalIdAndMap + pop {r0} + bx r0 + .align 2, 0 +_0810F3A8: .4byte gSaveBlock1 + thumb_func_end RemoveCameraDummy + + thumb_func_start GetPokeblockNameByMonNature +GetPokeblockNameByMonNature: @ 810F3AC + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F3D4 @ =gPlayerParty + adds r0, r1 + bl GetNature + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0810F3D8 @ =gStringVar1 + bl sub_810CB68 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0810F3D4: .4byte gPlayerParty +_0810F3D8: .4byte gStringVar1 + thumb_func_end GetPokeblockNameByMonNature + + thumb_func_start GetSecretBaseNearbyMapName +GetSecretBaseNearbyMapName: @ 810F3DC + push {r4,lr} + ldr r4, _0810F3FC @ =gStringVar1 + ldr r0, _0810F400 @ =0x00004026 + bl VarGet + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + movs r2, 0 + bl sub_80FBFB4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810F3FC: .4byte gStringVar1 +_0810F400: .4byte 0x00004026 + thumb_func_end GetSecretBaseNearbyMapName + + thumb_func_start sub_810F404 +sub_810F404: @ 810F404 + push {lr} + movs r0, 0x20 + bl sub_8053108 + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + thumb_func_end sub_810F404 + + thumb_func_start sub_810F414 +sub_810F414: @ 810F414 + push {lr} + ldr r0, _0810F420 @ =gStringVar1 + bl sub_8135FF4 + pop {r0} + bx r0 + .align 2, 0 +_0810F420: .4byte gStringVar1 + thumb_func_end sub_810F414 + + thumb_func_start sub_810F424 +sub_810F424: @ 810F424 + push {r4,r5,lr} + ldr r2, _0810F458 @ =gSaveBlock1 + ldr r1, _0810F45C @ =0x00002dd4 + adds r0, r2, r1 + ldrb r1, [r0] + lsls r1, 25 + ldr r0, _0810F460 @ =0x00002dd6 + adds r2, r0 + lsrs r1, 25 + ldrh r2, [r2] + adds r1, r2 + ldr r2, _0810F464 @ =gUnknown_083F83E0 + ldr r0, _0810F468 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + adds r0, r2 + ldrb r0, [r0] + adds r5, r1, r0 + movs r0, 0x2 + bl GetPriceReduction + lsls r0, 24 + cmp r0, 0 + bne _0810F470 + ldr r4, _0810F46C @ =gUnknown_083F83EC + b _0810F472 + .align 2, 0 +_0810F458: .4byte gSaveBlock1 +_0810F45C: .4byte 0x00002dd4 +_0810F460: .4byte 0x00002dd6 +_0810F464: .4byte gUnknown_083F83E0 +_0810F468: .4byte gSpecialVar_0x8004 +_0810F46C: .4byte gUnknown_083F83EC +_0810F470: + ldr r4, _0810F484 @ =gUnknown_083F83F8 +_0810F472: + adds r0, r5, 0 + movs r1, 0xC + bl __umodsi3 + adds r0, r4 + ldrb r0, [r0] + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810F484: .4byte gUnknown_083F83F8 + thumb_func_end sub_810F424 + + thumb_func_start sub_810F488 +sub_810F488: @ 810F488 + push {lr} + ldr r1, _0810F4A0 @ =gSpecialVar_0x8004 + ldr r0, _0810F4A4 @ =0x00000277 + strh r0, [r1] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F4A8 + movs r0, 0x1 + b _0810F4AA + .align 2, 0 +_0810F4A0: .4byte gSpecialVar_0x8004 +_0810F4A4: .4byte 0x00000277 +_0810F4A8: + movs r0, 0 +_0810F4AA: + pop {r1} + bx r1 + thumb_func_end sub_810F488 + + thumb_func_start sub_810F4B0 +sub_810F4B0: @ 810F4B0 + push {lr} + ldr r1, _0810F4C8 @ =gSpecialVar_0x8004 + movs r0, 0x9E + lsls r0, 2 + strh r0, [r1] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F4CC + movs r0, 0x1 + b _0810F4CE + .align 2, 0 +_0810F4C8: .4byte gSpecialVar_0x8004 +_0810F4CC: + movs r0, 0 +_0810F4CE: + pop {r1} + bx r1 + thumb_func_end sub_810F4B0 + + thumb_func_start sub_810F4D4 +sub_810F4D4: @ 810F4D4 + push {lr} + ldr r1, _0810F4EC @ =gSpecialVar_0x8004 + ldr r0, _0810F4F0 @ =0x00000279 + strh r0, [r1] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F4F4 + movs r0, 0x1 + b _0810F4F6 + .align 2, 0 +_0810F4EC: .4byte gSpecialVar_0x8004 +_0810F4F0: .4byte 0x00000279 +_0810F4F4: + movs r0, 0 +_0810F4F6: + pop {r1} + bx r1 + thumb_func_end sub_810F4D4 + + thumb_func_start sub_810F4FC +sub_810F4FC: @ 810F4FC + push {lr} + ldr r1, _0810F514 @ =gSpecialVar_0x8004 + ldr r0, _0810F518 @ =0x0000027a + strh r0, [r1] + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F51C + movs r0, 0x1 + b _0810F51E + .align 2, 0 +_0810F514: .4byte gSpecialVar_0x8004 +_0810F518: .4byte 0x0000027a +_0810F51C: + movs r0, 0 +_0810F51E: + pop {r1} + bx r1 + thumb_func_end sub_810F4FC + + thumb_func_start LeadMonHasEffortRibbon +LeadMonHasEffortRibbon: @ 810F524 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F548 @ =gPlayerParty + adds r0, r1 + movs r1, 0x47 + movs r2, 0 + bl GetMonData + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0810F548: .4byte gPlayerParty + thumb_func_end LeadMonHasEffortRibbon + + thumb_func_start GivLeadMonEffortRibbon +GivLeadMonEffortRibbon: @ 810F54C + push {lr} + sub sp, 0x4 + movs r0, 0x2A + bl sav12_xor_increment + ldr r0, _0810F580 @ =0x0000083b + bl FlagSet + movs r1, 0x1 + mov r0, sp + strb r1, [r0] + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F584 @ =gPlayerParty + adds r0, r1 + movs r1, 0x47 + mov r2, sp + bl SetMonData + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0810F580: .4byte 0x0000083b +_0810F584: .4byte gPlayerParty + thumb_func_end GivLeadMonEffortRibbon + + thumb_func_start GetLeadMonEVCount +GetLeadMonEVCount: @ 810F588 + push {lr} + bl GetLeadMonIndex + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x64 + muls r0, r1 + ldr r1, _0810F5AC @ =gPlayerParty + adds r0, r1 + bl GetMonEVCount + lsls r0, 16 + ldr r1, _0810F5B0 @ =0x01fd0000 + cmp r0, r1 + bhi _0810F5B4 + movs r0, 0 + b _0810F5B6 + .align 2, 0 +_0810F5AC: .4byte gPlayerParty +_0810F5B0: .4byte 0x01fd0000 +_0810F5B4: + movs r0, 0x1 +_0810F5B6: + pop {r1} + bx r1 + thumb_func_end GetLeadMonEVCount + + thumb_func_start sub_810F5BC +sub_810F5BC: @ 810F5BC + push {lr} + movs r0, 0xC7 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _0810F610 + ldr r0, _0810F5E8 @ =gSaveBlock1 + ldrh r1, [r0, 0x4] + movs r0, 0x83 + lsls r0, 3 + cmp r1, r0 + bne _0810F610 + subs r0, 0x75 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F5F0 + ldr r0, _0810F5EC @ =0x0000409a + movs r1, 0x4 + b _0810F602 + .align 2, 0 +_0810F5E8: .4byte gSaveBlock1 +_0810F5EC: .4byte 0x0000409a +_0810F5F0: + movs r0, 0xE9 + lsls r0, 2 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0810F610 + ldr r0, _0810F60C @ =0x0000409a + movs r1, 0x5 +_0810F602: + bl VarSet + movs r0, 0x1 + b _0810F612 + .align 2, 0 +_0810F60C: .4byte 0x0000409a +_0810F610: + movs r0, 0 +_0810F612: + pop {r1} + bx r1 + thumb_func_end sub_810F5BC + + thumb_func_start sub_810F618 +sub_810F618: @ 810F618 + push {lr} + ldr r0, _0810F624 @ =0x0000085f + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_0810F624: .4byte 0x0000085f + thumb_func_end sub_810F618 + + thumb_func_start PutZigzagoonInPlayerParty +PutZigzagoonInPlayerParty: @ 810F628 + push {r4,r5,lr} + sub sp, 0x14 + ldr r5, _0810F690 @ =gPlayerParty + movs r1, 0x90 + lsls r1, 1 + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + str r4, [sp, 0x8] + str r4, [sp, 0xC] + adds r0, r5, 0 + movs r2, 0x7 + movs r3, 0x20 + bl CreateMon + movs r1, 0x1 + add r0, sp, 0x10 + strh r1, [r0] + adds r0, r5, 0 + movs r1, 0x2E + add r2, sp, 0x10 + bl SetMonData + add r1, sp, 0x10 + movs r0, 0x21 + strh r0, [r1] + adds r0, r5, 0 + movs r1, 0xD + add r2, sp, 0x10 + bl SetMonData + add r0, sp, 0x10 + strh r4, [r0] + adds r0, r5, 0 + movs r1, 0xE + add r2, sp, 0x10 + bl SetMonData + adds r0, r5, 0 + movs r1, 0xF + add r2, sp, 0x10 + bl SetMonData + adds r0, r5, 0 + movs r1, 0x10 + add r2, sp, 0x10 + bl SetMonData + add sp, 0x14 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F690: .4byte gPlayerParty + thumb_func_end PutZigzagoonInPlayerParty + + thumb_func_start IsStarterInParty +IsStarterInParty: @ 810F694 + push {r4-r6,lr} + ldr r0, _0810F6D0 @ =0x00004023 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + bl GetStarterPokemon + lsls r0, 16 + lsrs r6, r0, 16 + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + cmp r4, r5 + bcs _0810F6E2 +_0810F6B6: + movs r0, 0x64 + muls r0, r4 + ldr r1, _0810F6D4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + cmp r0, r6 + bne _0810F6D8 + movs r0, 0x1 + b _0810F6E4 + .align 2, 0 +_0810F6D0: .4byte 0x00004023 +_0810F6D4: .4byte gPlayerParty +_0810F6D8: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _0810F6B6 +_0810F6E2: + movs r0, 0 +_0810F6E4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end IsStarterInParty + + thumb_func_start CheckFreePokemonStorageSpace +CheckFreePokemonStorageSpace: @ 810F6EC + push {r4-r6,lr} + movs r5, 0 +_0810F6F0: + movs r4, 0 + lsls r1, r5, 2 + adds r1, r5 + lsls r0, r1, 4 + subs r0, r1 + lsls r6, r0, 5 +_0810F6FC: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + ldr r1, _0810F718 @ =gUnknown_020300A4 + adds r0, r1 + adds r0, r6, r0 + movs r1, 0xB + movs r2, 0 + bl GetBoxMonData + cmp r0, 0 + bne _0810F71C + movs r0, 0x1 + b _0810F732 + .align 2, 0 +_0810F718: .4byte gUnknown_020300A4 +_0810F71C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x1D + bls _0810F6FC + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _0810F6F0 + movs r0, 0 +_0810F732: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end CheckFreePokemonStorageSpace + + thumb_func_start IsPokerusInParty +IsPokerusInParty: @ 810F738 + push {lr} + ldr r0, _0810F74C @ =gPlayerParty + movs r1, 0x3F + bl CheckPartyPokerus + lsls r0, 24 + cmp r0, 0 + beq _0810F750 + movs r0, 0x1 + b _0810F752 + .align 2, 0 +_0810F74C: .4byte gPlayerParty +_0810F750: + movs r0, 0 +_0810F752: + pop {r1} + bx r1 + thumb_func_end IsPokerusInParty + + thumb_func_start sub_810F758 +sub_810F758: @ 810F758 + push {lr} + ldr r0, _0810F798 @ =sub_810F7A8 + movs r1, 0x9 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0810F79C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _0810F7A0 @ =gSpecialVar_0x8005 + ldrh r2, [r0] + movs r0, 0 + strh r2, [r1, 0x8] + strh r0, [r1, 0xA] + strh r0, [r1, 0xC] + strh r0, [r1, 0xE] + ldr r0, _0810F7A4 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + strh r0, [r1, 0x10] + movs r0, 0x5 + strh r0, [r1, 0x12] + movs r0, 0 + bl SetCameraPanningCallback + movs r0, 0xD6 + bl PlaySE + pop {r0} + bx r0 + .align 2, 0 +_0810F798: .4byte sub_810F7A8 +_0810F79C: .4byte gTasks +_0810F7A0: .4byte gSpecialVar_0x8005 +_0810F7A4: .4byte gSpecialVar_0x8004 + thumb_func_end sub_810F758 + + thumb_func_start sub_810F7A8 +sub_810F7A8: @ 810F7A8 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _0810F810 @ =gTasks + adds r4, r0, r1 + ldrh r0, [r4, 0xA] + adds r0, 0x1 + strh r0, [r4, 0xA] + movs r1, 0xA + ldrsh r0, [r4, r1] + movs r2, 0x12 + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _0810F808 + strh r0, [r4, 0xA] + ldrh r0, [r4, 0xC] + adds r0, 0x1 + strh r0, [r4, 0xC] + movs r1, 0xE + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0810F808 + ldrh r0, [r4, 0x8] + negs r0, r0 + strh r0, [r4, 0x8] + ldrh r0, [r4, 0x10] + negs r0, r0 + strh r0, [r4, 0x10] + movs r2, 0x8 + ldrsh r0, [r4, r2] + movs r2, 0x10 + ldrsh r1, [r4, r2] + bl SetCameraPanning + movs r1, 0xC + ldrsh r0, [r4, r1] + cmp r0, 0x8 + bne _0810F808 + adds r0, r5, 0 + bl sub_810F814 + bl InstallCameraPanAheadCallback +_0810F808: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810F810: .4byte gTasks + thumb_func_end sub_810F7A8 + + thumb_func_start sub_810F814 +sub_810F814: @ 810F814 + push {lr} + lsls r0, 24 + lsrs r0, 24 + bl DestroyTask + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_810F814 + + thumb_func_start sub_810F828 +sub_810F828: @ 810F828 + push {lr} + movs r0, 0xAE + lsls r0, 2 + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_810F828 + + thumb_func_start SetRoute119Weather +SetRoute119Weather: @ 810F83C + push {lr} + bl get_map_light_from_warp0 + lsls r0, 24 + lsrs r0, 24 + bl is_light_level_1_2_3_5_or_6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810F858 + movs r0, 0x14 + bl SetSav1Weather +_0810F858: + pop {r0} + bx r0 + thumb_func_end SetRoute119Weather + + thumb_func_start SetRoute123Weather +SetRoute123Weather: @ 810F85C + push {lr} + bl get_map_light_from_warp0 + lsls r0, 24 + lsrs r0, 24 + bl is_light_level_1_2_3_5_or_6 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0810F878 + movs r0, 0x15 + bl SetSav1Weather +_0810F878: + pop {r0} + bx r0 + thumb_func_end SetRoute123Weather + + thumb_func_start GetLeadMonIndex +GetLeadMonIndex: @ 810F87C + push {r4-r6,lr} + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + cmp r5, r6 + bcs _0810F8CA +_0810F88C: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0810F8BC @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _0810F8C0 + adds r0, r4, 0 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + cmp r0, 0 + beq _0810F8C0 + adds r0, r5, 0 + b _0810F8CC + .align 2, 0 +_0810F8BC: .4byte gPlayerParty +_0810F8C0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r6 + bcc _0810F88C +_0810F8CA: + movs r0, 0 +_0810F8CC: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end GetLeadMonIndex + + thumb_func_start ScriptGetPartyMonSpecies +ScriptGetPartyMonSpecies: @ 810F8D4 + push {lr} + ldr r0, _0810F8F4 @ =gSpecialVar_0x8004 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0810F8F8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x41 + movs r2, 0 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + pop {r1} + bx r1 + .align 2, 0 +_0810F8F4: .4byte gSpecialVar_0x8004 +_0810F8F8: .4byte gPlayerParty + thumb_func_end ScriptGetPartyMonSpecies + + thumb_func_start sub_810F8FC +sub_810F8FC: @ 810F8FC + push {lr} + movs r0, 0x6 + bl sub_805ADDC + pop {r0} + bx r0 + thumb_func_end sub_810F8FC + + thumb_func_start sub_810F908 +sub_810F908: @ 810F908 + push {r4,lr} + ldr r0, _0810F928 @ =0x000040c2 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + adds r3, r0, 0 + ldr r2, _0810F92C @ =gLocalTime + movs r1, 0 + ldrsh r0, [r2, r1] + subs r0, r3 + cmp r0, 0x6 + ble _0810F930 + movs r0, 0 + b _0810F948 + .align 2, 0 +_0810F928: .4byte 0x000040c2 +_0810F92C: .4byte gLocalTime +_0810F930: + ldrh r1, [r2] + movs r4, 0 + ldrsh r0, [r2, r4] + cmp r0, 0 + blt _0810F946 + subs r1, r3 + movs r0, 0x7 + subs r0, r1 + lsls r0, 16 + lsrs r0, 16 + b _0810F948 +_0810F946: + movs r0, 0x8 +_0810F948: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810F908 + + thumb_func_start sub_810F950 +sub_810F950: @ 810F950 + push {r4,lr} + ldr r0, _0810F964 @ =0x000040c2 + ldr r4, _0810F968 @ =gLocalTime + ldrh r1, [r4] + bl VarSet + ldrh r0, [r4] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0810F964: .4byte 0x000040c2 +_0810F968: .4byte gLocalTime + thumb_func_end sub_810F950 + + thumb_func_start sub_810F96C +sub_810F96C: @ 810F96C + push {r4,lr} + ldr r0, _0810F994 @ =gSpecialVar_0x8004 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0810F998 @ =gPlayerParty + adds r0, r1 + ldr r4, _0810F99C @ =gStringVar1 + movs r1, 0x7 + adds r2, r4, 0 + bl GetMonData + ldr r0, _0810F9A0 @ =gSaveBlock2 + adds r1, r4, 0 + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + beq _0810F9A4 + movs r0, 0x1 + b _0810F9A6 + .align 2, 0 +_0810F994: .4byte gSpecialVar_0x8004 +_0810F998: .4byte gPlayerParty +_0810F99C: .4byte gStringVar1 +_0810F9A0: .4byte gSaveBlock2 +_0810F9A4: + movs r0, 0 +_0810F9A6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_810F96C + + thumb_func_start sub_810F9AC +sub_810F9AC: @ 810F9AC + push {r4,r5,lr} + ldr r2, _0810F9C0 @ =gScriptResult + ldrh r1, [r2] + ldr r0, _0810F9C4 @ =0x0000270f + cmp r1, r0 + bls _0810F9C8 + movs r0, 0 + bl sub_80BF088 + b _0810FA4A + .align 2, 0 +_0810F9C0: .4byte gScriptResult +_0810F9C4: .4byte 0x0000270f +_0810F9C8: + ldr r0, _0810F9D8 @ =0x000003e7 + cmp r1, r0 + bls _0810F9E0 + ldr r4, _0810F9DC @ =gStringVar1 + movs r0, 0xA1 + strb r0, [r4] + adds r4, 0x1 + b _0810FA04 + .align 2, 0 +_0810F9D8: .4byte 0x000003e7 +_0810F9DC: .4byte gStringVar1 +_0810F9E0: + cmp r1, 0x63 + bls _0810F9F4 + ldr r4, _0810F9F0 @ =gStringVar1 + movs r0, 0xA1 + strb r0, [r4] + strb r0, [r4, 0x1] + adds r4, 0x2 + b _0810FA04 + .align 2, 0 +_0810F9F0: .4byte gStringVar1 +_0810F9F4: + cmp r1, 0x9 + bls _0810FA24 + ldr r4, _0810FA20 @ =gStringVar1 + movs r0, 0xA1 + strb r0, [r4] + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + adds r4, 0x3 +_0810FA04: + ldrh r5, [r2] + adds r0, r5, 0 + bl sub_80BF0B8 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl ConvertIntToDecimalStringN + b _0810FA4A + .align 2, 0 +_0810FA20: .4byte gStringVar1 +_0810FA24: + ldr r4, _0810FA50 @ =gStringVar1 + movs r0, 0xA1 + strb r0, [r4] + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + strb r0, [r4, 0x3] + adds r4, 0x4 + ldrh r5, [r2] + adds r0, r5, 0 + bl sub_80BF0B8 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl ConvertIntToDecimalStringN +_0810FA4A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0810FA50: .4byte gStringVar1 + thumb_func_end sub_810F9AC + + thumb_func_start sub_810FA54 +sub_810FA54: @ 810FA54 + ldr r0, _0810FA68 @ =gSaveBlock1 + ldr r2, _0810FA6C @ =0x000013c2 + adds r1, r0, r2 + movs r2, 0 + strh r2, [r1] + ldr r1, _0810FA70 @ =0x000013c4 + adds r0, r1 + strh r2, [r0] + bx lr + .align 2, 0 +_0810FA68: .4byte gSaveBlock1 +_0810FA6C: .4byte 0x000013c2 +_0810FA70: .4byte 0x000013c4 + thumb_func_end sub_810FA54 + + thumb_func_start sub_810FA74 +sub_810FA74: @ 810FA74 + push {lr} + bl sub_810FF30 + lsls r0, 24 + cmp r0, 0 + beq _0810FA90 + bl sub_810FCE8 + ldr r0, _0810FA94 @ =gSaveBlock1 + ldr r1, _0810FA98 @ =gSaveBlock2 + ldrh r1, [r1, 0xE] + ldr r2, _0810FA9C @ =0x000013c4 + adds r0, r2 + strh r1, [r0] +_0810FA90: + pop {r0} + bx r0 + .align 2, 0 +_0810FA94: .4byte gSaveBlock1 +_0810FA98: .4byte gSaveBlock2 +_0810FA9C: .4byte 0x000013c4 + thumb_func_end sub_810FA74 + + thumb_func_start sub_810FAA0 +sub_810FAA0: @ 810FAA0 + push {r4,lr} + ldr r4, _0810FAF0 @ =gSaveBlock1 + ldr r1, _0810FAF4 @ =0x000013c2 + adds r0, r4, r1 + ldrh r0, [r0] + lsrs r0, 7 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0810FAE8 + bl sub_810FF48 + bl sub_810FD80 + ldr r0, _0810FAF8 @ =gSaveBlock2 + ldrh r1, [r0, 0xE] + ldr r2, _0810FAFC @ =0x000013c4 + adds r0, r4, r2 + strh r1, [r0] + ldr r0, _0810FB00 @ =0x00000315 + bl FlagReset + ldr r0, _0810FB04 @ =0x00000316 + bl FlagReset + ldr r0, _0810FB08 @ =0x00000317 + bl FlagReset + movs r0, 0xC6 + lsls r0, 2 + bl FlagReset + ldr r0, _0810FB0C @ =0x00004095 + movs r1, 0x1 + bl VarSet +_0810FAE8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810FAF0: .4byte gSaveBlock1 +_0810FAF4: .4byte 0x000013c2 +_0810FAF8: .4byte gSaveBlock2 +_0810FAFC: .4byte 0x000013c4 +_0810FB00: .4byte 0x00000315 +_0810FB04: .4byte 0x00000316 +_0810FB08: .4byte 0x00000317 +_0810FB0C: .4byte 0x00004095 + thumb_func_end sub_810FAA0 + + thumb_func_start sub_810FB10 +sub_810FB10: @ 810FB10 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0810FB54 @ =0x00004095 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bne _0810FB80 + ldr r0, _0810FB58 @ =gSaveBlock1 + ldr r1, _0810FB5C @ =0x000013c2 + adds r4, r0, r1 + ldrh r2, [r4] + movs r1, 0x7F + ands r1, r2 + ldr r0, _0810FB60 @ =gUnknown_083F8404 + adds r0, r5, r0 + ldrb r0, [r0] + adds r1, r0 + cmp r1, 0x13 + ble _0810FB7C + bl sub_810FCB0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bhi _0810FB68 + bl sub_810FB9C + ldrh r1, [r4] + ldr r0, _0810FB64 @ =0x0000ff80 + ands r0, r1 + b _0810FB7E + .align 2, 0 +_0810FB54: .4byte 0x00004095 +_0810FB58: .4byte gSaveBlock1 +_0810FB5C: .4byte 0x000013c2 +_0810FB60: .4byte gUnknown_083F8404 +_0810FB64: .4byte 0x0000ff80 +_0810FB68: + ldrh r0, [r4] + ldr r1, _0810FB78 @ =0x0000ff80 + ands r1, r0 + movs r0, 0x14 + orrs r1, r0 + strh r1, [r4] + b _0810FB80 + .align 2, 0 +_0810FB78: .4byte 0x0000ff80 +_0810FB7C: + adds r0, r2, r0 +_0810FB7E: + strh r0, [r4] +_0810FB80: + ldr r0, _0810FB94 @ =gSaveBlock1 + ldr r1, _0810FB98 @ =0x000013c2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x7F + ands r0, r1 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810FB94: .4byte gSaveBlock1 +_0810FB98: .4byte 0x000013c2 + thumb_func_end sub_810FB10 + + thumb_func_start sub_810FB9C +sub_810FB9C: @ 810FB9C + push {r4-r7,lr} + sub sp, 0x4 + movs r3, 0 + movs r5, 0 + ldr r7, _0810FBD8 @ =gSaveBlock1 + 0x13C2 + movs r6, 0x1 +_0810FBA8: + ldrh r1, [r7] + ldr r0, _0810FBDC @ =gUnknown_083F8408 + adds r0, r5, r0 + ldrb r4, [r0] + asrs r1, r4 + ands r1, r6 + cmp r1, 0 + bne _0810FBE0 + adds r3, r5, 0 + str r3, [sp] + bl Random + adds r1, r6, 0 + ands r1, r0 + ldr r3, [sp] + cmp r1, 0 + beq _0810FBE0 + adds r0, r6, 0 + lsls r0, r4 + ldrh r1, [r7] + orrs r0, r1 + strh r0, [r7] + b _0810FC00 + .align 2, 0 +_0810FBD8: .4byte gSaveBlock1 + 0x13C2 +_0810FBDC: .4byte gUnknown_083F8408 +_0810FBE0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _0810FBA8 + ldr r2, _0810FC0C @ =gSaveBlock1 + ldr r0, _0810FC10 @ =0x000013c2 + adds r2, r0 + ldr r1, _0810FC14 @ =gUnknown_083F8408 + adds r1, r3, r1 + movs r0, 0x1 + ldrb r1, [r1] + lsls r0, r1 + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] +_0810FC00: + adds r0, r3, 0 + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810FC0C: .4byte gSaveBlock1 +_0810FC10: .4byte 0x000013c2 +_0810FC14: .4byte gUnknown_083F8408 + thumb_func_end sub_810FB9C + + thumb_func_start sub_810FC18 +sub_810FC18: @ 810FC18 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + movs r0, 0 + mov r8, r0 + bl sub_810FCB0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _0810FC3E + movs r0, 0 + b _0810FC94 +_0810FC34: + lsls r4, r6 + ldrh r0, [r2] + eors r4, r0 + strh r4, [r2] + b _0810FC92 +_0810FC3E: + movs r5, 0 + ldr r2, _0810FCA0 @ =gSaveBlock1 + 0x13C2 + movs r4, 0x1 +_0810FC44: + ldrh r1, [r2] + ldr r7, _0810FCA4 @ =gUnknown_083F8410 + adds r0, r5, r7 + ldrb r6, [r0] + asrs r1, r6 + ands r1, r4 + cmp r1, 0 + beq _0810FC66 + mov r8, r5 + str r2, [sp] + bl Random + adds r1, r4, 0 + ands r1, r0 + ldr r2, [sp] + cmp r1, 0 + bne _0810FC34 +_0810FC66: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x7 + bls _0810FC44 + ldr r0, _0810FCA8 @ =gSaveBlock1 + ldr r1, _0810FCAC @ =0x000013c2 + adds r4, r0, r1 + ldrh r1, [r4] + mov r2, r8 + adds r0, r2, r7 + ldrb r2, [r0] + adds r0, r1, 0 + asrs r0, r2 + movs r3, 0x1 + ands r0, r3 + cmp r0, 0 + beq _0810FC92 + adds r0, r3, 0 + lsls r0, r2 + eors r1, r0 + strh r1, [r4] +_0810FC92: + mov r0, r8 +_0810FC94: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0810FCA0: .4byte gSaveBlock1 + 0x13C2 +_0810FCA4: .4byte gUnknown_083F8410 +_0810FCA8: .4byte gSaveBlock1 +_0810FCAC: .4byte 0x000013c2 + thumb_func_end sub_810FC18 + + thumb_func_start sub_810FCB0 +sub_810FCB0: @ 810FCB0 + push {r4,r5,lr} + movs r3, 0 + movs r2, 0 + ldr r0, _0810FCE4 @ =gSaveBlock1 + 0x13C2 + ldrh r4, [r0] + movs r5, 0x1 +_0810FCBC: + adds r1, r2, 0 + adds r1, 0x8 + adds r0, r4, 0 + asrs r0, r1 + ands r0, r5 + cmp r0, 0 + beq _0810FCD0 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_0810FCD0: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x7 + bls _0810FCBC + adds r0, r3, 0 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0810FCE4: .4byte gSaveBlock1 + 0x13C2 + thumb_func_end sub_810FCB0 + + thumb_func_start sub_810FCE8 +sub_810FCE8: @ 810FCE8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 + ldr r2, _0810FD08 @ =gSaveBlock2 + ldrh r1, [r2, 0xE] + ldr r0, _0810FD0C @ =0x000003e6 + cmp r1, r0 + bhi _0810FD54 + ldr r7, _0810FD10 @ =gSaveBlock1 + adds r6, r2, 0 + ldr r0, _0810FD14 @ =0x000013c4 + adds r0, r7 + mov r8, r0 + b _0810FD36 + .align 2, 0 +_0810FD08: .4byte gSaveBlock2 +_0810FD0C: .4byte 0x000003e6 +_0810FD10: .4byte gSaveBlock1 +_0810FD14: .4byte 0x000013c4 +_0810FD18: + ldrh r1, [r6, 0xE] + ldr r0, _0810FD4C @ =0x000013c4 + adds r4, r7, r0 + ldrh r0, [r4] + subs r1, r0 + cmp r1, 0xB + ble _0810FD54 + bl sub_810FC18 + ldrh r0, [r4] + adds r0, 0xC + strh r0, [r4] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_0810FD36: + bl sub_810FCB0 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bhi _0810FD50 + ldrh r0, [r6, 0xE] + mov r1, r8 + strh r0, [r1] + b _0810FD54 + .align 2, 0 +_0810FD4C: .4byte 0x000013c4 +_0810FD50: + cmp r5, 0x8 + bne _0810FD18 +_0810FD54: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_810FCE8 + + thumb_func_start sub_810FD60 +sub_810FD60: @ 810FD60 + ldr r0, _0810FD74 @ =gSaveBlock1 + ldr r1, _0810FD78 @ =0x000013c2 + adds r0, r1 + ldrh r0, [r0] + ldr r1, _0810FD7C @ =gSpecialVar_0x8004 + ldrh r1, [r1] + asrs r0, r1 + movs r1, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_0810FD74: .4byte gSaveBlock1 +_0810FD78: .4byte 0x000013c2 +_0810FD7C: .4byte gSpecialVar_0x8004 + thumb_func_end sub_810FD60 + + thumb_func_start sub_810FD80 +sub_810FD80: @ 810FD80 + ldr r2, _0810FDA4 @ =gSaveBlock1 + ldr r0, _0810FDA8 @ =0x000013c2 + adds r2, r0 + ldrh r1, [r2] + movs r3, 0x80 + lsls r3, 6 + adds r0, r3, 0 + orrs r0, r1 + movs r3, 0x80 + lsls r3, 1 + adds r1, r3, 0 + orrs r0, r1 + movs r3, 0x80 + lsls r3, 3 + adds r1, r3, 0 + orrs r0, r1 + strh r0, [r2] + bx lr + .align 2, 0 +_0810FDA4: .4byte gSaveBlock1 +_0810FDA8: .4byte 0x000013c2 + thumb_func_end sub_810FD80 + + thumb_func_start sub_810FDAC +sub_810FDAC: @ 810FDAC + push {lr} + movs r3, 0 + movs r2, 0 + ldr r0, _0810FDC8 @ =gSpecialVar_0x8004 + ldrh r0, [r0] + subs r0, 0x8 + cmp r0, 0x7 + bhi _0810FE0C + lsls r0, 2 + ldr r1, _0810FDCC @ =_0810FDD0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810FDC8: .4byte gSpecialVar_0x8004 +_0810FDCC: .4byte _0810FDD0 + .align 2, 0 +_0810FDD0: + .4byte _0810FE0C + .4byte _0810FE0C + .4byte _0810FDF0 + .4byte _0810FDF6 + .4byte _0810FDFC + .4byte _0810FE02 + .4byte _0810FE08 + .4byte _0810FE0C +_0810FDF0: + movs r3, 0 + movs r2, 0x3 + b _0810FE0C +_0810FDF6: + movs r3, 0 + movs r2, 0x1 + b _0810FE0C +_0810FDFC: + movs r3, 0x1 + movs r2, 0 + b _0810FE0C +_0810FE02: + movs r3, 0 + movs r2, 0x4 + b _0810FE0C +_0810FE08: + movs r3, 0x1 + movs r2, 0x5 +_0810FE0C: + ldr r0, _0810FE18 @ =gSaveBlock1 + 0x30B8 + adds r1, r3, 0 + bl sub_810FE1C + pop {r0} + bx r0 + .align 2, 0 +_0810FE18: .4byte gSaveBlock1 + 0x30B8 + thumb_func_end sub_810FDAC + + thumb_func_start sub_810FE1C +sub_810FE1C: @ 810FE1C + push {r4,lr} + lsls r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsrs r1, 20 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0xFF + bne _0810FED0 + cmp r2, 0x5 + bhi _0810FEBC + lsls r0, r2, 2 + ldr r1, _0810FE3C @ =_0810FE40 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0810FE3C: .4byte _0810FE40 + .align 2, 0 +_0810FE40: + .4byte _0810FEBC + .4byte _0810FE58 + .4byte _0810FE6C + .4byte _0810FE80 + .4byte _0810FE94 + .4byte _0810FEA8 +_0810FE58: + ldr r0, _0810FE64 @ =gStringVar1 + ldr r1, _0810FE68 @ =gOtherText_Steven + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FE64: .4byte gStringVar1 +_0810FE68: .4byte gOtherText_Steven +_0810FE6C: + ldr r0, _0810FE78 @ =gStringVar1 + ldr r1, _0810FE7C @ =gOtherText_Brawly + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FE78: .4byte gStringVar1 +_0810FE7C: .4byte gOtherText_Brawly +_0810FE80: + ldr r0, _0810FE8C @ =gStringVar1 + ldr r1, _0810FE90 @ =gOtherText_Winona + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FE8C: .4byte gStringVar1 +_0810FE90: .4byte gOtherText_Winona +_0810FE94: + ldr r0, _0810FEA0 @ =gStringVar1 + ldr r1, _0810FEA4 @ =gOtherText_Phoebe + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FEA0: .4byte gStringVar1 +_0810FEA4: .4byte gOtherText_Phoebe +_0810FEA8: + ldr r0, _0810FEB4 @ =gStringVar1 + ldr r1, _0810FEB8 @ =gOtherText_Glacia + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FEB4: .4byte gStringVar1 +_0810FEB8: .4byte gOtherText_Glacia +_0810FEBC: + ldr r0, _0810FEC8 @ =gStringVar1 + ldr r1, _0810FECC @ =gOtherText_Wallace + bl StringCopy + b _0810FEF2 + .align 2, 0 +_0810FEC8: .4byte gStringVar1 +_0810FECC: .4byte gOtherText_Wallace +_0810FED0: + ldr r4, _0810FEF8 @ =gStringVar1 + adds r0, r4, 0 + movs r2, 0x7 + bl StringCopyN + movs r0, 0xFF + strb r0, [r4, 0x7] + ldrb r0, [r4] + cmp r0, 0xFC + bne _0810FEF2 + ldrb r0, [r4, 0x1] + cmp r0, 0x15 + bne _0810FEF2 + adds r0, r4, 0 + movs r1, 0x1 + bl ConvertInternationalString +_0810FEF2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0810FEF8: .4byte gStringVar1 + thumb_func_end sub_810FE1C + + thumb_func_start sub_810FEFC +sub_810FEFC: @ 810FEFC + push {lr} + ldr r0, _0810FF20 @ =0x00004095 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bne _0810FF2C + bl sub_810FA74 + ldr r0, _0810FF24 @ =gUnknown_02024D26 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0810FF28 + bl sub_810FB9C + b _0810FF2C + .align 2, 0 +_0810FF20: .4byte 0x00004095 +_0810FF24: .4byte gUnknown_02024D26 +_0810FF28: + bl sub_810FC18 +_0810FF2C: + pop {r0} + bx r0 + thumb_func_end sub_810FEFC + + thumb_func_start sub_810FF30 +sub_810FF30: @ 810FF30 + ldr r0, _0810FF40 @ =gSaveBlock1 + ldr r1, _0810FF44 @ =0x000013c2 + adds r0, r1 + ldrh r0, [r0] + lsrs r0, 7 + movs r1, 0x1 + ands r0, r1 + bx lr + .align 2, 0 +_0810FF40: .4byte gSaveBlock1 +_0810FF44: .4byte 0x000013c2 + thumb_func_end sub_810FF30 + + thumb_func_start sub_810FF48 +sub_810FF48: @ 810FF48 + ldr r0, _0810FF58 @ =gSaveBlock1 + ldr r1, _0810FF5C @ =0x000013c2 + adds r0, r1 + ldrh r2, [r0] + movs r1, 0x80 + orrs r1, r2 + strh r1, [r0] + bx lr + .align 2, 0 +_0810FF58: .4byte gSaveBlock1 +_0810FF5C: .4byte 0x000013c2 + thumb_func_end sub_810FF48 + + thumb_func_start sub_810FF60 +sub_810FF60: @ 810FF60 + push {lr} + ldr r0, _0810FF74 @ =gSpecialVar_0x8004 + ldrb r0, [r0] + bl sub_810FB10 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_0810FF74: .4byte gSpecialVar_0x8004 + thumb_func_end sub_810FF60 + + .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index cf42e2aaf..3294fedf3 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -168,6 +168,8 @@ SECTIONS { src/starter_choose.o(.text); src/wallclock.o(.text); asm/rom6.o(.text); + asm/pokeblock.o(.text); + asm/rom_810CBB4.o(.text); asm/battle_records.o(.text); asm/pokedex_area_screen.o(.text); asm/evolution_scene.o(.text); |