pokeruby/asm/pokeblock.s
2017-06-09 02:43:39 -04:00

2676 lines
47 KiB
ArmAsm

.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 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 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 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 @ =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 @ =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.