diff options
Diffstat (limited to 'asm/pokeblock.s')
-rw-r--r-- | asm/pokeblock.s | 2675 |
1 files changed, 2675 insertions, 0 deletions
diff --git a/asm/pokeblock.s b/asm/pokeblock.s new file mode 100644 index 000000000..5b6522144 --- /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 @ =gFieldCallback + 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 gFieldCallback +_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 HandleDestroyMenuCursors + 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 DoYesNoFuncWithChoice + 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 StartVerticalScrollIndicators + movs r0, 0x1 + bl StartVerticalScrollIndicators + 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 StartVerticalScrollIndicators + movs r0, 0x1 + bl StartVerticalScrollIndicators + bl HandleDestroyMenuCursors + 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 @ =gBattleTextBuff1 + 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 gBattleTextBuff1 +_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 @ =gSpriteAffineAnimTable_83F7F70 + 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 gSpriteAffineAnimTable_83F7F70 +_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 ClearPokeblock +ClearPokeblock: @ 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 ClearPokeblock + + thumb_func_start ClearPokeblocks +ClearPokeblocks: @ 810C994 + push {r4,lr} + movs r4, 0 +_0810C998: + adds r0, r4, 0 + bl ClearPokeblock + 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 ClearPokeblocks + + 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 ClearPokeblock + 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. |