mzm/asm/disasm_0x080778c4.s
2023-04-04 21:06:08 +02:00

14795 lines
308 KiB
ArmAsm

.include "asm/macros.inc"
.syntax unified
thumb_func_start gameover_main
gameover_main: @ 0x080778c4
push {r4, r5, lr}
movs r5, #0
ldr r2, lbl_080778ec @ =sNonGameplayRamPointer
ldr r1, [r2]
ldrh r0, [r1, #2]
adds r0, #1
strh r0, [r1, #2]
ldr r0, lbl_080778f0 @ =gGameModeSub1
movs r3, #0
ldrsh r1, [r0, r3]
adds r3, r0, #0
cmp r1, #9
bls lbl_080778e0
b lbl_08077ac4
lbl_080778e0:
lsls r0, r1, #2
ldr r1, lbl_080778f4 @ =lbl_080778f8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_080778ec: .4byte sNonGameplayRamPointer
lbl_080778f0: .4byte gGameModeSub1
lbl_080778f4: .4byte lbl_080778f8
lbl_080778f8: @ jump table
.4byte lbl_08077920 @ case 0
.4byte lbl_0807797c @ case 1
.4byte lbl_080779a4 @ case 2
.4byte lbl_080779dc @ case 3
.4byte lbl_08077a00 @ case 4
.4byte lbl_08077a20 @ case 5
.4byte lbl_08077a58 @ case 6
.4byte lbl_08077a68 @ case 7
.4byte lbl_08077a90 @ case 8
.4byte lbl_08077aa8 @ case 9
lbl_08077920:
ldr r1, lbl_08077954 @ =gCurrentDemo
ldrb r4, [r1, #1]
cmp r4, #0
beq lbl_08077964
ldrb r0, [r1]
adds r0, #1
movs r4, #0
strb r0, [r1]
strb r4, [r1, #1]
ldr r0, lbl_08077958 @ =0x0194f780
bl sub_080027f8
movs r0, #0xa
bl FadeAllSounds
movs r0, #0xa
bl FadeMusic
ldr r0, lbl_0807795c @ =gDemoState
strb r4, [r0]
ldr r1, lbl_08077960 @ =gGameModeSub2
movs r0, #2
strb r0, [r1]
movs r0, #1
b lbl_08077aca
.align 2, 0
lbl_08077954: .4byte gCurrentDemo
lbl_08077958: .4byte 0x0194f780
lbl_0807795c: .4byte gDemoState
lbl_08077960: .4byte gGameModeSub2
lbl_08077964:
bl game_over_menu_init
ldr r0, lbl_08077974 @ =sNonGameplayRamPointer
ldr r0, [r0]
strh r4, [r0, #2]
ldr r1, lbl_08077978 @ =gGameModeSub1
ldrh r0, [r1]
b lbl_08077ab0
.align 2, 0
lbl_08077974: .4byte sNonGameplayRamPointer
lbl_08077978: .4byte gGameModeSub1
lbl_0807797c:
ldr r1, lbl_0807798c @ =gWrittenToBLDY_NonGameplay
ldrh r0, [r1]
cmp r0, #2
bls lbl_08077990
subs r0, #1
strh r0, [r1]
b lbl_08077ac4
.align 2, 0
lbl_0807798c: .4byte gWrittenToBLDY_NonGameplay
lbl_08077990:
ldr r1, [r2]
ldrh r2, [r1, #0xc]
movs r4, #0x80
lsls r4, r4, #7
adds r0, r4, #0
orrs r0, r2
strh r0, [r1, #0xc]
movs r0, #0xc4
strh r0, [r1, #0xe]
b lbl_08077a82
lbl_080779a4:
ldr r1, lbl_080779c0 @ =gWrittenToBLDY_NonGameplay
ldrh r0, [r1]
cmp r0, #5
bhi lbl_080779c4
adds r0, #2
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #6
bhi lbl_080779ba
b lbl_08077ac4
lbl_080779ba:
movs r0, #6
strh r0, [r1]
b lbl_08077ac4
.align 2, 0
lbl_080779c0: .4byte gWrittenToBLDY_NonGameplay
lbl_080779c4:
ldr r1, [r2]
movs r0, #0x81
strb r0, [r1, #0x1e]
movs r0, #0x53
movs r1, #0
bl PlayMusic
ldr r1, lbl_080779d8 @ =gGameModeSub1
ldrh r0, [r1]
b lbl_08077ab0
.align 2, 0
lbl_080779d8: .4byte gGameModeSub1
lbl_080779dc:
bl game_over_menu_detect_input
cmp r0, #0
beq lbl_08077a1a
ldr r0, lbl_080779f8 @ =sNonGameplayRamPointer
ldr r1, [r0]
movs r0, #0
strh r0, [r1, #2]
ldr r1, lbl_080779fc @ =gGameModeSub1
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b lbl_08077a1a
.align 2, 0
lbl_080779f8: .4byte sNonGameplayRamPointer
lbl_080779fc: .4byte gGameModeSub1
lbl_08077a00:
ldr r2, [r2]
adds r0, r2, #0
adds r0, #0x43
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq lbl_08077a1a
movs r0, #0
strh r0, [r2, #2]
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
lbl_08077a1a:
bl game_over_menu_letters_anim
b lbl_08077ac4
lbl_08077a20:
bl game_over_menu_letters_anim
ldr r1, lbl_08077a4c @ =gWrittenToBLDY_NonGameplay
movs r0, #4
strh r0, [r1]
ldr r0, lbl_08077a50 @ =sNonGameplayRamPointer
ldr r2, [r0]
movs r0, #0xff
strh r0, [r2, #0xe]
ldrh r0, [r2, #0xc]
movs r3, #0x80
lsls r3, r3, #7
adds r1, r3, #0
eors r0, r1
strh r0, [r2, #0xc]
movs r0, #0x14
bl FadeMusic
ldr r1, lbl_08077a54 @ =gGameModeSub1
ldrh r0, [r1]
b lbl_08077ab0
.align 2, 0
lbl_08077a4c: .4byte gWrittenToBLDY_NonGameplay
lbl_08077a50: .4byte sNonGameplayRamPointer
lbl_08077a54: .4byte gGameModeSub1
lbl_08077a58:
ldr r1, lbl_08077a64 @ =gWrittenToBLDY_NonGameplay
ldrh r0, [r1]
cmp r0, #0xf
bls lbl_08077ab0
b lbl_08077a82
.align 2, 0
lbl_08077a64: .4byte gWrittenToBLDY_NonGameplay
lbl_08077a68:
ldr r0, [r2]
ldrb r1, [r0, #8]
cmp r1, #1
bne lbl_08077a7c
ldr r0, lbl_08077a78 @ =gGameModeSub2
strb r1, [r0]
b lbl_08077ac2
.align 2, 0
lbl_08077a78: .4byte gGameModeSub2
lbl_08077a7c:
ldr r1, lbl_08077a8c @ =gGameModeSub2
movs r0, #4
strb r0, [r1]
lbl_08077a82:
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
b lbl_08077ac4
.align 2, 0
lbl_08077a8c: .4byte gGameModeSub2
lbl_08077a90:
movs r0, #0
bl sub_08075c04
ldr r0, lbl_08077aa0 @ =gLanguage
ldr r1, lbl_08077aa4 @ =gGameCompletion
ldrb r1, [r1, #2]
strb r1, [r0]
b lbl_08077ac2
.align 2, 0
lbl_08077aa0: .4byte gLanguage
lbl_08077aa4: .4byte gGameCompletion
lbl_08077aa8:
ldr r1, lbl_08077ab8 @ =gWrittenToBLDY_NonGameplay
ldrh r0, [r1]
cmp r0, #0xf
bhi lbl_08077abc
lbl_08077ab0:
adds r0, #1
strh r0, [r1]
b lbl_08077ac4
.align 2, 0
lbl_08077ab8: .4byte gWrittenToBLDY_NonGameplay
lbl_08077abc:
ldr r1, lbl_08077ad0 @ =gGameModeSub2
movs r0, #0x10
strb r0, [r1]
lbl_08077ac2:
movs r5, #1
lbl_08077ac4:
bl game_over_menu_process_oam
adds r0, r5, #0
lbl_08077aca:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
lbl_08077ad0: .4byte gGameModeSub2
thumb_func_start game_over_menu_detect_input
game_over_menu_detect_input: @ 0x08077ad4
push {lr}
movs r2, #0
ldr r0, lbl_08077af4 @ =gChangedInput
ldrh r1, [r0]
movs r0, #9
ands r0, r1
cmp r0, #0
beq lbl_08077af8
movs r0, #0xc
bl sub_0807ef7c
movs r0, #2
bl game_over_menu_samus_head
movs r0, #1
b lbl_08077b42
.align 2, 0
lbl_08077af4: .4byte gChangedInput
lbl_08077af8:
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq lbl_08077b14
ldr r0, lbl_08077b10 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrb r0, [r1, #8]
cmp r0, #0
beq lbl_08077b2c
strb r2, [r1, #8]
b lbl_08077b30
.align 2, 0
lbl_08077b10: .4byte sNonGameplayRamPointer
lbl_08077b14:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq lbl_08077b2c
ldr r0, lbl_08077b48 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrb r0, [r1, #8]
cmp r0, #1
beq lbl_08077b2c
movs r0, #1
strb r0, [r1, #8]
movs r2, #1
lbl_08077b2c:
cmp r2, #0
beq lbl_08077b40
lbl_08077b30:
movs r0, #0xb
bl sub_0807ef7c
bl game_over_menu_update_text_gfx
movs r0, #1
bl game_over_menu_samus_head
lbl_08077b40:
movs r0, #0
lbl_08077b42:
pop {r1}
bx r1
.align 2, 0
lbl_08077b48: .4byte sNonGameplayRamPointer
thumb_func_start game_over_menu_update_text_gfx
game_over_menu_update_text_gfx: @ 0x08077b4c
push {r4, r5, r6, lr}
ldr r3, lbl_08077b9c @ =0x06000340
ldr r0, lbl_08077ba0 @ =sNonGameplayRamPointer
ldr r0, [r0]
ldrb r0, [r0, #8]
movs r5, #3
cmp r0, #0
bne lbl_08077b5e
movs r5, #2
lbl_08077b5e:
ldr r6, lbl_08077ba4 @ =0x00000fff
lsls r4, r5, #0xc
movs r2, #0x3f
lbl_08077b64:
ldrh r1, [r3]
adds r0, r6, #0
ands r0, r1
orrs r0, r4
strh r0, [r3]
subs r2, #1
adds r3, #2
cmp r2, #0
bge lbl_08077b64
movs r0, #1
eors r5, r0
adds r3, #0x40
ldr r6, lbl_08077ba4 @ =0x00000fff
lsls r4, r5, #0xc
movs r2, #0x3f
lbl_08077b82:
ldrh r1, [r3]
adds r0, r6, #0
ands r0, r1
orrs r0, r4
strh r0, [r3]
subs r2, #1
adds r3, #2
cmp r2, #0
bge lbl_08077b82
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08077b9c: .4byte 0x06000340
lbl_08077ba0: .4byte sNonGameplayRamPointer
lbl_08077ba4: .4byte 0x00000fff
thumb_func_start game_over_menu_init
game_over_menu_init: @ 0x08077ba8
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
sub sp, #8
ldr r0, lbl_08077d28 @ =sub_08077fe8
bl CallbackSetVBlank
movs r6, #0
str r6, [sp, #4]
ldr r4, lbl_08077d2c @ =0x040000d4
add r0, sp, #4
str r0, [r4]
ldr r0, lbl_08077d30 @ =gNonGameplayRAM
str r0, [r4, #4]
ldr r0, lbl_08077d34 @ =0x8500018a
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r2, lbl_08077d38 @ =0x04000050
ldr r1, lbl_08077d3c @ =sNonGameplayRamPointer
mov sb, r1
ldr r1, [r1]
movs r3, #0
mov r8, r3
movs r0, #0xbf
strh r0, [r1, #0xe]
strh r0, [r2]
adds r2, #4
ldr r1, lbl_08077d40 @ =gWrittenToBLDY_NonGameplay
movs r0, #0x10
strh r0, [r1]
strh r0, [r2]
movs r0, #0x80
lsls r0, r0, #0x13
strh r6, [r0]
ldr r0, lbl_08077d44 @ =gNextOamSlot
mov r1, r8
strb r1, [r0]
bl ClearGfxRam
bl ResetFreeOAM
ldr r1, lbl_08077d48 @ =gOamXOffset_NonGameplay
ldr r0, lbl_08077d4c @ =gOamYOffset_NonGameplay
mov r2, r8
strb r2, [r0]
strb r2, [r1]
movs r0, #0x80
bl sub_080027f8
bl StopAllMusicsAndSounds
ldr r1, lbl_08077d50 @ =0x0844f11c
movs r5, #0xa0
lsls r5, r5, #0x13
movs r0, #0x10
str r0, [sp]
movs r0, #3
adds r2, r5, #0
movs r3, #0xa0
bl DMATransfer
strh r6, [r5]
ldr r0, lbl_08077d54 @ =0x08454938
str r0, [r4]
ldr r0, lbl_08077d58 @ =0x05000200
str r0, [r4, #4]
ldr r0, lbl_08077d5c @ =0x80000060
str r0, [r4, #8]
ldr r0, [r4, #8]
ldr r0, lbl_08077d60 @ =0x08453d88
ldr r4, lbl_08077d64 @ =0x06001800
adds r1, r4, #0
bl LZ77UncompVRAM
ldr r0, lbl_08077d68 @ =0x08454350
ldr r1, lbl_08077d6c @ =0x06000800
bl LZ77UncompVRAM
ldr r0, lbl_08077d70 @ =0x08454520
movs r1, #0xc0
lsls r1, r1, #0x13
bl LZ77UncompVRAM
ldr r2, lbl_08077d74 @ =0x06001000
movs r3, #0x80
lsls r3, r3, #4
movs r0, #0x20
str r0, [sp]
movs r0, #3
adds r1, r4, #0
bl DMATransfer
ldr r0, lbl_08077d78 @ =0x0844f1bc
ldr r1, lbl_08077d7c @ =0x06004000
bl LZ77UncompVRAM
ldr r0, lbl_08077d80 @ =0x0845c0f4
ldr r1, lbl_08077d84 @ =0x06010000
bl LZ77UncompVRAM
ldr r1, lbl_08077d88 @ =0x08760af0
ldr r0, lbl_08077d8c @ =gLanguage
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
ldr r1, lbl_08077d90 @ =0x0600a800
bl LZ77UncompVRAM
ldr r1, lbl_08077d94 @ =0x04000008
movs r0, #4
strh r0, [r1]
adds r1, #2
ldr r3, lbl_08077d98 @ =0x00000105
adds r0, r3, #0
strh r0, [r1]
adds r1, #2
ldr r4, lbl_08077d9c @ =0x00000206
adds r0, r4, #0
strh r0, [r1]
adds r1, #2
ldr r2, lbl_08077da0 @ =0x00000307
adds r0, r2, #0
strh r0, [r1]
mov r3, sb
ldr r1, [r3]
movs r0, #0xf8
lsls r0, r0, #5
strh r0, [r1, #0xc]
ldr r2, lbl_08077da4 @ =0x0400004a
movs r0, #0x1f
strb r0, [r2]
subs r2, #1
movs r0, #0x3f
strb r0, [r2]
adds r1, #0x1c
ldr r0, lbl_08077da8 @ =0x084547a0
ldm r0!, {r2, r3, r4}
stm r1!, {r2, r3, r4}
ldm r0!, {r2, r4}
stm r1!, {r2, r4}
ldr r0, lbl_08077dac @ =gGameModeSub3
mov r3, r8
strb r3, [r0]
ldr r1, lbl_08077db0 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_08077db4 @ =gBG0VOFS_NonGameplay
strh r6, [r0]
strh r6, [r1]
ldr r1, lbl_08077db8 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_08077dbc @ =gBG1VOFS_NonGameplay
strh r6, [r0]
strh r6, [r1]
ldr r1, lbl_08077dc0 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_08077dc4 @ =gBG3VOFS_NonGameplay
strh r6, [r0]
strh r6, [r1]
ldr r1, lbl_08077dc8 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_08077dcc @ =gBG2VOFS_NonGameplay
strh r6, [r0]
strh r6, [r1]
mov r4, sb
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0x35
strb r3, [r1]
strb r3, [r0, #8]
bl game_over_menu_update_text_gfx
ldr r1, [r4]
adds r1, #0x38
ldr r0, lbl_08077dd0 @ =0x0840d028
ldm r0!, {r2, r3, r4}
stm r1!, {r2, r3, r4}
ldr r0, [r0]
str r0, [r1]
movs r0, #0
bl game_over_menu_samus_head
ldr r0, lbl_08077dd4 @ =sub_08077f0c
bl CallbackSetVBlank
add sp, #8
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08077d28: .4byte sub_08077fe8
lbl_08077d2c: .4byte 0x040000d4
lbl_08077d30: .4byte gNonGameplayRAM
lbl_08077d34: .4byte 0x8500018a
lbl_08077d38: .4byte 0x04000050
lbl_08077d3c: .4byte sNonGameplayRamPointer
lbl_08077d40: .4byte gWrittenToBLDY_NonGameplay
lbl_08077d44: .4byte gNextOamSlot
lbl_08077d48: .4byte gOamXOffset_NonGameplay
lbl_08077d4c: .4byte gOamYOffset_NonGameplay
lbl_08077d50: .4byte 0x0844f11c
lbl_08077d54: .4byte 0x08454938
lbl_08077d58: .4byte 0x05000200
lbl_08077d5c: .4byte 0x80000060
lbl_08077d60: .4byte 0x08453d88
lbl_08077d64: .4byte 0x06001800
lbl_08077d68: .4byte 0x08454350
lbl_08077d6c: .4byte 0x06000800
lbl_08077d70: .4byte 0x08454520
lbl_08077d74: .4byte 0x06001000
lbl_08077d78: .4byte 0x0844f1bc
lbl_08077d7c: .4byte 0x06004000
lbl_08077d80: .4byte 0x0845c0f4
lbl_08077d84: .4byte 0x06010000
lbl_08077d88: .4byte 0x08760af0
lbl_08077d8c: .4byte gLanguage
lbl_08077d90: .4byte 0x0600a800
lbl_08077d94: .4byte 0x04000008
lbl_08077d98: .4byte 0x00000105
lbl_08077d9c: .4byte 0x00000206
lbl_08077da0: .4byte 0x00000307
lbl_08077da4: .4byte 0x0400004a
lbl_08077da8: .4byte 0x084547a0
lbl_08077dac: .4byte gGameModeSub3
lbl_08077db0: .4byte gBG0HOFS_NonGameplay
lbl_08077db4: .4byte gBG0VOFS_NonGameplay
lbl_08077db8: .4byte gBG1HOFS_NonGameplay
lbl_08077dbc: .4byte gBG1VOFS_NonGameplay
lbl_08077dc0: .4byte gBG3HOFS_NonGameplay
lbl_08077dc4: .4byte gBG3VOFS_NonGameplay
lbl_08077dc8: .4byte gBG2HOFS_NonGameplay
lbl_08077dcc: .4byte gBG2VOFS_NonGameplay
lbl_08077dd0: .4byte 0x0840d028
lbl_08077dd4: .4byte sub_08077f0c
thumb_func_start sub_08077dd8
sub_08077dd8: @ 0x08077dd8
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
sub sp, #4
ldr r0, lbl_08077eb0 @ =sub_08077fe8
bl CallbackSetVBlank
movs r4, #0
str r4, [sp]
ldr r1, lbl_08077eb4 @ =0x040000d4
mov r0, sp
str r0, [r1]
ldr r0, lbl_08077eb8 @ =gNonGameplayRAM
str r0, [r1, #4]
ldr r0, lbl_08077ebc @ =0x8500018a
str r0, [r1, #8]
ldr r0, [r1, #8]
subs r1, #0x84
ldr r6, lbl_08077ec0 @ =sNonGameplayRamPointer
ldr r2, [r6]
movs r5, #0
movs r0, #0xbf
strh r0, [r2, #0xe]
strh r0, [r1]
adds r1, #4
ldr r3, lbl_08077ec4 @ =gWrittenToBLDY_NonGameplay
mov r8, r3
movs r0, #0x10
strh r0, [r3]
strh r0, [r1]
movs r0, #0x80
lsls r0, r0, #0x13
strh r4, [r2, #0xc]
strh r4, [r0]
ldr r0, lbl_08077ec8 @ =gNextOamSlot
strb r5, [r0]
bl ClearGfxRam
bl ResetFreeOAM
ldr r1, lbl_08077ecc @ =gOamXOffset_NonGameplay
ldr r0, lbl_08077ed0 @ =gOamYOffset_NonGameplay
strb r5, [r0]
strb r5, [r1]
ldr r0, lbl_08077ed4 @ =0x0194f780
bl sub_080027f8
bl StopAllMusicsAndSounds
movs r1, #0xa0
lsls r1, r1, #0x13
ldr r2, lbl_08077ed8 @ =0x00007fff
adds r0, r2, #0
strh r0, [r1]
ldr r0, lbl_08077edc @ =0x04000008
strh r4, [r0]
adds r0, #2
strh r4, [r0]
adds r0, #2
strh r4, [r0]
adds r0, #2
strh r4, [r0]
ldr r0, lbl_08077ee0 @ =gGameModeSub3
strb r5, [r0]
ldr r1, lbl_08077ee4 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_08077ee8 @ =gBG0VOFS_NonGameplay
strh r4, [r0]
strh r4, [r1]
ldr r1, lbl_08077eec @ =gBG1HOFS_NonGameplay
ldr r0, lbl_08077ef0 @ =gBG1VOFS_NonGameplay
strh r4, [r0]
strh r4, [r1]
ldr r1, lbl_08077ef4 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_08077ef8 @ =gBG2VOFS_NonGameplay
strh r4, [r0]
strh r4, [r1]
ldr r1, lbl_08077efc @ =gBG3HOFS_NonGameplay
ldr r0, lbl_08077f00 @ =gBG3VOFS_NonGameplay
strh r4, [r0]
strh r4, [r1]
ldr r1, [r6]
movs r0, #0xff
strh r0, [r1, #0xe]
mov r3, r8
strh r4, [r3]
adds r0, r1, #0
adds r0, #0x35
strb r5, [r0]
strb r5, [r1, #8]
bl game_over_menu_update_text_gfx
ldr r1, [r6]
adds r1, #0x38
ldr r0, lbl_08077f04 @ =0x0840d028
ldm r0!, {r2, r3, r4}
stm r1!, {r2, r3, r4}
ldr r0, [r0]
str r0, [r1]
ldr r0, lbl_08077f08 @ =sub_08077f0c
bl CallbackSetVBlank
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08077eb0: .4byte sub_08077fe8
lbl_08077eb4: .4byte 0x040000d4
lbl_08077eb8: .4byte gNonGameplayRAM
lbl_08077ebc: .4byte 0x8500018a
lbl_08077ec0: .4byte sNonGameplayRamPointer
lbl_08077ec4: .4byte gWrittenToBLDY_NonGameplay
lbl_08077ec8: .4byte gNextOamSlot
lbl_08077ecc: .4byte gOamXOffset_NonGameplay
lbl_08077ed0: .4byte gOamYOffset_NonGameplay
lbl_08077ed4: .4byte 0x0194f780
lbl_08077ed8: .4byte 0x00007fff
lbl_08077edc: .4byte 0x04000008
lbl_08077ee0: .4byte gGameModeSub3
lbl_08077ee4: .4byte gBG0HOFS_NonGameplay
lbl_08077ee8: .4byte gBG0VOFS_NonGameplay
lbl_08077eec: .4byte gBG1HOFS_NonGameplay
lbl_08077ef0: .4byte gBG1VOFS_NonGameplay
lbl_08077ef4: .4byte gBG2HOFS_NonGameplay
lbl_08077ef8: .4byte gBG2VOFS_NonGameplay
lbl_08077efc: .4byte gBG3HOFS_NonGameplay
lbl_08077f00: .4byte gBG3VOFS_NonGameplay
lbl_08077f04: .4byte 0x0840d028
lbl_08077f08: .4byte sub_08077f0c
thumb_func_start sub_08077f0c
sub_08077f0c: @ 0x08077f0c
ldr r1, lbl_08077fa4 @ =0x040000d4
ldr r0, lbl_08077fa8 @ =gOamData
str r0, [r1]
movs r0, #0xe0
lsls r0, r0, #0x13
str r0, [r1, #4]
ldr r0, lbl_08077fac @ =0x84000100
str r0, [r1, #8]
ldr r0, [r1, #8]
subs r1, #0xc4
ldr r0, lbl_08077fb0 @ =gBG0HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_08077fb4 @ =gBG0VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_08077fb8 @ =gBG1HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_08077fbc @ =gBG1VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_08077fc0 @ =gBG2HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_08077fc4 @ =gBG2VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_08077fc8 @ =gBG3HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_08077fcc @ =gBG3VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
subs r1, #0x1e
ldr r0, lbl_08077fd0 @ =sNonGameplayRamPointer
ldr r2, [r0]
ldrh r0, [r2, #0xc]
strh r0, [r1]
adds r1, #0x54
ldr r0, lbl_08077fd4 @ =gWrittenToBLDY_NonGameplay
ldrh r0, [r0]
strh r0, [r1]
ldr r3, lbl_08077fd8 @ =0x04000052
ldr r0, lbl_08077fdc @ =gWrittenToBLDALPHA_H
ldrh r0, [r0]
lsls r0, r0, #8
ldr r1, lbl_08077fe0 @ =gWrittenToBLDALPHA_L
ldrh r1, [r1]
orrs r0, r1
strh r0, [r3]
ldr r1, lbl_08077fe4 @ =0x04000050
ldrh r0, [r2, #0xe]
strh r0, [r1]
subs r1, #0xe
ldrh r0, [r2, #0x18]
strh r0, [r1]
adds r1, #4
ldrh r0, [r2, #0x1a]
strh r0, [r1]
bx lr
.align 2, 0
lbl_08077fa4: .4byte 0x040000d4
lbl_08077fa8: .4byte gOamData
lbl_08077fac: .4byte 0x84000100
lbl_08077fb0: .4byte gBG0HOFS_NonGameplay
lbl_08077fb4: .4byte gBG0VOFS_NonGameplay
lbl_08077fb8: .4byte gBG1HOFS_NonGameplay
lbl_08077fbc: .4byte gBG1VOFS_NonGameplay
lbl_08077fc0: .4byte gBG2HOFS_NonGameplay
lbl_08077fc4: .4byte gBG2VOFS_NonGameplay
lbl_08077fc8: .4byte gBG3HOFS_NonGameplay
lbl_08077fcc: .4byte gBG3VOFS_NonGameplay
lbl_08077fd0: .4byte sNonGameplayRamPointer
lbl_08077fd4: .4byte gWrittenToBLDY_NonGameplay
lbl_08077fd8: .4byte 0x04000052
lbl_08077fdc: .4byte gWrittenToBLDALPHA_H
lbl_08077fe0: .4byte gWrittenToBLDALPHA_L
lbl_08077fe4: .4byte 0x04000050
thumb_func_start sub_08077fe8
sub_08077fe8: @ 0x08077fe8
sub sp, #4
mov r1, sp
movs r0, #0
strb r0, [r1]
add sp, #4
bx lr
thumb_func_start game_over_menu_letters_anim
game_over_menu_letters_anim: @ 0x08077ff4
push {r4, r5, r6, lr}
sub sp, #4
ldr r0, lbl_08078048 @ =sNonGameplayRamPointer
ldr r2, [r0]
ldrb r3, [r2, #0x1e]
adds r6, r0, #0
cmp r3, #0
bne lbl_08078006
b lbl_08078164
lbl_08078006:
movs r0, #0x80
ands r0, r3
cmp r0, #0
beq lbl_08078050
movs r1, #0x7f
ands r1, r3
adds r0, r2, #0
adds r0, #0x20
ldrb r2, [r0]
cmp r1, r2
beq lbl_08078040
movs r2, #0
strb r1, [r0]
ldr r0, [r6]
movs r1, #0
strh r2, [r0, #0x1c]
strb r1, [r0, #0x1f]
ldr r0, [r6]
adds r0, #0x2f
strb r1, [r0]
ldr r1, [r6]
ldr r2, lbl_0807804c @ =0x08760b0c
adds r0, r1, #0
adds r0, #0x20
ldrb r0, [r0]
adds r0, r0, r2
ldrb r0, [r0]
adds r1, #0x2e
strb r0, [r1]
lbl_08078040:
ldr r1, [r6]
movs r0, #1
strb r0, [r1, #0x1e]
b lbl_08078164
.align 2, 0
lbl_08078048: .4byte sNonGameplayRamPointer
lbl_0807804c: .4byte 0x08760b0c
lbl_08078050:
ldrh r0, [r2, #0x1c]
adds r0, #1
movs r3, #0
strh r0, [r2, #0x1c]
adds r1, r2, #0
adds r1, #0x2e
ldrb r1, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r1, r0
bls lbl_08078068
b lbl_08078164
lbl_08078068:
ldr r4, lbl_0807807c @ =0x0844f124
adds r0, r2, #0
adds r0, #0x20
ldrb r0, [r0]
cmp r0, #0
beq lbl_08078080
cmp r0, #1
beq lbl_080780b8
b lbl_0807814e
.align 2, 0
lbl_0807807c: .4byte 0x0844f124
lbl_08078080:
ldrb r0, [r2, #0x1f]
adds r0, #1
strb r0, [r2, #0x1f]
ldr r1, [r6]
ldrb r0, [r1, #0x1f]
cmp r0, #5
bls lbl_08078090
strb r3, [r1, #0x1f]
lbl_08078090:
ldr r0, [r6]
ldrb r2, [r0, #0x1f]
movs r3, #0
adds r5, r6, #0
lbl_08078098:
cmp r2, #5
ble lbl_0807809e
movs r2, #0
lbl_0807809e:
ldr r1, [r5]
lsls r0, r3, #1
adds r1, #0x22
adds r1, r1, r0
lsls r0, r2, #1
adds r0, r0, r4
ldrh r0, [r0]
strh r0, [r1]
adds r3, #1
adds r2, #1
cmp r3, #5
ble lbl_08078098
b lbl_0807814e
lbl_080780b8:
ldrb r0, [r2, #0x1f]
adds r0, #1
strb r0, [r2, #0x1f]
ldr r1, [r6]
ldrb r0, [r1, #0x1f]
cmp r0, #8
bls lbl_080780c8
strb r3, [r1, #0x1f]
lbl_080780c8:
ldr r1, lbl_08078110 @ =0x08760b0f
ldr r0, [r6]
ldrb r0, [r0, #0x1f]
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
cmp r2, #0
blt lbl_08078118
movs r3, #0
cmp r3, r2
bge lbl_080780f2
adds r5, r6, #0
lbl_080780e0:
ldr r0, [r5]
lsls r1, r3, #1
adds r0, #0x22
adds r0, r0, r1
ldrh r1, [r4]
strh r1, [r0]
adds r3, #1
cmp r3, r2
blt lbl_080780e0
lbl_080780f2:
cmp r3, #5
bgt lbl_0807814e
ldr r5, lbl_08078114 @ =sNonGameplayRamPointer
adds r2, r4, #0
lbl_080780fa:
ldr r0, [r5]
lsls r1, r3, #1
adds r0, #0x22
adds r0, r0, r1
ldrh r1, [r2]
strh r1, [r0]
adds r3, #1
adds r2, #2
cmp r3, #5
ble lbl_080780fa
b lbl_0807814e
.align 2, 0
lbl_08078110: .4byte 0x08760b0f
lbl_08078114: .4byte sNonGameplayRamPointer
lbl_08078118:
movs r3, #5
adds r5, r6, #0
lbl_0807811c:
ldr r0, [r5]
lsls r1, r3, #1
adds r0, #0x22
adds r0, r0, r1
ldrh r1, [r4, #0xa]
strh r1, [r0]
adds r2, #1
subs r3, #1
cmp r2, #0
blt lbl_0807811c
cmp r3, #0
blt lbl_0807814e
ldr r5, lbl_0807816c @ =sNonGameplayRamPointer
adds r2, r4, #0
adds r2, #8
lbl_0807813a:
ldr r0, [r5]
lsls r1, r3, #1
adds r0, #0x22
adds r0, r0, r1
ldrh r1, [r2]
strh r1, [r0]
subs r3, #1
subs r2, #2
cmp r3, #0
bge lbl_0807813a
lbl_0807814e:
ldr r1, [r6]
movs r0, #0
strh r0, [r1, #0x1c]
adds r1, #0x22
ldr r2, lbl_08078170 @ =0x05000008
movs r0, #0x10
str r0, [sp]
movs r0, #3
movs r3, #0xc
bl DMATransfer
lbl_08078164:
add sp, #4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_0807816c: .4byte sNonGameplayRamPointer
lbl_08078170: .4byte 0x05000008
thumb_func_start game_over_menu_samus_head
game_over_menu_samus_head: @ 0x08078174
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r5, lbl_080781c4 @ =sNonGameplayRamPointer
ldr r3, [r5]
adds r3, #0x38
ldr r4, lbl_080781c8 @ =0x084547c6
ldr r1, lbl_080781cc @ =gEquipment
ldrb r2, [r1, #0x12]
lsls r1, r2, #1
adds r1, r1, r2
adds r0, r0, r1
adds r0, r0, r4
ldrb r1, [r0]
adds r0, r3, #0
bl UpdateMenuOamDataID
ldr r5, [r5]
ldr r1, lbl_080781d0 @ =0x084547b4
ldr r0, lbl_080781d4 @ =gLanguage
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
movs r2, #0
strh r0, [r5, #0x3a]
ldr r1, lbl_080781d8 @ =0x084547c2
ldrb r0, [r5, #8]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r5, #0x38]
ldrb r0, [r5, #8]
cmp r0, #0
beq lbl_080781e0
ldr r0, lbl_080781dc @ =0x00007e92
b lbl_080781e2
.align 2, 0
lbl_080781c4: .4byte sNonGameplayRamPointer
lbl_080781c8: .4byte 0x084547c6
lbl_080781cc: .4byte gEquipment
lbl_080781d0: .4byte 0x084547b4
lbl_080781d4: .4byte gLanguage
lbl_080781d8: .4byte 0x084547c2
lbl_080781dc: .4byte 0x00007e92
lbl_080781e0:
ldr r0, lbl_080781f4 @ =0x0000667a
lbl_080781e2:
strh r0, [r5, #0x1a]
ldr r0, lbl_080781f8 @ =sNonGameplayRamPointer
ldr r1, [r0]
movs r0, #0xf0
strh r0, [r1, #0x18]
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_080781f4: .4byte 0x0000667a
lbl_080781f8: .4byte sNonGameplayRamPointer
thumb_func_start game_over_menu_process_oam
game_over_menu_process_oam: @ 0x080781fc
push {lr}
ldr r1, lbl_0807821c @ =gNextOamSlot
movs r0, #0
strb r0, [r1]
ldr r0, lbl_08078220 @ =sNonGameplayRamPointer
ldr r1, [r0]
adds r1, #0x38
ldr r2, lbl_08078224 @ =0x084547d0
movs r0, #1
bl sub_08069a10
bl ResetFreeOAM
pop {r0}
bx r0
.align 2, 0
lbl_0807821c: .4byte gNextOamSlot
lbl_08078220: .4byte sNonGameplayRamPointer
lbl_08078224: .4byte 0x084547d0
thumb_func_start sub_08078228
sub_08078228: @ 0x08078228
push {lr}
ldr r0, lbl_08078248 @ =gStereoFlag
ldrb r1, [r0]
cmp r1, #1
bhi lbl_08078242
movs r0, #0x80
lsls r0, r0, #0x11
cmp r1, #0
beq lbl_0807823e
movs r0, #0x80
lsls r0, r0, #0x12
lbl_0807823e:
bl sub_080027f8
lbl_08078242:
pop {r0}
bx r0
.align 2, 0
lbl_08078248: .4byte gStereoFlag
thumb_func_start file_select_menu_process_oam
file_select_menu_process_oam: @ 0x0807824c
push {lr}
ldr r0, lbl_08078278 @ =gNextOamSlot
movs r1, #0
strb r1, [r0]
ldr r0, lbl_0807827c @ =gGameModeSub1
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0
blt lbl_08078266
cmp r0, #8
ble lbl_08078266
cmp r0, #0xb
ble lbl_08078288
lbl_08078266:
ldr r0, lbl_08078280 @ =sNonGameplayRamPointer
ldr r1, [r0]
adds r1, #0x74
ldr r2, lbl_08078284 @ =0x0845f1dc
movs r0, #0xf
bl process_menu_oam
b lbl_0807829a
.align 2, 0
lbl_08078278: .4byte gNextOamSlot
lbl_0807827c: .4byte gGameModeSub1
lbl_08078280: .4byte sNonGameplayRamPointer
lbl_08078284: .4byte 0x0845f1dc
lbl_08078288:
ldr r0, lbl_080782a4 @ =sNonGameplayRamPointer
ldr r1, [r0]
movs r0, #0xda
lsls r0, r0, #1
adds r1, r1, r0
ldr r2, lbl_080782a8 @ =0x0845f31c
movs r0, #0xb
bl process_menu_oam
lbl_0807829a:
bl ResetFreeOAM
pop {r0}
bx r0
.align 2, 0
lbl_080782a4: .4byte sNonGameplayRamPointer
lbl_080782a8: .4byte 0x0845f31c
thumb_func_start sub_080782ac
sub_080782ac: @ 0x080782ac
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r0, lbl_080784e0 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x74
mov sb, r0
ldr r4, lbl_080784e4 @ =0x08760b40
ldr r0, lbl_080784e8 @ =0x0845f1bc
mov r8, r0
mov r2, sb
movs r3, #0xe
lbl_080782c6:
adds r0, r2, #0
mov r1, r8
ldm r1!, {r5, r6, r7}
stm r0!, {r5, r6, r7}
ldr r1, [r1]
str r1, [r0]
adds r2, #0x10
subs r3, #1
cmp r3, #0
bge lbl_080782c6
ldrh r0, [r4]
mov r1, sb
adds r1, #0x82
strh r0, [r1]
ldrh r1, [r4, #2]
mov r0, sb
adds r0, #0x80
strh r1, [r0]
ldrb r1, [r4, #4]
bl UpdateMenuOamDataID
mov r0, sb
adds r0, #0x90
ldrh r1, [r4, #8]
strh r1, [r0, #2]
ldrh r1, [r4, #0xa]
strh r1, [r0]
ldrb r1, [r4, #0xc]
bl UpdateMenuOamDataID
mov r0, sb
adds r0, #0xa0
ldrh r1, [r4, #0x10]
strh r1, [r0, #2]
ldrh r1, [r4, #0x12]
strh r1, [r0]
ldrb r1, [r4, #0x14]
bl UpdateMenuOamDataID
ldr r6, lbl_080784e0 @ =sNonGameplayRamPointer
ldr r1, [r6]
movs r0, #0x98
lsls r0, r0, #1
adds r1, r1, r0
ldrb r2, [r1]
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r3, #0
ands r0, r2
movs r5, #1
orrs r0, r5
strb r0, [r1]
ldr r0, [r6]
ldr r1, lbl_080784ec @ =0x0000012f
adds r2, r0, r1
ldrb r1, [r2]
movs r4, #4
rsbs r4, r4, #0
adds r0, r4, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2]
ldr r1, [r6]
adds r1, #0xc0
ldrb r2, [r1]
adds r0, r3, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r6]
adds r1, #0xbf
ldrb r2, [r1]
adds r0, r4, #0
ands r0, r2
orrs r0, r5
strb r0, [r1]
ldr r1, [r6]
adds r1, #0x80
ldrb r2, [r1]
adds r0, r3, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r6]
adds r1, #0x90
ldrb r2, [r1]
adds r0, r3, #0
ands r0, r2
strb r0, [r1]
ldr r0, [r6]
adds r0, #0xa0
ldrb r1, [r0]
ands r3, r1
strb r3, [r0]
ldr r1, [r6]
adds r1, #0x7f
ldrb r2, [r1]
adds r0, r4, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r6]
adds r1, #0x8f
ldrb r2, [r1]
adds r0, r4, #0
ands r0, r2
strb r0, [r1]
ldr r0, [r6]
adds r0, #0x9f
ldrb r1, [r0]
ands r4, r1
strb r4, [r0]
ldr r1, [r6]
ldr r7, lbl_080784f0 @ =0x0000013f
adds r1, r1, r7
ldrb r0, [r1]
movs r2, #3
orrs r0, r2
strb r0, [r1]
ldr r1, [r6]
ldr r4, lbl_080784f4 @ =0x0000014f
adds r1, r1, r4
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r1, [r6]
ldr r5, lbl_080784f8 @ =0x0000015f
adds r1, r1, r5
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r0, [r6]
movs r2, #0x9f
lsls r2, r2, #1
adds r0, r0, r2
movs r1, #0x21
strb r1, [r0]
ldr r0, [r6]
movs r3, #0xa7
lsls r3, r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r6]
adds r2, #0x20
adds r0, r0, r2
strb r1, [r0]
ldr r3, lbl_080784fc @ =gSaveFilesInfo
movs r0, #0x11
ldrsb r0, [r3, r0]
cmp r0, #0
beq lbl_08078402
ldr r0, [r6]
adds r1, r7, #0
adds r2, r0, r1
ldrb r1, [r2]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r2]
lbl_08078402:
adds r0, r3, #0
adds r0, #0x29
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_08078420
ldr r2, [r6]
adds r2, r2, r4
ldrb r1, [r2]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r2]
lbl_08078420:
adds r0, r3, #0
adds r0, #0x41
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_0807843e
ldr r2, [r6]
adds r2, r2, r5
ldrb r1, [r2]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r2]
lbl_0807843e:
ldrb r0, [r3, #1]
cmp r0, #0
beq lbl_08078450
ldr r0, [r6]
adds r0, r0, r7
ldrb r1, [r0]
movs r2, #0x20
orrs r1, r2
strb r1, [r0]
lbl_08078450:
ldrb r0, [r3, #0x19]
cmp r0, #0
beq lbl_08078462
ldr r0, [r6]
adds r0, r0, r4
ldrb r1, [r0]
movs r2, #0x20
orrs r1, r2
strb r1, [r0]
lbl_08078462:
adds r0, r3, #0
adds r0, #0x31
ldrb r0, [r0]
cmp r0, #0
beq lbl_08078478
ldr r0, [r6]
adds r0, r0, r5
ldrb r1, [r0]
movs r2, #0x20
orrs r1, r2
strb r1, [r0]
lbl_08078478:
ldr r2, [r6]
movs r3, #0x9b
lsls r3, r3, #1
adds r1, r2, r3
movs r0, #0xe0
lsls r0, r0, #2
strh r0, [r1]
movs r5, #0xa3
lsls r5, r5, #1
adds r1, r2, r5
strh r0, [r1]
movs r6, #0xab
lsls r6, r6, #1
adds r1, r2, r6
strh r0, [r1]
movs r7, #0x9a
lsls r7, r7, #1
adds r1, r2, r7
movs r0, #0x80
strh r0, [r1]
adds r0, #0xc4
adds r1, r2, r0
movs r0, #0xe0
strh r0, [r1]
adds r3, #0x1e
adds r1, r2, r3
adds r0, #0x60
strh r0, [r1]
mov r4, r8
adds r5, #0x6e
adds r2, r2, r5
movs r3, #0xa
lbl_080784b8:
adds r0, r2, #0
adds r1, r4, #0
ldm r1!, {r5, r6, r7}
stm r0!, {r5, r6, r7}
ldr r1, [r1]
str r1, [r0]
adds r2, #0x10
subs r3, #1
cmp r3, #0
bge lbl_080784b8
ldr r0, lbl_08078500 @ =0x0000ffff
bl sub_08078ca0
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_080784e0: .4byte sNonGameplayRamPointer
lbl_080784e4: .4byte 0x08760b40
lbl_080784e8: .4byte 0x0845f1bc
lbl_080784ec: .4byte 0x0000012f
lbl_080784f0: .4byte 0x0000013f
lbl_080784f4: .4byte 0x0000014f
lbl_080784f8: .4byte 0x0000015f
lbl_080784fc: .4byte gSaveFilesInfo
lbl_08078500: .4byte 0x0000ffff
thumb_func_start sub_08078504
sub_08078504: @ 0x08078504
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
lsls r1, r1, #0x18
lsrs r5, r1, #0x18
cmp r5, #2
bhi lbl_08078524
ldr r1, lbl_08078520 @ =gSaveFilesInfo
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
ldrb r3, [r0, #0xc]
b lbl_08078526
.align 2, 0
lbl_08078520: .4byte gSaveFilesInfo
lbl_08078524:
movs r3, #0
lbl_08078526:
ldr r0, lbl_08078544 @ =0x08760b40
lsls r2, r5, #3
adds r1, r3, r2
adds r0, #5
adds r1, r1, r0
ldrb r3, [r1]
adds r6, r2, #0
cmp r4, #8
bls lbl_0807853a
b lbl_08078746
lbl_0807853a:
lsls r0, r4, #2
ldr r1, lbl_08078548 @ =lbl_0807854c
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_08078544: .4byte 0x08760b40
lbl_08078548: .4byte lbl_0807854c
lbl_0807854c: @ jump table
.4byte lbl_08078570 @ case 0
.4byte lbl_08078572 @ case 1
.4byte lbl_080785f8 @ case 2
.4byte lbl_08078746 @ case 3
.4byte lbl_08078746 @ case 4
.4byte lbl_08078608 @ case 5
.4byte lbl_080786a8 @ case 6
.4byte lbl_08078724 @ case 7
.4byte lbl_0807873c @ case 8
lbl_08078570:
adds r3, #1
lbl_08078572:
ldr r4, lbl_080785b4 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0xe4
lsls r1, r3, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
ldr r2, [r4]
ldr r4, lbl_080785b8 @ =0x08760b40
adds r1, r6, r4
ldrh r0, [r1]
adds r3, r2, #0
adds r3, #0xe6
strh r0, [r3]
ldrh r1, [r1, #2]
adds r0, r2, #0
adds r0, #0xe4
strh r1, [r0]
movs r3, #0x10
cmp r5, #0
beq lbl_0807859e
ldrb r3, [r4, #4]
lbl_0807859e:
adds r0, r2, #0
adds r0, #0xf4
lsls r1, r3, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
cmp r5, #1
beq lbl_080785bc
ldrb r3, [r4, #0xc]
b lbl_080785be
.align 2, 0
lbl_080785b4: .4byte sNonGameplayRamPointer
lbl_080785b8: .4byte 0x08760b40
lbl_080785bc:
movs r3, #0x11
lbl_080785be:
ldr r0, lbl_080785dc @ =sNonGameplayRamPointer
ldr r0, [r0]
movs r1, #0x82
lsls r1, r1, #1
adds r0, r0, r1
lsls r1, r3, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
cmp r5, #2
beq lbl_080785e4
ldr r0, lbl_080785e0 @ =0x08760b40
ldrb r3, [r0, #0x14]
b lbl_080785e6
.align 2, 0
lbl_080785dc: .4byte sNonGameplayRamPointer
lbl_080785e0: .4byte 0x08760b40
lbl_080785e4:
movs r3, #0x12
lbl_080785e6:
ldr r0, lbl_080785f4 @ =sNonGameplayRamPointer
ldr r0, [r0]
movs r4, #0x8a
lsls r4, r4, #1
adds r0, r0, r4
lsls r1, r3, #0x18
b lbl_0807872e
.align 2, 0
lbl_080785f4: .4byte sNonGameplayRamPointer
lbl_080785f8:
ldr r0, lbl_08078604 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0xe4
adds r1, r3, #2
b lbl_0807872c
.align 2, 0
lbl_08078604: .4byte sNonGameplayRamPointer
lbl_08078608:
ldr r4, lbl_08078690 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0xe4
adds r1, r3, #2
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
cmp r5, #0
beq lbl_0807863e
ldr r2, [r4]
adds r2, #0xff
ldrb r3, [r2]
movs r1, #0xd
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r3
movs r3, #4
orrs r0, r3
strb r0, [r2]
ldr r0, [r4]
ldr r6, lbl_08078694 @ =0x0000013f
adds r2, r0, r6
ldrb r0, [r2]
ands r1, r0
orrs r1, r3
strb r1, [r2]
lbl_0807863e:
cmp r5, #1
beq lbl_08078666
ldr r0, [r4]
ldr r1, lbl_08078698 @ =0x0000010f
adds r3, r0, r1
ldrb r2, [r3]
movs r1, #0xd
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
movs r2, #4
orrs r0, r2
strb r0, [r3]
ldr r0, [r4]
ldr r6, lbl_0807869c @ =0x0000014f
adds r3, r0, r6
ldrb r0, [r3]
ands r1, r0
orrs r1, r2
strb r1, [r3]
lbl_08078666:
cmp r5, #2
beq lbl_08078746
ldr r0, [r4]
ldr r1, lbl_080786a0 @ =0x0000011f
adds r3, r0, r1
ldrb r2, [r3]
movs r1, #0xd
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
movs r2, #4
orrs r0, r2
strb r0, [r3]
ldr r0, [r4]
ldr r4, lbl_080786a4 @ =0x0000015f
adds r3, r0, r4
ldrb r0, [r3]
ands r1, r0
orrs r1, r2
strb r1, [r3]
b lbl_08078746
.align 2, 0
lbl_08078690: .4byte sNonGameplayRamPointer
lbl_08078694: .4byte 0x0000013f
lbl_08078698: .4byte 0x0000010f
lbl_0807869c: .4byte 0x0000014f
lbl_080786a0: .4byte 0x0000011f
lbl_080786a4: .4byte 0x0000015f
lbl_080786a8:
ldr r4, lbl_08078710 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0xe4
adds r3, #1
lsls r1, r3, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
ldr r1, [r4]
adds r1, #0xff
ldrb r3, [r1]
movs r2, #0xd
rsbs r2, r2, #0
adds r0, r2, #0
ands r0, r3
strb r0, [r1]
ldr r0, [r4]
ldr r6, lbl_08078714 @ =0x0000010f
adds r3, r0, r6
ldrb r1, [r3]
adds r0, r2, #0
ands r0, r1
strb r0, [r3]
ldr r0, [r4]
ldr r1, lbl_08078718 @ =0x0000011f
adds r3, r0, r1
ldrb r1, [r3]
adds r0, r2, #0
ands r0, r1
strb r0, [r3]
ldr r0, [r4]
adds r6, #0x30
adds r3, r0, r6
ldrb r1, [r3]
adds r0, r2, #0
ands r0, r1
strb r0, [r3]
ldr r0, [r4]
ldr r1, lbl_0807871c @ =0x0000014f
adds r3, r0, r1
ldrb r1, [r3]
adds r0, r2, #0
ands r0, r1
strb r0, [r3]
ldr r0, [r4]
ldr r3, lbl_08078720 @ =0x0000015f
adds r1, r0, r3
ldrb r0, [r1]
ands r2, r0
strb r2, [r1]
b lbl_08078746
.align 2, 0
lbl_08078710: .4byte sNonGameplayRamPointer
lbl_08078714: .4byte 0x0000010f
lbl_08078718: .4byte 0x0000011f
lbl_0807871c: .4byte 0x0000014f
lbl_08078720: .4byte 0x0000015f
lbl_08078724:
ldr r0, lbl_08078738 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0xe4
adds r1, r3, #5
lbl_0807872c:
lsls r1, r1, #0x18
lbl_0807872e:
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
b lbl_08078746
.align 2, 0
lbl_08078738: .4byte sNonGameplayRamPointer
lbl_0807873c:
ldr r0, lbl_0807874c @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r1, r3, #4
adds r0, #0xee
strb r1, [r0]
lbl_08078746:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_0807874c: .4byte sNonGameplayRamPointer
thumb_func_start sub_08078750
sub_08078750: @ 0x08078750
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
lsls r1, r1, #0x18
lsrs r5, r1, #0x18
cmp r5, #2
bhi lbl_08078770
ldr r1, lbl_0807876c @ =gSaveFilesInfo
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
ldrb r1, [r0, #0xc]
b lbl_08078772
.align 2, 0
lbl_0807876c: .4byte gSaveFilesInfo
lbl_08078770:
movs r1, #0
lbl_08078772:
ldr r6, lbl_08078790 @ =0x08760b40
lsls r0, r5, #3
adds r1, r1, r0
adds r2, r6, #5
adds r1, r1, r2
ldrb r1, [r1]
adds r7, r0, #0
cmp r3, #1
beq lbl_080787a2
cmp r3, #1
bgt lbl_08078794
cmp r3, #0
beq lbl_080787a0
b lbl_080788c8
.align 2, 0
lbl_08078790: .4byte 0x08760b40
lbl_08078794:
cmp r3, #2
bne lbl_0807879a
b lbl_080788b8
lbl_0807879a:
cmp r3, #3
beq lbl_08078874
b lbl_080788c8
lbl_080787a0:
adds r1, #1
lbl_080787a2:
ldr r4, lbl_08078868 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0xd4
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
ldr r4, [r4]
ldr r3, lbl_0807886c @ =0x08760b40
adds r1, r7, r3
ldrh r0, [r1]
adds r2, r4, #0
adds r2, #0xd6
strh r0, [r2]
ldrh r1, [r1, #2]
adds r0, r4, #0
adds r0, #0xd4
strh r1, [r0]
adds r2, #0xa
ldrb r1, [r2]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2]
ldrb r1, [r3, #4]
cmp r5, #0
bne lbl_080787ee
ldr r2, lbl_08078870 @ =gSaveFilesInfo
ldrb r0, [r2]
cmp r0, #0
bne lbl_080787ec
movs r0, #0x12
ldrsb r0, [r2, r0]
cmp r0, #0
beq lbl_080787ee
lbl_080787ec:
movs r1, #0x10
lbl_080787ee:
ldr r0, lbl_08078868 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0xf4
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
ldr r0, lbl_0807886c @ =0x08760b40
ldrb r1, [r0, #0xc]
cmp r5, #1
bne lbl_0807881c
ldr r2, lbl_08078870 @ =gSaveFilesInfo
ldrb r0, [r2, #0x18]
cmp r0, #0
bne lbl_0807881a
adds r0, r2, #0
adds r0, #0x2a
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_0807881c
lbl_0807881a:
movs r1, #0x11
lbl_0807881c:
ldr r0, lbl_08078868 @ =sNonGameplayRamPointer
ldr r0, [r0]
movs r2, #0x82
lsls r2, r2, #1
adds r0, r0, r2
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
ldr r0, lbl_0807886c @ =0x08760b40
ldrb r1, [r0, #0x14]
cmp r5, #2
bne lbl_08078852
ldr r2, lbl_08078870 @ =gSaveFilesInfo
adds r0, r2, #0
adds r0, #0x30
ldrb r0, [r0]
cmp r0, #0
bne lbl_08078850
adds r0, r2, #0
adds r0, #0x42
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_08078852
lbl_08078850:
movs r1, #0x12
lbl_08078852:
ldr r0, lbl_08078868 @ =sNonGameplayRamPointer
ldr r0, [r0]
movs r2, #0x8a
lsls r2, r2, #1
adds r0, r0, r2
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
b lbl_080788c8
.align 2, 0
lbl_08078868: .4byte sNonGameplayRamPointer
lbl_0807886c: .4byte 0x08760b40
lbl_08078870: .4byte gSaveFilesInfo
lbl_08078874:
ldr r4, lbl_080788b4 @ =sNonGameplayRamPointer
ldr r1, [r4]
adds r1, #0xdf
ldrb r2, [r1]
movs r0, #0x3f
ands r0, r2
strb r0, [r1]
ldr r0, [r4]
adds r0, #0xde
movs r1, #0
strb r1, [r0]
ldr r0, [r4]
adds r0, #0xf4
ldrb r1, [r6, #4]
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r1, #0x82
lsls r1, r1, #1
adds r0, r0, r1
ldrb r1, [r6, #0xc]
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r2, #0x8a
lsls r2, r2, #1
adds r0, r0, r2
ldrb r1, [r6, #0x14]
bl UpdateMenuOamDataID
b lbl_080788c8
.align 2, 0
lbl_080788b4: .4byte sNonGameplayRamPointer
lbl_080788b8:
ldr r0, lbl_080788d0 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0xd4
adds r1, #2
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
lbl_080788c8:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_080788d0: .4byte sNonGameplayRamPointer
thumb_func_start sub_080788d4
sub_080788d4: @ 0x080788d4
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
adds r6, r3, #0
lsls r1, r1, #0x18
lsrs r4, r1, #0x18
ldr r5, lbl_0807891c @ =sNonGameplayRamPointer
ldr r2, [r5]
ldr r7, lbl_08078920 @ =0x08760b40
movs r0, #0x26
adds r0, r0, r2
mov ip, r0
ldrb r0, [r0]
lsls r0, r0, #3
adds r0, r0, r7
ldrh r0, [r0]
adds r1, r2, #0
adds r1, #0xc6
strh r0, [r1]
mov r1, ip
ldrb r0, [r1]
lsls r0, r0, #3
adds r0, r0, r7
ldrh r1, [r0, #2]
adds r0, r2, #0
adds r0, #0xc4
strh r1, [r0]
cmp r3, #2
bne lbl_08078910
b lbl_08078a0c
lbl_08078910:
cmp r3, #2
ble lbl_08078924
cmp r3, #3
beq lbl_080789d0
b lbl_08078a0c
.align 2, 0
lbl_0807891c: .4byte sNonGameplayRamPointer
lbl_08078920: .4byte 0x08760b40
lbl_08078924:
cmp r6, #0
blt lbl_08078a0c
adds r2, #0xd0
ldrb r1, [r2]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2]
ldr r3, lbl_08078984 @ =0x08760b70
ldr r0, [r5]
adds r1, r0, #0
adds r1, #0x26
ldrb r2, [r1]
lsls r1, r2, #1
adds r1, r1, r2
adds r1, r4, r1
adds r1, r1, r3
adds r0, #0xc4
ldrb r1, [r1]
bl UpdateMenuOamDataID
ldr r2, [r5]
adds r0, r2, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807896e
movs r1, #0x13
cmp r4, #0
beq lbl_08078966
ldrb r1, [r7, #4]
lbl_08078966:
adds r0, r2, #0
adds r0, #0xf4
bl UpdateMenuOamDataID
lbl_0807896e:
ldr r0, lbl_08078988 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #1
beq lbl_080789a0
cmp r4, #1
beq lbl_08078990
ldr r0, lbl_0807898c @ =0x08760b40
ldrb r1, [r0, #0xc]
b lbl_08078992
.align 2, 0
lbl_08078984: .4byte 0x08760b70
lbl_08078988: .4byte sNonGameplayRamPointer
lbl_0807898c: .4byte 0x08760b40
lbl_08078990:
movs r1, #0x14
lbl_08078992:
ldr r0, lbl_080789b8 @ =sNonGameplayRamPointer
ldr r0, [r0]
movs r2, #0x82
lsls r2, r2, #1
adds r0, r0, r2
bl UpdateMenuOamDataID
lbl_080789a0:
ldr r0, lbl_080789b8 @ =sNonGameplayRamPointer
ldr r1, [r0]
adds r1, #0x26
ldrb r1, [r1]
adds r2, r0, #0
cmp r1, #2
beq lbl_08078a0c
cmp r4, #2
beq lbl_080789c0
ldr r0, lbl_080789bc @ =0x08760b40
ldrb r1, [r0, #0x14]
b lbl_080789c2
.align 2, 0
lbl_080789b8: .4byte sNonGameplayRamPointer
lbl_080789bc: .4byte 0x08760b40
lbl_080789c0:
movs r1, #0x15
lbl_080789c2:
ldr r0, [r2]
movs r2, #0x8a
lsls r2, r2, #1
adds r0, r0, r2
bl UpdateMenuOamDataID
b lbl_08078a0c
lbl_080789d0:
adds r2, #0xcf
ldrb r1, [r2]
movs r0, #0x3f
ands r0, r1
strb r0, [r2]
cmp r4, #0
bne lbl_080789e8
ldr r0, [r5]
adds r0, #0xf4
ldrb r1, [r7, #4]
bl UpdateMenuOamDataID
lbl_080789e8:
cmp r4, #1
bne lbl_080789fa
ldr r0, [r5]
movs r1, #0x82
lsls r1, r1, #1
adds r0, r0, r1
ldrb r1, [r7, #0xc]
bl UpdateMenuOamDataID
lbl_080789fa:
cmp r4, #2
bne lbl_08078a0c
ldr r0, [r5]
movs r2, #0x8a
lsls r2, r2, #1
adds r0, r0, r2
ldrb r1, [r7, #0x14]
bl UpdateMenuOamDataID
lbl_08078a0c:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_08078a14
sub_08078a14: @ 0x08078a14
push {r4, r5, r6, r7, lr}
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
lsls r1, r1, #0x18
lsrs r5, r1, #0x18
cmp r5, #2
bhi lbl_08078a34
ldr r1, lbl_08078a30 @ =gSaveFilesInfo
lsls r0, r5, #1
adds r0, r0, r5
lsls r0, r0, #3
adds r0, r0, r1
ldrb r1, [r0, #0xc]
b lbl_08078a36
.align 2, 0
lbl_08078a30: .4byte gSaveFilesInfo
lbl_08078a34:
movs r1, #0
lbl_08078a36:
ldr r6, lbl_08078a54 @ =0x08760b40
lsls r0, r5, #3
adds r1, r1, r0
adds r2, r6, #5
adds r1, r1, r2
ldrb r1, [r1]
adds r7, r0, #0
cmp r3, #1
beq lbl_08078a66
cmp r3, #1
bgt lbl_08078a58
cmp r3, #0
beq lbl_08078a64
b lbl_08078b8c
.align 2, 0
lbl_08078a54: .4byte 0x08760b40
lbl_08078a58:
cmp r3, #2
bne lbl_08078a5e
b lbl_08078b7c
lbl_08078a5e:
cmp r3, #3
beq lbl_08078b38
b lbl_08078b8c
lbl_08078a64:
adds r1, #1
lbl_08078a66:
ldr r4, lbl_08078b2c @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0xd4
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
ldr r4, [r4]
ldr r3, lbl_08078b30 @ =0x08760b40
adds r1, r7, r3
ldrh r0, [r1]
adds r2, r4, #0
adds r2, #0xd6
strh r0, [r2]
ldrh r1, [r1, #2]
adds r0, r4, #0
adds r0, #0xd4
strh r1, [r0]
adds r2, #0xa
ldrb r1, [r2]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2]
ldrb r1, [r3, #4]
cmp r5, #0
bne lbl_08078ab2
ldr r2, lbl_08078b34 @ =gSaveFilesInfo
ldrb r0, [r2]
cmp r0, #0
bne lbl_08078ab0
movs r0, #0x12
ldrsb r0, [r2, r0]
cmp r0, #0
beq lbl_08078ab2
lbl_08078ab0:
movs r1, #0x10
lbl_08078ab2:
ldr r0, lbl_08078b2c @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0xf4
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
ldr r0, lbl_08078b30 @ =0x08760b40
ldrb r1, [r0, #0xc]
cmp r5, #1
bne lbl_08078ae0
ldr r2, lbl_08078b34 @ =gSaveFilesInfo
ldrb r0, [r2, #0x18]
cmp r0, #0
bne lbl_08078ade
adds r0, r2, #0
adds r0, #0x2a
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_08078ae0
lbl_08078ade:
movs r1, #0x11
lbl_08078ae0:
ldr r0, lbl_08078b2c @ =sNonGameplayRamPointer
ldr r0, [r0]
movs r2, #0x82
lsls r2, r2, #1
adds r0, r0, r2
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
ldr r0, lbl_08078b30 @ =0x08760b40
ldrb r1, [r0, #0x14]
cmp r5, #2
bne lbl_08078b16
ldr r2, lbl_08078b34 @ =gSaveFilesInfo
adds r0, r2, #0
adds r0, #0x30
ldrb r0, [r0]
cmp r0, #0
bne lbl_08078b14
adds r0, r2, #0
adds r0, #0x42
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_08078b16
lbl_08078b14:
movs r1, #0x12
lbl_08078b16:
ldr r0, lbl_08078b2c @ =sNonGameplayRamPointer
ldr r0, [r0]
movs r2, #0x8a
lsls r2, r2, #1
adds r0, r0, r2
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
b lbl_08078b8c
.align 2, 0
lbl_08078b2c: .4byte sNonGameplayRamPointer
lbl_08078b30: .4byte 0x08760b40
lbl_08078b34: .4byte gSaveFilesInfo
lbl_08078b38:
ldr r4, lbl_08078b78 @ =sNonGameplayRamPointer
ldr r1, [r4]
adds r1, #0xdf
ldrb r2, [r1]
movs r0, #0x3f
ands r0, r2
strb r0, [r1]
ldr r0, [r4]
adds r0, #0xde
movs r1, #0
strb r1, [r0]
ldr r0, [r4]
adds r0, #0xf4
ldrb r1, [r6, #4]
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r1, #0x82
lsls r1, r1, #1
adds r0, r0, r1
ldrb r1, [r6, #0xc]
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r2, #0x8a
lsls r2, r2, #1
adds r0, r0, r2
ldrb r1, [r6, #0x14]
bl UpdateMenuOamDataID
b lbl_08078b8c
.align 2, 0
lbl_08078b78: .4byte sNonGameplayRamPointer
lbl_08078b7c:
ldr r0, lbl_08078b94 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0xd4
adds r1, #2
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
bl UpdateMenuOamDataID
lbl_08078b8c:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08078b94: .4byte sNonGameplayRamPointer
thumb_func_start sub_08078b98
sub_08078b98: @ 0x08078b98
push {r4, r5, r6, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bhi lbl_08078c76
lsls r0, r0, #2
ldr r1, lbl_08078bac @ =lbl_08078bb0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_08078bac: .4byte lbl_08078bb0
lbl_08078bb0: @ jump table
.4byte lbl_08078bcc @ case 0
.4byte lbl_08078bc4 @ case 1
.4byte lbl_08078c54 @ case 2
.4byte lbl_08078c30 @ case 3
.4byte lbl_08078c5c @ case 4
lbl_08078bc4:
movs r0, #0xfd
lsls r0, r0, #1
bl SoundPlay
lbl_08078bcc:
ldr r5, lbl_08078c1c @ =sNonGameplayRamPointer
ldr r3, [r5]
ldr r2, lbl_08078c20 @ =0x08760b80
ldr r4, lbl_08078c24 @ =gOptionsOptionSelected
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r0, r0, r2
ldrh r1, [r0]
ldr r6, lbl_08078c28 @ =0x00000206
adds r0, r3, r6
strh r1, [r0]
movs r0, #0
ldrsb r0, [r4, r0]
lsls r0, r0, #2
adds r2, #2
adds r0, r0, r2
ldrh r1, [r0]
movs r2, #0x81
lsls r2, r2, #2
adds r0, r3, r2
strh r1, [r0]
adds r6, #0xa
adds r3, r3, r6
ldrb r1, [r3]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r3]
ldr r5, [r5]
ldr r1, lbl_08078c2c @ =0x0000020e
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, #1
beq lbl_08078c76
adds r0, r5, r2
b lbl_08078c44
.align 2, 0
lbl_08078c1c: .4byte sNonGameplayRamPointer
lbl_08078c20: .4byte 0x08760b80
lbl_08078c24: .4byte gOptionsOptionSelected
lbl_08078c28: .4byte 0x00000206
lbl_08078c2c: .4byte 0x0000020e
lbl_08078c30:
ldr r0, lbl_08078c4c @ =sNonGameplayRamPointer
ldr r1, [r0]
ldr r2, lbl_08078c50 @ =0x0000020e
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #1
beq lbl_08078c76
movs r6, #0x81
lsls r6, r6, #2
adds r0, r1, r6
lbl_08078c44:
movs r1, #1
bl UpdateMenuOamDataID
b lbl_08078c76
.align 2, 0
lbl_08078c4c: .4byte sNonGameplayRamPointer
lbl_08078c50: .4byte 0x0000020e
lbl_08078c54:
movs r0, #0xfe
lsls r0, r0, #1
bl SoundPlay
lbl_08078c5c:
ldr r0, lbl_08078c94 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldr r2, lbl_08078c98 @ =0x0000020e
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #2
beq lbl_08078c76
movs r6, #0x81
lsls r6, r6, #2
adds r0, r1, r6
movs r1, #2
bl UpdateMenuOamDataID
lbl_08078c76:
ldr r0, lbl_08078c94 @ =sNonGameplayRamPointer
ldr r2, [r0]
ldr r0, lbl_08078c9c @ =0x0000020f
adds r2, r2, r0
ldrb r1, [r2]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08078c94: .4byte sNonGameplayRamPointer
lbl_08078c98: .4byte 0x0000020e
lbl_08078c9c: .4byte 0x0000020f
thumb_func_start sub_08078ca0
sub_08078ca0: @ 0x08078ca0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
lsls r0, r0, #0x10
lsrs r7, r0, #0x10
movs r0, #3
ands r0, r7
cmp r0, #0
beq lbl_08078d10
movs r0, #1
ands r0, r7
movs r2, #3
cmp r0, #0
beq lbl_08078cbe
movs r2, #2
lbl_08078cbe:
ldr r0, lbl_08078d80 @ =sNonGameplayRamPointer
mov r8, r0
ldr r0, [r0]
movs r6, #0x85
lsls r6, r6, #2
adds r0, r0, r6
ldr r4, lbl_08078d84 @ =0x08760b9c
lsls r2, r2, #1
ldr r5, lbl_08078d88 @ =gStereoFlag
ldrb r1, [r5]
lsls r1, r1, #3
adds r2, r2, r1
adds r2, r2, r4
ldrb r1, [r2]
bl UpdateMenuOamDataID
mov r1, r8
ldr r2, [r1]
ldrb r0, [r5]
lsls r0, r0, #3
adds r0, r0, r4
ldrh r1, [r0]
ldr r3, lbl_08078d8c @ =0x00000216
adds r0, r2, r3
strh r1, [r0]
ldrb r0, [r5]
lsls r0, r0, #3
adds r4, #2
adds r0, r0, r4
ldrh r0, [r0]
adds r6, r2, r6
strh r0, [r6]
ldr r6, lbl_08078d90 @ =0x0000021f
adds r2, r2, r6
ldrb r1, [r2]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2]
lbl_08078d10:
movs r0, #4
ands r0, r7
cmp r0, #0
beq lbl_08078d74
ldr r5, lbl_08078d80 @ =sNonGameplayRamPointer
ldr r1, [r5]
ldr r0, lbl_08078d94 @ =0x00000226
adds r3, r1, r0
adds r0, #0x7a
strh r0, [r3]
movs r6, #0x89
lsls r6, r6, #2
adds r4, r1, r6
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r4]
ldrh r2, [r3]
adds r6, #0x12
adds r0, r1, r6
strh r2, [r0]
ldrh r2, [r4]
subs r6, #2
adds r0, r1, r6
strh r2, [r0]
ldrh r2, [r3]
ldr r3, lbl_08078d98 @ =0x00000246
adds r0, r1, r3
strh r2, [r0]
ldrh r2, [r4]
adds r6, #0x10
adds r0, r1, r6
strh r2, [r0]
ldr r0, lbl_08078d9c @ =0x0000022f
adds r1, r1, r0
ldrb r0, [r1]
movs r2, #3
orrs r0, r2
strb r0, [r1]
ldr r1, [r5]
subs r3, #7
adds r1, r1, r3
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r1, [r5]
adds r6, #0xb
adds r1, r1, r6
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
lbl_08078d74:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_08078d80: .4byte sNonGameplayRamPointer
lbl_08078d84: .4byte 0x08760b9c
lbl_08078d88: .4byte gStereoFlag
lbl_08078d8c: .4byte 0x00000216
lbl_08078d90: .4byte 0x0000021f
lbl_08078d94: .4byte 0x00000226
lbl_08078d98: .4byte 0x00000246
lbl_08078d9c: .4byte 0x0000022f
thumb_func_start sub_08078da0
sub_08078da0: @ 0x08078da0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #8
ldr r1, lbl_08078dc4 @ =sNonGameplayRamPointer
ldr r0, [r1]
adds r0, #0x34
ldrb r0, [r0]
mov ip, r1
cmp r0, #6
bls lbl_08078db8
b lbl_080790be
lbl_08078db8:
lsls r0, r0, #2
ldr r1, lbl_08078dc8 @ =lbl_08078dcc
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_08078dc4: .4byte sNonGameplayRamPointer
lbl_08078dc8: .4byte lbl_08078dcc
lbl_08078dcc: @ jump table
.4byte lbl_080790be @ case 0
.4byte lbl_08078de8 @ case 1
.4byte lbl_08078f8c @ case 2
.4byte lbl_08078f8c @ case 3
.4byte lbl_08078f8c @ case 4
.4byte lbl_08078f8c @ case 5
.4byte lbl_08079046 @ case 6
lbl_08078de8:
ldr r2, lbl_08078e48 @ =gCurrentMessage
adds r1, r2, #0
ldr r0, lbl_08078e4c @ =0x0845f430
ldm r0!, {r3, r4, r5}
stm r1!, {r3, r4, r5}
ldr r0, [r0]
str r0, [r1]
ldrb r0, [r2, #0xd]
movs r6, #0
cmp r0, #0
beq lbl_08078e00
subs r6, #1
lbl_08078e00:
ldr r0, lbl_08078e50 @ =0x0845f3cc
mov r8, r0
mov r1, ip
ldr r0, [r1]
adds r0, #0x35
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
mov r7, r8
adds r7, #1
adds r0, r0, r7
ldrb r0, [r0]
cmp r0, #3
beq lbl_08078e20
cmp r0, #1
bne lbl_08078e60
lbl_08078e20:
add r0, sp, #4
strh r6, [r0]
ldr r2, lbl_08078e54 @ =0x040000d4
str r0, [r2]
ldr r3, lbl_08078e58 @ =0x08760bdc
mov r4, ip
ldr r0, [r4]
adds r0, #0x35
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r3
ldr r0, [r0]
str r0, [r2, #4]
ldr r0, lbl_08078e5c @ =0x81000800
b lbl_08078ed6
.align 2, 0
lbl_08078e48: .4byte gCurrentMessage
lbl_08078e4c: .4byte 0x0845f430
lbl_08078e50: .4byte 0x0845f3cc
lbl_08078e54: .4byte 0x040000d4
lbl_08078e58: .4byte 0x08760bdc
lbl_08078e5c: .4byte 0x81000800
lbl_08078e60:
cmp r0, #2
bne lbl_08078eec
add r3, sp, #4
strh r6, [r3]
ldr r2, lbl_08078edc @ =0x040000d4
str r3, [r2]
ldr r4, lbl_08078ee0 @ =0x08760bdc
mov r5, ip
ldr r0, [r5]
adds r0, #0x35
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r4
ldr r0, [r0]
str r0, [r2, #4]
ldr r5, lbl_08078ee4 @ =0x81000100
str r5, [r2, #8]
ldr r0, [r2, #8]
strh r6, [r3]
str r3, [r2]
mov r1, ip
ldr r0, [r1]
adds r0, #0x35
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r4
ldr r0, [r0]
movs r1, #0x80
lsls r1, r1, #3
adds r0, r0, r1
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
strh r6, [r3]
str r3, [r2]
mov r3, ip
ldr r0, [r3]
adds r0, #0x35
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r4
ldr r0, [r0]
movs r4, #0xc0
lsls r4, r4, #3
adds r0, r0, r4
str r0, [r2, #4]
ldr r0, lbl_08078ee8 @ =0x81000400
lbl_08078ed6:
str r0, [r2, #8]
ldr r0, [r2, #8]
b lbl_08078f76
.align 2, 0
lbl_08078edc: .4byte 0x040000d4
lbl_08078ee0: .4byte 0x08760bdc
lbl_08078ee4: .4byte 0x81000100
lbl_08078ee8: .4byte 0x81000400
lbl_08078eec:
add r4, sp, #4
strh r6, [r4]
ldr r3, lbl_08078f7c @ =0x040000d4
str r4, [r3]
ldr r5, lbl_08078f80 @ =0x08760bdc
mov r1, ip
ldr r0, [r1]
adds r0, #0x35
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r5
ldr r0, [r0]
str r0, [r3, #4]
ldr r0, lbl_08078f84 @ =0x81000400
str r0, [r3, #8]
ldr r0, [r3, #8]
mov r1, ip
ldr r0, [r1]
adds r2, r0, #0
adds r2, #0x35
ldrb r1, [r2]
lsls r0, r1, #1
adds r0, r0, r1
mov r1, r8
adds r1, #2
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #3
bne lbl_08078f76
strh r6, [r4]
str r4, [r3]
ldrb r1, [r2]
lsls r0, r1, #1
adds r0, r0, r1
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r5
ldr r0, [r0]
movs r1, #0x80
lsls r1, r1, #4
adds r0, r0, r1
str r0, [r3, #4]
ldr r2, lbl_08078f88 @ =0x81000100
str r2, [r3, #8]
ldr r0, [r3, #8]
strh r6, [r4]
str r4, [r3]
mov r4, ip
ldr r0, [r4]
adds r0, #0x35
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
adds r0, r0, r7
ldrb r0, [r0]
lsls r0, r0, #2
adds r0, r0, r5
ldr r0, [r0]
movs r5, #0xc0
lsls r5, r5, #4
adds r0, r0, r5
str r0, [r3, #4]
str r2, [r3, #8]
ldr r0, [r3, #8]
lbl_08078f76:
mov r0, ip
ldr r1, [r0]
b lbl_0807901a
.align 2, 0
lbl_08078f7c: .4byte 0x040000d4
lbl_08078f80: .4byte 0x08760bdc
lbl_08078f84: .4byte 0x81000400
lbl_08078f88: .4byte 0x81000100
lbl_08078f8c:
ldr r4, lbl_08079024 @ =0x08760bdc
ldr r2, lbl_08079028 @ =0x0845f3cc
ldr r0, lbl_0807902c @ =sNonGameplayRamPointer
ldr r3, [r0]
adds r0, r3, #0
adds r0, #0x35
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
adds r2, #1
adds r0, r0, r2
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r4
ldr r4, [r0]
adds r3, #0x34
ldrb r0, [r3]
subs r6, r0, #2
movs r0, #2
ands r0, r6
cmp r0, #0
beq lbl_08078fbe
movs r3, #0x80
lsls r3, r3, #4
adds r4, r4, r3
lbl_08078fbe:
movs r0, #1
ands r6, r0
cmp r6, #0
beq lbl_08078fd6
movs r5, #0x80
lsls r5, r5, #2
adds r4, r4, r5
cmp r1, #2
bne lbl_08078fd6
movs r0, #0x80
lsls r0, r0, #3
adds r4, r4, r0
lbl_08078fd6:
ldr r1, lbl_08079030 @ =gCurrentMessage
movs r0, #0
strh r0, [r1, #2]
ldr r1, lbl_08079034 @ =0x0876079c
mov r8, r1
ldr r7, lbl_08079028 @ =0x0845f3cc
ldr r5, lbl_0807902c @ =sNonGameplayRamPointer
lbl_08078fe4:
ldr r0, lbl_08079038 @ =gLanguage
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #2
add r2, r8
ldr r0, [r5]
adds r0, #0x35
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
adds r0, r0, r7
ldrb r0, [r0]
ldr r1, [r2]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
ldr r0, lbl_08079030 @ =gCurrentMessage
adds r2, r4, #0
bl TextProcessCurrentMessage
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #2
beq lbl_0807903c
cmp r6, #1
bne lbl_08078fe4
ldr r1, [r5]
lbl_0807901a:
adds r1, #0x34
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_080790be
.align 2, 0
lbl_08079024: .4byte 0x08760bdc
lbl_08079028: .4byte 0x0845f3cc
lbl_0807902c: .4byte sNonGameplayRamPointer
lbl_08079030: .4byte gCurrentMessage
lbl_08079034: .4byte 0x0876079c
lbl_08079038: .4byte gLanguage
lbl_0807903c:
ldr r0, [r5]
adds r0, #0x34
movs r1, #6
strb r1, [r0]
b lbl_080790be
lbl_08079046:
mov r3, ip
ldr r0, [r3]
adds r0, #0x35
movs r1, #0xff
strb r1, [r0]
movs r6, #0
mov r1, sp
movs r0, #1
rsbs r0, r0, #0
strb r0, [r1]
adds r5, r0, #0
adds r4, r5, #0
strb r0, [r1, #1]
ldr r0, [r3]
adds r1, r0, #0
adds r1, #0x36
ldrb r2, [r1]
adds r0, r2, #0
cmp r0, #0xff
beq lbl_0807907a
mov r0, sp
strb r2, [r0]
ldrb r0, [r1]
orrs r0, r4
strb r0, [r1]
movs r6, #1
lbl_0807907a:
ldr r0, [r3]
adds r1, r0, #0
adds r1, #0x37
ldrb r2, [r1]
adds r0, r2, #0
cmp r0, #0xff
beq lbl_08079094
mov r3, sp
adds r0, r3, r6
strb r2, [r0]
ldrb r0, [r1]
orrs r0, r4
strb r0, [r1]
lbl_08079094:
mov r4, ip
ldr r0, [r4]
mov r1, sp
ldrb r1, [r1]
adds r0, #0x35
strb r1, [r0]
ldr r0, [r4]
mov r1, sp
ldrb r1, [r1, #1]
adds r0, #0x36
strb r1, [r0]
ldr r2, [r4]
adds r0, r2, #0
adds r0, #0x35
ldrb r0, [r0]
movs r1, #0xff
eors r0, r1
rsbs r0, r0, #0
lsrs r0, r0, #0x1f
adds r2, #0x34
strb r0, [r2]
lbl_080790be:
add sp, #8
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_080790cc
sub_080790cc: @ 0x080790cc
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r3, r1, #0
movs r5, #1
cmp r0, #0
bne lbl_08079116
ldr r4, lbl_080790f8 @ =sNonGameplayRamPointer
ldr r2, [r4]
adds r3, r2, #0
adds r3, #0x35
ldrb r0, [r3]
cmp r0, #0xff
bne lbl_080790fc
strb r1, [r3]
ldr r0, [r4]
adds r0, #0x34
strb r5, [r0]
b lbl_0807916a
.align 2, 0
lbl_080790f8: .4byte sNonGameplayRamPointer
lbl_080790fc:
adds r3, r2, #0
adds r3, #0x36
ldrb r0, [r3]
cmp r0, #0xff
bne lbl_0807910a
strb r1, [r3]
b lbl_0807916a
lbl_0807910a:
adds r2, #0x37
ldrb r0, [r2]
cmp r0, #0xff
bne lbl_08079140
strb r1, [r2]
b lbl_0807916a
lbl_08079116:
cmp r0, #1
bne lbl_08079148
ldr r0, lbl_08079144 @ =sNonGameplayRamPointer
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0x35
ldrb r0, [r0]
cmp r0, r1
bne lbl_0807912a
movs r5, #0
lbl_0807912a:
adds r0, r2, #0
adds r0, #0x36
ldrb r0, [r0]
cmp r0, r1
bne lbl_08079136
movs r5, #0
lbl_08079136:
adds r0, r2, #0
adds r0, #0x37
ldrb r0, [r0]
cmp r0, r3
bne lbl_0807916a
lbl_08079140:
movs r5, #0
b lbl_0807916a
.align 2, 0
lbl_08079144: .4byte sNonGameplayRamPointer
lbl_08079148:
ldr r2, lbl_08079174 @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r0, #0x35
movs r1, #0xff
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x36
movs r1, #1
rsbs r1, r1, #0
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x37
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x34
movs r1, #0
strb r1, [r0]
lbl_0807916a:
adds r0, r5, #0
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
lbl_08079174: .4byte sNonGameplayRamPointer
thumb_func_start sub_08079178
sub_08079178: @ 0x08079178
push {lr}
movs r2, #1
rsbs r2, r2, #0
ldr r1, lbl_08079194 @ =gSaveFilesInfo
ldrb r0, [r1]
cmp r0, #0
bne lbl_0807919c
movs r0, #0x12
ldrsb r0, [r1, r0]
cmp r0, #0
bne lbl_0807919c
movs r2, #0
ldr r3, lbl_08079198 @ =sNonGameplayRamPointer
b lbl_08079200
.align 2, 0
lbl_08079194: .4byte gSaveFilesInfo
lbl_08079198: .4byte sNonGameplayRamPointer
lbl_0807919c:
ldrb r0, [r1, #0x18]
cmp r0, #0
bne lbl_080791bc
adds r0, r1, #0
adds r0, #0x2a
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne lbl_080791bc
movs r2, #1
ldr r3, lbl_080791b8 @ =sNonGameplayRamPointer
b lbl_08079200
.align 2, 0
lbl_080791b8: .4byte sNonGameplayRamPointer
lbl_080791bc:
adds r0, r1, #0
adds r0, #0x30
ldrb r0, [r0]
cmp r0, #0
bne lbl_080791d6
adds r0, r1, #0
adds r0, #0x42
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne lbl_080791d6
movs r2, #2
lbl_080791d6:
ldr r3, lbl_0807920c @ =sNonGameplayRamPointer
cmp r2, #0
bge lbl_08079200
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0x27
ldrb r2, [r0]
cmp r2, #0x80
beq lbl_080791f0
subs r0, #1
ldrb r0, [r0]
cmp r0, r2
bne lbl_08079200
lbl_080791f0:
adds r0, r1, #0
adds r0, #0x26
ldrb r1, [r0]
movs r2, #1
eors r1, r2
rsbs r0, r1, #0
orrs r0, r1
lsrs r2, r0, #0x1f
lbl_08079200:
ldr r0, [r3]
adds r0, #0x27
strb r2, [r0]
pop {r0}
bx r0
.align 2, 0
lbl_0807920c: .4byte sNonGameplayRamPointer
thumb_func_start sub_08079210
sub_08079210: @ 0x08079210
push {r4, r5, r6, r7, lr}
sub sp, #4
movs r7, #0
ldr r2, lbl_0807923c @ =sNonGameplayRamPointer
ldr r1, [r2]
adds r3, r1, #0
adds r3, #0x42
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
adds r1, #0x40
ldrb r0, [r1]
adds r6, r2, #0
cmp r0, #0xf
bls lbl_08079230
b lbl_08079794
lbl_08079230:
lsls r0, r0, #2
ldr r1, lbl_08079240 @ =lbl_08079244
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807923c: .4byte sNonGameplayRamPointer
lbl_08079240: .4byte lbl_08079244
lbl_08079244: @ jump table
.4byte lbl_08079284 @ case 0
.4byte lbl_080792d0 @ case 1
.4byte lbl_080792e8 @ case 2
.4byte lbl_08079300 @ case 3
.4byte lbl_080793e8 @ case 4
.4byte lbl_080794ec @ case 5
.4byte lbl_08079510 @ case 6
.4byte lbl_080795b2 @ case 7
.4byte lbl_080795d4 @ case 8
.4byte lbl_080795fc @ case 9
.4byte lbl_0807961c @ case 10
.4byte lbl_0807964c @ case 11
.4byte lbl_08079686 @ case 12
.4byte lbl_080796a0 @ case 13
.4byte lbl_080796bc @ case 14
.4byte lbl_08079780 @ case 15
lbl_08079284:
movs r0, #0
movs r1, #1
bl sub_080790cc
movs r0, #0
movs r1, #2
bl sub_080790cc
ldr r4, lbl_080792c8 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x26
bl sub_0807d230
ldr r0, [r4]
adds r0, #0x26
ldrb r1, [r0]
movs r0, #0
bl sub_08078750
movs r0, #0x12
bl sub_0807e6d8
ldr r1, [r4]
ldr r0, lbl_080792cc @ =0x08760b38
ldrb r0, [r0]
adds r1, #0x2c
movs r2, #0
strb r0, [r1]
ldr r0, [r4]
adds r0, #0x3a
strb r2, [r0]
ldr r1, [r4]
b lbl_08079766
.align 2, 0
lbl_080792c8: .4byte sNonGameplayRamPointer
lbl_080792cc: .4byte 0x08760b38
lbl_080792d0:
movs r0, #0x13
bl sub_0807e6d8
cmp r0, #0
bne lbl_080792dc
b lbl_08079794
lbl_080792dc:
ldr r0, lbl_080792e4 @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_08079766
.align 2, 0
lbl_080792e4: .4byte sNonGameplayRamPointer
lbl_080792e8:
movs r0, #1
movs r1, #2
bl sub_080790cc
cmp r0, #0
bne lbl_080792f6
b lbl_08079794
lbl_080792f6:
ldr r0, lbl_080792fc @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_08079766
.align 2, 0
lbl_080792fc: .4byte sNonGameplayRamPointer
lbl_08079300:
movs r4, #0
ldr r5, lbl_08079320 @ =gChangedInput
ldrh r0, [r5]
cmp r0, #0
beq lbl_08079354
ldr r1, [r6]
adds r1, #0x26
movs r0, #1
bl sub_0807d19c
lsls r0, r0, #0x18
cmp r0, #0
beq lbl_08079324
movs r4, #1
b lbl_0807935a
.align 2, 0
lbl_08079320: .4byte gChangedInput
lbl_08079324:
ldrh r1, [r5]
movs r3, #2
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq lbl_08079332
b lbl_080796aa
lbl_08079332:
movs r2, #1
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq lbl_08079354
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x3b
ldrb r1, [r1]
adds r0, #0x26
ldrb r0, [r0]
asrs r1, r0
ands r1, r2
rsbs r0, r1, #0
orrs r0, r1
asrs r4, r0, #0x1f
ands r4, r3
lbl_08079354:
cmp r4, #0
bne lbl_0807935a
b lbl_08079794
lbl_0807935a:
cmp r4, #1
bne lbl_08079378
movs r0, #2
bl sub_0807ef7c
ldr r0, lbl_08079374 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x26
ldrb r1, [r0]
movs r0, #1
bl sub_08078750
b lbl_08079794
.align 2, 0
lbl_08079374: .4byte sNonGameplayRamPointer
lbl_08079378:
cmp r4, #2
beq lbl_0807937e
b lbl_08079794
lbl_0807937e:
ldr r4, lbl_080793bc @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x26
ldrb r1, [r0]
movs r0, #2
bl sub_08078750
ldr r2, lbl_080793c0 @ =gSaveFilesInfo
ldr r0, [r4]
adds r0, #0x26
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #0x15]
cmp r0, #0
beq lbl_080793c8
ldr r0, lbl_080793c4 @ =0x00000209
bl SoundPlay
movs r0, #0
movs r1, #4
bl sub_080790cc
ldr r0, [r4]
adds r0, #0x40
movs r1, #9
strb r1, [r0]
b lbl_08079794
.align 2, 0
lbl_080793bc: .4byte sNonGameplayRamPointer
lbl_080793c0: .4byte gSaveFilesInfo
lbl_080793c4: .4byte 0x00000209
lbl_080793c8:
movs r0, #8
bl sub_0807ef7c
bl sub_08079178
ldr r0, [r4]
adds r0, #0x27
ldrb r1, [r0]
movs r0, #0
bl sub_080788d4
movs r0, #0x1b
bl sub_0807e6d8
ldr r1, [r4]
b lbl_08079766
lbl_080793e8:
movs r4, #0
ldr r5, lbl_08079408 @ =gChangedInput
ldrh r0, [r5]
cmp r0, #0
beq lbl_08079420
ldr r1, [r6]
adds r1, #0x27
movs r0, #2
bl sub_0807d19c
lsls r0, r0, #0x18
cmp r0, #0
beq lbl_0807940c
movs r4, #1
b lbl_08079460
.align 2, 0
lbl_08079408: .4byte gChangedInput
lbl_0807940c:
ldrh r1, [r5]
movs r0, #2
ands r0, r1
cmp r0, #0
bne lbl_08079428
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_08079420
movs r4, #2
lbl_08079420:
cmp r4, #0
bne lbl_08079426
b lbl_08079794
lbl_08079426:
b lbl_08079460
lbl_08079428:
ldr r0, lbl_08079458 @ =0x00000209
bl SoundPlay
ldr r4, lbl_0807945c @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x26
ldrb r1, [r0]
movs r0, #0
bl sub_08078750
ldr r0, [r4]
adds r0, #0x27
ldrb r1, [r0]
movs r0, #3
bl sub_080788d4
movs r0, #0x1a
bl sub_0807e6d8
ldr r0, [r4]
adds r0, #0x40
movs r1, #3
strb r1, [r0]
b lbl_08079794
.align 2, 0
lbl_08079458: .4byte 0x00000209
lbl_0807945c: .4byte sNonGameplayRamPointer
lbl_08079460:
cmp r4, #1
bne lbl_08079480
ldr r0, lbl_0807947c @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x27
ldrb r1, [r0]
movs r0, #1
bl sub_080788d4
movs r0, #9
bl sub_0807ef7c
b lbl_08079794
.align 2, 0
lbl_0807947c: .4byte sNonGameplayRamPointer
lbl_08079480:
cmp r4, #2
beq lbl_08079486
b lbl_08079794
lbl_08079486:
ldr r4, lbl_080794d4 @ =sNonGameplayRamPointer
ldr r0, [r4]
ldr r1, lbl_080794d8 @ =0x08760b38
ldrb r1, [r1]
adds r0, #0x2c
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x27
ldrb r1, [r0]
movs r0, #2
bl sub_080788d4
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0x3b
ldrb r1, [r1]
adds r0, #0x27
ldrb r0, [r0]
asrs r1, r0
movs r0, #1
ands r1, r0
cmp r1, #0
beq lbl_080794dc
movs r0, #0
movs r1, #3
bl sub_080790cc
movs r0, #0x16
bl sub_0807e6d8
movs r0, #8
bl sub_0807ef7c
ldr r0, [r4]
adds r0, #0x40
movs r1, #5
strb r1, [r0]
b lbl_08079794
.align 2, 0
lbl_080794d4: .4byte sNonGameplayRamPointer
lbl_080794d8: .4byte 0x08760b38
lbl_080794dc:
movs r0, #0xa
bl sub_0807ef7c
ldr r0, [r4]
adds r0, #0x40
movs r1, #0xb
strb r1, [r0]
b lbl_08079794
lbl_080794ec:
movs r0, #0x17
bl sub_0807e6d8
cmp r0, #0
bne lbl_080794f8
b lbl_08079794
lbl_080794f8:
ldr r4, lbl_0807950c @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x2c
ldrb r1, [r0]
movs r0, #4
bl sub_0807e3fc
ldr r1, [r4]
b lbl_08079766
.align 2, 0
lbl_0807950c: .4byte sNonGameplayRamPointer
lbl_08079510:
movs r4, #0xff
ldr r0, lbl_08079538 @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
beq lbl_080795a0
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_0807954e
ldr r1, [r6]
adds r0, r1, #0
adds r0, #0x2c
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807953c
adds r1, #0x40
movs r0, #7
strb r0, [r1]
b lbl_080795a0
.align 2, 0
lbl_08079538: .4byte gChangedInput
lbl_0807953c:
movs r0, #0xa
bl sub_0807ef7c
movs r4, #0x80
ldr r0, [r6]
adds r0, #0x40
movs r1, #0xb
strb r1, [r0]
b lbl_080795a0
lbl_0807954e:
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_08079560
ldr r0, [r6]
adds r0, #0x40
movs r1, #7
strb r1, [r0]
b lbl_080795a0
lbl_08079560:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq lbl_08079580
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x2c
ldrb r0, [r1]
cmp r0, #0
beq lbl_080795a0
movs r4, #0
strb r4, [r1]
movs r0, #0
bl sub_0807ef7c
b lbl_080795a0
lbl_08079580:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq lbl_080795a0
ldr r0, [r6]
adds r1, r0, #0
adds r1, #0x2c
ldrb r0, [r1]
cmp r0, #0
bne lbl_080795a0
movs r4, #1
movs r0, #1
strb r0, [r1]
movs r0, #0
bl sub_0807ef7c
lbl_080795a0:
adds r0, r4, #1
cmp r0, #0
bne lbl_080795a8
b lbl_08079794
lbl_080795a8:
adds r1, r4, #0
movs r0, #4
bl sub_0807e3fc
b lbl_08079794
lbl_080795b2:
ldr r0, lbl_080795cc @ =0x00000209
bl SoundPlay
movs r0, #4
movs r1, #0x81
bl sub_0807e3fc
movs r0, #0x18
bl sub_0807e6d8
ldr r0, lbl_080795d0 @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_08079766
.align 2, 0
lbl_080795cc: .4byte 0x00000209
lbl_080795d0: .4byte sNonGameplayRamPointer
lbl_080795d4:
movs r0, #0x19
bl sub_0807e6d8
cmp r0, #0
bne lbl_080795e0
b lbl_08079794
lbl_080795e0:
ldr r4, lbl_080795f8 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x27
ldrb r1, [r0]
movs r0, #0
bl sub_080788d4
ldr r0, [r4]
adds r0, #0x40
movs r1, #4
strb r1, [r0]
b lbl_08079794
.align 2, 0
lbl_080795f8: .4byte sNonGameplayRamPointer
lbl_080795fc:
movs r0, #1
movs r1, #4
bl sub_080790cc
cmp r0, #0
bne lbl_0807960a
b lbl_08079794
lbl_0807960a:
movs r0, #0x1c
bl sub_0807e6d8
ldr r0, lbl_08079618 @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_08079766
.align 2, 0
lbl_08079618: .4byte sNonGameplayRamPointer
lbl_0807961c:
ldr r0, lbl_08079648 @ =gChangedInput
ldrh r1, [r0]
movs r0, #3
ands r0, r1
cmp r0, #0
bne lbl_0807962a
b lbl_08079794
lbl_0807962a:
ldr r0, [r6]
adds r0, #0x26
ldrb r1, [r0]
movs r0, #0
bl sub_08078750
movs r0, #0x1a
bl sub_0807e6d8
ldr r0, [r6]
adds r0, #0x40
movs r1, #3
strb r1, [r0]
b lbl_08079794
.align 2, 0
lbl_08079648: .4byte gChangedInput
lbl_0807964c:
ldr r1, [r6]
adds r0, r1, #0
adds r0, #0x26
ldrb r0, [r0]
adds r1, #0x27
ldrb r1, [r1]
bl sub_080755a4
cmp r0, #0
bne lbl_08079662
b lbl_08079794
lbl_08079662:
ldr r0, [r6]
adds r0, #0x3a
movs r1, #1
strb r1, [r0]
ldr r1, [r6]
adds r0, r1, #0
adds r0, #0x2c
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807967e
adds r1, #0x40
movs r0, #0xe
strb r0, [r1]
b lbl_08079794
lbl_0807967e:
adds r1, #0x40
movs r0, #0xc
strb r0, [r1]
b lbl_08079794
lbl_08079686:
movs r0, #4
movs r1, #0x81
bl sub_0807e3fc
movs r0, #0x18
bl sub_0807e6d8
ldr r0, lbl_0807969c @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_08079766
.align 2, 0
lbl_0807969c: .4byte sNonGameplayRamPointer
lbl_080796a0:
movs r0, #0x19
bl sub_0807e6d8
cmp r0, #0
beq lbl_08079794
lbl_080796aa:
ldr r0, lbl_080796b8 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x40
movs r1, #0xe
strb r1, [r0]
b lbl_08079794
.align 2, 0
lbl_080796b8: .4byte sNonGameplayRamPointer
lbl_080796bc:
adds r5, r6, #0
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x3a
ldrb r0, [r0]
cmp r0, #0
beq lbl_08079746
adds r0, r1, #0
adds r0, #0x27
ldrb r0, [r0]
bl display_save_file_health
ldr r0, [r5]
adds r0, #0x27
ldrb r0, [r0]
bl sub_0807cdc4
ldr r0, [r5]
adds r0, #0x27
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
ldr r4, lbl_08079770 @ =gSaveFilesInfo
adds r0, r0, r4
bl sub_0807cf98
ldr r3, [r5]
ldr r0, lbl_08079774 @ =0x08760b79
adds r1, r3, #0
adds r1, #0x27
ldrb r2, [r1]
lsls r1, r2, #1
adds r0, #1
adds r0, r1, r0
ldrb r0, [r0]
lsls r0, r0, #4
adds r3, r3, r0
adds r1, r1, r2
lsls r1, r1, #3
adds r1, r1, r4
ldrb r1, [r1, #0x11]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
rsbs r0, r1, #0
orrs r0, r1
asrs r0, r0, #0x1f
movs r1, #2
adds r3, #0x7f
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r3]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl sub_0807d0b0
ldr r0, lbl_08079778 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r1, r3
ldr r2, lbl_0807977c @ =0x0600d800
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
lbl_08079746:
ldr r0, [r6]
adds r0, #0x26
ldrb r1, [r0]
movs r0, #3
bl sub_08078750
ldr r0, [r6]
adds r0, #0x27
ldrb r1, [r0]
movs r0, #3
bl sub_080788d4
movs r0, #0x14
bl sub_0807e6d8
ldr r1, [r6]
lbl_08079766:
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_08079794
.align 2, 0
lbl_08079770: .4byte gSaveFilesInfo
lbl_08079774: .4byte 0x08760b79
lbl_08079778: .4byte sEwramPointer
lbl_0807977c: .4byte 0x0600d800
lbl_08079780:
movs r0, #0x15
bl sub_0807e6d8
cmp r0, #0
beq lbl_08079794
movs r0, #2
movs r1, #0xff
bl sub_080790cc
movs r7, #1
lbl_08079794:
adds r0, r7, #0
add sp, #4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_start sub_080797a0
sub_080797a0: @ 0x080797a0
push {r4, r5, r6, r7, lr}
sub sp, #4
movs r7, #0
ldr r2, lbl_080797cc @ =sNonGameplayRamPointer
ldr r1, [r2]
adds r3, r1, #0
adds r3, #0x42
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
adds r1, #0x40
ldrb r0, [r1]
adds r5, r2, #0
cmp r0, #0xb
bls lbl_080797c0
b lbl_08079b44
lbl_080797c0:
lsls r0, r0, #2
ldr r1, lbl_080797d0 @ =lbl_080797d4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_080797cc: .4byte sNonGameplayRamPointer
lbl_080797d0: .4byte lbl_080797d4
lbl_080797d4: @ jump table
.4byte lbl_08079804 @ case 0
.4byte lbl_08079840 @ case 1
.4byte lbl_08079858 @ case 2
.4byte lbl_08079900 @ case 3
.4byte lbl_08079930 @ case 4
.4byte lbl_080799d8 @ case 5
.4byte lbl_080799fc @ case 6
.4byte lbl_08079a24 @ case 7
.4byte lbl_08079a46 @ case 8
.4byte lbl_08079a60 @ case 9
.4byte lbl_08079a7c @ case 10
.4byte lbl_08079b30 @ case 11
lbl_08079804:
movs r0, #0
movs r1, #5
bl sub_080790cc
movs r0, #0
movs r1, #6
bl sub_080790cc
ldr r4, lbl_0807983c @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x28
bl sub_0807d230
ldr r0, [r4]
adds r0, #0x28
ldrb r1, [r0]
movs r0, #0
bl sub_08078a14
movs r0, #0xa
bl sub_0807e6d8
ldr r0, [r4]
adds r0, #0x3a
movs r1, #0
strb r1, [r0]
b lbl_08079b10
.align 2, 0
lbl_0807983c: .4byte sNonGameplayRamPointer
lbl_08079840:
movs r0, #0xb
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807984c
b lbl_08079b44
lbl_0807984c:
ldr r0, lbl_08079854 @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_08079b12
.align 2, 0
lbl_08079854: .4byte sNonGameplayRamPointer
lbl_08079858:
movs r4, #0
ldr r6, lbl_08079878 @ =gChangedInput
ldrh r0, [r6]
cmp r0, #0
beq lbl_080798ac
ldr r1, [r5]
adds r1, #0x28
movs r0, #1
bl sub_0807d19c
lsls r0, r0, #0x18
cmp r0, #0
beq lbl_0807987c
movs r4, #1
b lbl_080798b2
.align 2, 0
lbl_08079878: .4byte gChangedInput
lbl_0807987c:
ldrh r1, [r6]
movs r3, #2
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq lbl_0807988a
b lbl_08079a6a
lbl_0807988a:
movs r2, #1
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq lbl_080798ac
ldr r0, [r5]
adds r1, r0, #0
adds r1, #0x3b
ldrb r1, [r1]
adds r0, #0x28
ldrb r0, [r0]
asrs r1, r0
ands r1, r2
rsbs r0, r1, #0
orrs r0, r1
asrs r4, r0, #0x1f
ands r4, r3
lbl_080798ac:
cmp r4, #0
bne lbl_080798b2
b lbl_08079b44
lbl_080798b2:
cmp r4, #1
bne lbl_080798d0
movs r0, #2
bl sub_0807ef7c
ldr r0, lbl_080798cc @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x28
ldrb r1, [r0]
movs r0, #1
bl sub_08078a14
b lbl_08079b44
.align 2, 0
lbl_080798cc: .4byte sNonGameplayRamPointer
lbl_080798d0:
cmp r4, #2
beq lbl_080798d6
b lbl_08079b44
lbl_080798d6:
movs r0, #0x84
lsls r0, r0, #2
bl SoundPlay
ldr r4, lbl_080798fc @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x28
ldrb r1, [r0]
movs r0, #2
bl sub_08078a14
movs r0, #0xe
bl sub_0807e6d8
ldr r0, [r4]
adds r0, #0x40
movs r1, #3
strb r1, [r0]
b lbl_08079b44
.align 2, 0
lbl_080798fc: .4byte sNonGameplayRamPointer
lbl_08079900:
movs r0, #0xf
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807990c
b lbl_08079b44
lbl_0807990c:
ldr r4, lbl_08079928 @ =sNonGameplayRamPointer
ldr r0, [r4]
ldr r1, lbl_0807992c @ =0x08760b38
ldrb r1, [r1, #1]
adds r0, #0x2d
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x2d
ldrb r1, [r0]
movs r0, #3
bl sub_0807e3fc
b lbl_08079b10
.align 2, 0
lbl_08079928: .4byte sNonGameplayRamPointer
lbl_0807992c: .4byte 0x08760b38
lbl_08079930:
movs r4, #0xff
ldr r0, lbl_08079958 @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
beq lbl_080799c6
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_08079974
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x2d
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807995c
adds r1, #0x40
movs r0, #5
strb r0, [r1]
b lbl_080799c6
.align 2, 0
lbl_08079958: .4byte gChangedInput
lbl_0807995c:
movs r4, #0x80
ldr r0, lbl_08079970 @ =0x0000020d
bl SoundPlay
ldr r0, [r5]
adds r0, #0x40
movs r1, #7
strb r1, [r0]
b lbl_080799c6
.align 2, 0
lbl_08079970: .4byte 0x0000020d
lbl_08079974:
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_08079986
ldr r0, [r5]
adds r0, #0x40
movs r1, #5
strb r1, [r0]
b lbl_080799c6
lbl_08079986:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq lbl_080799a6
ldr r0, [r5]
adds r1, r0, #0
adds r1, #0x2d
ldrb r0, [r1]
cmp r0, #0
beq lbl_080799c6
movs r4, #0
strb r4, [r1]
movs r0, #0
bl sub_0807ef7c
b lbl_080799c6
lbl_080799a6:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq lbl_080799c6
ldr r0, [r5]
adds r1, r0, #0
adds r1, #0x2d
ldrb r0, [r1]
cmp r0, #0
bne lbl_080799c6
movs r4, #1
movs r0, #1
strb r0, [r1]
movs r0, #0
bl sub_0807ef7c
lbl_080799c6:
adds r0, r4, #1
cmp r0, #0
bne lbl_080799ce
b lbl_08079b44
lbl_080799ce:
adds r1, r4, #0
movs r0, #3
bl sub_0807e3fc
b lbl_08079b44
lbl_080799d8:
ldr r0, lbl_080799f4 @ =0x00000209
bl SoundPlay
movs r0, #3
movs r1, #0x81
bl sub_0807e3fc
movs r0, #0x10
bl sub_0807e6d8
ldr r0, lbl_080799f8 @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_08079b12
.align 2, 0
lbl_080799f4: .4byte 0x00000209
lbl_080799f8: .4byte sNonGameplayRamPointer
lbl_080799fc:
movs r0, #0x11
bl sub_0807e6d8
cmp r0, #0
bne lbl_08079a08
b lbl_08079b44
lbl_08079a08:
ldr r4, lbl_08079a20 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x28
ldrb r1, [r0]
movs r0, #0
bl sub_08078a14
ldr r0, [r4]
adds r0, #0x40
movs r1, #2
strb r1, [r0]
b lbl_08079b44
.align 2, 0
lbl_08079a20: .4byte sNonGameplayRamPointer
lbl_08079a24:
ldr r0, [r5]
adds r0, #0x28
ldrb r0, [r0]
bl sub_08075494
cmp r0, #0
bne lbl_08079a34
b lbl_08079b44
lbl_08079a34:
ldr r0, [r5]
adds r0, #0x3a
movs r1, #1
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x40
movs r1, #8
strb r1, [r0]
b lbl_08079b44
lbl_08079a46:
movs r0, #3
movs r1, #0x81
bl sub_0807e3fc
movs r0, #0x10
bl sub_0807e6d8
ldr r0, lbl_08079a5c @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_08079b12
.align 2, 0
lbl_08079a5c: .4byte sNonGameplayRamPointer
lbl_08079a60:
movs r0, #0x11
bl sub_0807e6d8
cmp r0, #0
beq lbl_08079b44
lbl_08079a6a:
ldr r0, lbl_08079a78 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x40
movs r1, #0xa
strb r1, [r0]
b lbl_08079b44
.align 2, 0
lbl_08079a78: .4byte sNonGameplayRamPointer
lbl_08079a7c:
ldr r5, lbl_08079b1c @ =sNonGameplayRamPointer
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x3a
ldrb r0, [r0]
cmp r0, #0
beq lbl_08079afc
adds r0, r1, #0
adds r0, #0x28
ldrb r0, [r0]
bl display_save_file_health
ldr r0, [r5]
adds r0, #0x28
ldrb r0, [r0]
bl sub_0807cdc4
ldr r0, [r5]
adds r0, #0x28
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
ldr r4, lbl_08079b20 @ =gSaveFilesInfo
adds r0, r0, r4
bl sub_0807cf98
ldr r2, [r5]
adds r0, r2, #0
adds r0, #0x28
ldrb r0, [r0]
lsls r1, r0, #1
adds r0, r1, r0
lsls r0, r0, #3
adds r0, r0, r4
ldrb r0, [r0, #0x11]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne lbl_08079ae2
ldr r0, lbl_08079b24 @ =0x08760b79
adds r0, #1
adds r0, r1, r0
ldrb r1, [r0]
lsls r1, r1, #4
adds r1, r2, r1
adds r1, #0x7f
ldrb r2, [r1]
movs r0, #0x3f
ands r0, r2
strb r0, [r1]
lbl_08079ae2:
bl sub_0807d0b0
ldr r0, lbl_08079b28 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r1, r3
ldr r2, lbl_08079b2c @ =0x0600d800
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
lbl_08079afc:
ldr r4, lbl_08079b1c @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x28
ldrb r1, [r0]
movs r0, #3
bl sub_08078a14
movs r0, #0xc
bl sub_0807e6d8
lbl_08079b10:
ldr r1, [r4]
lbl_08079b12:
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_08079b44
.align 2, 0
lbl_08079b1c: .4byte sNonGameplayRamPointer
lbl_08079b20: .4byte gSaveFilesInfo
lbl_08079b24: .4byte 0x08760b79
lbl_08079b28: .4byte sEwramPointer
lbl_08079b2c: .4byte 0x0600d800
lbl_08079b30:
movs r0, #0xd
bl sub_0807e6d8
cmp r0, #0
beq lbl_08079b44
movs r0, #2
movs r1, #0xff
bl sub_080790cc
movs r7, #1
lbl_08079b44:
adds r0, r7, #0
add sp, #4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_start sub_08079b50
sub_08079b50: @ 0x08079b50
push {r4, r5, lr}
sub sp, #4
ldr r2, lbl_08079b78 @ =sNonGameplayRamPointer
ldr r1, [r2]
adds r3, r1, #0
adds r3, #0x42
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
adds r1, #0x40
ldrb r0, [r1]
adds r4, r2, #0
cmp r0, #0xb
bls lbl_08079b6e
b lbl_08079ec0
lbl_08079b6e:
lsls r0, r0, #2
ldr r1, lbl_08079b7c @ =lbl_08079b80
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_08079b78: .4byte sNonGameplayRamPointer
lbl_08079b7c: .4byte lbl_08079b80
lbl_08079b80: @ jump table
.4byte lbl_08079bb0 @ case 0
.4byte lbl_08079c5c @ case 1
.4byte lbl_08079ce4 @ case 2
.4byte lbl_08079cfc @ case 3
.4byte lbl_08079d0c @ case 4
.4byte lbl_08079d3c @ case 5
.4byte lbl_08079d84 @ case 6
.4byte lbl_08079d9c @ case 7
.4byte lbl_08079e34 @ case 8
.4byte lbl_08079e4c @ case 9
.4byte lbl_08079e68 @ case 10
.4byte lbl_08079e98 @ case 11
lbl_08079bb0:
ldr r1, [r4]
adds r2, r1, #0
adds r2, #0x46
movs r0, #0
strb r0, [r2]
subs r2, #1
strb r0, [r2]
adds r1, #0x44
strb r0, [r1]
ldr r0, lbl_08079bd4 @ =gSaveFilesInfo
ldrb r1, [r0, #1]
adds r2, r0, #0
cmp r1, #1
bne lbl_08079bd8
ldr r0, [r4]
adds r0, #0x44
movs r1, #7
b lbl_08079be2
.align 2, 0
lbl_08079bd4: .4byte gSaveFilesInfo
lbl_08079bd8:
cmp r1, #2
bne lbl_08079be4
ldr r0, [r4]
adds r0, #0x44
movs r1, #0xa
lbl_08079be2:
strb r1, [r0]
lbl_08079be4:
ldrb r0, [r2, #0x19]
cmp r0, #1
bne lbl_08079bf2
ldr r0, [r4]
adds r0, #0x45
movs r1, #8
b lbl_08079bfc
lbl_08079bf2:
cmp r0, #2
bne lbl_08079bfe
ldr r0, [r4]
adds r0, #0x45
movs r1, #0xb
lbl_08079bfc:
strb r1, [r0]
lbl_08079bfe:
adds r0, r2, #0
adds r0, #0x31
ldrb r0, [r0]
cmp r0, #1
bne lbl_08079c10
ldr r0, [r4]
adds r0, #0x46
movs r1, #9
b lbl_08079c1a
lbl_08079c10:
cmp r0, #2
bne lbl_08079c1c
ldr r0, [r4]
adds r0, #0x46
movs r1, #0xc
lbl_08079c1a:
strb r1, [r0]
lbl_08079c1c:
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0x44
ldrb r0, [r1]
cmp r0, #0
beq lbl_08079c30
adds r1, r0, #0
movs r0, #0
bl sub_080790cc
lbl_08079c30:
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0x45
ldrb r0, [r1]
cmp r0, #0
beq lbl_08079c44
adds r1, r0, #0
movs r0, #0
bl sub_080790cc
lbl_08079c44:
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0x46
ldrb r0, [r1]
cmp r0, #0
beq lbl_08079c58
adds r1, r0, #0
movs r0, #0
bl sub_080790cc
lbl_08079c58:
ldr r1, [r4]
b lbl_08079e3e
lbl_08079c5c:
movs r5, #0
ldr r1, [r4]
adds r2, r1, #0
adds r2, #0x44
ldrb r0, [r2]
cmp r0, #0
beq lbl_08079c7e
adds r1, r0, #0
movs r0, #1
bl sub_080790cc
cmp r0, #0
beq lbl_08079cc6
ldr r0, [r4]
adds r0, #0x47
strb r5, [r0]
b lbl_08079ccc
lbl_08079c7e:
adds r2, r1, #0
adds r2, #0x45
ldrb r0, [r2]
cmp r0, #0
beq lbl_08079c9e
adds r1, r0, #0
movs r0, #1
bl sub_080790cc
cmp r0, #0
beq lbl_08079cc6
ldr r0, [r4]
adds r0, #0x47
movs r1, #1
strb r1, [r0]
b lbl_08079ccc
lbl_08079c9e:
adds r2, r1, #0
adds r2, #0x46
ldrb r0, [r2]
cmp r0, #0
beq lbl_08079cbe
adds r1, r0, #0
movs r0, #1
bl sub_080790cc
cmp r0, #0
beq lbl_08079cc6
ldr r0, [r4]
adds r0, #0x47
movs r1, #2
strb r1, [r0]
b lbl_08079ccc
lbl_08079cbe:
adds r1, #0x40
movs r0, #0xa
strb r0, [r1]
b lbl_08079ec0
lbl_08079cc6:
cmp r5, #0
bne lbl_08079ccc
b lbl_08079ec0
lbl_08079ccc:
movs r0, #0x26
bl sub_0807e6d8
ldr r0, lbl_08079ce0 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x40
movs r1, #2
strb r1, [r0]
b lbl_08079ec0
.align 2, 0
lbl_08079ce0: .4byte sNonGameplayRamPointer
lbl_08079ce4:
movs r0, #0x27
bl sub_0807e6d8
cmp r0, #0
bne lbl_08079cf0
b lbl_08079ec0
lbl_08079cf0:
ldr r3, lbl_08079cf8 @ =sNonGameplayRamPointer
ldr r1, [r3]
b lbl_08079e7e
.align 2, 0
lbl_08079cf8: .4byte sNonGameplayRamPointer
lbl_08079cfc:
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0x1e
bhi lbl_08079d0a
b lbl_08079ec0
lbl_08079d0a:
b lbl_08079e3e
lbl_08079d0c:
ldr r0, lbl_08079d30 @ =gChangedInput
ldrh r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne lbl_08079d1a
b lbl_08079ec0
lbl_08079d1a:
ldr r1, lbl_08079d34 @ =gUnk_3000c20
movs r0, #0
strb r0, [r1]
ldr r2, lbl_08079d38 @ =gMostRecentSaveFile
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x47
ldrb r0, [r0]
strb r0, [r2]
b lbl_08079e3e
.align 2, 0
lbl_08079d30: .4byte gChangedInput
lbl_08079d34: .4byte gUnk_3000c20
lbl_08079d38: .4byte gMostRecentSaveFile
lbl_08079d3c:
movs r0, #0
bl unk_fbc
cmp r0, #0
bne lbl_08079d48
b lbl_08079ec0
lbl_08079d48:
ldr r1, lbl_08079d74 @ =gUnk_3000c20
movs r0, #0
strb r0, [r1]
ldr r2, lbl_08079d78 @ =gSaveFilesInfo
ldr r0, lbl_08079d7c @ =gMostRecentSaveFile
movs r1, #0
ldrsb r1, [r0, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r2
ldrb r0, [r1, #1]
cmp r0, #1
bne lbl_08079e3a
movs r0, #0
strb r0, [r1, #1]
ldr r0, lbl_08079d80 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x40
movs r1, #7
strb r1, [r0]
b lbl_08079ec0
.align 2, 0
lbl_08079d74: .4byte gUnk_3000c20
lbl_08079d78: .4byte gSaveFilesInfo
lbl_08079d7c: .4byte gMostRecentSaveFile
lbl_08079d80: .4byte sNonGameplayRamPointer
lbl_08079d84:
movs r0, #1
bl unk_fbc
cmp r0, #0
bne lbl_08079d90
b lbl_08079ec0
lbl_08079d90:
ldr r1, lbl_08079d98 @ =gUnk_3000c20
movs r0, #0
strb r0, [r1]
b lbl_08079e3a
.align 2, 0
lbl_08079d98: .4byte gUnk_3000c20
lbl_08079d9c:
ldr r0, [r4]
adds r0, #0x47
ldrb r0, [r0]
bl display_save_file_health
ldr r0, [r4]
adds r0, #0x47
ldrb r0, [r0]
bl sub_0807cdc4
ldr r0, [r4]
adds r0, #0x47
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
ldr r2, lbl_08079ddc @ =gSaveFilesInfo
adds r0, r0, r2
bl sub_0807cf98
bl sub_0807d0b0
ldr r0, [r4]
adds r3, r0, #0
adds r3, #0x47
ldrb r3, [r3]
cmp r3, #0
bne lbl_08079de0
adds r0, #0x44
strb r3, [r0]
b lbl_08079df2
.align 2, 0
lbl_08079ddc: .4byte gSaveFilesInfo
lbl_08079de0:
cmp r3, #1
bne lbl_08079dea
adds r1, r0, #0
adds r1, #0x45
b lbl_08079dee
lbl_08079dea:
adds r1, r0, #0
adds r1, #0x46
lbl_08079dee:
movs r0, #0
strb r0, [r1]
lbl_08079df2:
ldr r0, lbl_08079e28 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r1, r3
ldr r2, lbl_08079e2c @ =0x0600d800
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
ldr r3, lbl_08079e30 @ =sNonGameplayRamPointer
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0x47
ldrb r0, [r0]
adds r0, #0xc
lsls r0, r0, #4
adds r1, r1, r0
adds r1, #0x7f
ldrb r2, [r1]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r3]
b lbl_08079e3e
.align 2, 0
lbl_08079e28: .4byte sEwramPointer
lbl_08079e2c: .4byte 0x0600d800
lbl_08079e30: .4byte sNonGameplayRamPointer
lbl_08079e34:
movs r0, #0x28
bl sub_0807e6d8
lbl_08079e3a:
ldr r0, lbl_08079e48 @ =sNonGameplayRamPointer
ldr r1, [r0]
lbl_08079e3e:
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_08079ec0
.align 2, 0
lbl_08079e48: .4byte sNonGameplayRamPointer
lbl_08079e4c:
movs r0, #0x29
bl sub_0807e6d8
cmp r0, #0
beq lbl_08079ec0
ldr r0, lbl_08079e64 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x40
movs r1, #1
strb r1, [r0]
b lbl_08079ec0
.align 2, 0
lbl_08079e64: .4byte sNonGameplayRamPointer
lbl_08079e68:
movs r0, #2
movs r1, #0xff
bl sub_080790cc
ldr r2, lbl_08079e90 @ =gMostRecentSaveFile
ldr r3, lbl_08079e94 @ =sNonGameplayRamPointer
ldr r1, [r3]
adds r0, r1, #0
adds r0, #0x24
ldrb r0, [r0]
strb r0, [r2]
lbl_08079e7e:
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
ldr r0, [r3]
adds r0, #0x42
strh r2, [r0]
b lbl_08079ec0
.align 2, 0
lbl_08079e90: .4byte gMostRecentSaveFile
lbl_08079e94: .4byte sNonGameplayRamPointer
lbl_08079e98:
ldr r2, [r4]
adds r0, r2, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0x10
bls lbl_08079ec0
adds r2, #0xef
ldrb r1, [r2]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldr r0, [r4]
adds r0, #0x24
ldrb r1, [r0]
movs r0, #0
bl sub_08078504
movs r0, #1
b lbl_08079ec2
lbl_08079ec0:
movs r0, #0
lbl_08079ec2:
add sp, #4
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_start sub_08079ecc
sub_08079ecc: @ 0x08079ecc
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
sub sp, #4
ldr r0, lbl_08079f9c @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xa2
lsls r0, r0, #7
adds r1, r1, r0
ldr r2, lbl_08079fa0 @ =0x0600f000
movs r3, #0x80
lsls r3, r3, #4
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
ldr r4, lbl_08079fa4 @ =sNonGameplayRamPointer
ldr r1, [r4]
ldrh r0, [r1, #0x20]
strh r0, [r1, #8]
ldrh r2, [r1]
movs r3, #0xa0
lsls r3, r3, #5
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
adds r1, #0xff
ldrb r3, [r1]
movs r2, #0xd
rsbs r2, r2, #0
adds r0, r2, #0
ands r0, r3
movs r5, #4
orrs r0, r5
strb r0, [r1]
ldr r1, [r4]
ldr r0, lbl_08079fa8 @ =0x0000010f
mov r8, r0
add r1, r8
ldrb r3, [r1]
adds r0, r2, #0
ands r0, r3
orrs r0, r5
strb r0, [r1]
ldr r1, [r4]
ldr r6, lbl_08079fac @ =0x0000011f
adds r1, r1, r6
ldrb r3, [r1]
adds r0, r2, #0
ands r0, r3
orrs r0, r5
strb r0, [r1]
ldr r0, [r4]
adds r0, #0xef
ldrb r1, [r0]
ands r2, r1
orrs r2, r5
strb r2, [r0]
ldr r0, [r4]
ldr r2, lbl_08079fb0 @ =0x0000013f
adds r1, r0, r2
ldrb r0, [r1]
movs r2, #0x20
orrs r0, r2
strb r0, [r1]
ldr r0, [r4]
ldr r3, lbl_08079fb4 @ =0x0000014f
adds r1, r0, r3
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r0, [r4]
adds r3, #0x10
adds r1, r0, r3
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r1, [r4]
adds r1, #0xff
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r1, [r4]
add r1, r8
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r1, [r4]
adds r1, r1, r6
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r1, [r4]
adds r1, #0xef
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_08079f9c: .4byte sEwramPointer
lbl_08079fa0: .4byte 0x0600f000
lbl_08079fa4: .4byte sNonGameplayRamPointer
lbl_08079fa8: .4byte 0x0000010f
lbl_08079fac: .4byte 0x0000011f
lbl_08079fb0: .4byte 0x0000013f
lbl_08079fb4: .4byte 0x0000014f
thumb_func_start sub_08079fb8
sub_08079fb8: @ 0x08079fb8
push {r4, r5, r6, r7, lr}
sub sp, #4
ldr r0, lbl_0807a008 @ =0x0845e3ec
ldr r1, lbl_0807a00c @ =sEwramPointer
ldr r1, [r1]
movs r2, #0xa2
lsls r2, r2, #7
adds r1, r1, r2
bl CallLZ77UncompWRAM
movs r5, #0
ldr r1, lbl_0807a010 @ =sNonGameplayRamPointer
movs r2, #0
mov ip, r1
lbl_08079fd4:
ldr r0, [r1]
adds r0, #0x5c
adds r0, r0, r5
strb r2, [r0]
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #6
bls lbl_08079fd4
mov r3, ip
ldr r1, [r3]
adds r4, r1, #0
adds r4, #0x5c
movs r0, #1
strb r0, [r4]
adds r4, #1
movs r5, #2
lbl_08079ff6:
subs r0, r5, #2
cmp r0, #5
bls lbl_08079ffe
b lbl_0807a11e
lbl_08079ffe:
lsls r0, r0, #2
ldr r1, lbl_0807a014 @ =lbl_0807a018
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807a008: .4byte 0x0845e3ec
lbl_0807a00c: .4byte sEwramPointer
lbl_0807a010: .4byte sNonGameplayRamPointer
lbl_0807a014: .4byte lbl_0807a018
lbl_0807a018: @ jump table
.4byte lbl_0807a030 @ case 0
.4byte lbl_0807a040 @ case 1
.4byte lbl_0807a0a0 @ case 2
.4byte lbl_0807a0f4 @ case 3
.4byte lbl_0807a104 @ case 4
.4byte lbl_0807a10c @ case 5
lbl_0807a030:
ldr r0, lbl_0807a03c @ =gFileScreenOptionsUnlocked
ldrb r1, [r0, #4]
movs r0, #4
ands r0, r1
b lbl_0807a116
.align 2, 0
lbl_0807a03c: .4byte gFileScreenOptionsUnlocked
lbl_0807a040:
mov r1, ip
ldr r0, [r1]
adds r0, #0x64
movs r7, #0
movs r3, #0
strb r3, [r0]
ldr r0, [r1]
adds r0, #0x65
strb r3, [r0]
ldr r6, lbl_0807a09c @ =gTimeAttackRecord
adds r0, r6, #0
adds r0, #0x2c
ldrb r0, [r0]
cmp r0, #0xff
beq lbl_0807a074
ldr r2, [r1]
adds r2, #0x64
ldrb r0, [r2]
movs r1, #2
orrs r0, r1
strb r0, [r2]
mov r2, ip
ldr r0, [r2]
adds r0, #0x65
movs r1, #1
strb r1, [r0]
lbl_0807a074:
ldrb r0, [r6, #0x14]
cmp r0, #0xff
beq lbl_0807a090
mov r0, ip
ldr r2, [r0]
adds r2, #0x64
ldrb r0, [r2]
movs r1, #1
orrs r0, r1
strb r0, [r2]
mov r1, ip
ldr r0, [r1]
adds r0, #0x65
strb r3, [r0]
lbl_0807a090:
mov r2, ip
ldr r0, [r2]
adds r0, #0x64
ldrb r0, [r0]
b lbl_0807a116
.align 2, 0
lbl_0807a09c: .4byte gTimeAttackRecord
lbl_0807a0a0:
ldr r1, lbl_0807a0e4 @ =gFileScreenOptionsUnlocked
ldrh r0, [r1]
cmp r0, #0
beq lbl_0807a11e
strb r5, [r4]
adds r4, #1
ldrh r0, [r1]
cmp r0, #0xff
bne lbl_0807a11e
ldr r1, lbl_0807a0e8 @ =sEwramPointer
ldr r0, lbl_0807a0ec @ =0x08760bec
ldrh r0, [r0, #8]
lsls r0, r0, #1
movs r3, #0xa2
lsls r3, r3, #7
adds r0, r0, r3
ldr r1, [r1]
adds r2, r1, r0
ldr r7, lbl_0807a0f0 @ =0x00000fff
movs r0, #0xe0
lsls r0, r0, #8
adds r6, r0, #0
movs r3, #0x3f
lbl_0807a0ce:
ldrh r1, [r2]
adds r0, r7, #0
ands r0, r1
orrs r0, r6
strh r0, [r2]
subs r3, #1
adds r2, #2
cmp r3, #0
bge lbl_0807a0ce
b lbl_0807a11e
.align 2, 0
lbl_0807a0e4: .4byte gFileScreenOptionsUnlocked
lbl_0807a0e8: .4byte sEwramPointer
lbl_0807a0ec: .4byte 0x08760bec
lbl_0807a0f0: .4byte 0x00000fff
lbl_0807a0f4:
ldr r0, lbl_0807a100 @ =gFileScreenOptionsUnlocked
ldrh r0, [r0, #2]
cmp r0, #0
beq lbl_0807a11e
strb r5, [r4]
b lbl_0807a11e
.align 2, 0
lbl_0807a100: .4byte gFileScreenOptionsUnlocked
lbl_0807a104:
ldrb r0, [r4]
cmp r0, #5
beq lbl_0807a11c
b lbl_0807a11a
lbl_0807a10c:
ldr r1, lbl_0807a198 @ =gFileScreenOptionsUnlocked
ldrh r0, [r1]
cmp r0, #0
bne lbl_0807a11a
ldrb r0, [r1, #4]
lbl_0807a116:
cmp r0, #0
beq lbl_0807a11e
lbl_0807a11a:
strb r5, [r4]
lbl_0807a11c:
adds r4, #1
lbl_0807a11e:
mov r2, ip
ldr r1, [r2]
adds r0, r1, #0
adds r0, #0x62
cmp r4, r0
bhs lbl_0807a136
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #7
bhi lbl_0807a136
b lbl_08079ff6
lbl_0807a136:
movs r5, #0
adds r0, r1, #0
adds r0, #0x5c
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807a190
ldr r7, lbl_0807a19c @ =0x08760bec
mov r4, ip
ldr r6, lbl_0807a1a0 @ =sEwramPointer
lbl_0807a148:
ldr r0, [r4]
adds r0, #0x5c
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #1
adds r1, r0, r7
ldrh r0, [r1]
cmp r0, #0
beq lbl_0807a17e
adds r1, r0, #0
lsls r1, r1, #1
movs r3, #0xa2
lsls r3, r3, #7
adds r1, r1, r3
ldr r2, [r6]
adds r1, r2, r1
lsls r0, r5, #7
movs r3, #0xa4
lsls r3, r3, #7
adds r0, r0, r3
adds r2, r2, r0
movs r0, #0x10
str r0, [sp]
movs r0, #3
movs r3, #0x80
bl DMATransfer
lbl_0807a17e:
adds r0, r5, #1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
ldr r0, [r4]
adds r0, #0x5c
adds r0, r0, r5
ldrb r0, [r0]
cmp r0, #0
bne lbl_0807a148
lbl_0807a190:
add sp, #4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807a198: .4byte gFileScreenOptionsUnlocked
lbl_0807a19c: .4byte 0x08760bec
lbl_0807a1a0: .4byte sEwramPointer
thumb_func_start copy_time_attack_time
copy_time_attack_time: @ 0x0807a1a4
push {r4, r5, r6, r7, lr}
ldr r7, lbl_0807a2b4 @ =sNonGameplayRamPointer
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x64
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807a2ae
adds r0, r1, #0
adds r0, #0x48
bl sub_0807f60c
ldr r6, lbl_0807a2b8 @ =gTimeAttackRecord
ldrb r0, [r6, #0x14]
movs r5, #0x63
cmp r0, #0x62
bhi lbl_0807a1c8
adds r5, r0, #0
lbl_0807a1c8:
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __divsi3
adds r4, #0x50
strb r0, [r4]
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
adds r4, #0x51
strb r0, [r4]
ldrb r0, [r6, #0x15]
movs r5, #0x3b
cmp r0, #0x3a
bhi lbl_0807a1ee
adds r5, r0, #0
lbl_0807a1ee:
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __divsi3
adds r4, #0x52
strb r0, [r4]
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
adds r4, #0x53
strb r0, [r4]
ldrb r0, [r6, #0x16]
movs r5, #0x3b
cmp r0, #0x3a
bhi lbl_0807a214
adds r5, r0, #0
lbl_0807a214:
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __divsi3
adds r4, #0x54
strb r0, [r4]
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
adds r4, #0x55
strb r0, [r4]
adds r1, r6, #0
adds r1, #0x2c
ldrb r0, [r1]
movs r5, #0x63
cmp r0, #0x62
bhi lbl_0807a23e
adds r5, r0, #0
lbl_0807a23e:
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __divsi3
adds r4, #0x56
strb r0, [r4]
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
adds r4, #0x57
strb r0, [r4]
adds r1, r6, #0
adds r1, #0x2d
ldrb r0, [r1]
movs r5, #0x3b
cmp r0, #0x3a
bhi lbl_0807a268
adds r5, r0, #0
lbl_0807a268:
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __divsi3
adds r4, #0x58
strb r0, [r4]
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
adds r4, #0x59
strb r0, [r4]
adds r1, r6, #0
adds r1, #0x2e
ldrb r0, [r1]
movs r5, #0x3b
cmp r0, #0x3a
bhi lbl_0807a292
adds r5, r0, #0
lbl_0807a292:
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __divsi3
adds r4, #0x5a
strb r0, [r4]
ldr r4, [r7]
adds r0, r5, #0
movs r1, #0xa
bl __modsi3
adds r4, #0x5b
strb r0, [r4]
lbl_0807a2ae:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807a2b4: .4byte sNonGameplayRamPointer
lbl_0807a2b8: .4byte gTimeAttackRecord
thumb_func_start sub_0807a2bc
sub_0807a2bc: @ 0x0807a2bc
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r2, lbl_0807a2ec @ =sNonGameplayRamPointer
ldr r1, [r2]
adds r3, r1, #0
adds r3, #0x42
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
adds r1, #0x40
ldrb r0, [r1]
adds r7, r2, #0
cmp r0, #0xc
bls lbl_0807a2e2
b lbl_0807a7d4
lbl_0807a2e2:
lsls r0, r0, #2
ldr r1, lbl_0807a2f0 @ =lbl_0807a2f4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807a2ec: .4byte sNonGameplayRamPointer
lbl_0807a2f0: .4byte lbl_0807a2f4
lbl_0807a2f4: @ jump table
.4byte lbl_0807a328 @ case 0
.4byte lbl_0807a346 @ case 1
.4byte lbl_0807a454 @ case 2
.4byte lbl_0807a4d4 @ case 3
.4byte lbl_0807a50c @ case 4
.4byte lbl_0807a524 @ case 5
.4byte lbl_0807a562 @ case 6
.4byte lbl_0807a578 @ case 7
.4byte lbl_0807a608 @ case 8
.4byte lbl_0807a648 @ case 9
.4byte lbl_0807a66c @ case 10
.4byte lbl_0807a6e4 @ case 11
.4byte lbl_0807a7a0 @ case 12
lbl_0807a328:
cmp r4, #0
beq lbl_0807a334
ldr r0, [r7]
adds r0, #0x40
movs r1, #7
b lbl_0807a33a
lbl_0807a334:
ldr r0, [r7]
adds r0, #0x40
movs r1, #1
lbl_0807a33a:
strb r1, [r0]
ldr r0, [r7]
adds r0, #0x42
movs r1, #0
strh r1, [r0]
b lbl_0807a7d4
lbl_0807a346:
ldr r2, [r7]
adds r0, r2, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #9
bhi lbl_0807a354
b lbl_0807a7d4
lbl_0807a354:
ldr r0, lbl_0807a42c @ =gWrittenToBLDALPHA_H
movs r4, #0
strh r4, [r0]
ldr r1, lbl_0807a430 @ =gWrittenToBLDALPHA_L
movs r0, #0x10
strh r0, [r1]
movs r0, #0
mov r8, r0
ldr r0, lbl_0807a434 @ =0x00003f42
strh r0, [r2, #2]
adds r4, r2, #0
adds r4, #0xff
ldrb r2, [r4]
movs r1, #0xd
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
movs r3, #4
orrs r0, r3
strb r0, [r4]
ldr r0, [r7]
ldr r2, lbl_0807a438 @ =0x0000010f
adds r4, r0, r2
ldrb r2, [r4]
adds r0, r1, #0
ands r0, r2
orrs r0, r3
strb r0, [r4]
ldr r0, [r7]
ldr r2, lbl_0807a43c @ =0x0000011f
adds r4, r0, r2
ldrb r2, [r4]
adds r0, r1, #0
ands r0, r2
orrs r0, r3
strb r0, [r4]
ldr r0, [r7]
adds r0, #0xef
ldrb r2, [r0]
ands r1, r2
orrs r1, r3
strb r1, [r0]
ldr r0, [r7]
ldr r3, lbl_0807a440 @ =0x0000013f
adds r2, r0, r3
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
strb r0, [r2]
ldr r0, [r7]
adds r3, #0x10
adds r2, r0, r3
ldrb r0, [r2]
orrs r0, r1
strb r0, [r2]
ldr r0, [r7]
adds r3, #0x10
adds r2, r0, r3
ldrb r0, [r2]
orrs r0, r1
strb r0, [r2]
ldr r5, lbl_0807a444 @ =0x0600e000
movs r6, #0x80
lsls r6, r6, #4
movs r4, #0x10
str r4, [sp]
movs r0, #3
movs r1, #0
adds r2, r5, #0
adds r3, r6, #0
bl BitFill
ldr r0, lbl_0807a448 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xa2
lsls r0, r0, #7
adds r1, r1, r0
str r4, [sp]
movs r0, #3
adds r2, r5, #0
movs r3, #0xc0
bl DMATransfer
ldr r2, [r7]
ldrh r0, [r2, #0x1e]
strh r0, [r2, #4]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #1
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r0, lbl_0807a44c @ =gBG0HOFS_NonGameplay
strh r6, [r0]
ldr r1, lbl_0807a450 @ =gBG0VOFS_NonGameplay
movs r3, #0xc0
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
adds r0, r2, #0
adds r0, #0x42
mov r1, r8
strh r1, [r0]
adds r2, #0x40
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
b lbl_0807a7d4
.align 2, 0
lbl_0807a42c: .4byte gWrittenToBLDALPHA_H
lbl_0807a430: .4byte gWrittenToBLDALPHA_L
lbl_0807a434: .4byte 0x00003f42
lbl_0807a438: .4byte 0x0000010f
lbl_0807a43c: .4byte 0x0000011f
lbl_0807a440: .4byte 0x0000013f
lbl_0807a444: .4byte 0x0600e000
lbl_0807a448: .4byte sEwramPointer
lbl_0807a44c: .4byte gBG0HOFS_NonGameplay
lbl_0807a450: .4byte gBG0VOFS_NonGameplay
lbl_0807a454:
movs r2, #1
ldr r1, lbl_0807a46c @ =gWrittenToBLDALPHA_L
ldrh r0, [r1]
cmp r0, #0
beq lbl_0807a472
movs r2, #0
subs r0, #2
cmp r0, #0
bge lbl_0807a470
strh r2, [r1]
b lbl_0807a472
.align 2, 0
lbl_0807a46c: .4byte gWrittenToBLDALPHA_L
lbl_0807a470:
strh r0, [r1]
lbl_0807a472:
ldr r1, lbl_0807a4c8 @ =gWrittenToBLDALPHA_H
ldrh r0, [r1]
cmp r0, #0x10
beq lbl_0807a486
movs r2, #0
adds r0, #2
cmp r0, #0x10
ble lbl_0807a484
movs r0, #0x10
lbl_0807a484:
strh r0, [r1]
lbl_0807a486:
cmp r2, #0
bne lbl_0807a48c
b lbl_0807a7d4
lbl_0807a48c:
ldr r1, [r7]
adds r1, #0xff
ldrb r0, [r1]
movs r2, #0x20
orrs r0, r2
strb r0, [r1]
ldr r0, [r7]
ldr r3, lbl_0807a4cc @ =0x0000010f
adds r1, r0, r3
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r0, [r7]
adds r3, #0x10
adds r1, r0, r3
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r1, [r7]
adds r1, #0xef
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
ldr r1, [r7]
ldrh r2, [r1]
ldr r0, lbl_0807a4d0 @ =0x0000fdff
ands r0, r2
strh r0, [r1]
b lbl_0807a77e
.align 2, 0
lbl_0807a4c8: .4byte gWrittenToBLDALPHA_H
lbl_0807a4cc: .4byte 0x0000010f
lbl_0807a4d0: .4byte 0x0000fdff
lbl_0807a4d4:
ldr r1, lbl_0807a500 @ =gBG0VOFS_NonGameplay
ldrh r0, [r1]
ldr r2, lbl_0807a504 @ =0x000007ff
cmp r0, r2
bhi lbl_0807a4ec
adds r0, #0x40
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, r2
bhi lbl_0807a4ec
b lbl_0807a7d4
lbl_0807a4ec:
movs r2, #0x80
lsls r2, r2, #4
adds r0, r2, #0
strh r0, [r1]
bl sub_08079fb8
ldr r0, lbl_0807a508 @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_0807a77e
.align 2, 0
lbl_0807a500: .4byte gBG0VOFS_NonGameplay
lbl_0807a504: .4byte 0x000007ff
lbl_0807a508: .4byte sNonGameplayRamPointer
lbl_0807a50c:
bl sub_08079ecc
ldr r0, lbl_0807a51c @ =sNonGameplayRamPointer
ldr r1, [r0]
ldr r0, lbl_0807a520 @ =0x00003f54
strh r0, [r1, #2]
b lbl_0807a77e
.align 2, 0
lbl_0807a51c: .4byte sNonGameplayRamPointer
lbl_0807a520: .4byte 0x00003f54
lbl_0807a524:
movs r2, #1
ldr r1, lbl_0807a550 @ =gWrittenToBLDALPHA_L
ldrh r0, [r1]
cmp r0, #0x10
beq lbl_0807a53a
movs r2, #0
adds r0, #2
cmp r0, #0x10
ble lbl_0807a538
movs r0, #0x10
lbl_0807a538:
strh r0, [r1]
lbl_0807a53a:
ldr r1, lbl_0807a554 @ =gWrittenToBLDALPHA_H
ldrh r0, [r1]
cmp r0, #0
beq lbl_0807a55a
movs r2, #0
subs r0, #2
cmp r0, #0
bge lbl_0807a558
strh r2, [r1]
b lbl_0807a55a
.align 2, 0
lbl_0807a550: .4byte gWrittenToBLDALPHA_L
lbl_0807a554: .4byte gWrittenToBLDALPHA_H
lbl_0807a558:
strh r0, [r1]
lbl_0807a55a:
cmp r2, #0
bne lbl_0807a560
b lbl_0807a7d4
lbl_0807a560:
b lbl_0807a77c
lbl_0807a562:
ldr r1, [r7]
ldrh r2, [r1]
ldr r0, lbl_0807a574 @ =0x0000fcff
ands r0, r2
movs r2, #0
strh r0, [r1]
strh r2, [r1, #2]
movs r0, #1
b lbl_0807a7d6
.align 2, 0
lbl_0807a574: .4byte 0x0000fcff
lbl_0807a578:
ldr r0, [r7]
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #3
bhi lbl_0807a584
b lbl_0807a7d4
lbl_0807a584:
ldr r6, lbl_0807a5e4 @ =0x0600e000
movs r4, #0x80
lsls r4, r4, #4
movs r5, #0x10
str r5, [sp]
movs r0, #3
movs r1, #0
adds r2, r6, #0
adds r3, r4, #0
bl BitFill
ldr r0, lbl_0807a5e8 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0xa2
lsls r3, r3, #7
adds r1, r1, r3
str r5, [sp]
movs r0, #3
adds r2, r6, #0
movs r3, #0xc0
bl DMATransfer
ldr r1, lbl_0807a5ec @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0807a5f0 @ =gBG0VOFS_NonGameplay
strh r4, [r0]
strh r4, [r1]
ldr r1, [r7]
movs r2, #0
ldr r0, lbl_0807a5f4 @ =0x00003f54
strh r0, [r1, #2]
ldr r0, lbl_0807a5f8 @ =gWrittenToBLDALPHA_H
strh r2, [r0]
ldr r0, lbl_0807a5fc @ =gWrittenToBLDALPHA_L
strh r5, [r0]
ldr r0, lbl_0807a600 @ =gBG1HOFS_NonGameplay
strh r4, [r0]
ldr r0, lbl_0807a604 @ =gBG1VOFS_NonGameplay
strh r4, [r0]
ldrh r0, [r1, #0x1e]
strh r0, [r1, #4]
ldrh r2, [r1]
movs r3, #0x80
lsls r3, r3, #1
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
b lbl_0807a77e
.align 2, 0
lbl_0807a5e4: .4byte 0x0600e000
lbl_0807a5e8: .4byte sEwramPointer
lbl_0807a5ec: .4byte gBG0HOFS_NonGameplay
lbl_0807a5f0: .4byte gBG0VOFS_NonGameplay
lbl_0807a5f4: .4byte 0x00003f54
lbl_0807a5f8: .4byte gWrittenToBLDALPHA_H
lbl_0807a5fc: .4byte gWrittenToBLDALPHA_L
lbl_0807a600: .4byte gBG1HOFS_NonGameplay
lbl_0807a604: .4byte gBG1VOFS_NonGameplay
lbl_0807a608:
movs r2, #1
ldr r1, lbl_0807a620 @ =gWrittenToBLDALPHA_L
ldrh r0, [r1]
cmp r0, #0
beq lbl_0807a626
movs r2, #0
subs r0, #2
cmp r0, #0
bge lbl_0807a624
strh r2, [r1]
b lbl_0807a626
.align 2, 0
lbl_0807a620: .4byte gWrittenToBLDALPHA_L
lbl_0807a624:
strh r0, [r1]
lbl_0807a626:
ldr r1, lbl_0807a644 @ =gWrittenToBLDALPHA_H
ldrh r0, [r1]
cmp r0, #0x10
beq lbl_0807a63a
movs r2, #0
adds r0, #2
cmp r0, #0x10
ble lbl_0807a638
movs r0, #0x10
lbl_0807a638:
strh r0, [r1]
lbl_0807a63a:
cmp r2, #0
bne lbl_0807a640
b lbl_0807a7d4
lbl_0807a640:
b lbl_0807a77c
.align 2, 0
lbl_0807a644: .4byte gWrittenToBLDALPHA_H
lbl_0807a648:
ldr r2, lbl_0807a668 @ =gBG0VOFS_NonGameplay
ldrh r0, [r2]
movs r1, #0xc0
lsls r1, r1, #3
cmp r0, r1
bls lbl_0807a662
subs r0, #0x40
strh r0, [r2]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, r1
bls lbl_0807a662
b lbl_0807a7d4
lbl_0807a662:
strh r1, [r2]
b lbl_0807a77c
.align 2, 0
lbl_0807a668: .4byte gBG0VOFS_NonGameplay
lbl_0807a66c:
ldr r0, [r7]
adds r0, #0x3f
movs r1, #5
strb r1, [r0]
ldr r1, [r7]
ldrh r0, [r1, #0x18]
strh r0, [r1, #6]
ldrh r2, [r1]
ldr r0, lbl_0807a6d4 @ =0x0000fbff
ands r0, r2
movs r3, #0x90
lsls r3, r3, #5
adds r2, r3, #0
orrs r0, r2
strh r0, [r1]
adds r1, #0x3f
ldrb r1, [r1]
movs r0, #0
bl sub_08078504
ldr r1, [r7]
adds r1, #0xff
ldrb r3, [r1]
movs r2, #0x21
rsbs r2, r2, #0
adds r0, r2, #0
ands r0, r3
strb r0, [r1]
ldr r0, [r7]
ldr r1, lbl_0807a6d8 @ =0x0000010f
adds r3, r0, r1
ldrb r1, [r3]
adds r0, r2, #0
ands r0, r1
strb r0, [r3]
ldr r0, [r7]
ldr r1, lbl_0807a6dc @ =0x0000011f
adds r3, r0, r1
ldrb r1, [r3]
adds r0, r2, #0
ands r0, r1
strb r0, [r3]
ldr r0, [r7]
adds r0, #0xef
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
ldr r1, [r7]
ldr r0, lbl_0807a6e0 @ =0x00003f42
strh r0, [r1, #2]
b lbl_0807a77e
.align 2, 0
lbl_0807a6d4: .4byte 0x0000fbff
lbl_0807a6d8: .4byte 0x0000010f
lbl_0807a6dc: .4byte 0x0000011f
lbl_0807a6e0: .4byte 0x00003f42
lbl_0807a6e4:
movs r2, #1
ldr r1, lbl_0807a6fc @ =gWrittenToBLDALPHA_H
ldrh r0, [r1]
cmp r0, #0
beq lbl_0807a702
movs r2, #0
subs r0, #2
cmp r0, #0
bge lbl_0807a700
strh r2, [r1]
b lbl_0807a702
.align 2, 0
lbl_0807a6fc: .4byte gWrittenToBLDALPHA_H
lbl_0807a700:
strh r0, [r1]
lbl_0807a702:
ldr r1, lbl_0807a788 @ =gWrittenToBLDALPHA_L
ldrh r0, [r1]
cmp r0, #0x10
beq lbl_0807a716
movs r2, #0
adds r0, #2
cmp r0, #0x10
ble lbl_0807a714
movs r0, #0x10
lbl_0807a714:
strh r0, [r1]
lbl_0807a716:
cmp r2, #0
beq lbl_0807a7d4
ldr r1, [r7]
adds r1, #0xff
ldrb r3, [r1]
movs r2, #0xd
rsbs r2, r2, #0
adds r0, r2, #0
ands r0, r3
strb r0, [r1]
ldr r0, [r7]
ldr r1, lbl_0807a78c @ =0x0000010f
adds r3, r0, r1
ldrb r1, [r3]
adds r0, r2, #0
ands r0, r1
strb r0, [r3]
ldr r0, [r7]
ldr r1, lbl_0807a790 @ =0x0000011f
adds r3, r0, r1
ldrb r1, [r3]
adds r0, r2, #0
ands r0, r1
strb r0, [r3]
ldr r0, [r7]
adds r0, #0xef
ldrb r1, [r0]
ands r2, r1
strb r2, [r0]
ldr r0, [r7]
ldr r2, lbl_0807a794 @ =0x0000013f
adds r3, r0, r2
ldrb r2, [r3]
movs r1, #0x21
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
strb r0, [r3]
ldr r0, [r7]
ldr r2, lbl_0807a798 @ =0x0000014f
adds r3, r0, r2
ldrb r2, [r3]
adds r0, r1, #0
ands r0, r2
strb r0, [r3]
ldr r0, [r7]
ldr r3, lbl_0807a79c @ =0x0000015f
adds r2, r0, r3
ldrb r0, [r2]
ands r1, r0
strb r1, [r2]
lbl_0807a77c:
ldr r1, [r7]
lbl_0807a77e:
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_0807a7d4
.align 2, 0
lbl_0807a788: .4byte gWrittenToBLDALPHA_L
lbl_0807a78c: .4byte 0x0000010f
lbl_0807a790: .4byte 0x0000011f
lbl_0807a794: .4byte 0x0000013f
lbl_0807a798: .4byte 0x0000014f
lbl_0807a79c: .4byte 0x0000015f
lbl_0807a7a0:
ldr r2, [r7]
ldrh r1, [r2]
ldr r0, lbl_0807a7c4 @ =0x0000feff
ands r0, r1
movs r3, #0
strh r0, [r2]
ldr r0, lbl_0807a7c8 @ =gBG0HOFS_NonGameplay
movs r2, #0x80
lsls r2, r2, #4
adds r1, r2, #0
strh r1, [r0]
ldr r0, lbl_0807a7cc @ =gBG0VOFS_NonGameplay
strh r1, [r0]
ldr r0, lbl_0807a7d0 @ =gGameModeSub2
strb r3, [r0]
movs r0, #1
b lbl_0807a7d6
.align 2, 0
lbl_0807a7c4: .4byte 0x0000feff
lbl_0807a7c8: .4byte gBG0HOFS_NonGameplay
lbl_0807a7cc: .4byte gBG0VOFS_NonGameplay
lbl_0807a7d0: .4byte gGameModeSub2
lbl_0807a7d4:
movs r0, #0
lbl_0807a7d6:
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_start settings_subroutine
settings_subroutine: @ 0x0807a7e4
push {r4, r5, r6, lr}
ldr r1, lbl_0807a800 @ =sNonGameplayRamPointer
ldr r0, [r1]
adds r0, #0x3e
ldrb r0, [r0]
adds r4, r1, #0
cmp r0, #5
bls lbl_0807a7f6
b lbl_0807aa20
lbl_0807a7f6:
lsls r0, r0, #2
ldr r1, lbl_0807a804 @ =lbl_0807a808
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807a800: .4byte sNonGameplayRamPointer
lbl_0807a804: .4byte lbl_0807a808
lbl_0807a808: @ jump table
.4byte lbl_0807a820 @ case 0
.4byte lbl_0807a870 @ case 1
.4byte lbl_0807a88a @ case 2
.4byte lbl_0807a96c @ case 3
.4byte lbl_0807a9f8 @ case 4
.4byte lbl_0807aa14 @ case 5
lbl_0807a820:
ldr r0, [r4]
ldr r2, lbl_0807a868 @ =gOptionsOptionSelected
movs r1, #0
ldrsb r1, [r2, r1]
adds r0, #0x5c
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807a840
ldrb r0, [r2]
lsls r0, r0, #0x18
cmp r0, #0
blt lbl_0807a840
lsrs r0, r0, #0x18
cmp r0, #6
bls lbl_0807a844
lbl_0807a840:
movs r0, #0
strb r0, [r2]
lbl_0807a844:
movs r0, #0
bl sub_08078b98
bl sub_0807b008
ldr r0, lbl_0807a86c @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r2, [r1]
movs r3, #0xa0
lsls r3, r3, #5
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
adds r1, #0x3e
movs r0, #2
strb r0, [r1]
b lbl_0807aa20
.align 2, 0
lbl_0807a868: .4byte gOptionsOptionSelected
lbl_0807a86c: .4byte sNonGameplayRamPointer
lbl_0807a870:
ldr r0, [r4]
ldrh r0, [r0, #0x3c]
cmp r0, #0x10
bhi lbl_0807a87a
b lbl_0807aa20
lbl_0807a87a:
movs r0, #0
bl sub_08078b98
ldr r0, [r4]
adds r0, #0x3e
movs r1, #2
strb r1, [r0]
b lbl_0807aa20
lbl_0807a88a:
bl CheckForMaintainedInput
ldr r0, lbl_0807a8b8 @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
bne lbl_0807a898
b lbl_0807aa20
lbl_0807a898:
movs r0, #2
ands r0, r1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0
beq lbl_0807a8c4
ldr r0, lbl_0807a8bc @ =0x00000209
bl SoundPlay
ldr r0, lbl_0807a8c0 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x3e
movs r1, #4
strb r1, [r0]
b lbl_0807aa20
.align 2, 0
lbl_0807a8b8: .4byte gChangedInput
lbl_0807a8bc: .4byte 0x00000209
lbl_0807a8c0: .4byte sNonGameplayRamPointer
lbl_0807a8c4:
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_0807a918
ldr r5, lbl_0807a910 @ =sNonGameplayRamPointer
ldr r0, [r5]
ldr r1, lbl_0807a914 @ =gOptionsOptionSelected
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, #0x5c
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
bne lbl_0807a8e4
b lbl_0807aa20
lbl_0807a8e4:
movs r0, #2
bl sub_08078b98
ldr r0, [r5]
adds r0, #0x40
strb r4, [r0]
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x42
strh r4, [r0]
adds r0, #0x26
strh r4, [r0]
adds r0, #2
strh r4, [r0]
bl reset_io_transfter_info
ldr r0, [r5]
adds r0, #0x3e
movs r1, #3
strb r1, [r0]
b lbl_0807aa20
.align 2, 0
lbl_0807a910: .4byte sNonGameplayRamPointer
lbl_0807a914: .4byte gOptionsOptionSelected
lbl_0807a918:
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq lbl_0807a938
ldr r1, lbl_0807a934 @ =gOptionsOptionSelected
ldrb r2, [r1]
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
bne lbl_0807a92e
b lbl_0807aa20
lbl_0807a92e:
subs r0, r2, #1
strb r0, [r1]
b lbl_0807a95a
.align 2, 0
lbl_0807a934: .4byte gOptionsOptionSelected
lbl_0807a938:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq lbl_0807aa20
ldr r0, lbl_0807a964 @ =sNonGameplayRamPointer
ldr r0, [r0]
ldr r2, lbl_0807a968 @ =gOptionsOptionSelected
movs r1, #0
ldrsb r1, [r2, r1]
adds r0, r0, r1
adds r0, #0x5d
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807aa20
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
lbl_0807a95a:
movs r0, #1
bl sub_08078b98
b lbl_0807aa20
.align 2, 0
lbl_0807a964: .4byte sNonGameplayRamPointer
lbl_0807a968: .4byte gOptionsOptionSelected
lbl_0807a96c:
ldr r6, lbl_0807a9ac @ =0x08760bfc
ldr r0, [r4]
ldr r5, lbl_0807a9b0 @ =gOptionsOptionSelected
movs r1, #0
ldrsb r1, [r5, r1]
adds r0, #0x5c
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #3
adds r0, r0, r6
ldr r0, [r0]
bl _call_via_r0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
beq lbl_0807aa20
cmp r0, #2
bne lbl_0807a9b8
ldr r2, lbl_0807a9b4 @ =gGameModeSub2
ldr r0, [r4]
movs r1, #0
ldrsb r1, [r5, r1]
adds r0, #0x5c
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #3
adds r0, r0, r6
ldrb r0, [r0, #4]
strb r0, [r2]
adds r1, r2, #0
b lbl_0807a9be
.align 2, 0
lbl_0807a9ac: .4byte 0x08760bfc
lbl_0807a9b0: .4byte gOptionsOptionSelected
lbl_0807a9b4: .4byte gGameModeSub2
lbl_0807a9b8:
ldr r1, lbl_0807a9d0 @ =gGameModeSub2
movs r0, #0
strb r0, [r1]
lbl_0807a9be:
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq lbl_0807a9d8
ldr r0, lbl_0807a9d4 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x3e
movs r1, #5
b lbl_0807a9e6
.align 2, 0
lbl_0807a9d0: .4byte gGameModeSub2
lbl_0807a9d4: .4byte sNonGameplayRamPointer
lbl_0807a9d8:
movs r0, #3
bl sub_08078b98
ldr r0, lbl_0807a9f4 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x3e
movs r1, #2
lbl_0807a9e6:
strb r1, [r0]
ldr r0, lbl_0807a9f4 @ =sNonGameplayRamPointer
ldr r1, [r0]
movs r0, #0
strh r0, [r1, #0x3c]
b lbl_0807aa20
.align 2, 0
lbl_0807a9f4: .4byte sNonGameplayRamPointer
lbl_0807a9f8:
ldr r0, [r4]
adds r0, #0x63
movs r4, #0
strb r4, [r0]
movs r0, #0xa
bl sub_0800427c
ldr r0, lbl_0807aa10 @ =gGameModeSub2
strb r4, [r0]
movs r0, #1
b lbl_0807aa26
.align 2, 0
lbl_0807aa10: .4byte gGameModeSub2
lbl_0807aa14:
ldr r0, [r4]
ldrh r0, [r0, #0x3c]
cmp r0, #0xa
bls lbl_0807aa20
movs r0, #1
b lbl_0807aa26
lbl_0807aa20:
bl sub_08078da0
movs r0, #0
lbl_0807aa26:
pop {r4, r5, r6}
pop {r1}
bx r1
thumb_func_start reset_io_transfter_info
reset_io_transfter_info: @ 0x0807aa2c
push {r4, r5, lr}
ldr r0, lbl_0807aa60 @ =sNonGameplayRamPointer
ldr r0, [r0]
ldr r1, lbl_0807aa64 @ =gOptionsOptionSelected
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, #0x5c
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #6
bgt lbl_0807aa5a
cmp r0, #5
blt lbl_0807aa5a
ldr r2, lbl_0807aa68 @ =gIoTransferInfo
adds r1, r2, #0
ldr r0, lbl_0807aa6c @ =0x085d914c
ldm r0!, {r3, r4, r5}
stm r1!, {r3, r4, r5}
ldm r0!, {r3, r4, r5}
stm r1!, {r3, r4, r5}
ldr r0, lbl_0807aa70 @ =file_select_menu_process_oam
str r0, [r2]
lbl_0807aa5a:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
lbl_0807aa60: .4byte sNonGameplayRamPointer
lbl_0807aa64: .4byte gOptionsOptionSelected
lbl_0807aa68: .4byte gIoTransferInfo
lbl_0807aa6c: .4byte 0x085d914c
lbl_0807aa70: .4byte file_select_menu_process_oam
thumb_func_start nes_metroid_subroutine
nes_metroid_subroutine: @ 0x0807aa74
push {r4, r5, lr}
ldr r2, lbl_0807aa9c @ =sNonGameplayRamPointer
ldr r1, [r2]
adds r3, r1, #0
adds r3, #0x42
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
adds r1, #0x40
ldrb r0, [r1]
adds r4, r2, #0
cmp r0, #4
bls lbl_0807aa90
b lbl_0807abb0
lbl_0807aa90:
lsls r0, r0, #2
ldr r1, lbl_0807aaa0 @ =lbl_0807aaa4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807aa9c: .4byte sNonGameplayRamPointer
lbl_0807aaa0: .4byte lbl_0807aaa4
lbl_0807aaa4: @ jump table
.4byte lbl_0807aab8 @ case 0
.4byte lbl_0807aaf8 @ case 1
.4byte lbl_0807ab30 @ case 2
.4byte lbl_0807ab58 @ case 3
.4byte lbl_0807ab98 @ case 4
lbl_0807aab8:
ldr r0, lbl_0807aadc @ =gChangedInput
ldrh r1, [r0]
movs r0, #2
ands r0, r1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
cmp r2, #0
beq lbl_0807aae0
ldr r0, [r4]
adds r3, r0, #0
adds r3, #0x42
movs r2, #0
movs r1, #0
strh r1, [r3]
adds r0, #0x40
strb r2, [r0]
lbl_0807aad8:
movs r0, #1
b lbl_0807abb2
.align 2, 0
lbl_0807aadc: .4byte gChangedInput
lbl_0807aae0:
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0xa
bls lbl_0807abb0
adds r0, r1, #0
adds r0, #0x40
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
b lbl_0807ab20
lbl_0807aaf8:
movs r2, #0
ldr r5, lbl_0807ab28 @ =0x087d80a0
ldr r3, lbl_0807ab2c @ =0x0845f440
lbl_0807aafe:
adds r0, r2, r5
adds r1, r2, r3
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bne lbl_0807aad8
adds r0, r2, #1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0x11
bls lbl_0807aafe
ldr r1, [r4]
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
movs r2, #0
strb r0, [r1]
lbl_0807ab20:
ldr r0, [r4]
adds r0, #0x42
strh r2, [r0]
b lbl_0807abb0
.align 2, 0
lbl_0807ab28: .4byte 0x087d80a0
lbl_0807ab2c: .4byte 0x0845f440
lbl_0807ab30:
bl unk_33dc
ldr r2, lbl_0807ab50 @ =sNonGameplayRamPointer
ldr r1, [r2]
movs r3, #0
movs r0, #0xff
strh r0, [r1, #2]
ldr r0, lbl_0807ab54 @ =gWrittenToBLDY_NonGameplay
strh r3, [r0]
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r2]
b lbl_0807ab8a
.align 2, 0
lbl_0807ab50: .4byte sNonGameplayRamPointer
lbl_0807ab54: .4byte gWrittenToBLDY_NonGameplay
lbl_0807ab58:
ldr r2, lbl_0807ab90 @ =gWrittenToBLDY_NonGameplay
ldrh r0, [r2]
adds r0, #2
strh r0, [r2]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xf
bls lbl_0807abb0
movs r1, #0xa0
lsls r1, r1, #0x13
movs r0, #0
strh r0, [r1]
ldr r1, [r4]
movs r3, #0
strh r3, [r1, #2]
strh r3, [r2]
ldrh r2, [r1]
ldr r0, lbl_0807ab94 @ =0x0000e0ff
ands r0, r2
strh r0, [r1]
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r4]
lbl_0807ab8a:
adds r0, #0x42
strh r3, [r0]
b lbl_0807abb0
.align 2, 0
lbl_0807ab90: .4byte gWrittenToBLDY_NonGameplay
lbl_0807ab94: .4byte 0x0000e0ff
lbl_0807ab98:
ldr r1, lbl_0807abb8 @ =0x04000208
movs r0, #0
strh r0, [r1]
subs r1, #6
ldr r2, lbl_0807abbc @ =0x0000ffff
adds r0, r2, #0
strh r0, [r1]
movs r0, #0x80
lsls r0, r0, #0x14
ldr r1, lbl_0807abc0 @ =0x087d8000
bl _call_via_r1
lbl_0807abb0:
movs r0, #0
lbl_0807abb2:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
lbl_0807abb8: .4byte 0x04000208
lbl_0807abbc: .4byte 0x0000ffff
lbl_0807abc0: .4byte 0x087d8000
thumb_func_start sub_0807abc4
sub_0807abc4: @ 0x0807abc4
push {lr}
ldr r0, lbl_0807abe8 @ =sNonGameplayRamPointer
ldr r1, [r0]
adds r1, #0x42
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r0, lbl_0807abec @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
beq lbl_0807abf0
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807abf0
movs r0, #1
b lbl_0807abf2
.align 2, 0
lbl_0807abe8: .4byte sNonGameplayRamPointer
lbl_0807abec: .4byte gChangedInput
lbl_0807abf0:
movs r0, #0
lbl_0807abf2:
pop {r1}
bx r1
.align 2, 0
thumb_func_start sub_0807abf8
sub_0807abf8: @ 0x0807abf8
push {r4, r5, r6, lr}
ldr r0, lbl_0807ac28 @ =sNonGameplayRamPointer
ldr r3, [r0]
adds r1, r3, #0
adds r1, #0x42
ldrh r0, [r1]
adds r5, r0, #1
movs r6, #0
strh r5, [r1]
ldr r0, lbl_0807ac2c @ =gChangedInput
ldrh r2, [r0]
movs r0, #2
ands r0, r2
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
cmp r4, #0
beq lbl_0807ac30
movs r0, #0
strh r0, [r1]
adds r0, r3, #0
adds r0, #0x40
strb r6, [r0]
movs r0, #1
b lbl_0807ac4e
.align 2, 0
lbl_0807ac28: .4byte sNonGameplayRamPointer
lbl_0807ac2c: .4byte gChangedInput
lbl_0807ac30:
movs r0, #1
ands r0, r2
cmp r0, #0
bne lbl_0807ac40
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa
bls lbl_0807ac4c
lbl_0807ac40:
strh r4, [r1]
adds r0, r3, #0
adds r0, #0x40
strb r6, [r0]
movs r0, #2
b lbl_0807ac4e
lbl_0807ac4c:
movs r0, #0
lbl_0807ac4e:
pop {r4, r5, r6}
pop {r1}
bx r1
thumb_func_start stereo_selection_subroutine
stereo_selection_subroutine: @ 0x0807ac54
push {r4, r5, lr}
ldr r4, lbl_0807ac70 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r3, r0, #0
adds r3, #0x40
ldrb r2, [r3]
cmp r2, #1
beq lbl_0807ac86
cmp r2, #1
bgt lbl_0807ac74
cmp r2, #0
beq lbl_0807ac7e
b lbl_0807ad08
.align 2, 0
lbl_0807ac70: .4byte sNonGameplayRamPointer
lbl_0807ac74:
cmp r2, #2
beq lbl_0807ace4
cmp r2, #3
beq lbl_0807acfa
b lbl_0807ad08
lbl_0807ac7e:
movs r0, #2
bl sub_08078ca0
b lbl_0807acee
lbl_0807ac86:
movs r5, #0
ldr r0, lbl_0807aca4 @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
beq lbl_0807ad08
movs r0, #3
ands r0, r1
cmp r0, #0
beq lbl_0807aca8
movs r0, #0xfe
lsls r0, r0, #1
bl SoundPlay
b lbl_0807acee
.align 2, 0
lbl_0807aca4: .4byte gChangedInput
lbl_0807aca8:
ldr r3, lbl_0807acbc @ =gStereoFlag
ldrb r0, [r3]
cmp r0, #0
bne lbl_0807acc0
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq lbl_0807accc
strb r2, [r3]
b lbl_0807acd0
.align 2, 0
lbl_0807acbc: .4byte gStereoFlag
lbl_0807acc0:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq lbl_0807accc
strb r5, [r3]
movs r5, #1
lbl_0807accc:
cmp r5, #0
beq lbl_0807ad08
lbl_0807acd0:
movs r0, #0xfd
lsls r0, r0, #1
bl SoundPlay
movs r0, #2
bl sub_08078ca0
bl sub_08078228
b lbl_0807ad08
lbl_0807ace4:
movs r0, #1
bl sub_08078ca0
bl sub_08074b6c
lbl_0807acee:
ldr r1, [r4]
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_0807ad08
lbl_0807acfa:
adds r0, #0x42
movs r2, #0
movs r1, #0
strh r1, [r0]
strb r2, [r3]
movs r0, #1
b lbl_0807ad0a
lbl_0807ad08:
movs r0, #0
lbl_0807ad0a:
pop {r4, r5}
pop {r1}
bx r1
thumb_func_start sound_test_subroutine
sound_test_subroutine: @ 0x0807ad10
push {r4, r5, lr}
ldr r2, lbl_0807ad38 @ =sNonGameplayRamPointer
ldr r1, [r2]
adds r3, r1, #0
adds r3, #0x42
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
adds r1, #0x40
ldrb r0, [r1]
adds r4, r2, #0
cmp r0, #8
bls lbl_0807ad2c
b lbl_0807b000
lbl_0807ad2c:
lsls r0, r0, #2
ldr r1, lbl_0807ad3c @ =lbl_0807ad40
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807ad38: .4byte sNonGameplayRamPointer
lbl_0807ad3c: .4byte lbl_0807ad40
lbl_0807ad40: @ jump table
.4byte lbl_0807ad64 @ case 0
.4byte lbl_0807add8 @ case 1
.4byte lbl_0807ae1c @ case 2
.4byte lbl_0807af08 @ case 3
.4byte lbl_0807af30 @ case 4
.4byte lbl_0807af6c @ case 5
.4byte lbl_0807af80 @ case 6
.4byte lbl_0807afcc @ case 7
.4byte lbl_0807afec @ case 8
lbl_0807ad64:
bl sub_0807b008
cmp r0, #0
beq lbl_0807ad80
ldr r1, lbl_0807adc4 @ =0x08760bac
ldr r0, lbl_0807adc8 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x63
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
bl sub_08004228
lbl_0807ad80:
bl sub_0807b094
ldr r0, lbl_0807adcc @ =0x000001fd
bl SoundPlay
ldr r5, lbl_0807adc8 @ =sNonGameplayRamPointer
ldr r0, [r5]
movs r4, #0x95
lsls r4, r4, #2
adds r0, r0, r4
movs r1, #0xe
bl UpdateMenuOamDataID
ldr r1, [r5]
ldr r2, lbl_0807add0 @ =0x00000226
adds r0, r1, r2
ldrh r2, [r0]
ldr r3, lbl_0807add4 @ =0x00000256
adds r0, r1, r3
strh r2, [r0]
movs r2, #0x89
lsls r2, r2, #2
adds r0, r1, r2
ldrh r0, [r0]
adds r4, r1, r4
strh r0, [r4]
adds r3, #9
adds r1, r1, r3
ldrb r0, [r1]
movs r2, #3
orrs r0, r2
strb r0, [r1]
ldr r1, [r5]
b lbl_0807afde
.align 2, 0
lbl_0807adc4: .4byte 0x08760bac
lbl_0807adc8: .4byte sNonGameplayRamPointer
lbl_0807adcc: .4byte 0x000001fd
lbl_0807add0: .4byte 0x00000226
lbl_0807add4: .4byte 0x00000256
lbl_0807add8:
ldr r2, [r4]
ldr r1, lbl_0807ae18 @ =0x0000025f
adds r0, r2, r1
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne lbl_0807adea
b lbl_0807b000
lbl_0807adea:
movs r3, #0x89
lsls r3, r3, #2
adds r0, r2, r3
movs r1, #7
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r1, #0x8d
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #9
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r2, #0x91
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #0xb
bl UpdateMenuOamDataID
ldr r1, [r4]
b lbl_0807afde
.align 2, 0
lbl_0807ae18: .4byte 0x0000025f
lbl_0807ae1c:
movs r5, #0
ldr r0, lbl_0807ae38 @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
beq lbl_0807aed6
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807ae3c
ldr r0, [r4]
adds r0, #0x40
movs r1, #6
strb r1, [r0]
b lbl_0807aed6
.align 2, 0
lbl_0807ae38: .4byte gChangedInput
lbl_0807ae3c:
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_0807ae6c
ldr r1, lbl_0807ae68 @ =0x08760bac
ldr r0, [r4]
adds r0, #0x63
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
bl sub_08004260
ldr r0, [r4]
adds r3, r0, #0
adds r3, #0x42
strh r5, [r3]
adds r0, #0x40
movs r1, #5
strb r1, [r0]
b lbl_0807aed6
.align 2, 0
lbl_0807ae68: .4byte 0x08760bac
lbl_0807ae6c:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq lbl_0807aea0
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0x63
ldrb r0, [r1]
cmp r0, #0x16
bhi lbl_0807ae84
adds r0, #1
b lbl_0807ae86
lbl_0807ae84:
movs r0, #1
lbl_0807ae86:
strb r0, [r1]
ldr r0, [r4]
movs r3, #0x91
lsls r3, r3, #2
adds r0, r0, r3
movs r1, #0xa
bl UpdateMenuOamDataID
ldr r0, [r4]
adds r0, #0x40
movs r1, #3
strb r1, [r0]
b lbl_0807aedc
lbl_0807aea0:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq lbl_0807aed6
ldr r0, [r4]
adds r1, r0, #0
adds r1, #0x63
ldrb r0, [r1]
cmp r0, #1
bls lbl_0807aeb8
subs r0, #1
b lbl_0807aeba
lbl_0807aeb8:
movs r0, #0x17
lbl_0807aeba:
strb r0, [r1]
ldr r0, [r4]
movs r1, #0x8d
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #8
bl UpdateMenuOamDataID
ldr r0, [r4]
adds r0, #0x40
movs r1, #4
strb r1, [r0]
movs r5, #1
rsbs r5, r5, #0
lbl_0807aed6:
cmp r5, #0
bne lbl_0807aedc
b lbl_0807b000
lbl_0807aedc:
ldr r0, lbl_0807aefc @ =0x0000020e
bl SoundPlay
ldr r1, lbl_0807af00 @ =0x08760bac
ldr r0, lbl_0807af04 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x63
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
bl sub_08004228
bl sub_0807b094
b lbl_0807b000
.align 2, 0
lbl_0807aefc: .4byte 0x0000020e
lbl_0807af00: .4byte 0x08760bac
lbl_0807af04: .4byte sNonGameplayRamPointer
lbl_0807af08:
ldr r2, [r4]
ldr r3, lbl_0807af28 @ =0x0000024e
adds r0, r2, r3
ldrb r0, [r0]
cmp r0, #0xa
beq lbl_0807b000
movs r1, #0x8f
lsls r1, r1, #2
adds r0, r2, r1
ldrb r1, [r0]
subs r3, #2
adds r0, r2, r3
strb r1, [r0]
ldr r0, [r4]
ldr r2, lbl_0807af2c @ =0x0000023d
b lbl_0807af4e
.align 2, 0
lbl_0807af28: .4byte 0x0000024e
lbl_0807af2c: .4byte 0x0000023d
lbl_0807af30:
ldr r2, [r4]
ldr r1, lbl_0807af64 @ =0x0000023e
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, #8
beq lbl_0807b000
movs r3, #0x93
lsls r3, r3, #2
adds r0, r2, r3
ldrb r1, [r0]
subs r3, #0x10
adds r0, r2, r3
strb r1, [r0]
ldr r0, [r4]
ldr r2, lbl_0807af68 @ =0x0000024d
lbl_0807af4e:
adds r1, r0, r2
ldrb r1, [r1]
adds r3, #1
adds r0, r0, r3
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x40
movs r1, #2
strb r1, [r0]
b lbl_0807b000
.align 2, 0
lbl_0807af64: .4byte 0x0000023e
lbl_0807af68: .4byte 0x0000024d
lbl_0807af6c:
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0x1e
bls lbl_0807b000
adds r1, #0x40
movs r0, #2
strb r0, [r1]
b lbl_0807b000
lbl_0807af80:
movs r0, #0xff
lsls r0, r0, #1
bl SoundPlay
ldr r4, lbl_0807afc4 @ =sNonGameplayRamPointer
ldr r0, [r4]
movs r1, #0x89
lsls r1, r1, #2
adds r0, r0, r1
movs r1, #0
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r2, #0x8d
lsls r2, r2, #2
adds r0, r0, r2
movs r1, #0
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r3, #0x91
lsls r3, r3, #2
adds r0, r0, r3
movs r1, #0
bl UpdateMenuOamDataID
ldr r1, [r4]
ldr r0, lbl_0807afc8 @ =0x0000025e
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, [r4]
b lbl_0807afde
.align 2, 0
lbl_0807afc4: .4byte sNonGameplayRamPointer
lbl_0807afc8: .4byte 0x0000025e
lbl_0807afcc:
ldr r2, [r4]
ldr r1, lbl_0807afe8 @ =0x0000025f
adds r0, r2, r1
ldrb r1, [r0]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
bne lbl_0807b000
adds r1, r2, #0
lbl_0807afde:
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_0807b000
.align 2, 0
lbl_0807afe8: .4byte 0x0000025f
lbl_0807afec:
ldr r0, [r4]
adds r3, r0, #0
adds r3, #0x42
movs r2, #0
movs r1, #0
strh r1, [r3]
adds r0, #0x40
strb r2, [r0]
movs r0, #1
b lbl_0807b002
lbl_0807b000:
movs r0, #0
lbl_0807b002:
pop {r4, r5}
pop {r1}
bx r1
thumb_func_start sub_0807b008
sub_0807b008: @ 0x0807b008
push {r4, r5, r6, r7, lr}
movs r7, #0
ldr r4, lbl_0807b088 @ =gMusicInfo
ldr r5, lbl_0807b08c @ =0x08760bac
ldr r2, lbl_0807b090 @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r3, r0, #0
adds r3, #0x63
ldrb r0, [r3]
lsls r0, r0, #1
adds r0, r0, r5
ldrh r1, [r4, #0x1c]
ldrh r0, [r0]
cmp r1, r0
beq lbl_0807b06c
movs r7, #1
movs r0, #0x17
strb r0, [r3]
ldr r0, [r2]
adds r1, r0, #0
adds r1, #0x63
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807b076
lsls r0, r0, #1
adds r0, r0, r5
ldrh r1, [r4, #0x1c]
ldrh r0, [r0]
cmp r1, r0
beq lbl_0807b06c
adds r3, r2, #0
adds r6, r4, #0
adds r4, r5, #0
lbl_0807b04a:
ldr r1, [r3]
adds r1, #0x63
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
ldr r0, [r3]
adds r1, r0, #0
adds r1, #0x63
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807b076
lsls r0, r0, #1
adds r0, r0, r4
ldrh r1, [r6, #0x1c]
ldrh r0, [r0]
cmp r1, r0
bne lbl_0807b04a
lbl_0807b06c:
ldr r0, [r2]
adds r0, #0x63
ldrb r0, [r0]
cmp r0, #0
bne lbl_0807b07e
lbl_0807b076:
ldr r0, [r2]
adds r0, #0x63
movs r1, #1
strb r1, [r0]
lbl_0807b07e:
adds r0, r7, #0
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
lbl_0807b088: .4byte gMusicInfo
lbl_0807b08c: .4byte 0x08760bac
lbl_0807b090: .4byte sNonGameplayRamPointer
thumb_func_start sub_0807b094
sub_0807b094: @ 0x0807b094
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
sub sp, #4
ldr r0, lbl_0807b12c @ =sNonGameplayRamPointer
mov sb, r0
ldr r0, [r0]
adds r0, #0x63
ldrb r0, [r0]
movs r1, #0xa
bl __udivsi3
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x13
movs r1, #0xa0
lsls r1, r1, #4
adds r4, r4, r1
ldr r5, lbl_0807b130 @ =0x08415460
adds r1, r4, r5
ldr r2, lbl_0807b134 @ =0x060103c0
movs r6, #0x10
str r6, [sp]
movs r0, #3
movs r3, #0x20
bl DMATransfer
movs r0, #0x80
lsls r0, r0, #3
adds r0, r0, r5
mov r8, r0
add r4, r8
ldr r2, lbl_0807b138 @ =0x060107c0
str r6, [sp]
movs r0, #3
adds r1, r4, #0
movs r3, #0x20
bl DMATransfer
mov r1, sb
ldr r0, [r1]
adds r0, #0x63
ldrb r0, [r0]
movs r1, #0xa
bl __umodsi3
adds r4, r0, #0
lsls r4, r4, #0x18
lsrs r4, r4, #0x13
movs r0, #0xa0
lsls r0, r0, #4
adds r4, r4, r0
adds r5, r4, r5
ldr r2, lbl_0807b13c @ =0x060103e0
str r6, [sp]
movs r0, #3
adds r1, r5, #0
movs r3, #0x20
bl DMATransfer
add r4, r8
ldr r2, lbl_0807b140 @ =0x060107e0
str r6, [sp]
movs r0, #3
adds r1, r4, #0
movs r3, #0x20
bl DMATransfer
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_0807b12c: .4byte sNonGameplayRamPointer
lbl_0807b130: .4byte 0x08415460
lbl_0807b134: .4byte 0x060103c0
lbl_0807b138: .4byte 0x060107c0
lbl_0807b13c: .4byte 0x060103e0
lbl_0807b140: .4byte 0x060107e0
thumb_func_start time_attack_records_subroutine
time_attack_records_subroutine: @ 0x0807b144
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
ldr r2, lbl_0807b174 @ =sNonGameplayRamPointer
ldr r1, [r2]
adds r3, r1, #0
adds r3, #0x42
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
adds r1, #0x40
ldrb r0, [r1]
adds r4, r2, #0
cmp r0, #0xc
bls lbl_0807b168
b lbl_0807b70c
lbl_0807b168:
lsls r0, r0, #2
ldr r1, lbl_0807b178 @ =lbl_0807b17c
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807b174: .4byte sNonGameplayRamPointer
lbl_0807b178: .4byte lbl_0807b17c
lbl_0807b17c: @ jump table
.4byte lbl_0807b1b0 @ case 0
.4byte lbl_0807b3bc @ case 1
.4byte lbl_0807b3e8 @ case 2
.4byte lbl_0807b40c @ case 3
.4byte lbl_0807b412 @ case 4
.4byte lbl_0807b436 @ case 5
.4byte lbl_0807b43c @ case 6
.4byte lbl_0807b478 @ case 7
.4byte lbl_0807b594 @ case 8
.4byte lbl_0807b5c0 @ case 9
.4byte lbl_0807b66c @ case 10
.4byte lbl_0807b6c4 @ case 11
.4byte lbl_0807b6f8 @ case 12
lbl_0807b1b0:
ldr r6, lbl_0807b338 @ =sNonGameplayRamPointer
ldr r0, [r6]
adds r0, #0x64
ldrb r1, [r0]
movs r4, #1
movs r0, #1
mov sb, r0
ands r0, r1
cmp r0, #0
beq lbl_0807b1cc
movs r0, #0
movs r1, #0x1f
bl sub_080790cc
lbl_0807b1cc:
ldr r0, [r6]
adds r0, #0x64
ldrb r1, [r0]
movs r5, #2
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq lbl_0807b1e4
movs r0, #0
movs r1, #0x20
bl sub_080790cc
lbl_0807b1e4:
ldr r1, [r6]
movs r2, #0x80
lsls r2, r2, #2
adds r1, r1, r2
ldrb r2, [r1]
movs r3, #0x10
rsbs r3, r3, #0
mov r8, r3
mov r0, r8
ands r0, r2
orrs r0, r4
strb r0, [r1]
ldr r2, [r6]
ldr r0, lbl_0807b33c @ =0x000001ff
adds r2, r2, r0
ldrb r1, [r2]
movs r7, #4
rsbs r7, r7, #0
adds r0, r7, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2]
ldr r2, [r6]
movs r3, #0xfb
lsls r3, r3, #1
adds r1, r2, r3
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r1]
adds r0, #0xb4
adds r1, r2, r0
movs r0, #0xc0
strh r0, [r1]
movs r1, #0xf8
lsls r1, r1, #1
adds r2, r2, r1
ldrb r1, [r2]
mov r0, r8
ands r0, r1
strb r0, [r2]
ldr r0, [r6]
subs r3, #7
adds r2, r0, r3
ldrb r1, [r2]
adds r0, r7, #0
ands r0, r1
orrs r0, r4
strb r0, [r2]
ldr r2, [r6]
movs r4, #0xf3
lsls r4, r4, #1
adds r1, r2, r4
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r1]
adds r0, #0xe4
adds r1, r2, r0
movs r0, #0x80
strh r0, [r1]
ldr r1, lbl_0807b340 @ =gBG1HOFS_NonGameplay
movs r2, #0xdb
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807b344 @ =gBG1VOFS_NonGameplay
movs r3, #0xe0
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r1, lbl_0807b348 @ =gBG0HOFS_NonGameplay
movs r4, #0xcc
lsls r4, r4, #3
adds r0, r4, #0
strh r0, [r1]
ldr r1, lbl_0807b34c @ =gBG0VOFS_NonGameplay
movs r2, #0x80
lsls r2, r2, #4
adds r0, r2, #0
strh r0, [r1]
ldr r0, lbl_0807b350 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x90
lsls r3, r3, #7
adds r1, r1, r3
ldr r2, lbl_0807b354 @ =0x0600e000
movs r3, #0xc0
lsls r3, r3, #2
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
ldr r1, [r6]
ldrh r0, [r1, #0x1e]
strh r0, [r1, #4]
ldrh r0, [r1, #0x1c]
strh r0, [r1, #6]
adds r0, r1, #0
adds r0, #0x64
ldrb r2, [r0]
mov r0, sb
ands r0, r2
cmp r0, #0
beq lbl_0807b360
adds r0, r5, #0
ands r0, r2
cmp r0, #0
beq lbl_0807b360
movs r4, #0xe2
lsls r4, r4, #1
adds r0, r1, r4
movs r1, #9
bl UpdateMenuOamDataID
ldr r1, [r6]
movs r5, #0xe8
lsls r5, r5, #1
adds r1, r1, r5
ldrb r2, [r1]
mov r0, r8
ands r0, r2
strb r0, [r1]
ldr r0, [r6]
ldr r1, lbl_0807b358 @ =0x000001cf
adds r2, r0, r1
ldrb r1, [r2]
adds r0, r7, #0
ands r0, r1
strb r0, [r2]
ldr r0, [r6]
movs r3, #0xe3
lsls r3, r3, #1
adds r2, r0, r3
movs r1, #0x5c
strh r1, [r2]
adds r4, r0, r4
movs r5, #0x60
strh r5, [r4]
movs r4, #0xea
lsls r4, r4, #1
adds r0, r0, r4
movs r1, #0xb
bl UpdateMenuOamDataID
ldr r1, [r6]
movs r0, #0xf0
lsls r0, r0, #1
adds r1, r1, r0
ldrb r2, [r1]
mov r0, r8
ands r0, r2
strb r0, [r1]
ldr r0, [r6]
ldr r1, lbl_0807b35c @ =0x000001df
adds r2, r0, r1
ldrb r1, [r2]
adds r0, r7, #0
ands r0, r1
strb r0, [r2]
ldr r0, [r6]
movs r2, #0xeb
lsls r2, r2, #1
adds r3, r0, r2
movs r1, #0xd2
lsls r1, r1, #1
strh r1, [r3]
adds r0, r0, r4
strh r5, [r0]
b lbl_0807b37e
.align 2, 0
lbl_0807b338: .4byte sNonGameplayRamPointer
lbl_0807b33c: .4byte 0x000001ff
lbl_0807b340: .4byte gBG1HOFS_NonGameplay
lbl_0807b344: .4byte gBG1VOFS_NonGameplay
lbl_0807b348: .4byte gBG0HOFS_NonGameplay
lbl_0807b34c: .4byte gBG0VOFS_NonGameplay
lbl_0807b350: .4byte sEwramPointer
lbl_0807b354: .4byte 0x0600e000
lbl_0807b358: .4byte 0x000001cf
lbl_0807b35c: .4byte 0x000001df
lbl_0807b360:
ldr r4, lbl_0807b3b0 @ =sNonGameplayRamPointer
ldr r0, [r4]
movs r3, #0xe2
lsls r3, r3, #1
adds r0, r0, r3
movs r1, #0
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r4, #0xea
lsls r4, r4, #1
adds r0, r0, r4
movs r1, #0
bl UpdateMenuOamDataID
lbl_0807b37e:
ldr r2, lbl_0807b3b0 @ =sNonGameplayRamPointer
ldr r0, [r2]
ldr r5, lbl_0807b3b4 @ =0x000001cf
adds r3, r0, r5
ldrb r0, [r3]
movs r1, #0x20
orrs r0, r1
strb r0, [r3]
ldr r0, [r2]
ldr r4, lbl_0807b3b8 @ =0x000001df
adds r3, r0, r4
ldrb r0, [r3]
orrs r0, r1
strb r0, [r3]
ldr r1, [r2]
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
movs r3, #0
strb r0, [r1]
ldr r0, [r2]
adds r0, #0x42
strh r3, [r0]
b lbl_0807b70c
.align 2, 0
lbl_0807b3b0: .4byte sNonGameplayRamPointer
lbl_0807b3b4: .4byte 0x000001cf
lbl_0807b3b8: .4byte 0x000001df
lbl_0807b3bc:
movs r0, #1
movs r1, #0x1f
bl sub_080790cc
cmp r0, #0
bne lbl_0807b3ca
b lbl_0807b70c
lbl_0807b3ca:
movs r0, #1
movs r1, #0x20
bl sub_080790cc
cmp r0, #0
bne lbl_0807b3d8
b lbl_0807b70c
lbl_0807b3d8:
bl sub_0807b854
ldr r0, lbl_0807b3e4 @ =sNonGameplayRamPointer
ldr r1, [r0]
adds r1, #0x40
b lbl_0807b6e6
.align 2, 0
lbl_0807b3e4: .4byte sNonGameplayRamPointer
lbl_0807b3e8:
ldr r0, [r4]
adds r0, #0x64
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_0807b402
movs r0, #0
bl load_time_attack_password_for_record
movs r0, #1
bl load_time_attack_password_for_record
lbl_0807b402:
ldr r0, [r4]
adds r0, #0x40
movs r1, #4
strb r1, [r0]
b lbl_0807b70c
lbl_0807b40c:
ldr r1, [r4]
adds r1, #0x40
b lbl_0807b6e6
lbl_0807b412:
ldr r0, [r4]
adds r0, #0x64
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807b42c
movs r0, #2
bl load_time_attack_password_for_record
movs r0, #3
bl load_time_attack_password_for_record
lbl_0807b42c:
ldr r0, [r4]
adds r0, #0x40
movs r1, #6
strb r1, [r0]
b lbl_0807b70c
lbl_0807b436:
ldr r1, [r4]
adds r1, #0x40
b lbl_0807b6e6
lbl_0807b43c:
bl sub_0807b71c
ldr r4, lbl_0807b470 @ =sNonGameplayRamPointer
ldr r0, [r4]
movs r5, #0xfa
lsls r5, r5, #1
adds r0, r0, r5
movs r1, #0x14
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r1, #0xf2
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #0x10
bl UpdateMenuOamDataID
ldr r0, lbl_0807b474 @ =0x000001fd
bl SoundPlay
ldr r0, [r4]
adds r0, #0x40
movs r1, #7
strb r1, [r0]
b lbl_0807b70c
.align 2, 0
lbl_0807b470: .4byte sNonGameplayRamPointer
lbl_0807b474: .4byte 0x000001fd
lbl_0807b478:
movs r5, #0
ldr r2, [r4]
ldr r3, lbl_0807b4cc @ =0x000001ef
adds r0, r2, r3
ldrb r1, [r0]
movs r4, #0x10
adds r0, r4, #0
ands r0, r1
cmp r0, #0
beq lbl_0807b502
ldr r1, lbl_0807b4d0 @ =0x000001ff
adds r0, r2, r1
ldrb r1, [r0]
adds r0, r4, #0
ands r0, r1
cmp r0, #0
beq lbl_0807b502
adds r0, r2, #0
adds r0, #0x65
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807b4dc
movs r0, #1
movs r1, #0x1e
bl sub_080790cc
cmp r0, #0
beq lbl_0807b502
ldr r0, lbl_0807b4d4 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0x9c
lsls r2, r2, #7
adds r1, r1, r2
ldr r2, lbl_0807b4d8 @ =0x0600e800
movs r3, #0xc0
lsls r3, r3, #2
str r4, [sp]
movs r0, #3
bl DMATransfer
b lbl_0807b508
.align 2, 0
lbl_0807b4cc: .4byte 0x000001ef
lbl_0807b4d0: .4byte 0x000001ff
lbl_0807b4d4: .4byte sEwramPointer
lbl_0807b4d8: .4byte 0x0600e800
lbl_0807b4dc:
movs r0, #1
movs r1, #0x1d
bl sub_080790cc
cmp r0, #0
beq lbl_0807b502
movs r5, #1
ldr r0, lbl_0807b534 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x96
lsls r3, r3, #7
adds r1, r1, r3
ldr r2, lbl_0807b538 @ =0x0600e800
movs r3, #0xc0
lsls r3, r3, #2
str r4, [sp]
movs r0, #3
bl DMATransfer
lbl_0807b502:
cmp r5, #0
bne lbl_0807b508
b lbl_0807b70c
lbl_0807b508:
ldr r1, lbl_0807b53c @ =sNonGameplayRamPointer
ldr r3, [r1]
adds r0, r3, #0
adds r0, #0x65
ldrb r0, [r0]
adds r4, r1, #0
cmp r0, #0
beq lbl_0807b548
ldr r5, lbl_0807b540 @ =0x000001cf
adds r2, r3, r5
ldrb r1, [r2]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldr r0, [r4]
ldr r1, lbl_0807b544 @ =0x000001df
adds r2, r0, r1
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
b lbl_0807b562
.align 2, 0
lbl_0807b534: .4byte sEwramPointer
lbl_0807b538: .4byte 0x0600e800
lbl_0807b53c: .4byte sNonGameplayRamPointer
lbl_0807b540: .4byte 0x000001cf
lbl_0807b544: .4byte 0x000001df
lbl_0807b548:
ldr r5, lbl_0807b58c @ =0x000001cf
adds r2, r3, r5
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
strb r0, [r2]
ldr r0, [r4]
ldr r1, lbl_0807b590 @ =0x000001df
adds r2, r0, r1
ldrb r1, [r2]
movs r0, #0x21
rsbs r0, r0, #0
ands r0, r1
lbl_0807b562:
strb r0, [r2]
ldr r0, [r4]
adds r0, #0x65
ldrb r0, [r0]
bl load_time_attack_time_for_record
ldr r1, [r4]
ldrh r2, [r1]
movs r3, #0xc0
lsls r3, r3, #2
adds r0, r3, #0
movs r3, #0
orrs r0, r2
strh r0, [r1]
adds r0, r1, #0
adds r0, #0x42
strh r3, [r0]
adds r1, #0x40
movs r0, #8
strb r0, [r1]
b lbl_0807b70c
.align 2, 0
lbl_0807b58c: .4byte 0x000001cf
lbl_0807b590: .4byte 0x000001df
lbl_0807b594:
ldr r1, [r4]
adds r2, r1, #0
adds r2, #0x42
ldrh r0, [r2]
cmp r0, #0xa
bls lbl_0807b5ac
movs r0, #0
strh r0, [r2]
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lbl_0807b5ac:
ldr r0, lbl_0807b5bc @ =gChangedInput
ldrh r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
bne lbl_0807b5ba
b lbl_0807b70c
lbl_0807b5ba:
b lbl_0807b5d2
.align 2, 0
lbl_0807b5bc: .4byte gChangedInput
lbl_0807b5c0:
ldr r0, lbl_0807b5dc @ =gChangedInput
ldrh r3, [r0]
cmp r3, #0
bne lbl_0807b5ca
b lbl_0807b70c
lbl_0807b5ca:
movs r0, #2
ands r0, r3
cmp r0, #0
beq lbl_0807b5e0
lbl_0807b5d2:
ldr r0, [r4]
adds r0, #0x40
movs r1, #0xa
strb r1, [r0]
b lbl_0807b70c
.align 2, 0
lbl_0807b5dc: .4byte gChangedInput
lbl_0807b5e0:
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x64
ldrb r0, [r0]
cmp r0, #3
beq lbl_0807b5ee
b lbl_0807b70c
lbl_0807b5ee:
movs r0, #0x30
ands r0, r3
cmp r0, #0
bne lbl_0807b5f8
b lbl_0807b70c
lbl_0807b5f8:
movs r5, #0
adds r1, #0x65
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807b60e
movs r0, #0x20
ands r0, r3
cmp r0, #0
beq lbl_0807b61c
strb r5, [r1]
b lbl_0807b620
lbl_0807b60e:
movs r0, #0x10
ands r0, r3
cmp r0, #0
beq lbl_0807b61c
movs r0, #1
strb r0, [r1]
movs r5, #1
lbl_0807b61c:
cmp r5, #0
beq lbl_0807b70c
lbl_0807b620:
bl sub_0807b71c
ldr r4, lbl_0807b658 @ =sNonGameplayRamPointer
ldr r0, [r4]
ldr r5, lbl_0807b65c @ =0x000001cf
adds r2, r0, r5
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
strb r0, [r2]
ldr r0, [r4]
ldr r3, lbl_0807b660 @ =0x000001df
adds r2, r0, r3
ldrb r0, [r2]
orrs r0, r1
strb r0, [r2]
ldr r0, lbl_0807b664 @ =0x00000211
bl SoundPlay
ldr r1, [r4]
ldrh r2, [r1]
ldr r0, lbl_0807b668 @ =0x0000fcff
ands r0, r2
strh r0, [r1]
adds r1, #0x40
movs r0, #7
strb r0, [r1]
b lbl_0807b70c
.align 2, 0
lbl_0807b658: .4byte sNonGameplayRamPointer
lbl_0807b65c: .4byte 0x000001cf
lbl_0807b660: .4byte 0x000001df
lbl_0807b664: .4byte 0x00000211
lbl_0807b668: .4byte 0x0000fcff
lbl_0807b66c:
movs r4, #0xff
lsls r4, r4, #1
adds r0, r4, #0
bl SoundPlay
ldr r2, lbl_0807b6b8 @ =sNonGameplayRamPointer
ldr r0, [r2]
ldr r5, lbl_0807b6bc @ =0x000001cf
adds r3, r0, r5
ldrb r0, [r3]
movs r1, #0x20
orrs r0, r1
strb r0, [r3]
ldr r0, [r2]
adds r5, #0x10
adds r3, r0, r5
ldrb r0, [r3]
orrs r0, r1
strb r0, [r3]
ldr r1, [r2]
adds r1, r1, r4
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r2]
movs r3, #0xf7
lsls r3, r3, #1
adds r1, r0, r3
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, [r2]
ldrh r2, [r1]
ldr r0, lbl_0807b6c0 @ =0x0000fcff
ands r0, r2
strh r0, [r1]
adds r1, #0x40
b lbl_0807b6e6
.align 2, 0
lbl_0807b6b8: .4byte sNonGameplayRamPointer
lbl_0807b6bc: .4byte 0x000001cf
lbl_0807b6c0: .4byte 0x0000fcff
lbl_0807b6c4:
ldr r2, [r4]
ldr r4, lbl_0807b6f0 @ =0x000001ff
adds r0, r2, r4
ldrb r0, [r0]
ldr r5, lbl_0807b6f4 @ =0x000001ef
adds r1, r2, r5
ldrb r1, [r1]
orrs r0, r1
lsrs r0, r0, #6
cmp r0, #0
bne lbl_0807b70c
adds r1, r2, #0
adds r1, #0x42
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
subs r1, #2
lbl_0807b6e6:
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_0807b70c
.align 2, 0
lbl_0807b6f0: .4byte 0x000001ff
lbl_0807b6f4: .4byte 0x000001ef
lbl_0807b6f8:
ldr r0, [r4]
adds r3, r0, #0
adds r3, #0x42
movs r2, #0
movs r1, #0
strh r1, [r3]
adds r0, #0x40
strb r2, [r0]
movs r0, #1
b lbl_0807b70e
lbl_0807b70c:
movs r0, #0
lbl_0807b70e:
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r1}
bx r1
thumb_func_start sub_0807b71c
sub_0807b71c: @ 0x0807b71c
push {lr}
ldr r0, lbl_0807b734 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x65
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807b738
movs r0, #0
movs r1, #0x1e
bl sub_080790cc
b lbl_0807b740
.align 2, 0
lbl_0807b734: .4byte sNonGameplayRamPointer
lbl_0807b738:
movs r0, #0
movs r1, #0x1d
bl sub_080790cc
lbl_0807b740:
pop {r0}
bx r0
thumb_func_start load_time_attack_time_for_record
load_time_attack_time_for_record: @ 0x0807b744
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldr r1, lbl_0807b84c @ =0x0600e108
mov ip, r1
movs r3, #0xa0
lsls r3, r3, #7
ldr r1, lbl_0807b850 @ =sNonGameplayRamPointer
ldr r7, [r1]
lsls r6, r0, #1
adds r6, r6, r0
lsls r6, r6, #1
adds r1, r7, #0
adds r1, #0x50
adds r1, r1, r6
movs r2, #0xe6
lsls r2, r2, #1
adds r5, r2, #0
ldrb r2, [r1]
adds r0, r5, r2
orrs r0, r3
mov r2, ip
strh r0, [r2]
adds r2, #0x40
movs r0, #0xf6
lsls r0, r0, #1
adds r4, r0, #0
ldrb r1, [r1]
adds r0, r4, r1
orrs r0, r3
strh r0, [r2]
adds r1, r7, #0
adds r1, #0x51
adds r1, r1, r6
ldrb r2, [r1]
adds r0, r5, r2
orrs r0, r3
mov r2, ip
strh r0, [r2, #2]
adds r2, #0x42
ldrb r1, [r1]
adds r0, r4, r1
orrs r0, r3
strh r0, [r2]
movs r1, #0xe5
lsls r1, r1, #1
adds r0, r1, #0
mov sb, r3
mov r2, sb
orrs r2, r0
mov sb, r2
mov r0, ip
strh r2, [r0, #4]
mov r1, ip
adds r1, #0x44
movs r2, #0xf5
lsls r2, r2, #1
adds r0, r2, #0
mov r8, r3
mov r2, r8
orrs r2, r0
mov r8, r2
strh r2, [r1]
adds r1, r7, #0
adds r1, #0x52
adds r1, r1, r6
ldrb r2, [r1]
adds r0, r5, r2
orrs r0, r3
mov r2, ip
strh r0, [r2, #6]
adds r2, #0x46
ldrb r1, [r1]
adds r0, r4, r1
orrs r0, r3
strh r0, [r2]
adds r1, r7, #0
adds r1, #0x53
adds r1, r1, r6
ldrb r2, [r1]
adds r0, r5, r2
orrs r0, r3
mov r2, ip
strh r0, [r2, #8]
adds r2, #0x48
ldrb r1, [r1]
adds r0, r4, r1
orrs r0, r3
strh r0, [r2]
mov r1, sb
mov r0, ip
strh r1, [r0, #0xa]
adds r0, #0x4a
mov r2, r8
strh r2, [r0]
adds r1, r7, #0
adds r1, #0x54
adds r1, r1, r6
ldrb r2, [r1]
adds r0, r5, r2
orrs r0, r3
mov r2, ip
strh r0, [r2, #0xc]
adds r2, #0x4c
ldrb r1, [r1]
adds r0, r4, r1
orrs r0, r3
strh r0, [r2]
adds r0, r7, #0
adds r0, #0x55
adds r0, r0, r6
ldrb r1, [r0]
adds r5, r5, r1
orrs r5, r3
mov r2, ip
strh r5, [r2, #0xe]
mov r1, ip
adds r1, #0x4e
ldrb r0, [r0]
adds r4, r4, r0
orrs r4, r3
strh r4, [r1]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807b84c: .4byte 0x0600e108
lbl_0807b850: .4byte sNonGameplayRamPointer
thumb_func_start sub_0807b854
sub_0807b854: @ 0x0807b854
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r0, lbl_0807b910 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x48
mov sb, r0
ldr r0, lbl_0807b914 @ =gFileScreenOptionsUnlocked
ldr r0, [r0, #8]
movs r1, #1
ands r0, r1
cmp r0, #0
bne lbl_0807b878
ldr r0, lbl_0807b918 @ =0x08760c44
mov sb, r0
lbl_0807b878:
movs r5, #0
movs r1, #0x10
mov sl, r1
ldr r6, lbl_0807b91c @ =0x06006100
ldr r0, lbl_0807b920 @ =0x06006500
mov r8, r0
adds r7, r6, #0
lbl_0807b886:
mov r1, sb
adds r0, r1, r5
ldrb r1, [r0]
cmp r1, #0x31
bne lbl_0807b892
movs r1, #0x3e
lbl_0807b892:
lsrs r4, r1, #5
lsls r4, r4, #0xb
movs r0, #0x1f
ands r1, r0
lsls r0, r1, #5
adds r4, r4, r0
ldr r0, lbl_0807b924 @ =0x08415460
adds r1, r4, r0
mov r0, sl
str r0, [sp]
movs r0, #3
adds r2, r7, #0
movs r3, #0x20
bl DMATransfer
ldr r1, lbl_0807b928 @ =0x08415860
adds r4, r4, r1
mov r0, sl
str r0, [sp]
movs r0, #3
adds r1, r4, #0
mov r2, r8
movs r3, #0x20
bl DMATransfer
movs r1, #0x20
add r8, r1
adds r7, #0x20
adds r5, #1
cmp r5, #7
ble lbl_0807b886
movs r2, #0x80
lsls r2, r2, #5
adds r2, r6, r2
movs r5, #0x80
lsls r5, r5, #1
movs r4, #0x10
str r4, [sp]
movs r0, #3
adds r1, r6, #0
adds r3, r5, #0
bl DMATransfer
movs r1, #0x80
lsls r1, r1, #3
adds r1, r6, r1
movs r2, #0xa0
lsls r2, r2, #5
adds r2, r6, r2
str r4, [sp]
movs r0, #3
adds r3, r5, #0
bl DMATransfer
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807b910: .4byte sNonGameplayRamPointer
lbl_0807b914: .4byte gFileScreenOptionsUnlocked
lbl_0807b918: .4byte 0x08760c44
lbl_0807b91c: .4byte 0x06006100
lbl_0807b920: .4byte 0x06006500
lbl_0807b924: .4byte 0x08415460
lbl_0807b928: .4byte 0x08415860
thumb_func_start load_time_attack_password_for_record
load_time_attack_password_for_record: @ 0x0807b92c
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #1
bls lbl_0807b950
ldr r7, lbl_0807b948 @ =0x000078c0
ldr r0, lbl_0807b94c @ =gTimeAttackRecord+0x18
b lbl_0807b954
.align 2, 0
lbl_0807b948: .4byte 0x000078c0
lbl_0807b94c: .4byte gTimeAttackRecord+0x18
lbl_0807b950:
ldr r7, lbl_0807b9d8 @ =0x000068c0
ldr r0, lbl_0807b9dc @ =gTimeAttackRecord
lbl_0807b954:
mov sb, r0
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_0807b968
movs r1, #0xa
add sb, r1
movs r0, #0x80
lsls r0, r0, #2
adds r7, r7, r0
lbl_0807b968:
movs r1, #0xc0
lsls r1, r1, #0x13
adds r0, r7, r1
movs r7, #0
ldr r1, lbl_0807b9e0 @ =0x08415460
mov sl, r1
movs r1, #0x10
mov r8, r1
movs r1, #0x80
lsls r1, r1, #3
adds r6, r0, r1
adds r5, r0, #0
lbl_0807b980:
mov r1, sb
adds r0, r1, r7
ldrb r1, [r0]
cmp r1, #0x31
bne lbl_0807b98c
movs r1, #0x3e
lbl_0807b98c:
lsrs r4, r1, #5
lsls r4, r4, #0xb
movs r0, #0x1f
ands r1, r0
lsls r0, r1, #5
adds r4, r4, r0
mov r0, sl
adds r1, r4, r0
mov r0, r8
str r0, [sp]
movs r0, #3
adds r2, r5, #0
movs r3, #0x20
bl DMATransfer
ldr r1, lbl_0807b9e4 @ =0x08415860
adds r4, r4, r1
mov r0, r8
str r0, [sp]
movs r0, #3
adds r1, r4, #0
adds r2, r6, #0
movs r3, #0x20
bl DMATransfer
adds r6, #0x20
adds r5, #0x20
adds r7, #1
cmp r7, #9
ble lbl_0807b980
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807b9d8: .4byte 0x000068c0
lbl_0807b9dc: .4byte gTimeAttackRecord
lbl_0807b9e0: .4byte 0x08415460
lbl_0807b9e4: .4byte 0x08415860
thumb_func_start metroid_fusion_link_subroutine
metroid_fusion_link_subroutine: @ 0x0807b9e8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r0, lbl_0807ba10 @ =sNonGameplayRamPointer
ldr r1, [r0]
adds r1, #0x42
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r1, lbl_0807ba14 @ =gIoTransferInfo
ldrb r0, [r1, #8]
cmp r0, #1
bne lbl_0807ba18
bl sub_08088ea0
b lbl_0807ba26
.align 2, 0
lbl_0807ba10: .4byte sNonGameplayRamPointer
lbl_0807ba14: .4byte gIoTransferInfo
lbl_0807ba18:
cmp r0, #2
bne lbl_0807ba22
bl sub_08089e30
b lbl_0807ba26
lbl_0807ba22:
movs r0, #0
strb r0, [r1, #0xb]
lbl_0807ba26:
ldr r1, lbl_0807ba40 @ =sNonGameplayRamPointer
ldr r0, [r1]
adds r0, #0x40
ldrb r0, [r0]
adds r4, r1, #0
cmp r0, #0x17
bls lbl_0807ba36
b lbl_0807c110
lbl_0807ba36:
lsls r0, r0, #2
ldr r1, lbl_0807ba44 @ =lbl_0807ba48
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807ba40: .4byte sNonGameplayRamPointer
lbl_0807ba44: .4byte lbl_0807ba48
lbl_0807ba48: @ jump table
.4byte lbl_0807baa8 @ case 0
.4byte lbl_0807bbfc @ case 1
.4byte lbl_0807bc38 @ case 2
.4byte lbl_0807bd24 @ case 3
.4byte lbl_0807bd8e @ case 4
.4byte lbl_0807bdd8 @ case 5
.4byte lbl_0807be40 @ case 6
.4byte lbl_0807be50 @ case 7
.4byte lbl_0807be70 @ case 8
.4byte lbl_0807bea8 @ case 9
.4byte lbl_0807bedc @ case 10
.4byte lbl_0807beec @ case 11
.4byte lbl_0807bf1c @ case 12
.4byte lbl_0807bf3e @ case 13
.4byte lbl_0807bf7c @ case 14
.4byte lbl_0807bfb8 @ case 15
.4byte lbl_0807bfdc @ case 16
.4byte lbl_0807c00c @ case 17
.4byte lbl_0807c01c @ case 18
.4byte lbl_0807c054 @ case 19
.4byte lbl_0807c078 @ case 20
.4byte lbl_0807c094 @ case 21
.4byte lbl_0807c0d8 @ case 22
.4byte lbl_0807c0fc @ case 23
lbl_0807baa8:
ldr r0, lbl_0807babc @ =gFileScreenOptionsUnlocked
ldrh r0, [r0, #2]
cmp r0, #0
beq lbl_0807bac4
ldr r0, lbl_0807bac0 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x40
movs r1, #1
b lbl_0807bbce
.align 2, 0
lbl_0807babc: .4byte gFileScreenOptionsUnlocked
lbl_0807bac0: .4byte sNonGameplayRamPointer
lbl_0807bac4:
ldr r5, lbl_0807bbdc @ =sNonGameplayRamPointer
ldr r1, [r5]
movs r0, #0x80
lsls r0, r0, #2
adds r1, r1, r0
ldrb r2, [r1]
movs r4, #0x10
rsbs r4, r4, #0
adds r0, r4, #0
ands r0, r2
movs r2, #1
mov r8, r2
mov r3, r8
orrs r0, r3
strb r0, [r1]
ldr r1, [r5]
ldr r0, lbl_0807bbe0 @ =0x000001ff
adds r1, r1, r0
ldrb r2, [r1]
movs r3, #4
rsbs r3, r3, #0
adds r0, r3, #0
ands r0, r2
movs r2, #2
mov sb, r2
mov r2, sb
orrs r0, r2
strb r0, [r1]
ldr r1, [r5]
movs r2, #0xfb
lsls r2, r2, #1
adds r0, r1, r2
movs r6, #0xa0
lsls r6, r6, #1
strh r6, [r0]
movs r0, #0xfa
lsls r0, r0, #1
mov sl, r0
adds r2, r1, r0
movs r0, #0xc0
strh r0, [r2]
movs r2, #0xe0
lsls r2, r2, #1
adds r1, r1, r2
ldrb r2, [r1]
adds r0, r4, #0
ands r0, r2
mov r2, r8
orrs r0, r2
strb r0, [r1]
ldr r0, [r5]
ldr r1, lbl_0807bbe4 @ =0x000001bf
adds r2, r0, r1
ldrb r1, [r2]
adds r0, r3, #0
ands r0, r1
strb r0, [r2]
ldr r2, [r5]
movs r1, #0xdb
lsls r1, r1, #1
adds r0, r2, r1
strh r6, [r0]
movs r0, #0xda
lsls r0, r0, #1
adds r1, r2, r0
movs r0, #0xe0
strh r0, [r1]
movs r0, #0xf8
lsls r0, r0, #1
adds r1, r2, r0
ldrb r0, [r1]
ands r4, r0
strb r4, [r1]
ldr r0, [r5]
ldr r2, lbl_0807bbe8 @ =0x000001ef
adds r1, r0, r2
ldrb r0, [r1]
ands r3, r0
mov r4, sb
orrs r3, r4
strb r3, [r1]
ldr r1, [r5]
movs r0, #0xf3
lsls r0, r0, #1
adds r2, r1, r0
subs r0, #0xe6
strh r0, [r2]
movs r4, #0xf2
lsls r4, r4, #1
adds r1, r1, r4
movs r0, #0x80
strh r0, [r1]
movs r0, #0
movs r1, #0x19
bl sub_080790cc
movs r0, #0
movs r1, #0x15
bl sub_080790cc
ldr r0, [r5]
add r0, sl
movs r1, #0x14
bl UpdateMenuOamDataID
ldr r0, [r5]
adds r0, r0, r4
movs r1, #0x10
bl UpdateMenuOamDataID
ldr r1, lbl_0807bbec @ =gBG1HOFS_NonGameplay
movs r2, #0xdb
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807bbf0 @ =gBG1VOFS_NonGameplay
movs r3, #0xdf
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r1, lbl_0807bbf4 @ =gBG0HOFS_NonGameplay
movs r4, #0xcc
lsls r4, r4, #3
adds r0, r4, #0
strh r0, [r1]
ldr r1, lbl_0807bbf8 @ =gBG0VOFS_NonGameplay
movs r2, #0xfc
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r0, [r5]
adds r0, #0x40
movs r1, #2
lbl_0807bbce:
strb r1, [r0]
ldr r0, lbl_0807bbdc @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x42
movs r1, #0
strh r1, [r0]
b lbl_0807c110
.align 2, 0
lbl_0807bbdc: .4byte sNonGameplayRamPointer
lbl_0807bbe0: .4byte 0x000001ff
lbl_0807bbe4: .4byte 0x000001bf
lbl_0807bbe8: .4byte 0x000001ef
lbl_0807bbec: .4byte gBG1HOFS_NonGameplay
lbl_0807bbf0: .4byte gBG1VOFS_NonGameplay
lbl_0807bbf4: .4byte gBG0HOFS_NonGameplay
lbl_0807bbf8: .4byte gBG0VOFS_NonGameplay
lbl_0807bbfc:
ldr r0, lbl_0807bc34 @ =gChangedInput
ldrh r1, [r0]
movs r0, #2
ands r0, r1
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
cmp r2, #0
beq lbl_0807bc0e
b lbl_0807c0fc
lbl_0807bc0e:
movs r0, #1
ands r0, r1
cmp r0, #0
bne lbl_0807bc22
ldr r0, [r4]
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0xa
bhi lbl_0807bc22
b lbl_0807c110
lbl_0807bc22:
ldr r0, [r4]
adds r3, r0, #0
adds r3, #0x42
movs r1, #0
strh r2, [r3]
adds r0, #0x40
strb r1, [r0]
movs r0, #2
b lbl_0807c112
.align 2, 0
lbl_0807bc34: .4byte gChangedInput
lbl_0807bc38:
ldr r2, [r4]
ldrh r1, [r2]
movs r5, #0xc0
lsls r5, r5, #2
adds r0, r5, #0
ands r0, r1
cmp r0, r5
bne lbl_0807bc58
ldr r1, lbl_0807bc54 @ =gIoTransferInfo
movs r0, #1
strb r0, [r1, #8]
adds r1, r2, #0
b lbl_0807c0f2
.align 2, 0
lbl_0807bc54: .4byte gIoTransferInfo
lbl_0807bc58:
movs r7, #0x80
lsls r7, r7, #2
adds r0, r7, #0
ands r0, r1
cmp r0, #0
bne lbl_0807bcb0
ldr r3, lbl_0807bd0c @ =0x000001ff
adds r0, r2, r3
ldrb r1, [r0]
movs r6, #0x10
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq lbl_0807bcb0
movs r0, #1
movs r1, #0x15
bl sub_080790cc
cmp r0, #0
beq lbl_0807bcb0
ldr r0, lbl_0807bd10 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xf0
lsls r0, r0, #6
adds r1, r1, r0
ldr r2, lbl_0807bd14 @ =0x0600e800
str r6, [sp]
movs r0, #3
adds r3, r5, #0
bl DMATransfer
ldr r0, [r4]
ldrh r1, [r0, #0x1c]
strh r1, [r0, #6]
ldrh r2, [r0]
adds r1, r7, #0
orrs r1, r2
strh r1, [r0]
movs r1, #0xda
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #0xc
bl UpdateMenuOamDataID
lbl_0807bcb0:
ldr r5, lbl_0807bd18 @ =sNonGameplayRamPointer
ldr r2, [r5]
ldrh r1, [r2]
movs r6, #0x80
lsls r6, r6, #1
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq lbl_0807bcc4
b lbl_0807c110
lbl_0807bcc4:
ldr r3, lbl_0807bd1c @ =0x000001ef
adds r0, r2, r3
ldrb r1, [r0]
movs r4, #0x10
adds r0, r4, #0
ands r0, r1
cmp r0, #0
bne lbl_0807bcd6
b lbl_0807c110
lbl_0807bcd6:
movs r0, #1
movs r1, #0x19
bl sub_080790cc
cmp r0, #0
bne lbl_0807bce4
b lbl_0807c110
lbl_0807bce4:
ldr r0, lbl_0807bd10 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0x90
lsls r0, r0, #7
adds r1, r1, r0
ldr r2, lbl_0807bd20 @ =0x0600e000
movs r3, #0xc0
lsls r3, r3, #2
str r4, [sp]
movs r0, #3
bl DMATransfer
ldr r1, [r5]
ldrh r0, [r1, #0x1e]
strh r0, [r1, #4]
ldrh r2, [r1]
adds r0, r6, #0
orrs r0, r2
strh r0, [r1]
b lbl_0807c110
.align 2, 0
lbl_0807bd0c: .4byte 0x000001ff
lbl_0807bd10: .4byte sEwramPointer
lbl_0807bd14: .4byte 0x0600e800
lbl_0807bd18: .4byte sNonGameplayRamPointer
lbl_0807bd1c: .4byte 0x000001ef
lbl_0807bd20: .4byte 0x0600e000
lbl_0807bd24:
ldr r0, lbl_0807bd3c @ =gIoTransferInfo
ldrb r0, [r0, #0xb]
subs r0, #1
cmp r0, #4
bls lbl_0807bd30
b lbl_0807c110
lbl_0807bd30:
lsls r0, r0, #2
ldr r1, lbl_0807bd40 @ =lbl_0807bd44
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807bd3c: .4byte gIoTransferInfo
lbl_0807bd40: .4byte lbl_0807bd44
lbl_0807bd44: @ jump table
.4byte lbl_0807bd58 @ case 0
.4byte lbl_0807c084 @ case 1
.4byte lbl_0807bd84 @ case 2
.4byte lbl_0807bd70 @ case 3
.4byte lbl_0807bd7a @ case 4
lbl_0807bd58:
bl sub_08073300
ldr r2, lbl_0807bd6c @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r0, #0x40
movs r3, #0
movs r1, #8
strb r1, [r0]
ldr r0, [r2]
b lbl_0807be32
.align 2, 0
lbl_0807bd6c: .4byte sNonGameplayRamPointer
lbl_0807bd70:
ldr r0, [r4]
adds r0, #0x40
movs r2, #0
movs r1, #4
b lbl_0807bf34
lbl_0807bd7a:
ldr r0, [r4]
adds r0, #0x40
movs r2, #0
movs r1, #0xe
b lbl_0807bf34
lbl_0807bd84:
ldr r0, [r4]
adds r0, #0x40
movs r1, #0x12
strb r1, [r0]
b lbl_0807c110
lbl_0807bd8e:
ldr r2, [r4]
ldrh r1, [r2]
ldr r0, lbl_0807bdd4 @ =0x0000fcff
ands r0, r1
strh r0, [r2]
movs r0, #0
movs r1, #0x17
bl sub_080790cc
movs r0, #0
movs r1, #0x18
bl sub_080790cc
ldr r0, [r4]
movs r1, #0xda
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #0
bl UpdateMenuOamDataID
ldr r1, [r4]
movs r2, #0xf7
lsls r2, r2, #1
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #0
bne lbl_0807bdd0
movs r3, #0xf2
lsls r3, r3, #1
adds r0, r1, r3
movs r1, #0x10
bl UpdateMenuOamDataID
lbl_0807bdd0:
ldr r1, [r4]
b lbl_0807c0f2
.align 2, 0
lbl_0807bdd4: .4byte 0x0000fcff
lbl_0807bdd8:
ldr r2, [r4]
ldr r1, lbl_0807be38 @ =0x000001ff
adds r0, r2, r1
ldrb r1, [r0]
movs r3, #0x10
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne lbl_0807bdec
b lbl_0807c110
lbl_0807bdec:
ldr r1, lbl_0807be3c @ =0x000001ef
adds r0, r2, r1
ldrb r1, [r0]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne lbl_0807bdfc
b lbl_0807c110
lbl_0807bdfc:
movs r0, #1
movs r1, #0x18
bl sub_080790cc
cmp r0, #0
bne lbl_0807be0a
b lbl_0807c110
lbl_0807be0a:
movs r0, #1
movs r1, #0x17
bl sub_080790cc
cmp r0, #0
bne lbl_0807be18
b lbl_0807c110
lbl_0807be18:
ldr r1, [r4]
ldrh r2, [r1]
movs r3, #0xc0
lsls r3, r3, #2
adds r0, r3, #0
movs r3, #0
orrs r0, r2
strh r0, [r1]
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r4]
lbl_0807be32:
adds r0, #0x42
strh r3, [r0]
b lbl_0807c110
.align 2, 0
lbl_0807be38: .4byte 0x000001ff
lbl_0807be3c: .4byte 0x000001ef
lbl_0807be40:
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0x1e
bhi lbl_0807be4e
b lbl_0807c110
lbl_0807be4e:
b lbl_0807c0f2
lbl_0807be50:
ldr r0, lbl_0807be68 @ =gChangedInput
ldrh r1, [r0]
movs r0, #8
ands r0, r1
cmp r0, #0
bne lbl_0807be5e
b lbl_0807c110
lbl_0807be5e:
ldr r1, lbl_0807be6c @ =gMainGameMode
movs r0, #0xe
strh r0, [r1]
b lbl_0807c110
.align 2, 0
lbl_0807be68: .4byte gChangedInput
lbl_0807be6c: .4byte gMainGameMode
lbl_0807be70:
ldr r0, [r4]
ldrh r2, [r0]
ldr r1, lbl_0807bea4 @ =0x0000fcff
ands r1, r2
strh r1, [r0]
movs r1, #0xda
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #0
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r2, #0xf7
lsls r2, r2, #1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807be98
adds r0, #1
strb r0, [r1]
lbl_0807be98:
movs r0, #0
movs r1, #0x1a
bl sub_080790cc
ldr r1, [r4]
b lbl_0807c0f2
.align 2, 0
lbl_0807bea4: .4byte 0x0000fcff
lbl_0807bea8:
movs r0, #1
movs r1, #0x1a
bl sub_080790cc
cmp r0, #0
bne lbl_0807beb6
b lbl_0807c110
lbl_0807beb6:
ldr r3, lbl_0807bed8 @ =sNonGameplayRamPointer
ldr r1, [r3]
ldrh r2, [r1]
movs r4, #0x80
lsls r4, r4, #2
adds r0, r4, #0
movs r4, #0
orrs r0, r2
strh r0, [r1]
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r0, [r3]
adds r0, #0x42
strh r4, [r0]
b lbl_0807c110
.align 2, 0
lbl_0807bed8: .4byte sNonGameplayRamPointer
lbl_0807bedc:
ldr r1, [r4]
adds r0, r1, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0x3c
bhi lbl_0807beea
b lbl_0807c110
lbl_0807beea:
b lbl_0807c0f2
lbl_0807beec:
ldr r0, lbl_0807bf14 @ =gChangedInput
ldrh r1, [r0]
movs r0, #9
ands r0, r1
cmp r0, #0
bne lbl_0807befa
b lbl_0807c110
lbl_0807befa:
ldr r1, [r4]
ldrh r2, [r1]
ldr r0, lbl_0807bf18 @ =0x0000fcff
ands r0, r2
strh r0, [r1]
movs r0, #0xff
lsls r0, r0, #1
adds r1, r1, r0
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
ldr r1, [r4]
b lbl_0807c0f2
.align 2, 0
lbl_0807bf14: .4byte gChangedInput
lbl_0807bf18: .4byte 0x0000fcff
lbl_0807bf1c:
ldr r1, [r4]
movs r2, #0xff
lsls r2, r2, #1
adds r0, r1, r2
ldrb r2, [r0]
cmp r2, #0
beq lbl_0807bf2c
b lbl_0807c110
lbl_0807bf2c:
adds r0, r1, #0
adds r0, #0x40
ldrb r1, [r0]
adds r1, #1
lbl_0807bf34:
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x42
strh r2, [r0]
b lbl_0807c110
lbl_0807bf3e:
ldr r0, [r4]
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0x1e
bhi lbl_0807bf4a
b lbl_0807c110
lbl_0807bf4a:
bl sub_08079fb8
ldr r0, lbl_0807bf74 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0xa2
lsls r3, r3, #7
adds r1, r1, r3
ldr r2, lbl_0807bf78 @ =0x0600f000
movs r3, #0x80
lsls r3, r3, #4
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
ldr r0, [r4]
adds r0, #0x40
movs r1, #0x17
strb r1, [r0]
b lbl_0807c110
.align 2, 0
lbl_0807bf74: .4byte sEwramPointer
lbl_0807bf78: .4byte 0x0600f000
lbl_0807bf7c:
ldr r0, [r4]
movs r1, #0xda
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #0
bl UpdateMenuOamDataID
ldr r2, [r4]
ldrh r1, [r2]
ldr r0, lbl_0807bfb4 @ =0x0000fcff
ands r0, r1
strh r0, [r2]
movs r0, #0
movs r1, #0x16
bl sub_080790cc
ldr r0, [r4]
movs r2, #0xf7
lsls r2, r2, #1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807bfae
adds r0, #1
strb r0, [r1]
lbl_0807bfae:
ldr r1, [r4]
b lbl_0807c0f2
.align 2, 0
lbl_0807bfb4: .4byte 0x0000fcff
lbl_0807bfb8:
movs r0, #1
movs r1, #0x16
bl sub_080790cc
cmp r0, #0
bne lbl_0807bfc6
b lbl_0807c110
lbl_0807bfc6:
ldr r0, lbl_0807bfd8 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r2, [r1]
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
b lbl_0807c0f2
.align 2, 0
lbl_0807bfd8: .4byte sNonGameplayRamPointer
lbl_0807bfdc:
ldr r2, lbl_0807bfec @ =gIoTransferInfo
ldrb r1, [r2, #0xb]
cmp r1, #4
bne lbl_0807bff0
ldr r0, [r4]
adds r0, #0x40
strb r1, [r0]
b lbl_0807c110
.align 2, 0
lbl_0807bfec: .4byte gIoTransferInfo
lbl_0807bff0:
ldr r0, lbl_0807c008 @ =gChangedInput
ldrh r1, [r0]
movs r0, #9
ands r0, r1
cmp r0, #0
bne lbl_0807bffe
b lbl_0807c110
lbl_0807bffe:
movs r0, #0
strb r0, [r2, #4]
ldr r1, [r4]
b lbl_0807c0f2
.align 2, 0
lbl_0807c008: .4byte gChangedInput
lbl_0807c00c:
ldr r0, lbl_0807c018 @ =gIoTransferInfo
ldrb r0, [r0, #0xb]
cmp r0, #4
beq lbl_0807c016
b lbl_0807c110
lbl_0807c016:
b lbl_0807c084
.align 2, 0
lbl_0807c018: .4byte gIoTransferInfo
lbl_0807c01c:
ldr r0, [r4]
ldrh r2, [r0]
ldr r1, lbl_0807c050 @ =0x0000fcff
ands r1, r2
strh r1, [r0]
movs r1, #0xda
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #0
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r2, #0xf7
lsls r2, r2, #1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807c044
adds r0, #1
strb r0, [r1]
lbl_0807c044:
movs r0, #0
movs r1, #0x1b
bl sub_080790cc
ldr r1, [r4]
b lbl_0807c0f2
.align 2, 0
lbl_0807c050: .4byte 0x0000fcff
lbl_0807c054:
movs r0, #1
movs r1, #0x1b
bl sub_080790cc
cmp r0, #0
beq lbl_0807c110
ldr r0, lbl_0807c074 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r2, [r1]
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
b lbl_0807c0f2
.align 2, 0
lbl_0807c074: .4byte sNonGameplayRamPointer
lbl_0807c078:
ldr r0, lbl_0807c090 @ =gChangedInput
ldrh r1, [r0]
movs r0, #9
ands r0, r1
cmp r0, #0
beq lbl_0807c110
lbl_0807c084:
ldr r0, [r4]
adds r0, #0x40
movs r1, #0x15
strb r1, [r0]
b lbl_0807c110
.align 2, 0
lbl_0807c090: .4byte gChangedInput
lbl_0807c094:
ldr r0, [r4]
ldrh r2, [r0]
ldr r1, lbl_0807c0d4 @ =0x0000fcff
ands r1, r2
strh r1, [r0]
movs r1, #0xda
lsls r1, r1, #1
adds r0, r0, r1
movs r1, #0
bl UpdateMenuOamDataID
ldr r0, [r4]
movs r2, #0xff
lsls r2, r2, #1
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807c0bc
adds r0, #1
strb r0, [r1]
lbl_0807c0bc:
ldr r0, [r4]
movs r3, #0xf7
lsls r3, r3, #1
adds r1, r0, r3
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807c0ce
adds r0, #1
strb r0, [r1]
lbl_0807c0ce:
ldr r1, [r4]
b lbl_0807c0f2
.align 2, 0
lbl_0807c0d4: .4byte 0x0000fcff
lbl_0807c0d8:
ldr r1, [r4]
movs r4, #0xff
lsls r4, r4, #1
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, #0
bne lbl_0807c110
movs r2, #0xf7
lsls r2, r2, #1
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, #0
bne lbl_0807c110
lbl_0807c0f2:
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_0807c110
lbl_0807c0fc:
ldr r0, [r4]
adds r3, r0, #0
adds r3, #0x42
movs r2, #0
movs r1, #0
strh r1, [r3]
adds r0, #0x40
strb r2, [r0]
movs r0, #1
b lbl_0807c112
lbl_0807c110:
movs r0, #0
lbl_0807c112:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_start FileSelectMenuSubroutine
FileSelectMenuSubroutine: @ 0x0807c124
push {lr}
ldr r2, lbl_0807c148 @ =sNonGameplayRamPointer
ldr r1, [r2]
ldrh r0, [r1, #0x3c]
adds r0, #1
strh r0, [r1, #0x3c]
ldr r0, lbl_0807c14c @ =gGameModeSub1
movs r3, #0
ldrsh r1, [r0, r3]
adds r3, r0, #0
cmp r1, #0xb
bls lbl_0807c13e
b lbl_0807c2f6
lbl_0807c13e:
lsls r0, r1, #2
ldr r1, lbl_0807c150 @ =lbl_0807c154
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807c148: .4byte sNonGameplayRamPointer
lbl_0807c14c: .4byte gGameModeSub1
lbl_0807c150: .4byte lbl_0807c154
lbl_0807c154: @ jump table
.4byte lbl_0807c184 @ case 0
.4byte lbl_0807c1a8 @ case 1
.4byte lbl_0807c1cc @ case 2
.4byte lbl_0807c2a4 @ case 3
.4byte lbl_0807c2b4 @ case 4
.4byte lbl_0807c2dc @ case 5
.4byte lbl_0807c2ec @ case 6
.4byte lbl_0807c2b4 @ case 7
.4byte lbl_0807c2ec @ case 8
.4byte lbl_0807c1a8 @ case 9
.4byte lbl_0807c24c @ case 10
.4byte lbl_0807c2a4 @ case 11
lbl_0807c184:
ldr r0, lbl_0807c19c @ =gGameModeSub2
movs r1, #0
strb r1, [r0]
ldr r0, lbl_0807c1a0 @ =gCutsceneToSkip
strb r1, [r0]
bl file_select_menu_init
ldr r1, lbl_0807c1a4 @ =gGameModeSub1
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
b lbl_0807c2f6
.align 2, 0
lbl_0807c19c: .4byte gGameModeSub2
lbl_0807c1a0: .4byte gCutsceneToSkip
lbl_0807c1a4: .4byte gGameModeSub1
lbl_0807c1a8:
bl sub_0807c568
bl file_select_fading
cmp r0, #0
bne lbl_0807c1b6
b lbl_0807c2f6
lbl_0807c1b6:
ldr r1, lbl_0807c1c4 @ =gGameModeSub1
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r1, lbl_0807c1c8 @ =gGameModeSub2
b lbl_0807c23c
.align 2, 0
lbl_0807c1c4: .4byte gGameModeSub1
lbl_0807c1c8: .4byte gGameModeSub2
lbl_0807c1cc:
bl sub_0807d27c
lsls r0, r0, #0x18
cmp r0, #0
bne lbl_0807c1d8
b lbl_0807c2f6
lbl_0807c1d8:
ldr r0, lbl_0807c1f4 @ =sNonGameplayRamPointer
ldr r1, [r0]
movs r0, #0
strh r0, [r1, #0x3c]
ldr r0, lbl_0807c1f8 @ =gGameModeSub2
movs r2, #0
ldrsb r2, [r0, r2]
adds r3, r0, #0
cmp r2, #1
bne lbl_0807c200
ldr r1, lbl_0807c1fc @ =gGameModeSub1
movs r0, #7
b lbl_0807c22a
.align 2, 0
lbl_0807c1f4: .4byte sNonGameplayRamPointer
lbl_0807c1f8: .4byte gGameModeSub2
lbl_0807c1fc: .4byte gGameModeSub1
lbl_0807c200:
cmp r2, #2
bne lbl_0807c210
ldr r1, lbl_0807c20c @ =gGameModeSub1
movs r0, #4
b lbl_0807c22a
.align 2, 0
lbl_0807c20c: .4byte gGameModeSub1
lbl_0807c210:
cmp r2, #3
bne lbl_0807c220
ldr r0, lbl_0807c21c @ =gGameModeSub1
strh r2, [r0]
b lbl_0807c22c
.align 2, 0
lbl_0807c21c: .4byte gGameModeSub1
lbl_0807c220:
adds r1, #0x3e
movs r0, #0
strb r0, [r1]
ldr r1, lbl_0807c244 @ =gGameModeSub1
movs r0, #0xa
lbl_0807c22a:
strh r0, [r1]
lbl_0807c22c:
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq lbl_0807c2f6
movs r0, #1
bl sub_0807c4b0
ldr r1, lbl_0807c248 @ =gOptionsOptionSelected
lbl_0807c23c:
movs r0, #0
strb r0, [r1]
b lbl_0807c2f6
.align 2, 0
lbl_0807c244: .4byte gGameModeSub1
lbl_0807c248: .4byte gOptionsOptionSelected
lbl_0807c24c:
bl settings_subroutine
lsls r0, r0, #0x18
cmp r0, #0
beq lbl_0807c2f6
ldr r0, lbl_0807c270 @ =gGameModeSub2
movs r3, #0
ldrsb r3, [r0, r3]
cmp r3, #0
beq lbl_0807c278
movs r0, #1
bl sub_0807c4b0
ldr r1, lbl_0807c274 @ =gGameModeSub1
movs r0, #0xb
strh r0, [r1]
b lbl_0807c2f6
.align 2, 0
lbl_0807c270: .4byte gGameModeSub2
lbl_0807c274: .4byte gGameModeSub1
lbl_0807c278:
ldr r1, lbl_0807c29c @ =gGameModeSub1
movs r0, #2
strh r0, [r1]
ldr r2, lbl_0807c2a0 @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r0, #0x3e
movs r1, #6
strb r1, [r0]
ldr r0, [r2]
movs r1, #0
strh r3, [r0, #0x3c]
adds r0, #0x40
strb r1, [r0]
ldr r0, [r2]
adds r0, #0x42
strh r3, [r0]
b lbl_0807c2f6
.align 2, 0
lbl_0807c29c: .4byte gGameModeSub1
lbl_0807c2a0: .4byte sNonGameplayRamPointer
lbl_0807c2a4:
bl sub_0807c568
bl file_select_fading
cmp r0, #0
beq lbl_0807c2f6
movs r0, #1
b lbl_0807c2fc
lbl_0807c2b4:
bl sub_0807c568
bl file_select_fading
cmp r0, #0
beq lbl_0807c2f6
ldr r0, lbl_0807c2d4 @ =sNonGameplayRamPointer
ldr r1, [r0]
movs r0, #0
strh r0, [r1, #0x3c]
ldr r1, lbl_0807c2d8 @ =gGameModeSub1
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
b lbl_0807c2f6
.align 2, 0
lbl_0807c2d4: .4byte sNonGameplayRamPointer
lbl_0807c2d8: .4byte gGameModeSub1
lbl_0807c2dc:
ldr r0, [r2]
ldrh r0, [r0, #0x3c]
cmp r0, #0x1e
bls lbl_0807c2f6
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
b lbl_0807c2f6
lbl_0807c2ec:
movs r0, #0
bl sub_08075c04
movs r0, #1
b lbl_0807c2fc
lbl_0807c2f6:
bl file_select_menu_process_oam
movs r0, #0
lbl_0807c2fc:
pop {r1}
bx r1
thumb_func_start file_select_fading
file_select_fading: @ 0x0807c300
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0xc
movs r0, #0
mov r8, r0
ldr r7, lbl_0807c32c @ =sNonGameplayRamPointer
ldr r1, [r7]
ldrh r0, [r1, #0x10]
adds r2, r0, #1
movs r3, #0
strh r2, [r1, #0x10]
ldrb r0, [r1, #0xc]
cmp r0, #1
bne lbl_0807c320
b lbl_0807c490
lbl_0807c320:
cmp r0, #1
bgt lbl_0807c330
cmp r0, #0
beq lbl_0807c33c
b lbl_0807c4a0
.align 2, 0
lbl_0807c32c: .4byte sNonGameplayRamPointer
lbl_0807c330:
cmp r0, #2
beq lbl_0807c3d8
cmp r0, #3
bne lbl_0807c33a
b lbl_0807c490
lbl_0807c33a:
b lbl_0807c4a0
lbl_0807c33c:
ldrb r0, [r1, #0xe]
cmp r0, #0
beq lbl_0807c344
b lbl_0807c4a0
lbl_0807c344:
lsls r0, r2, #0x10
lsrs r0, r0, #0x10
ldrb r2, [r1, #0x13]
cmp r0, r2
bhs lbl_0807c350
b lbl_0807c4a0
lbl_0807c350:
ldrb r0, [r1, #0xd]
cmp r0, #0x1f
bhi lbl_0807c3bc
ldr r4, lbl_0807c3b4 @ =sEwramPointer
ldr r0, [r4]
str r0, [sp, #4]
movs r2, #0x80
lsls r2, r2, #3
adds r0, r0, r2
str r0, [sp, #8]
ldrb r1, [r1, #0xd]
add r6, sp, #8
ldr r5, lbl_0807c3b8 @ =0x0000ffff
str r5, [sp]
movs r0, #0
add r2, sp, #4
adds r3, r6, #0
bl ApplySpecialBackgroundFadingColor
ldr r0, [r4]
movs r2, #0x80
lsls r2, r2, #2
adds r1, r0, r2
str r1, [sp, #4]
movs r1, #0xc0
lsls r1, r1, #3
adds r0, r0, r1
str r0, [sp, #8]
ldr r0, [r7]
ldrb r1, [r0, #0xd]
str r5, [sp]
movs r0, #0
add r2, sp, #4
adds r3, r6, #0
bl ApplySpecialBackgroundFadingColor
ldr r1, [r7]
movs r0, #1
strb r0, [r1, #0xe]
ldr r2, [r7]
ldrb r0, [r2, #0xd]
cmp r0, #0x1f
beq lbl_0807c442
ldrb r1, [r2, #0xd]
ldrb r0, [r2, #0x12]
adds r1, r1, r0
cmp r1, #0x1f
bgt lbl_0807c45a
b lbl_0807c460
.align 2, 0
lbl_0807c3b4: .4byte sEwramPointer
lbl_0807c3b8: .4byte 0x0000ffff
lbl_0807c3bc:
ldr r0, lbl_0807c3d4 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #3
adds r2, r1, r3
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
b lbl_0807c47a
.align 2, 0
lbl_0807c3d4: .4byte sEwramPointer
lbl_0807c3d8:
ldrb r0, [r1, #0xe]
cmp r0, #0
bne lbl_0807c4a0
lsls r0, r2, #0x10
lsrs r0, r0, #0x10
ldrb r2, [r1, #0x13]
cmp r0, r2
blo lbl_0807c4a0
mov r0, r8
strh r0, [r1, #0x10]
ldrb r0, [r1, #0xd]
cmp r0, #0x1f
bhi lbl_0807c464
ldr r4, lbl_0807c448 @ =sEwramPointer
ldr r0, [r4]
str r0, [sp, #4]
movs r2, #0x80
lsls r2, r2, #3
adds r0, r0, r2
str r0, [sp, #8]
ldrb r1, [r1, #0xd]
add r6, sp, #8
ldr r5, lbl_0807c44c @ =0x0000ffff
str r5, [sp]
movs r0, #2
add r2, sp, #4
adds r3, r6, #0
bl ApplySpecialBackgroundFadingColor
ldr r0, [r4]
movs r2, #0x80
lsls r2, r2, #2
adds r1, r0, r2
str r1, [sp, #4]
movs r1, #0xc0
lsls r1, r1, #3
adds r0, r0, r1
str r0, [sp, #8]
ldr r0, [r7]
ldrb r1, [r0, #0xd]
str r5, [sp]
movs r0, #2
add r2, sp, #4
adds r3, r6, #0
bl ApplySpecialBackgroundFadingColor
ldr r1, [r7]
movs r0, #1
strb r0, [r1, #0xe]
ldr r2, [r7]
ldrb r0, [r2, #0xd]
cmp r0, #0x1f
bne lbl_0807c450
lbl_0807c442:
adds r0, #1
strb r0, [r2, #0xd]
b lbl_0807c4a0
.align 2, 0
lbl_0807c448: .4byte sEwramPointer
lbl_0807c44c: .4byte 0x0000ffff
lbl_0807c450:
ldrb r1, [r2, #0xd]
ldrb r0, [r2, #0x12]
adds r1, r1, r0
cmp r1, #0x1f
ble lbl_0807c460
lbl_0807c45a:
movs r0, #0x1f
strb r0, [r2, #0xd]
b lbl_0807c4a0
lbl_0807c460:
strb r1, [r2, #0xd]
b lbl_0807c4a0
lbl_0807c464:
ldr r0, lbl_0807c48c @ =sEwramPointer
ldr r2, [r0]
movs r3, #0x80
lsls r3, r3, #3
adds r2, r2, r3
movs r0, #0x10
str r0, [sp]
movs r0, #3
movs r1, #0
bl BitFill
lbl_0807c47a:
ldr r1, [r7]
movs r0, #1
strb r0, [r1, #0xe]
ldr r1, [r7]
ldrb r0, [r1, #0xc]
adds r0, #1
strb r0, [r1, #0xc]
b lbl_0807c4a0
.align 2, 0
lbl_0807c48c: .4byte sEwramPointer
lbl_0807c490:
ldrb r0, [r1, #0xe]
cmp r0, #0
bne lbl_0807c4a0
strb r3, [r1, #0xd]
ldr r0, [r7]
strb r3, [r0, #0xc]
movs r2, #1
mov r8, r2
lbl_0807c4a0:
mov r0, r8
add sp, #0xc
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_start sub_0807c4b0
sub_0807c4b0: @ 0x0807c4b0
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
lsls r0, r0, #0x18
ldr r7, lbl_0807c524 @ =sNonGameplayRamPointer
ldr r1, [r7]
movs r2, #0
strb r2, [r1, #0xd]
ldr r1, [r7]
strb r2, [r1, #0xe]
ldr r1, [r7]
movs r3, #0
mov sb, r3
strh r2, [r1, #0x10]
cmp r0, #0
bne lbl_0807c52c
movs r6, #0xa0
lsls r6, r6, #0x13
ldr r0, lbl_0807c528 @ =sEwramPointer
mov r8, r0
ldr r2, [r0]
movs r5, #0x80
lsls r5, r5, #3
movs r4, #0x10
str r4, [sp]
movs r0, #3
adds r1, r6, #0
adds r3, r5, #0
bl DMATransfer
str r4, [sp]
movs r0, #3
movs r1, #0
adds r2, r6, #0
adds r3, r5, #0
bl BitFill
mov r1, r8
ldr r2, [r1]
adds r2, r2, r5
str r4, [sp]
movs r0, #3
adds r1, r6, #0
adds r3, r5, #0
bl DMATransfer
ldr r0, [r7]
mov r3, sb
strb r3, [r0, #0xc]
ldr r1, [r7]
movs r0, #8
strb r0, [r1, #0x12]
ldr r0, [r7]
strb r3, [r0, #0x13]
b lbl_0807c554
.align 2, 0
lbl_0807c524: .4byte sNonGameplayRamPointer
lbl_0807c528: .4byte sEwramPointer
lbl_0807c52c:
movs r1, #0xa0
lsls r1, r1, #0x13
ldr r0, lbl_0807c564 @ =sEwramPointer
ldr r2, [r0]
movs r3, #0x80
lsls r3, r3, #3
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
ldr r1, [r7]
movs r0, #2
strb r0, [r1, #0xc]
ldr r1, [r7]
movs r0, #8
strb r0, [r1, #0x12]
ldr r0, [r7]
mov r1, sb
strb r1, [r0, #0x13]
lbl_0807c554:
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807c564: .4byte sEwramPointer
thumb_func_start sub_0807c568
sub_0807c568: @ 0x0807c568
push {r4, lr}
sub sp, #4
ldr r4, lbl_0807c59c @ =sNonGameplayRamPointer
ldr r0, [r4]
ldrb r0, [r0, #0xe]
cmp r0, #0
beq lbl_0807c594
ldr r0, lbl_0807c5a0 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x80
lsls r3, r3, #3
adds r1, r1, r3
movs r2, #0xa0
lsls r2, r2, #0x13
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
ldr r1, [r4]
movs r0, #0
strb r0, [r1, #0xe]
lbl_0807c594:
add sp, #4
pop {r4}
pop {r0}
bx r0
.align 2, 0
lbl_0807c59c: .4byte sNonGameplayRamPointer
lbl_0807c5a0: .4byte sEwramPointer
thumb_func_start sub_0807c5a4
sub_0807c5a4: @ 0x0807c5a4
push {r4, lr}
movs r1, #0
ldr r4, lbl_0807c5d8 @ =gLanguage
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #2
beq lbl_0807c5b8
movs r0, #2
strb r0, [r4]
movs r1, #1
lbl_0807c5b8:
cmp r1, #0
beq lbl_0807c5c0
bl SramWrite_Language
lbl_0807c5c0:
adds r3, r4, #0
ldr r2, lbl_0807c5dc @ =gSaveFilesInfo
movs r1, #2
lbl_0807c5c6:
ldrb r0, [r3]
strb r0, [r2, #0x13]
adds r2, #0x18
subs r1, #1
cmp r1, #0
bge lbl_0807c5c6
pop {r4}
pop {r0}
bx r0
.align 2, 0
lbl_0807c5d8: .4byte gLanguage
lbl_0807c5dc: .4byte gSaveFilesInfo
thumb_func_start file_select_menu_init
file_select_menu_init: @ 0x0807c5e0
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
ldr r0, lbl_0807c798 @ =sub_0807cb20
bl CallbackSetVBlank
ldr r2, lbl_0807c79c @ =gNonGameplayRAM
movs r3, #0xc5
lsls r3, r3, #3
movs r0, #0x20
str r0, [sp]
movs r0, #3
movs r1, #0
bl BitFill
movs r0, #0x80
lsls r0, r0, #0x13
ldr r7, lbl_0807c7a0 @ =sNonGameplayRamPointer
ldr r3, [r7]
movs r4, #0
movs r1, #0
mov r8, r1
mov r2, r8
strh r2, [r3]
strh r2, [r0]
ldr r2, lbl_0807c7a4 @ =0x04000054
ldr r1, lbl_0807c7a8 @ =gWrittenToBLDY_NonGameplay
movs r0, #0x10
strh r0, [r1]
strh r0, [r2]
ldr r1, lbl_0807c7ac @ =0x04000050
movs r0, #0xff
strh r0, [r3, #2]
strh r0, [r1]
ldr r0, lbl_0807c7b0 @ =gNextOamSlot
strb r4, [r0]
bl ClearGfxRam
bl ResetFreeOAM
ldr r1, lbl_0807c7b4 @ =gOamXOffset_NonGameplay
ldr r0, lbl_0807c7b8 @ =gOamYOffset_NonGameplay
strb r4, [r0]
strb r4, [r1]
ldr r0, lbl_0807c7bc @ =gSramErrorFlag
strb r4, [r0]
ldr r0, lbl_0807c7c0 @ =gDebugFlag
strb r4, [r0]
ldr r6, lbl_0807c7c4 @ =sEwramPointer
ldr r2, [r6]
movs r3, #0x80
lsls r3, r3, #5
adds r2, r2, r3
movs r0, #0x80
lsls r0, r0, #4
mov sb, r0
movs r5, #0x10
str r5, [sp]
movs r0, #3
movs r1, #0
mov r3, sb
bl BitFill
bl sub_080756c0
bl sub_0807c5a4
ldr r0, [r7]
ldr r2, lbl_0807c7c8 @ =gMostRecentSaveFile
ldrb r1, [r2]
adds r0, #0x24
strb r1, [r0]
ldr r0, [r7]
ldrb r1, [r2]
adds r0, #0x25
strb r1, [r0]
ldr r0, [r7]
ldrb r1, [r2]
adds r0, #0x26
strb r1, [r0]
ldr r0, [r7]
ldrb r1, [r2]
adds r0, #0x27
strb r1, [r0]
ldr r0, [r7]
ldrb r1, [r2]
adds r0, #0x28
strb r1, [r0]
ldr r0, [r7]
ldrb r1, [r2]
adds r0, #0x3f
strb r1, [r0]
ldr r1, lbl_0807c7cc @ =0x08454818
movs r4, #0xa0
lsls r4, r4, #0x13
str r5, [sp]
movs r0, #3
adds r2, r4, #0
movs r3, #0xe0
bl DMATransfer
ldr r1, lbl_0807c7d0 @ =0x084548f8
ldr r2, lbl_0807c7d4 @ =0x050001c0
str r5, [sp]
movs r0, #3
movs r3, #0x40
bl DMATransfer
ldr r1, lbl_0807c7d8 @ =0x08454938
ldr r2, lbl_0807c7dc @ =0x05000200
str r5, [sp]
movs r0, #3
movs r3, #0xc0
bl DMATransfer
mov r1, r8
strh r1, [r4]
ldr r0, lbl_0807c7e0 @ =0x08458e14
ldr r4, lbl_0807c7e4 @ =0x06000400
adds r1, r4, #0
bl CallLZ77UncompVRAM
ldr r0, lbl_0807c7e8 @ =0x08455f70
ldr r1, lbl_0807c7ec @ =0x06008000
bl CallLZ77UncompVRAM
ldr r0, lbl_0807c7f0 @ =0x0845c0f4
ldr r1, lbl_0807c7f4 @ =0x06010000
bl CallLZ77UncompVRAM
str r5, [sp]
movs r0, #3
movs r1, #0
adds r2, r4, #0
mov r3, sb
bl BitFill
ldr r1, lbl_0807c7f8 @ =0x08760b24
ldr r0, lbl_0807c7fc @ =gLanguage
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #2
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
ldr r1, lbl_0807c800 @ =0x06000c00
bl CallLZ77UncompVRAM
ldr r0, lbl_0807c804 @ =0x0845dbdc
ldr r1, lbl_0807c808 @ =0x0600f800
bl CallLZ77UncompVRAM
ldr r0, lbl_0807c80c @ =0x0845e19c
ldr r1, [r6]
add r1, sb
bl CallLZ77UncompWRAM
ldr r0, lbl_0807c810 @ =0x0845e6dc
ldr r1, [r6]
movs r2, #0xa0
lsls r2, r2, #6
adds r1, r1, r2
bl CallLZ77UncompWRAM
ldr r0, lbl_0807c814 @ =0x0845ea80
ldr r1, [r6]
movs r3, #0xc0
lsls r3, r3, #5
adds r1, r1, r3
bl CallLZ77UncompWRAM
ldr r0, lbl_0807c818 @ =0x0845ee24
ldr r1, [r6]
movs r2, #0x80
lsls r2, r2, #6
adds r1, r1, r2
bl CallLZ77UncompWRAM
bl sub_08079fb8
bl copy_time_attack_time
bl display_save_file_info
ldr r1, [r6]
add r1, sb
ldr r2, lbl_0807c81c @ =0x0600d800
str r5, [sp]
movs r0, #3
mov r3, sb
bl DMATransfer
bl sub_08074c08
bl sub_08078228
ldr r3, lbl_0807c820 @ =gGameModeSub1
movs r0, #2
strh r0, [r3]
ldr r1, lbl_0807c824 @ =gSaveFilesInfo
ldrb r0, [r1, #1]
cmp r0, #0
bne lbl_0807c78c
ldrb r0, [r1, #0x19]
cmp r0, #0
bne lbl_0807c78c
adds r0, r1, #0
adds r0, #0x31
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807c828
lbl_0807c78c:
ldr r0, lbl_0807c7a0 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x3e
movs r1, #4
b lbl_0807c872
.align 2, 0
lbl_0807c798: .4byte sub_0807cb20
lbl_0807c79c: .4byte gNonGameplayRAM
lbl_0807c7a0: .4byte sNonGameplayRamPointer
lbl_0807c7a4: .4byte 0x04000054
lbl_0807c7a8: .4byte gWrittenToBLDY_NonGameplay
lbl_0807c7ac: .4byte 0x04000050
lbl_0807c7b0: .4byte gNextOamSlot
lbl_0807c7b4: .4byte gOamXOffset_NonGameplay
lbl_0807c7b8: .4byte gOamYOffset_NonGameplay
lbl_0807c7bc: .4byte gSramErrorFlag
lbl_0807c7c0: .4byte gDebugFlag
lbl_0807c7c4: .4byte sEwramPointer
lbl_0807c7c8: .4byte gMostRecentSaveFile
lbl_0807c7cc: .4byte 0x08454818
lbl_0807c7d0: .4byte 0x084548f8
lbl_0807c7d4: .4byte 0x050001c0
lbl_0807c7d8: .4byte 0x08454938
lbl_0807c7dc: .4byte 0x05000200
lbl_0807c7e0: .4byte 0x08458e14
lbl_0807c7e4: .4byte 0x06000400
lbl_0807c7e8: .4byte 0x08455f70
lbl_0807c7ec: .4byte 0x06008000
lbl_0807c7f0: .4byte 0x0845c0f4
lbl_0807c7f4: .4byte 0x06010000
lbl_0807c7f8: .4byte 0x08760b24
lbl_0807c7fc: .4byte gLanguage
lbl_0807c800: .4byte 0x06000c00
lbl_0807c804: .4byte 0x0845dbdc
lbl_0807c808: .4byte 0x0600f800
lbl_0807c80c: .4byte 0x0845e19c
lbl_0807c810: .4byte 0x0845e6dc
lbl_0807c814: .4byte 0x0845ea80
lbl_0807c818: .4byte 0x0845ee24
lbl_0807c81c: .4byte 0x0600d800
lbl_0807c820: .4byte gGameModeSub1
lbl_0807c824: .4byte gSaveFilesInfo
lbl_0807c828:
ldr r0, [r7]
ldr r2, lbl_0807c858 @ =gOptionsOptionSelected
movs r1, #0
ldrsb r1, [r2, r1]
adds r0, #0x5c
adds r0, r0, r1
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807c85c
ldrb r0, [r2]
lsls r0, r0, #0x18
cmp r0, #0
ble lbl_0807c85c
lsrs r0, r0, #0x18
cmp r0, #6
bhi lbl_0807c85c
movs r0, #0xa
strh r0, [r3]
bl sub_0807b008
ldr r0, [r7]
adds r0, #0x3e
movs r1, #1
b lbl_0807c872
.align 2, 0
lbl_0807c858: .4byte gOptionsOptionSelected
lbl_0807c85c:
movs r0, #9
movs r1, #2
bl PlayMusic
ldr r1, lbl_0807c968 @ =gOptionsOptionSelected
movs r0, #0
strb r0, [r1]
ldr r0, lbl_0807c96c @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x3e
movs r1, #0
lbl_0807c872:
strb r1, [r0]
ldr r2, lbl_0807c970 @ =gBG0HOFS_NonGameplay
ldr r0, lbl_0807c974 @ =gBG0VOFS_NonGameplay
movs r3, #0x80
lsls r3, r3, #4
adds r1, r3, #0
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_0807c978 @ =gBG1HOFS_NonGameplay
ldr r0, lbl_0807c97c @ =gBG1VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_0807c980 @ =gBG2HOFS_NonGameplay
ldr r0, lbl_0807c984 @ =gBG2VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r2, lbl_0807c988 @ =gBG3HOFS_NonGameplay
ldr r0, lbl_0807c98c @ =gBG3VOFS_NonGameplay
strh r1, [r0]
strh r1, [r2]
ldr r5, lbl_0807c96c @ =sNonGameplayRamPointer
ldr r2, [r5]
movs r6, #0
movs r3, #0
movs r0, #0xd0
lsls r0, r0, #5
strh r0, [r2]
ldr r0, lbl_0807c990 @ =0x00001f0b
strh r0, [r2, #0x14]
ldr r1, lbl_0807c994 @ =0x00001e02
strh r1, [r2, #0x16]
ldr r0, lbl_0807c998 @ =0x00001b01
strh r0, [r2, #0x18]
adds r0, #1
strh r0, [r2, #0x1a]
ldr r0, lbl_0807c99c @ =0x00001d01
strh r0, [r2, #0x1c]
movs r0, #0xe0
lsls r0, r0, #5
strh r0, [r2, #0x1e]
strh r1, [r2, #0x20]
ldr r0, lbl_0807c9a0 @ =0x04000008
strh r3, [r2, #4]
strh r3, [r0]
ldr r4, lbl_0807c9a4 @ =0x0400000a
ldrh r3, [r2, #0x18]
strh r3, [r2, #6]
ldr r1, lbl_0807c9a8 @ =0x0000ffff
adds r0, r1, #0
ands r0, r3
strh r0, [r4]
adds r4, #2
ldrh r3, [r2, #0x16]
strh r3, [r2, #8]
adds r0, r1, #0
ands r0, r3
strh r0, [r4]
ldr r3, lbl_0807c9ac @ =0x0400000e
ldrh r0, [r2, #0x14]
strh r0, [r2, #0xa]
ands r1, r0
strh r1, [r3]
ldr r0, lbl_0807c9b0 @ =0x08760b38
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x2c]
str r1, [r2, #0x30]
adds r2, #0x34
strb r6, [r2]
ldr r0, [r5]
adds r0, #0x35
movs r1, #0xff
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x36
movs r1, #1
rsbs r1, r1, #0
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x37
strb r1, [r0]
bl sub_080782ac
ldr r0, [r5]
adds r0, #0x24
ldrb r1, [r0]
movs r0, #0
bl sub_08078504
ldr r0, lbl_0807c9b4 @ =gGameModeSub1
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #2
bne lbl_0807c9b8
ldr r2, [r5]
adds r0, r2, #0
adds r0, #0x3e
ldrb r0, [r0]
cmp r0, #4
bne lbl_0807c9da
adds r2, #0xef
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
strb r0, [r2]
ldr r0, [r5]
adds r0, #0xfe
movs r1, #0xd
strb r1, [r0]
ldr r0, [r5]
movs r2, #0x87
lsls r2, r2, #1
adds r1, r0, r2
movs r0, #0xe
strb r0, [r1]
ldr r0, [r5]
movs r3, #0x8f
lsls r3, r3, #1
adds r1, r0, r3
movs r0, #0xf
strb r0, [r1]
b lbl_0807c9da
.align 2, 0
lbl_0807c968: .4byte gOptionsOptionSelected
lbl_0807c96c: .4byte sNonGameplayRamPointer
lbl_0807c970: .4byte gBG0HOFS_NonGameplay
lbl_0807c974: .4byte gBG0VOFS_NonGameplay
lbl_0807c978: .4byte gBG1HOFS_NonGameplay
lbl_0807c97c: .4byte gBG1VOFS_NonGameplay
lbl_0807c980: .4byte gBG2HOFS_NonGameplay
lbl_0807c984: .4byte gBG2VOFS_NonGameplay
lbl_0807c988: .4byte gBG3HOFS_NonGameplay
lbl_0807c98c: .4byte gBG3VOFS_NonGameplay
lbl_0807c990: .4byte 0x00001f0b
lbl_0807c994: .4byte 0x00001e02
lbl_0807c998: .4byte 0x00001b01
lbl_0807c99c: .4byte 0x00001d01
lbl_0807c9a0: .4byte 0x04000008
lbl_0807c9a4: .4byte 0x0400000a
lbl_0807c9a8: .4byte 0x0000ffff
lbl_0807c9ac: .4byte 0x0400000e
lbl_0807c9b0: .4byte 0x08760b38
lbl_0807c9b4: .4byte gGameModeSub1
lbl_0807c9b8:
bl sub_08079ecc
movs r0, #0
bl sub_08078b98
movs r0, #4
bl sub_08078b98
ldr r2, [r5]
ldrh r1, [r2]
ldr r0, lbl_0807ca14 @ =0x0000fdff
ands r0, r1
movs r3, #0xa0
lsls r3, r3, #5
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
lbl_0807c9da:
bl file_select_menu_process_oam
movs r0, #0
bl sub_0807c4b0
ldr r2, lbl_0807ca18 @ =0x04000054
ldr r1, lbl_0807ca1c @ =gWrittenToBLDY_NonGameplay
movs r0, #0
strh r0, [r1]
strh r0, [r2]
subs r2, #4
ldr r0, lbl_0807ca20 @ =sNonGameplayRamPointer
ldr r1, [r0]
movs r0, #0
strh r0, [r1, #2]
strh r0, [r2]
bl sub_0807ca28
ldr r0, lbl_0807ca24 @ =sub_0807ca28
bl CallbackSetVBlank
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807ca14: .4byte 0x0000fdff
lbl_0807ca18: .4byte 0x04000054
lbl_0807ca1c: .4byte gWrittenToBLDY_NonGameplay
lbl_0807ca20: .4byte sNonGameplayRamPointer
lbl_0807ca24: .4byte sub_0807ca28
thumb_func_start sub_0807ca28
sub_0807ca28: @ 0x0807ca28
push {lr}
ldr r0, lbl_0807cad8 @ =gIoTransferInfo
ldrb r0, [r0, #4]
cmp r0, #0
beq lbl_0807ca36
bl sub_0808a730
lbl_0807ca36:
ldr r1, lbl_0807cadc @ =0x040000d4
ldr r0, lbl_0807cae0 @ =gOamData
str r0, [r1]
movs r0, #0xe0
lsls r0, r0, #0x13
str r0, [r1, #4]
ldr r0, lbl_0807cae4 @ =0x84000100
str r0, [r1, #8]
ldr r0, [r1, #8]
subs r1, #0xc4
ldr r0, lbl_0807cae8 @ =gBG0HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807caec @ =gBG0VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807caf0 @ =gBG1HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807caf4 @ =gBG1VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807caf8 @ =gBG2HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807cafc @ =gBG2VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807cb00 @ =gBG3HOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
adds r1, #2
ldr r0, lbl_0807cb04 @ =gBG3VOFS_NonGameplay
ldrh r0, [r0]
lsrs r0, r0, #2
strh r0, [r1]
subs r1, #0x1e
ldr r0, lbl_0807cb08 @ =sNonGameplayRamPointer
ldr r2, [r0]
ldrh r0, [r2]
strh r0, [r1]
adds r1, #0x54
ldr r0, lbl_0807cb0c @ =gWrittenToBLDY_NonGameplay
ldrh r0, [r0]
strh r0, [r1]
ldr r3, lbl_0807cb10 @ =0x04000052
ldr r0, lbl_0807cb14 @ =gWrittenToBLDALPHA_H
ldrh r0, [r0]
lsls r0, r0, #8
ldr r1, lbl_0807cb18 @ =gWrittenToBLDALPHA_L
ldrh r1, [r1]
orrs r0, r1
strh r0, [r3]
ldr r1, lbl_0807cb1c @ =0x04000050
ldrh r0, [r2, #2]
strh r0, [r1]
subs r1, #0x48
ldrh r0, [r2, #4]
strh r0, [r1]
adds r1, #2
ldrh r0, [r2, #6]
strh r0, [r1]
adds r1, #2
ldrh r0, [r2, #8]
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
lbl_0807cad8: .4byte gIoTransferInfo
lbl_0807cadc: .4byte 0x040000d4
lbl_0807cae0: .4byte gOamData
lbl_0807cae4: .4byte 0x84000100
lbl_0807cae8: .4byte gBG0HOFS_NonGameplay
lbl_0807caec: .4byte gBG0VOFS_NonGameplay
lbl_0807caf0: .4byte gBG1HOFS_NonGameplay
lbl_0807caf4: .4byte gBG1VOFS_NonGameplay
lbl_0807caf8: .4byte gBG2HOFS_NonGameplay
lbl_0807cafc: .4byte gBG2VOFS_NonGameplay
lbl_0807cb00: .4byte gBG3HOFS_NonGameplay
lbl_0807cb04: .4byte gBG3VOFS_NonGameplay
lbl_0807cb08: .4byte sNonGameplayRamPointer
lbl_0807cb0c: .4byte gWrittenToBLDY_NonGameplay
lbl_0807cb10: .4byte 0x04000052
lbl_0807cb14: .4byte gWrittenToBLDALPHA_H
lbl_0807cb18: .4byte gWrittenToBLDALPHA_L
lbl_0807cb1c: .4byte 0x04000050
thumb_func_start sub_0807cb20
sub_0807cb20: @ 0x0807cb20
sub sp, #4
mov r1, sp
movs r0, #0
strb r0, [r1]
add sp, #4
bx lr
thumb_func_start display_save_file_info
display_save_file_info: @ 0x0807cb2c
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
movs r0, #0
bl display_save_file_health
movs r0, #0
bl sub_0807cdc4
ldr r4, lbl_0807cd48 @ =gSaveFilesInfo
adds r0, r4, #0
movs r1, #0
bl sub_0807cf98
movs r0, #1
bl display_save_file_health
movs r0, #1
bl sub_0807cdc4
adds r0, r4, #0
adds r0, #0x18
movs r1, #1
bl sub_0807cf98
movs r0, #2
bl display_save_file_health
movs r0, #2
bl sub_0807cdc4
adds r4, #0x30
adds r0, r4, #0
movs r1, #2
bl sub_0807cf98
bl sub_0807d0b0
ldr r5, lbl_0807cd4c @ =sEwramPointer
ldr r2, [r5]
movs r6, #0xc0
lsls r6, r6, #6
adds r2, r2, r6
movs r0, #0xc0
lsls r0, r0, #2
mov r8, r0
movs r4, #0x10
str r4, [sp]
movs r0, #3
movs r1, #0
mov r3, r8
bl BitFill
ldr r2, [r5]
movs r0, #0xcc
lsls r0, r0, #6
adds r2, r2, r0
str r4, [sp]
movs r0, #3
movs r1, #0
mov r3, r8
bl BitFill
ldr r2, [r5]
movs r0, #0xd8
lsls r0, r0, #6
adds r2, r2, r0
str r4, [sp]
movs r0, #3
movs r1, #0
mov r3, r8
bl BitFill
ldr r2, [r5]
movs r0, #0xc0
lsls r0, r0, #5
adds r1, r2, r0
adds r2, r2, r6
str r4, [sp]
movs r0, #3
movs r3, #0x80
lsls r3, r3, #2
bl DMATransfer
ldr r2, [r5]
movs r0, #0xd0
lsls r0, r0, #5
adds r1, r2, r0
movs r0, #0xcc
lsls r0, r0, #6
adds r2, r2, r0
str r4, [sp]
movs r0, #3
mov r3, r8
bl DMATransfer
ldr r2, [r5]
movs r0, #0xe8
lsls r0, r0, #5
adds r1, r2, r0
movs r0, #0xd8
lsls r0, r0, #6
adds r2, r2, r0
str r4, [sp]
movs r0, #3
mov r3, r8
bl DMATransfer
ldr r2, [r5]
movs r6, #0xe4
lsls r6, r6, #6
adds r2, r2, r6
str r4, [sp]
movs r0, #3
movs r1, #0
mov r3, r8
bl BitFill
ldr r2, [r5]
movs r0, #0xf0
lsls r0, r0, #6
mov sb, r0
add r2, sb
str r4, [sp]
movs r0, #3
movs r1, #0
mov r3, r8
bl BitFill
ldr r2, [r5]
movs r0, #0x80
lsls r0, r0, #6
adds r1, r2, r0
adds r2, r2, r6
movs r6, #0xa0
lsls r6, r6, #2
str r4, [sp]
movs r0, #3
adds r3, r6, #0
bl DMATransfer
ldr r2, [r5]
movs r0, #0x8a
lsls r0, r0, #6
adds r1, r2, r0
add r2, sb
str r4, [sp]
movs r0, #3
mov r3, r8
bl DMATransfer
ldr r2, [r5]
movs r0, #0xfc
lsls r0, r0, #6
mov sb, r0
add r2, sb
str r4, [sp]
movs r0, #3
movs r1, #0
mov r3, r8
bl BitFill
ldr r2, [r5]
movs r0, #0x84
lsls r0, r0, #7
mov sl, r0
add r2, sl
str r4, [sp]
movs r0, #3
movs r1, #0
mov r3, r8
bl BitFill
ldr r2, [r5]
movs r7, #0x8a
lsls r7, r7, #7
adds r2, r2, r7
str r4, [sp]
movs r0, #3
movs r1, #0
mov r3, r8
bl BitFill
ldr r2, [r5]
movs r0, #0xa0
lsls r0, r0, #6
adds r1, r2, r0
add r2, sb
str r4, [sp]
movs r0, #3
adds r3, r6, #0
bl DMATransfer
ldr r2, [r5]
movs r0, #0xaa
lsls r0, r0, #6
adds r1, r2, r0
add r2, sl
str r4, [sp]
movs r0, #3
adds r3, r6, #0
bl DMATransfer
ldr r2, [r5]
movs r0, #0xb4
lsls r0, r0, #6
adds r1, r2, r0
adds r2, r2, r7
str r4, [sp]
movs r0, #3
adds r3, r6, #0
bl DMATransfer
ldr r2, [r5]
movs r6, #0x90
lsls r6, r6, #7
adds r2, r2, r6
str r4, [sp]
movs r0, #3
movs r1, #0
mov r3, r8
bl BitFill
ldr r2, [r5]
movs r0, #0x96
lsls r0, r0, #6
adds r1, r2, r0
adds r2, r2, r6
str r4, [sp]
movs r0, #3
movs r3, #0x80
lsls r3, r3, #2
bl DMATransfer
ldr r2, [r5]
movs r0, #0xcc
lsls r0, r0, #6
adds r1, r2, r0
movs r0, #0x96
lsls r0, r0, #7
adds r2, r2, r0
str r4, [sp]
movs r0, #3
mov r3, r8
bl DMATransfer
ldr r2, [r5]
movs r0, #0xd8
lsls r0, r0, #6
adds r1, r2, r0
movs r0, #0x9c
lsls r0, r0, #7
adds r2, r2, r0
str r4, [sp]
movs r0, #3
mov r3, r8
bl DMATransfer
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807cd48: .4byte gSaveFilesInfo
lbl_0807cd4c: .4byte sEwramPointer
thumb_func_start display_save_file_health
display_save_file_health: @ 0x0807cd50
push {lr}
sub sp, #4
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
movs r3, #1
cmp r2, #0
beq lbl_0807cd66
movs r3, #3
cmp r2, #1
bne lbl_0807cd66
movs r3, #2
lbl_0807cd66:
ldr r0, lbl_0807cd98 @ =gSaveFilesInfo
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #3
adds r2, r1, r0
ldrb r0, [r2]
cmp r0, #0
bne lbl_0807cd7e
movs r0, #0x12
ldrsb r0, [r2, r0]
cmp r0, #0
beq lbl_0807cda0
lbl_0807cd7e:
ldrb r0, [r2, #1]
cmp r0, #0
bne lbl_0807cda0
ldr r0, lbl_0807cd9c @ =gEquipment
ldrh r1, [r2, #4]
strh r1, [r0, #6]
ldrh r1, [r2, #6]
strh r1, [r0]
adds r0, r3, #0
bl HUDDrawEnergy
b lbl_0807cdba
.align 2, 0
lbl_0807cd98: .4byte gSaveFilesInfo
lbl_0807cd9c: .4byte gEquipment
lbl_0807cda0:
subs r0, r3, #1
lsls r2, r0, #3
subs r2, r2, r0
lsls r2, r2, #5
ldr r0, lbl_0807cdc0 @ =0x06000020
adds r2, r2, r0
movs r0, #0x10
str r0, [sp]
movs r0, #3
movs r1, #0
movs r3, #0xe0
bl BitFill
lbl_0807cdba:
add sp, #4
pop {r0}
bx r0
.align 2, 0
lbl_0807cdc0: .4byte 0x06000020
thumb_func_start sub_0807cdc4
sub_0807cdc4: @ 0x0807cdc4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0xc
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
ldr r0, lbl_0807cf18 @ =sEwramPointer
ldr r0, [r0]
movs r1, #0x80
lsls r1, r1, #4
adds r7, r0, r1
movs r2, #1
cmp r3, #0
beq lbl_0807cdec
movs r2, #3
cmp r3, #1
bne lbl_0807cdec
movs r2, #2
lbl_0807cdec:
subs r1, r2, #1
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #6
adds r0, #0xdc
adds r7, r7, r0
ldr r1, lbl_0807cf1c @ =gSaveFilesInfo
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #3
adds r5, r0, r1
ldrb r0, [r5, #0x15]
movs r1, #0xa0
lsls r1, r1, #7
cmp r0, #0
beq lbl_0807ce10
movs r1, #0xc0
lsls r1, r1, #7
lbl_0807ce10:
adds r6, r1, #0
ldrb r0, [r5]
cmp r0, #0
bne lbl_0807ce1a
b lbl_0807cf20
lbl_0807ce1a:
ldrb r0, [r5, #1]
cmp r0, #0
beq lbl_0807ce22
b lbl_0807cf20
lbl_0807ce22:
ldrb r0, [r5, #0xd]
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
movs r3, #0xe6
lsls r3, r3, #1
mov sl, r3
mov r4, sl
adds r0, r2, r4
orrs r0, r6
strh r0, [r7]
adds r1, r7, #0
adds r1, #0x40
movs r0, #0xf6
lsls r0, r0, #1
mov sb, r0
mov r3, sb
adds r0, r2, r3
orrs r0, r6
strh r0, [r1]
ldrb r0, [r5, #0xd]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
adds r0, r2, r4
orrs r0, r6
strh r0, [r7, #2]
adds r1, r7, #0
adds r1, #0x42
mov r4, sb
adds r0, r2, r4
orrs r0, r6
strh r0, [r1]
movs r1, #0xe5
lsls r1, r1, #1
adds r0, r1, #0
mov r8, r6
mov r2, r8
orrs r2, r0
mov r8, r2
strh r2, [r7, #4]
adds r1, r7, #0
adds r1, #0x44
movs r3, #0xf5
lsls r3, r3, #1
adds r0, r3, #0
adds r4, r6, #0
orrs r4, r0
strh r4, [r1]
ldrb r0, [r5, #0xe]
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
mov r1, sl
adds r0, r2, r1
orrs r0, r6
strh r0, [r7, #6]
adds r1, r7, #0
adds r1, #0x46
mov r3, sb
adds r0, r2, r3
orrs r0, r6
strh r0, [r1]
ldrb r0, [r5, #0xe]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
mov r1, sl
adds r0, r2, r1
orrs r0, r6
strh r0, [r7, #8]
adds r1, r7, #0
adds r1, #0x48
mov r3, sb
adds r0, r2, r3
orrs r0, r6
strh r0, [r1]
mov r0, r8
strh r0, [r7, #0xa]
adds r0, r7, #0
adds r0, #0x4a
strh r4, [r0]
ldrb r0, [r5, #0xf]
movs r1, #0xa
bl __udivsi3
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
mov r1, sl
adds r0, r2, r1
orrs r0, r6
strh r0, [r7, #0xc]
adds r1, r7, #0
adds r1, #0x4c
mov r3, sb
adds r0, r2, r3
orrs r0, r6
strh r0, [r1]
ldrb r0, [r5, #0xf]
movs r1, #0xa
bl __umodsi3
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
mov r4, sl
adds r4, r2, r4
str r4, [sp]
orrs r4, r6
strh r4, [r7, #0xe]
adds r0, r7, #0
adds r0, #0x4e
add r2, sb
orrs r2, r6
strh r2, [r0]
b lbl_0807cf7e
.align 2, 0
lbl_0807cf18: .4byte sEwramPointer
lbl_0807cf1c: .4byte gSaveFilesInfo
lbl_0807cf20:
ldr r2, lbl_0807cf90 @ =0x000001cb
adds r0, r2, #0
adds r2, r6, #0
orrs r2, r0
strh r2, [r7]
adds r3, r7, #0
adds r3, #0x40
ldr r4, lbl_0807cf94 @ =0x000001eb
adds r0, r4, #0
adds r1, r6, #0
orrs r1, r0
strh r1, [r3]
strh r2, [r7, #2]
adds r0, r7, #0
adds r0, #0x42
strh r1, [r0]
movs r3, #0xe5
lsls r3, r3, #1
adds r0, r3, #0
adds r3, r6, #0
orrs r3, r0
strh r3, [r7, #4]
adds r4, r7, #0
adds r4, #0x44
str r4, [sp, #8]
movs r4, #0xf5
lsls r4, r4, #1
adds r0, r4, #0
orrs r6, r0
ldr r0, [sp, #8]
strh r6, [r0]
strh r2, [r7, #6]
adds r0, r7, #0
adds r0, #0x46
strh r1, [r0]
strh r2, [r7, #8]
adds r0, #2
strh r1, [r0]
strh r3, [r7, #0xa]
adds r0, #2
strh r6, [r0]
strh r2, [r7, #0xc]
adds r0, #2
strh r1, [r0]
strh r2, [r7, #0xe]
adds r0, #2
strh r1, [r0]
lbl_0807cf7e:
add sp, #0xc
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807cf90: .4byte 0x000001cb
lbl_0807cf94: .4byte 0x000001eb
thumb_func_start sub_0807cf98
sub_0807cf98: @ 0x0807cf98
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r1, #0
cmp r1, #2
bne lbl_0807cfaa
movs r1, #0xc0
b lbl_0807cfba
lbl_0807cfaa:
cmp r1, #1
bne lbl_0807cfb2
movs r1, #0x60
b lbl_0807cfba
lbl_0807cfb2:
cmp r0, #0
beq lbl_0807cfb8
b lbl_0807d0aa
lbl_0807cfb8:
movs r1, #0
lbl_0807cfba:
ldrb r3, [r5, #0x15]
movs r0, #0xa0
lsls r0, r0, #7
cmp r3, #0
beq lbl_0807cfc8
movs r0, #0xc0
lsls r0, r0, #7
lbl_0807cfc8:
adds r6, r0, #0
ldr r2, lbl_0807cff8 @ =sEwramPointer
ldr r0, [r2]
lsls r1, r1, #1
adds r0, r1, r0
ldr r7, lbl_0807cffc @ =0x000008cc
adds r4, r0, r7
ldrb r0, [r5]
adds r7, r2, #0
adds r2, r1, #0
cmp r0, #0
bne lbl_0807cfe8
movs r0, #0x12
ldrsb r0, [r5, r0]
cmp r0, #0
beq lbl_0807d028
lbl_0807cfe8:
ldrb r0, [r5, #1]
cmp r0, #0
bne lbl_0807d028
cmp r3, #0
beq lbl_0807d004
ldr r0, lbl_0807d000 @ =0x000001af
b lbl_0807d010
.align 2, 0
lbl_0807cff8: .4byte sEwramPointer
lbl_0807cffc: .4byte 0x000008cc
lbl_0807d000: .4byte 0x000001af
lbl_0807d004:
ldrb r1, [r5, #0x14]
lsls r0, r1, #2
adds r0, r0, r1
movs r1, #0xd0
lsls r1, r1, #1
adds r0, r0, r1
lbl_0807d010:
movs r3, #4
lbl_0807d012:
adds r1, r0, #0
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
orrs r1, r6
strh r1, [r4]
adds r4, #2
subs r3, #1
cmp r3, #0
bge lbl_0807d012
b lbl_0807d036
lbl_0807d028:
movs r0, #0
movs r3, #4
lbl_0807d02c:
strh r0, [r4]
adds r4, #2
subs r3, #1
cmp r3, #0
bge lbl_0807d02c
lbl_0807d036:
ldr r0, [r7]
adds r0, r2, r0
ldr r7, lbl_0807d04c @ =0x0000092c
adds r4, r0, r7
ldrb r0, [r5, #2]
cmp r0, #0xb
bls lbl_0807d050
movs r3, #1
rsbs r3, r3, #0
b lbl_0807d05a
.align 2, 0
lbl_0807d04c: .4byte 0x0000092c
lbl_0807d050:
ldr r1, lbl_0807d098 @ =0x08760b18
ldrb r0, [r5, #2]
adds r0, r0, r1
movs r3, #0
ldrsb r3, [r0, r3]
lbl_0807d05a:
ldrb r0, [r5]
cmp r0, #0
bne lbl_0807d068
movs r0, #0x12
ldrsb r0, [r5, r0]
cmp r0, #0
beq lbl_0807d09c
lbl_0807d068:
cmp r3, #0
blt lbl_0807d09c
ldrb r0, [r5, #1]
cmp r0, #0
bne lbl_0807d09c
lsls r0, r3, #1
adds r0, r0, r3
lsls r0, r0, #0x11
movs r1, #0xbb
lsls r1, r1, #0x11
adds r0, r0, r1
lsrs r0, r0, #0x10
movs r3, #5
lbl_0807d082:
adds r1, r0, #0
adds r0, r1, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
orrs r1, r6
strh r1, [r4]
adds r4, #2
subs r3, #1
cmp r3, #0
bge lbl_0807d082
b lbl_0807d0aa
.align 2, 0
lbl_0807d098: .4byte 0x08760b18
lbl_0807d09c:
movs r0, #0
movs r3, #5
lbl_0807d0a0:
strh r0, [r4]
adds r4, #2
subs r3, #1
cmp r3, #0
bge lbl_0807d0a0
lbl_0807d0aa:
pop {r4, r5, r6, r7}
pop {r0}
bx r0
thumb_func_start sub_0807d0b0
sub_0807d0b0: @ 0x0807d0b0
push {r4, r5, r6, lr}
ldr r2, lbl_0807d158 @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r0, #0x3b
movs r1, #0
strb r1, [r0]
ldr r1, lbl_0807d15c @ =gSaveFilesInfo
ldrb r0, [r1, #1]
adds r6, r2, #0
adds r3, r1, #0
cmp r0, #0
bne lbl_0807d0e2
ldrb r0, [r3]
cmp r0, #0
bne lbl_0807d0d6
movs r0, #0x12
ldrsb r0, [r3, r0]
cmp r0, #0
beq lbl_0807d0e2
lbl_0807d0d6:
ldr r0, [r6]
adds r0, #0x3b
ldrb r1, [r0]
movs r2, #1
orrs r1, r2
strb r1, [r0]
lbl_0807d0e2:
ldrb r0, [r3, #0x19]
cmp r0, #0
bne lbl_0807d108
ldrb r0, [r3, #0x18]
cmp r0, #0
bne lbl_0807d0fc
adds r0, r3, #0
adds r0, #0x2a
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_0807d108
lbl_0807d0fc:
ldr r0, [r6]
adds r0, #0x3b
ldrb r2, [r0]
movs r1, #2
orrs r1, r2
strb r1, [r0]
lbl_0807d108:
adds r0, r3, #0
adds r0, #0x31
ldrb r0, [r0]
cmp r0, #0
bne lbl_0807d136
adds r0, r3, #0
adds r0, #0x30
ldrb r0, [r0]
cmp r0, #0
bne lbl_0807d12a
adds r0, r3, #0
adds r0, #0x42
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_0807d136
lbl_0807d12a:
ldr r0, [r6]
adds r0, #0x3b
ldrb r2, [r0]
movs r1, #4
orrs r1, r2
strb r1, [r0]
lbl_0807d136:
ldr r0, lbl_0807d160 @ =sEwramPointer
ldr r0, [r0]
movs r1, #0xb4
lsls r1, r1, #4
adds r2, r0, r1
ldr r0, [r6]
adds r3, r0, #0
adds r3, #0x3b
ldrb r1, [r3]
cmp r1, #0
beq lbl_0807d164
movs r0, #0x18
orrs r0, r1
strb r0, [r3]
movs r4, #0
b lbl_0807d166
.align 2, 0
lbl_0807d158: .4byte sNonGameplayRamPointer
lbl_0807d15c: .4byte gSaveFilesInfo
lbl_0807d160: .4byte sEwramPointer
lbl_0807d164:
movs r4, #1
lbl_0807d166:
lsls r0, r4, #0x1c
lsrs r4, r0, #0x10
movs r3, #0
ldr r5, lbl_0807d198 @ =0x00000fff
lbl_0807d16e:
ldrh r0, [r2]
adds r1, r5, #0
ands r1, r0
orrs r1, r4
strh r1, [r2]
adds r2, #2
adds r0, r3, #1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #0x7f
bls lbl_0807d16e
ldr r0, [r6]
adds r0, #0x3b
ldrb r2, [r0]
movs r1, #0x20
orrs r1, r2
strb r1, [r0]
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
lbl_0807d198: .4byte 0x00000fff
thumb_func_start sub_0807d19c
sub_0807d19c: @ 0x0807d19c
push {r4, r5, lr}
adds r5, r1, #0
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
ldr r0, lbl_0807d1b8 @ =gChangedInput
ldrh r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq lbl_0807d1bc
movs r3, #1
rsbs r3, r3, #0
b lbl_0807d1ca
.align 2, 0
lbl_0807d1b8: .4byte gChangedInput
lbl_0807d1bc:
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne lbl_0807d1c8
movs r0, #0
b lbl_0807d228
lbl_0807d1c8:
movs r3, #1
lbl_0807d1ca:
ldrb r2, [r5]
ldr r0, lbl_0807d1e0 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0x3b
ldrb r1, [r1]
cmp r4, #0
bne lbl_0807d1e4
movs r0, #7
orrs r1, r0
b lbl_0807d206
.align 2, 0
lbl_0807d1e0: .4byte sNonGameplayRamPointer
lbl_0807d1e4:
cmp r4, #1
bne lbl_0807d1f2
movs r0, #7
ands r1, r0
b lbl_0807d206
lbl_0807d1ee:
movs r3, #0
b lbl_0807d224
lbl_0807d1f2:
cmp r4, #2
bne lbl_0807d206
adds r0, #0x26
movs r1, #1
ldrb r0, [r0]
lsls r1, r0
movs r0, #7
adds r4, r0, #0
bics r4, r1
adds r1, r4, #0
lbl_0807d206:
movs r4, #1
lbl_0807d208:
cmp r3, #0
beq lbl_0807d224
adds r0, r2, r3
cmp r0, #5
bhi lbl_0807d1ee
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
adds r0, r1, #0
asrs r0, r2
ands r0, r4
cmp r0, #0
beq lbl_0807d208
strb r2, [r5]
movs r3, #1
lbl_0807d224:
lsls r0, r3, #0x18
lsrs r0, r0, #0x18
lbl_0807d228:
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
thumb_func_start sub_0807d230
sub_0807d230: @ 0x0807d230
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, lbl_0807d258 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x3b
ldrb r1, [r0]
adds r3, r1, #0
ldrb r2, [r5]
adds r0, r1, #0
asrs r0, r2
movs r4, #1
ands r0, r4
cmp r0, #0
bne lbl_0807d274
adds r0, r1, #0
ands r0, r4
cmp r0, #0
beq lbl_0807d25c
movs r2, #0
b lbl_0807d272
.align 2, 0
lbl_0807d258: .4byte sNonGameplayRamPointer
lbl_0807d25c:
movs r0, #2
ands r1, r0
cmp r1, #0
beq lbl_0807d268
movs r2, #1
b lbl_0807d272
lbl_0807d268:
movs r0, #4
ands r3, r0
cmp r3, #0
beq lbl_0807d272
movs r2, #2
lbl_0807d272:
strb r2, [r5]
lbl_0807d274:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
thumb_func_start sub_0807d27c
sub_0807d27c: @ 0x0807d27c
push {r4, r5, r6, lr}
ldr r0, lbl_0807d298 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x3e
ldrb r0, [r0]
cmp r0, #6
bls lbl_0807d28c
b lbl_0807d576
lbl_0807d28c:
lsls r0, r0, #2
ldr r1, lbl_0807d29c @ =lbl_0807d2a0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807d298: .4byte sNonGameplayRamPointer
lbl_0807d29c: .4byte lbl_0807d2a0
lbl_0807d2a0: @ jump table
.4byte lbl_0807d2bc @ case 0
.4byte lbl_0807d42c @ case 1
.4byte lbl_0807d4e4 @ case 2
.4byte lbl_0807d504 @ case 3
.4byte lbl_0807d524 @ case 4
.4byte lbl_0807d544 @ case 5
.4byte lbl_0807d560 @ case 6
lbl_0807d2bc:
movs r4, #0
bl CheckForMaintainedInput
ldr r5, lbl_0807d2e0 @ =gChangedInput
ldrh r0, [r5]
cmp r0, #0
beq lbl_0807d300
ldr r0, lbl_0807d2e4 @ =sNonGameplayRamPointer
ldr r1, [r0]
adds r1, #0x3f
movs r0, #0
bl sub_0807d19c
lsls r0, r0, #0x18
cmp r0, #0
beq lbl_0807d2e8
movs r4, #1
b lbl_0807d306
.align 2, 0
lbl_0807d2e0: .4byte gChangedInput
lbl_0807d2e4: .4byte sNonGameplayRamPointer
lbl_0807d2e8:
ldrh r1, [r5]
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807d2f6
movs r4, #2
b lbl_0807d306
lbl_0807d2f6:
movs r0, #1
ands r0, r1
cmp r0, #0
beq lbl_0807d300
movs r4, #3
lbl_0807d300:
cmp r4, #0
bne lbl_0807d306
b lbl_0807d576
lbl_0807d306:
cmp r4, #1
bne lbl_0807d338
ldr r4, lbl_0807d32c @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x3f
ldrb r1, [r0]
movs r0, #1
bl sub_08078504
ldr r0, [r4]
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #2
bhi lbl_0807d330
movs r0, #2
bl sub_0807ef7c
b lbl_0807d576
.align 2, 0
lbl_0807d32c: .4byte sNonGameplayRamPointer
lbl_0807d330:
movs r0, #0
bl sub_0807ef7c
b lbl_0807d576
lbl_0807d338:
cmp r4, #2
bne lbl_0807d34c
movs r0, #0
bl FadeMusic
ldr r1, lbl_0807d348 @ =gGameModeSub2
movs r0, #3
b lbl_0807d554
.align 2, 0
lbl_0807d348: .4byte gGameModeSub2
lbl_0807d34c:
cmp r4, #3
beq lbl_0807d352
b lbl_0807d576
lbl_0807d352:
movs r4, #0
ldr r1, lbl_0807d36c @ =sNonGameplayRamPointer
ldr r0, [r1]
adds r0, #0x3f
ldrb r0, [r0]
adds r5, r1, #0
cmp r0, #5
bhi lbl_0807d404
lsls r0, r0, #2
ldr r1, lbl_0807d370 @ =lbl_0807d374
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807d36c: .4byte sNonGameplayRamPointer
lbl_0807d370: .4byte lbl_0807d374
lbl_0807d374: @ jump table
.4byte lbl_0807d38c @ case 0
.4byte lbl_0807d38c @ case 1
.4byte lbl_0807d38c @ case 2
.4byte lbl_0807d3a4 @ case 3
.4byte lbl_0807d3c4 @ case 4
.4byte lbl_0807d3e4 @ case 5
lbl_0807d38c:
movs r0, #3
bl sub_0807ef7c
movs r6, #5
movs r4, #1
ldr r0, lbl_0807d3a0 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x3e
strb r4, [r0]
b lbl_0807d404
.align 2, 0
lbl_0807d3a0: .4byte sNonGameplayRamPointer
lbl_0807d3a4:
ldr r0, [r5]
adds r0, #0x3b
ldrb r1, [r0]
movs r0, #8
ands r0, r1
cmp r0, #0
beq lbl_0807d404
movs r0, #1
bl sub_0807ef7c
movs r6, #2
movs r4, #1
ldr r0, [r5]
adds r0, #0x3e
strb r6, [r0]
b lbl_0807d404
lbl_0807d3c4:
ldr r0, [r5]
adds r0, #0x3b
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq lbl_0807d404
movs r0, #1
bl sub_0807ef7c
movs r6, #2
movs r4, #1
ldr r0, [r5]
adds r0, #0x3e
movs r1, #3
b lbl_0807d402
lbl_0807d3e4:
ldr r0, [r5]
adds r0, #0x3b
ldrb r1, [r0]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq lbl_0807d404
movs r0, #1
bl sub_0807ef7c
movs r6, #2
movs r4, #1
ldr r0, [r5]
adds r0, #0x3e
movs r1, #5
lbl_0807d402:
strb r1, [r0]
lbl_0807d404:
cmp r4, #0
bne lbl_0807d40a
b lbl_0807d576
lbl_0807d40a:
ldr r4, lbl_0807d428 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x3f
ldrb r1, [r0]
adds r0, r6, #0
bl sub_08078504
ldr r0, [r4]
adds r0, #0x40
movs r1, #0
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x42
strh r1, [r0]
b lbl_0807d576
.align 2, 0
lbl_0807d428: .4byte sNonGameplayRamPointer
lbl_0807d42c:
bl sub_0807d62c
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne lbl_0807d43a
b lbl_0807d576
lbl_0807d43a:
cmp r4, #2
bne lbl_0807d4cc
ldr r3, lbl_0807d4bc @ =sNonGameplayRamPointer
ldr r0, [r3]
adds r0, #0x3a
ldrb r0, [r0]
ldr r5, lbl_0807d4c0 @ =gSaveFilesInfo
ldr r4, lbl_0807d4c4 @ =gMostRecentSaveFile
cmp r0, #0
blt lbl_0807d496
cmp r0, #1
ble lbl_0807d496
cmp r0, #4
bgt lbl_0807d496
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r5
movs r1, #0
strb r1, [r0]
movs r0, #0
ldrsb r0, [r4, r0]
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r5
ldr r0, [r3]
adds r0, #0x32
ldrb r0, [r0]
strb r0, [r1, #0x14]
movs r1, #0
ldrsb r1, [r4, r1]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r5
movs r2, #0
ldr r0, [r3]
adds r0, #0x2f
ldrb r0, [r0]
cmp r0, #2
bne lbl_0807d494
movs r2, #1
lbl_0807d494:
strb r2, [r1, #0x15]
lbl_0807d496:
ldr r2, lbl_0807d4c8 @ =gGameModeSub2
movs r0, #0
ldrsb r0, [r4, r0]
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #3
adds r1, r1, r5
ldrb r0, [r1]
movs r1, #2
cmp r0, #0
beq lbl_0807d4ae
movs r1, #1
lbl_0807d4ae:
strb r1, [r2]
movs r0, #0x14
bl FadeMusic
movs r0, #1
b lbl_0807d57c
.align 2, 0
lbl_0807d4bc: .4byte sNonGameplayRamPointer
lbl_0807d4c0: .4byte gSaveFilesInfo
lbl_0807d4c4: .4byte gMostRecentSaveFile
lbl_0807d4c8: .4byte gGameModeSub2
lbl_0807d4cc:
ldr r4, lbl_0807d4e0 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x3f
ldrb r1, [r0]
movs r0, #6
bl sub_08078504
ldr r0, [r4]
b lbl_0807d570
.align 2, 0
lbl_0807d4e0: .4byte sNonGameplayRamPointer
lbl_0807d4e4:
bl sub_08079210
cmp r0, #0
beq lbl_0807d576
ldr r4, lbl_0807d500 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x3f
ldrb r1, [r0]
movs r0, #0
bl sub_08078504
ldr r0, [r4]
b lbl_0807d570
.align 2, 0
lbl_0807d500: .4byte sNonGameplayRamPointer
lbl_0807d504:
bl sub_080797a0
cmp r0, #0
beq lbl_0807d576
ldr r4, lbl_0807d520 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x3f
ldrb r1, [r0]
movs r0, #0
bl sub_08078504
ldr r0, [r4]
b lbl_0807d570
.align 2, 0
lbl_0807d520: .4byte sNonGameplayRamPointer
lbl_0807d524:
bl sub_08079b50
cmp r0, #0
beq lbl_0807d576
ldr r4, lbl_0807d540 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x3f
ldrb r1, [r0]
movs r0, #0
bl sub_08078504
ldr r0, [r4]
b lbl_0807d570
.align 2, 0
lbl_0807d540: .4byte sNonGameplayRamPointer
lbl_0807d544:
movs r0, #0
bl sub_0807a2bc
lsls r0, r0, #0x18
cmp r0, #0
beq lbl_0807d576
ldr r1, lbl_0807d55c @ =gGameModeSub2
movs r0, #0
lbl_0807d554:
strb r0, [r1]
movs r0, #1
b lbl_0807d57c
.align 2, 0
lbl_0807d55c: .4byte gGameModeSub2
lbl_0807d560:
movs r0, #1
bl sub_0807a2bc
lsls r0, r0, #0x18
cmp r0, #0
beq lbl_0807d576
ldr r0, lbl_0807d584 @ =sNonGameplayRamPointer
ldr r0, [r0]
lbl_0807d570:
adds r0, #0x3e
movs r1, #0
strb r1, [r0]
lbl_0807d576:
bl sub_08078da0
movs r0, #0
lbl_0807d57c:
pop {r4, r5, r6}
pop {r1}
bx r1
.align 2, 0
lbl_0807d584: .4byte sNonGameplayRamPointer
thumb_func_start check_inputting_time_attack_code
check_inputting_time_attack_code: @ 0x0807d588
push {r4, r5, r6, r7, lr}
ldr r0, lbl_0807d5ac @ =gChangedInput
ldrh r2, [r0]
adds r6, r2, #0
ldr r5, lbl_0807d5b0 @ =sNonGameplayRamPointer
ldr r1, [r5]
adds r4, r1, #0
adds r4, #0x6c
ldrb r0, [r4]
cmp r0, #0
bne lbl_0807d5d6
adds r1, #0x6e
ldrh r0, [r1]
cmp r0, #0
beq lbl_0807d5b4
subs r0, #1
strh r0, [r1]
b lbl_0807d622
.align 2, 0
lbl_0807d5ac: .4byte gChangedInput
lbl_0807d5b0: .4byte sNonGameplayRamPointer
lbl_0807d5b4:
ldr r0, lbl_0807d5c8 @ =0x0845f452
ldrh r0, [r0]
cmp r2, r0
bne lbl_0807d5cc
movs r1, #1
strb r1, [r4]
ldr r0, [r5]
adds r0, #0x6d
strb r1, [r0]
b lbl_0807d622
.align 2, 0
lbl_0807d5c8: .4byte 0x0845f452
lbl_0807d5cc:
cmp r2, #0
beq lbl_0807d622
movs r0, #0x1e
strh r0, [r1]
b lbl_0807d622
lbl_0807d5d6:
ldr r7, lbl_0807d604 @ =0x0845f452
adds r3, r1, #0
adds r3, #0x6d
ldrb r1, [r3]
lsls r0, r1, #1
adds r0, r0, r7
ldrh r0, [r0]
cmp r2, r0
bne lbl_0807d60c
adds r0, r1, #1
strb r0, [r3]
ldr r0, [r5]
adds r0, #0x6d
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r7
ldrh r1, [r0]
ldr r0, lbl_0807d608 @ =0x0000ffff
cmp r1, r0
bne lbl_0807d622
movs r0, #1
b lbl_0807d624
.align 2, 0
lbl_0807d604: .4byte 0x0845f452
lbl_0807d608: .4byte 0x0000ffff
lbl_0807d60c:
cmp r6, #0
beq lbl_0807d622
movs r1, #0
strb r1, [r4]
ldr r0, [r5]
adds r0, #0x6d
strb r1, [r0]
ldr r0, [r5]
adds r0, #0x6e
movs r1, #0x1e
strh r1, [r0]
lbl_0807d622:
movs r0, #0
lbl_0807d624:
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
thumb_func_start sub_0807d62c
sub_0807d62c: @ 0x0807d62c
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
movs r0, #0
mov sl, r0
ldr r2, lbl_0807d664 @ =sNonGameplayRamPointer
ldr r1, [r2]
adds r3, r1, #0
adds r3, #0x42
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
adds r1, #0x40
ldrb r0, [r1]
adds r7, r2, #0
cmp r0, #0x2c
bls lbl_0807d658
bl lbl_0807e3e6
lbl_0807d658:
lsls r0, r0, #2
ldr r1, lbl_0807d668 @ =lbl_0807d66c
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807d664: .4byte sNonGameplayRamPointer
lbl_0807d668: .4byte lbl_0807d66c
lbl_0807d66c: @ jump table
.4byte lbl_0807d720 @ case 0
.4byte lbl_0807d854 @ case 1
.4byte lbl_0807d8ec @ case 2
.4byte lbl_0807d922 @ case 3
.4byte lbl_0807d978 @ case 4
.4byte lbl_0807d986 @ case 5
.4byte lbl_0807d9a4 @ case 6
.4byte lbl_0807d9c8 @ case 7
.4byte lbl_0807daa8 @ case 8
.4byte lbl_0807db0a @ case 9
.4byte lbl_0807db28 @ case 10
.4byte lbl_0807db50 @ case 11
.4byte lbl_0807dc1a @ case 12
.4byte lbl_0807dc44 @ case 13
.4byte lbl_0807dc66 @ case 14
.4byte lbl_0807e3b6 @ case 15
.4byte lbl_0807dc7c @ case 16
.4byte lbl_0807dcac @ case 17
.4byte lbl_0807dd78 @ case 18
.4byte lbl_0807ddc4 @ case 19
.4byte lbl_0807dde0 @ case 20
.4byte lbl_0807ddfc @ case 21
.4byte lbl_0807de56 @ case 22
.4byte lbl_0807de68 @ case 23
.4byte lbl_0807de8c @ case 24
.4byte lbl_0807df38 @ case 25
.4byte lbl_0807df78 @ case 26
.4byte lbl_0807dfb0 @ case 27
.4byte lbl_0807dfdc @ case 28
.4byte lbl_0807dfec @ case 29
.4byte lbl_0807e010 @ case 30
.4byte lbl_0807e0da @ case 31
.4byte lbl_0807e3e6 @ case 32
.4byte lbl_0807e3e6 @ case 33
.4byte lbl_0807e11e @ case 34
.4byte lbl_0807e132 @ case 35
.4byte lbl_0807e164 @ case 36
.4byte lbl_0807e190 @ case 37
.4byte lbl_0807e1a4 @ case 38
.4byte lbl_0807e26a @ case 39
.4byte lbl_0807e288 @ case 40
.4byte lbl_0807e2c4 @ case 41
.4byte lbl_0807e2ec @ case 42
.4byte lbl_0807e34c @ case 43
.4byte lbl_0807e3d8 @ case 44
lbl_0807d720:
ldr r2, lbl_0807d824 @ =gMostRecentSaveFile
ldr r0, [r7]
adds r0, #0x3f
ldrb r1, [r0]
strb r1, [r2]
ldrb r0, [r0]
adds r0, #1
lsls r4, r0, #1
adds r4, r4, r0
ldr r5, lbl_0807d828 @ =sEwramPointer
ldr r2, [r5]
movs r1, #0x86
lsls r1, r1, #5
adds r2, r2, r1
movs r3, #0x90
lsls r3, r3, #2
movs r0, #0x10
mov r8, r0
str r0, [sp]
movs r0, #3
movs r1, #0
bl BitFill
lsls r4, r4, #6
movs r1, #0x80
lsls r1, r1, #4
mov sb, r1
adds r1, r4, r1
ldr r2, [r5]
adds r1, r2, r1
movs r6, #0x80
lsls r6, r6, #5
adds r4, r4, r6
adds r2, r2, r4
mov r3, r8
str r3, [sp]
movs r0, #3
movs r3, #0xc0
bl DMATransfer
ldr r1, [r5]
adds r1, r1, r6
ldr r2, lbl_0807d82c @ =0x0600f000
mov r5, r8
str r5, [sp]
movs r0, #3
mov r3, sb
bl DMATransfer
ldr r2, [r7]
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #3
adds r0, r3, #0
movs r4, #0
movs r3, #0
orrs r0, r1
movs r5, #0x80
lsls r5, r5, #6
adds r1, r5, #0
orrs r0, r1
strh r0, [r2]
ldr r1, lbl_0807d830 @ =0x04000040
ldr r5, lbl_0807d834 @ =0x000046aa
adds r0, r5, #0
strh r0, [r1]
adds r1, #4
movs r0, #0x17
strh r0, [r1]
adds r1, #6
movs r0, #0x3f
strh r0, [r1]
subs r1, #2
movs r0, #0x1f
strb r0, [r1]
ldr r0, lbl_0807d838 @ =gWrittenToBLDALPHA_H
strh r3, [r0]
ldr r0, lbl_0807d83c @ =gWrittenToBLDALPHA_L
mov r1, r8
strh r1, [r0]
ldr r0, lbl_0807d840 @ =0x00003f42
strh r0, [r2, #2]
adds r2, #0x3a
strb r4, [r2]
ldr r2, [r7]
ldr r0, lbl_0807d844 @ =0x08760b38
ldr r1, [r0, #4]
ldr r0, [r0]
str r0, [r2, #0x2c]
str r1, [r2, #0x30]
adds r0, r2, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807d7ea
ldr r3, lbl_0807d848 @ =0x0000013f
adds r2, r2, r3
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
strb r0, [r2]
lbl_0807d7ea:
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #1
beq lbl_0807d802
ldr r5, lbl_0807d84c @ =0x0000014f
adds r2, r1, r5
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
strb r0, [r2]
lbl_0807d802:
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #2
bne lbl_0807d812
bl lbl_0807e3b6
lbl_0807d812:
ldr r0, lbl_0807d850 @ =0x0000015f
adds r2, r1, r0
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
strb r0, [r2]
bl lbl_0807e3b6
.align 2, 0
lbl_0807d824: .4byte gMostRecentSaveFile
lbl_0807d828: .4byte sEwramPointer
lbl_0807d82c: .4byte 0x0600f000
lbl_0807d830: .4byte 0x04000040
lbl_0807d834: .4byte 0x000046aa
lbl_0807d838: .4byte gWrittenToBLDALPHA_H
lbl_0807d83c: .4byte gWrittenToBLDALPHA_L
lbl_0807d840: .4byte 0x00003f42
lbl_0807d844: .4byte 0x08760b38
lbl_0807d848: .4byte 0x0000013f
lbl_0807d84c: .4byte 0x0000014f
lbl_0807d850: .4byte 0x0000015f
lbl_0807d854:
movs r5, #1
ldr r1, lbl_0807d86c @ =gWrittenToBLDALPHA_L
ldrh r0, [r1]
cmp r0, #0
beq lbl_0807d872
movs r5, #0
subs r0, #2
cmp r0, #0
bge lbl_0807d870
strh r5, [r1]
b lbl_0807d872
.align 2, 0
lbl_0807d86c: .4byte gWrittenToBLDALPHA_L
lbl_0807d870:
strh r0, [r1]
lbl_0807d872:
ldr r1, lbl_0807d8e0 @ =gWrittenToBLDALPHA_H
ldrh r0, [r1]
cmp r0, #0x10
beq lbl_0807d886
movs r5, #0
adds r0, #2
cmp r0, #0x10
ble lbl_0807d884
movs r0, #0x10
lbl_0807d884:
strh r0, [r1]
lbl_0807d886:
cmp r5, #0
bne lbl_0807d88e
bl lbl_0807e3e6
lbl_0807d88e:
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807d8a6
adds r0, r1, #0
adds r0, #0xff
ldrb r1, [r0]
movs r2, #0x20
orrs r1, r2
strb r1, [r0]
lbl_0807d8a6:
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #1
beq lbl_0807d8be
ldr r3, lbl_0807d8e4 @ =0x0000010f
adds r2, r1, r3
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
strb r0, [r2]
lbl_0807d8be:
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x3f
ldrb r0, [r0]
cmp r0, #2
bne lbl_0807d8ce
bl lbl_0807e3b6
lbl_0807d8ce:
ldr r5, lbl_0807d8e8 @ =0x0000011f
adds r2, r1, r5
ldrb r0, [r2]
movs r1, #0x20
orrs r0, r1
strb r0, [r2]
bl lbl_0807e3b6
.align 2, 0
lbl_0807d8e0: .4byte gWrittenToBLDALPHA_H
lbl_0807d8e4: .4byte 0x0000010f
lbl_0807d8e8: .4byte 0x0000011f
lbl_0807d8ec:
ldr r2, [r7]
adds r0, r2, #0
adds r0, #0x3f
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
movs r1, #0x80
lsls r1, r1, #4
adds r5, r0, r1
ldr r1, lbl_0807d918 @ =gBG2VOFS_NonGameplay
ldrh r0, [r1]
cmp r5, r0
beq lbl_0807d91c
adds r0, #0xc
cmp r0, r5
ble lbl_0807d912
bl sub_0807e2fe
lbl_0807d912:
bl lbl_0807e30c
.align 2, 0
lbl_0807d918: .4byte gBG2VOFS_NonGameplay
lbl_0807d91c:
adds r1, r2, #0
bl lbl_0807e3b8
lbl_0807d922:
ldr r0, lbl_0807d96c @ =sEwramPointer
ldr r1, [r0]
movs r2, #0x80
lsls r2, r2, #4
adds r1, r1, r2
ldr r0, [r7]
adds r0, #0x3f
ldrb r0, [r0]
lsls r2, r0, #1
adds r2, r2, r0
lsls r2, r2, #6
ldr r3, lbl_0807d970 @ =0x0600f000
adds r2, r2, r3
movs r0, #0x10
str r0, [sp]
movs r0, #3
movs r3, #0xc0
bl DMATransfer
ldr r2, [r7]
ldrh r1, [r2]
ldr r0, lbl_0807d974 @ =0x0000dfff
ands r0, r1
strh r0, [r2]
movs r0, #0
bl sub_0807e6d8
movs r0, #0
movs r1, #0
bl sub_080790cc
ldr r0, [r7]
adds r0, #0x40
movs r1, #4
strb r1, [r0]
bl lbl_0807e3e6
.align 2, 0
lbl_0807d96c: .4byte sEwramPointer
lbl_0807d970: .4byte 0x0600f000
lbl_0807d974: .4byte 0x0000dfff
lbl_0807d978:
movs r0, #1
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807d986
bl lbl_0807e3e6
lbl_0807d986:
ldr r4, lbl_0807d9a0 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x2e
ldrb r1, [r0]
movs r0, #0
bl sub_0807e3fc
ldr r0, [r4]
adds r0, #0x40
movs r1, #6
strb r1, [r0]
bl lbl_0807e3e6
.align 2, 0
lbl_0807d9a0: .4byte sNonGameplayRamPointer
lbl_0807d9a4:
ldr r0, [r7]
adds r0, #0x6c
movs r1, #0
strb r1, [r0]
ldr r0, [r7]
adds r0, #0x6d
strb r1, [r0]
ldr r0, [r7]
adds r3, r0, #0
adds r3, #0x6e
movs r2, #0
strh r1, [r3]
adds r0, #0x70
strb r2, [r0]
ldr r0, [r7]
adds r0, #0x40
movs r1, #7
strb r1, [r0]
lbl_0807d9c8:
movs r5, #0xff
ldr r0, lbl_0807da18 @ =gChangedInput
ldrh r1, [r0]
movs r2, #1
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq lbl_0807da2e
movs r5, #0x80
movs r0, #1
bl sub_0807ef7c
ldr r2, lbl_0807da1c @ =gSaveFilesInfo
ldr r4, lbl_0807da20 @ =sNonGameplayRamPointer
ldr r3, [r4]
adds r0, r3, #0
adds r0, #0x3f
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r2
movs r2, #0x11
ldrsb r2, [r1, r2]
cmp r2, #0
bne lbl_0807da24
ldrb r0, [r1]
cmp r0, #0
bne lbl_0807da0a
movs r0, #0x12
ldrsb r0, [r1, r0]
cmp r0, #0
beq lbl_0807da24
lbl_0807da0a:
adds r0, r3, #0
adds r0, #0x3a
strb r2, [r0]
ldr r0, [r4]
adds r0, #0x40
movs r1, #0x22
b lbl_0807da84
.align 2, 0
lbl_0807da18: .4byte gChangedInput
lbl_0807da1c: .4byte gSaveFilesInfo
lbl_0807da20: .4byte sNonGameplayRamPointer
lbl_0807da24:
adds r1, r3, #0
adds r1, #0x40
movs r0, #8
strb r0, [r1]
b lbl_0807da86
lbl_0807da2e:
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807da40
movs r5, #0x81
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x27
b lbl_0807da84
lbl_0807da40:
ldr r0, lbl_0807daa0 @ =gFileScreenOptionsUnlocked
ldr r0, [r0, #8]
ands r0, r2
cmp r0, #0
beq lbl_0807da86
ldr r2, lbl_0807daa4 @ =gSaveFilesInfo
ldr r0, [r7]
adds r0, #0x3f
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #0x11]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_0807da86
bl check_inputting_time_attack_code
cmp r0, #0
beq lbl_0807da86
movs r5, #0x80
ldr r0, [r7]
adds r0, #0x2f
movs r1, #2
strb r1, [r0]
ldr r0, [r7]
adds r0, #0x70
movs r1, #1
strb r1, [r0]
ldr r0, [r7]
adds r0, #0x40
movs r1, #8
lbl_0807da84:
strb r1, [r0]
lbl_0807da86:
adds r0, r5, #1
cmp r0, #0
bne lbl_0807da90
bl lbl_0807e3e6
lbl_0807da90:
lsls r1, r5, #0x18
lsrs r1, r1, #0x18
movs r0, #0
bl sub_0807e3fc
bl lbl_0807e3e6
.align 2, 0
lbl_0807daa0: .4byte gFileScreenOptionsUnlocked
lbl_0807daa4: .4byte gSaveFilesInfo
lbl_0807daa8:
ldr r2, lbl_0807dae0 @ =gSaveFilesInfo
ldr r3, [r7]
adds r0, r3, #0
adds r0, #0x3f
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, #0
bne lbl_0807dac8
movs r0, #0x12
ldrsb r0, [r1, r0]
cmp r0, #0
beq lbl_0807daf6
lbl_0807dac8:
ldrb r0, [r1, #0x15]
cmp r0, #0
bne lbl_0807dad8
adds r0, r3, #0
adds r0, #0x70
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807dae4
lbl_0807dad8:
adds r1, r3, #0
adds r1, #0x39
movs r0, #0x10
b lbl_0807daea
.align 2, 0
lbl_0807dae0: .4byte gSaveFilesInfo
lbl_0807dae4:
adds r1, r3, #0
adds r1, #0x39
movs r0, #0xf
lbl_0807daea:
strb r0, [r1]
ldr r0, [r7]
adds r0, #0x40
movs r1, #9
strb r1, [r0]
b lbl_0807dafe
lbl_0807daf6:
adds r1, r3, #0
adds r1, #0x40
movs r0, #0x15
strb r0, [r1]
lbl_0807dafe:
ldr r0, [r7]
adds r0, #0x42
movs r1, #0
strh r1, [r0]
bl lbl_0807e3e6
lbl_0807db0a:
ldr r0, [r7]
adds r0, #0x39
ldrb r1, [r0]
movs r0, #0
bl sub_080790cc
movs r0, #0
movs r1, #0x14
bl sub_080790cc
movs r0, #0x1d
bl sub_0807e6d8
bl lbl_0807e3b6
lbl_0807db28:
movs r0, #0x1e
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807db36
bl lbl_0807e3e6
lbl_0807db36:
ldr r4, lbl_0807db4c @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x2f
ldrb r1, [r0]
movs r0, #5
bl sub_0807e3fc
ldr r1, [r4]
bl lbl_0807e3b8
.align 2, 0
lbl_0807db4c: .4byte sNonGameplayRamPointer
lbl_0807db50:
movs r5, #0xff
ldr r0, lbl_0807db7c @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
beq lbl_0807dc02
movs r4, #1
ands r4, r1
cmp r4, #0
beq lbl_0807db80
movs r5, #0x80
ldr r0, [r7]
adds r0, #0x42
movs r1, #0
strh r1, [r0]
movs r0, #1
bl sub_0807ef7c
ldr r0, [r7]
adds r0, #0x40
movs r1, #0xd
strb r1, [r0]
b lbl_0807dc02
.align 2, 0
lbl_0807db7c: .4byte gChangedInput
lbl_0807db80:
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807dba8
movs r0, #0x1f
bl sub_0807e6d8
movs r5, #0x81
ldr r0, lbl_0807dba4 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0x42
strh r4, [r1]
adds r0, #0x40
movs r1, #0xc
strb r1, [r0]
b lbl_0807dc02
.align 2, 0
lbl_0807dba4: .4byte sNonGameplayRamPointer
lbl_0807dba8:
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq lbl_0807dbc0
ldr r0, [r7]
adds r1, r0, #0
adds r1, #0x2f
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807dc02
subs r0, #1
b lbl_0807dbde
lbl_0807dbc0:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq lbl_0807dc02
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x39
ldrb r0, [r0]
cmp r0, #0x10
bne lbl_0807dbec
adds r1, #0x2f
ldrb r0, [r1]
cmp r0, #1
bhi lbl_0807dc02
adds r0, #1
lbl_0807dbde:
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r0, #0
bl sub_0807ef7c
b lbl_0807dc02
lbl_0807dbec:
adds r1, #0x2f
ldrb r0, [r1]
cmp r0, #0
bne lbl_0807dc02
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r0, #0
bl sub_0807ef7c
lbl_0807dc02:
adds r0, r5, #1
cmp r0, #0
bne lbl_0807dc0c
bl lbl_0807e3e6
lbl_0807dc0c:
lsls r1, r5, #0x18
lsrs r1, r1, #0x18
movs r0, #5
bl sub_0807e3fc
bl lbl_0807e3e6
lbl_0807dc1a:
movs r0, #0x20
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807dc28
bl lbl_0807e3e6
lbl_0807dc28:
ldr r2, lbl_0807dc40 @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r1, r0, #0
adds r1, #0x2f
ldrb r0, [r1]
cmp r0, #2
bne lbl_0807dc3a
movs r0, #0
strb r0, [r1]
lbl_0807dc3a:
ldr r0, [r2]
b lbl_0807e20a
.align 2, 0
lbl_0807dc40: .4byte sNonGameplayRamPointer
lbl_0807dc44:
ldr r1, [r7]
adds r2, r1, #0
adds r2, #0x42
movs r0, #0
strh r0, [r2]
adds r0, r1, #0
adds r0, #0x2f
ldrb r0, [r0]
cmp r0, #0
bne lbl_0807dc5e
adds r1, #0x3a
movs r0, #1
b lbl_0807df94
lbl_0807dc5e:
adds r1, #0x40
movs r0, #0xe
strb r0, [r1]
b lbl_0807e3e6
lbl_0807dc66:
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0xa
bhi lbl_0807dc74
b lbl_0807e3e6
lbl_0807dc74:
adds r1, #0x40
movs r0, #0xf
strb r0, [r1]
b lbl_0807e3e6
lbl_0807dc7c:
movs r0, #0x22
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807dc88
b lbl_0807e3e6
lbl_0807dc88:
ldr r4, lbl_0807dca4 @ =sNonGameplayRamPointer
ldr r0, [r4]
ldr r1, lbl_0807dca8 @ =0x08760b38
ldrb r1, [r1, #4]
adds r0, #0x30
strb r1, [r0]
ldr r0, [r4]
adds r0, #0x30
ldrb r1, [r0]
movs r0, #6
bl sub_0807e3fc
ldr r1, [r4]
b lbl_0807e3b8
.align 2, 0
lbl_0807dca4: .4byte sNonGameplayRamPointer
lbl_0807dca8: .4byte 0x08760b38
lbl_0807dcac:
movs r5, #0xff
ldr r0, lbl_0807dcdc @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
beq lbl_0807dd64
movs r2, #1
ands r2, r1
cmp r2, #0
beq lbl_0807dd00
ldr r0, lbl_0807dce0 @ =sNonGameplayRamPointer
ldr r1, [r0]
adds r2, r1, #0
adds r2, #0x42
movs r0, #0
strh r0, [r2]
movs r5, #0x80
adds r1, #0x30
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807dce8
ldr r0, lbl_0807dce4 @ =0x00000209
bl SoundPlay
b lbl_0807dcee
.align 2, 0
lbl_0807dcdc: .4byte gChangedInput
lbl_0807dce0: .4byte sNonGameplayRamPointer
lbl_0807dce4: .4byte 0x00000209
lbl_0807dce8:
movs r0, #1
bl sub_0807ef7c
lbl_0807dcee:
ldr r0, lbl_0807dcfc @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x40
movs r1, #0x12
strb r1, [r0]
b lbl_0807dd64
.align 2, 0
lbl_0807dcfc: .4byte sNonGameplayRamPointer
lbl_0807dd00:
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807dd24
ldr r0, [r7]
adds r0, #0x42
strh r2, [r0]
movs r5, #0x81
ldr r0, lbl_0807dd20 @ =0x00000209
bl SoundPlay
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x13
strb r1, [r0]
b lbl_0807dd64
.align 2, 0
lbl_0807dd20: .4byte 0x00000209
lbl_0807dd24:
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq lbl_0807dd44
ldr r0, [r7]
adds r1, r0, #0
adds r1, #0x30
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807dd64
movs r5, #0
strb r5, [r1]
movs r0, #0
bl sub_0807ef7c
b lbl_0807dd64
lbl_0807dd44:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq lbl_0807dd64
ldr r0, [r7]
adds r1, r0, #0
adds r1, #0x30
ldrb r0, [r1]
cmp r0, #0
bne lbl_0807dd64
movs r5, #1
movs r0, #1
strb r0, [r1]
movs r0, #0
bl sub_0807ef7c
lbl_0807dd64:
adds r0, r5, #1
cmp r0, #0
bne lbl_0807dd6c
b lbl_0807e3e6
lbl_0807dd6c:
lsls r1, r5, #0x18
lsrs r1, r1, #0x18
movs r0, #6
bl sub_0807e3fc
b lbl_0807e3e6
lbl_0807dd78:
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0xa
bhi lbl_0807dd86
b lbl_0807e3e6
lbl_0807dd86:
adds r0, r1, #0
adds r0, #0x30
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807dd98
adds r1, #0x40
movs r0, #0x13
strb r0, [r1]
b lbl_0807e3e6
lbl_0807dd98:
adds r0, r1, #0
adds r0, #0x2f
ldrb r0, [r0]
movs r2, #2
cmp r0, r2
beq lbl_0807ddbc
movs r0, #6
movs r1, #0x81
bl sub_0807e3fc
movs r0, #0x23
bl sub_0807e6d8
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x14
strb r1, [r0]
b lbl_0807e3e6
lbl_0807ddbc:
adds r0, r1, #0
adds r0, #0x3a
strb r2, [r0]
b lbl_0807df96
lbl_0807ddc4:
movs r0, #0x25
bl sub_0807e6d8
ldr r4, lbl_0807dddc @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x2f
ldrb r1, [r0]
movs r0, #5
bl sub_0807e3fc
ldr r0, [r4]
b lbl_0807e220
.align 2, 0
lbl_0807dddc: .4byte sNonGameplayRamPointer
lbl_0807dde0:
movs r0, #0x24
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807ddec
b lbl_0807e3e6
lbl_0807ddec:
ldr r0, lbl_0807ddf8 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x40
movs r1, #0x15
strb r1, [r0]
b lbl_0807e3e6
.align 2, 0
lbl_0807ddf8: .4byte sNonGameplayRamPointer
lbl_0807ddfc:
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x1c
strb r1, [r0]
ldr r3, [r7]
adds r0, r3, #0
adds r0, #0x2f
ldrb r0, [r0]
cmp r0, #2
bne lbl_0807de1a
adds r1, r3, #0
adds r1, #0x32
movs r0, #1
strb r0, [r1]
b lbl_0807e3e6
lbl_0807de1a:
ldr r2, lbl_0807de3c @ =gSaveFilesInfo
adds r0, r3, #0
adds r0, #0x3f
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r1, [r0, #0x11]
movs r0, #0x36
ands r0, r1
cmp r0, #0
beq lbl_0807de40
adds r1, r3, #0
adds r1, #0x38
movs r0, #0x13
b lbl_0807de46
.align 2, 0
lbl_0807de3c: .4byte gSaveFilesInfo
lbl_0807de40:
adds r1, r3, #0
adds r1, #0x38
movs r0, #0x12
lbl_0807de46:
strb r0, [r1]
ldr r0, [r7]
adds r0, #0x38
ldrb r1, [r0]
movs r0, #0
bl sub_080790cc
b lbl_0807e3e6
lbl_0807de56:
movs r0, #2
bl sub_0807e6d8
ldr r0, lbl_0807de64 @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_0807e3b8
.align 2, 0
lbl_0807de64: .4byte sNonGameplayRamPointer
lbl_0807de68:
movs r0, #3
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807de74
b lbl_0807e3e6
lbl_0807de74:
ldr r4, lbl_0807de88 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x31
ldrb r1, [r0]
movs r0, #1
bl sub_0807e3fc
ldr r1, [r4]
b lbl_0807e3b8
.align 2, 0
lbl_0807de88: .4byte sNonGameplayRamPointer
lbl_0807de8c:
movs r5, #0xff
ldr r0, lbl_0807deb8 @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
beq lbl_0807df24
movs r4, #1
ands r4, r1
cmp r4, #0
beq lbl_0807debc
movs r5, #0x80
ldr r0, [r7]
adds r0, #0x42
movs r1, #0
strh r1, [r0]
movs r0, #1
bl sub_0807ef7c
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x1a
strb r1, [r0]
b lbl_0807df24
.align 2, 0
lbl_0807deb8: .4byte gChangedInput
lbl_0807debc:
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807dee4
movs r0, #4
bl sub_0807e6d8
movs r5, #0x81
ldr r0, lbl_0807dee0 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0x42
strh r4, [r1]
adds r0, #0x40
movs r1, #0x19
strb r1, [r0]
b lbl_0807df24
.align 2, 0
lbl_0807dee0: .4byte sNonGameplayRamPointer
lbl_0807dee4:
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq lbl_0807df04
ldr r0, [r7]
adds r1, r0, #0
adds r1, #0x31
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807df24
movs r5, #0
strb r5, [r1]
movs r0, #0
bl sub_0807ef7c
b lbl_0807df24
lbl_0807df04:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq lbl_0807df24
ldr r0, [r7]
adds r1, r0, #0
adds r1, #0x31
ldrb r0, [r1]
cmp r0, #0
bne lbl_0807df24
movs r5, #1
movs r0, #1
strb r0, [r1]
movs r0, #0
bl sub_0807ef7c
lbl_0807df24:
adds r0, r5, #1
cmp r0, #0
bne lbl_0807df2c
b lbl_0807e3e6
lbl_0807df2c:
lsls r1, r5, #0x18
lsrs r1, r1, #0x18
movs r0, #1
bl sub_0807e3fc
b lbl_0807e3e6
lbl_0807df38:
movs r0, #5
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807df44
b lbl_0807e3e6
lbl_0807df44:
ldr r2, lbl_0807df70 @ =gSaveFilesInfo
ldr r0, lbl_0807df74 @ =sNonGameplayRamPointer
ldr r3, [r0]
adds r0, r3, #0
adds r0, #0x3f
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0, #0x11]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq lbl_0807df64
b lbl_0807e100
lbl_0807df64:
adds r1, r3, #0
adds r1, #0x40
movs r0, #5
strb r0, [r1]
b lbl_0807e3e6
.align 2, 0
lbl_0807df70: .4byte gSaveFilesInfo
lbl_0807df74: .4byte sNonGameplayRamPointer
lbl_0807df78:
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0xa
bhi lbl_0807df86
b lbl_0807e3e6
lbl_0807df86:
adds r0, r1, #0
adds r0, #0x2f
ldrb r0, [r0]
cmp r0, #2
bne lbl_0807dfa0
adds r1, #0x3a
movs r0, #3
lbl_0807df94:
strb r0, [r1]
lbl_0807df96:
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x22
strb r1, [r0]
b lbl_0807e3e6
lbl_0807dfa0:
movs r0, #4
bl sub_0807e6d8
movs r0, #1
movs r1, #0x81
bl sub_0807e3fc
b lbl_0807e3b6
lbl_0807dfb0:
movs r0, #5
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807dfbc
b lbl_0807e3e6
lbl_0807dfbc:
ldr r2, lbl_0807dfd8 @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r0, #0x40
movs r1, #0x1c
strb r1, [r0]
ldr r2, [r2]
adds r0, r2, #0
adds r0, #0x31
ldrb r0, [r0]
movs r1, #1
eors r0, r1
adds r2, #0x32
strb r0, [r2]
b lbl_0807e3e6
.align 2, 0
lbl_0807dfd8: .4byte sNonGameplayRamPointer
lbl_0807dfdc:
movs r0, #6
bl sub_0807e6d8
ldr r0, lbl_0807dfe8 @ =sNonGameplayRamPointer
ldr r1, [r0]
b lbl_0807e3b8
.align 2, 0
lbl_0807dfe8: .4byte sNonGameplayRamPointer
lbl_0807dfec:
movs r0, #7
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807dff8
b lbl_0807e3e6
lbl_0807dff8:
ldr r4, lbl_0807e00c @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0x32
ldrb r1, [r0]
movs r0, #2
bl sub_0807e3fc
ldr r1, [r4]
b lbl_0807e3b8
.align 2, 0
lbl_0807e00c: .4byte sNonGameplayRamPointer
lbl_0807e010:
movs r5, #0xff
ldr r0, lbl_0807e040 @ =gChangedInput
ldrh r1, [r0]
cmp r1, #0
beq lbl_0807e0c6
movs r4, #1
ands r4, r1
cmp r4, #0
beq lbl_0807e044
movs r5, #0x80
ldr r1, [r7]
adds r2, r1, #0
adds r2, #0x42
movs r0, #0
strh r0, [r2]
adds r1, #0x3a
movs r0, #4
strb r0, [r1]
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x22
strb r1, [r0]
b lbl_0807e0c6
.align 2, 0
lbl_0807e040: .4byte gChangedInput
lbl_0807e044:
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807e06c
movs r0, #8
bl sub_0807e6d8
movs r5, #0x81
ldr r0, lbl_0807e068 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r1, r0, #0
adds r1, #0x42
strh r4, [r1]
adds r0, #0x40
movs r1, #0x1f
strb r1, [r0]
b lbl_0807e0c6
.align 2, 0
lbl_0807e068: .4byte sNonGameplayRamPointer
lbl_0807e06c:
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq lbl_0807e084
ldr r0, [r7]
adds r1, r0, #0
adds r1, #0x32
ldrb r0, [r1]
cmp r0, #0
beq lbl_0807e0c6
subs r0, #1
b lbl_0807e0a2
lbl_0807e084:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq lbl_0807e0c6
ldr r1, [r7]
adds r0, r1, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #0x13
bne lbl_0807e0b0
adds r1, #0x32
ldrb r0, [r1]
cmp r0, #1
bhi lbl_0807e0c6
adds r0, #1
lbl_0807e0a2:
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r0, #0
bl sub_0807ef7c
b lbl_0807e0c6
lbl_0807e0b0:
adds r1, #0x32
ldrb r0, [r1]
cmp r0, #0
bne lbl_0807e0c6
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
movs r0, #0
bl sub_0807ef7c
lbl_0807e0c6:
adds r0, r5, #1
cmp r0, #0
bne lbl_0807e0ce
b lbl_0807e3e6
lbl_0807e0ce:
lsls r1, r5, #0x18
lsrs r1, r1, #0x18
movs r0, #2
bl sub_0807e3fc
b lbl_0807e3e6
lbl_0807e0da:
movs r0, #9
bl sub_0807e6d8
cmp r0, #0
bne lbl_0807e0e6
b lbl_0807e3e6
lbl_0807e0e6:
ldr r2, lbl_0807e10c @ =gSaveFilesInfo
ldr r0, lbl_0807e110 @ =sNonGameplayRamPointer
ldr r3, [r0]
adds r0, r3, #0
adds r0, #0x3f
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807e114
lbl_0807e100:
adds r1, r3, #0
adds r1, #0x40
movs r0, #8
strb r0, [r1]
b lbl_0807e3e6
.align 2, 0
lbl_0807e10c: .4byte gSaveFilesInfo
lbl_0807e110: .4byte sNonGameplayRamPointer
lbl_0807e114:
adds r1, r3, #0
adds r1, #0x40
movs r0, #6
strb r0, [r1]
b lbl_0807e3e6
lbl_0807e11e:
ldr r0, [r7]
adds r0, #0x3f
ldrb r1, [r0]
movs r0, #7
bl sub_08078504
movs r0, #4
bl sub_0807ef7c
b lbl_0807e3b6
lbl_0807e132:
ldr r0, lbl_0807e160 @ =gChangedInput
ldrh r1, [r0]
movs r0, #2
ands r0, r1
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r3, #0
bne lbl_0807e170
ldr r2, [r7]
adds r0, r2, #0
adds r0, #0xef
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne lbl_0807e154
b lbl_0807e3e6
lbl_0807e154:
adds r0, r2, #0
adds r0, #0x42
strh r3, [r0]
adds r1, r2, #0
b lbl_0807e3b8
.align 2, 0
lbl_0807e160: .4byte gChangedInput
lbl_0807e164:
ldr r0, lbl_0807e17c @ =gChangedInput
ldrh r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq lbl_0807e180
lbl_0807e170:
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x25
strb r1, [r0]
b lbl_0807e3e6
.align 2, 0
lbl_0807e17c: .4byte gChangedInput
lbl_0807e180:
ldr r0, [r7]
adds r0, #0x42
ldrh r0, [r0]
cmp r0, #0x10
bhi lbl_0807e18c
b lbl_0807e3e6
lbl_0807e18c:
movs r5, #2
b lbl_0807e3e4
lbl_0807e190:
ldr r0, [r7]
adds r0, #0x3f
ldrb r1, [r0]
movs r0, #8
bl sub_08078504
movs r0, #7
bl sub_0807ef7c
b lbl_0807e3b6
lbl_0807e1a4:
ldr r5, [r7]
adds r0, r5, #0
adds r0, #0xee
ldrb r4, [r0]
ldr r2, lbl_0807e1e8 @ =0x08760b40
ldr r3, lbl_0807e1ec @ =gSaveFilesInfo
subs r0, #0xaf
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r3
lsls r1, r1, #3
ldrb r0, [r0, #0xc]
adds r1, r1, r0
adds r2, #5
adds r1, r1, r2
ldrb r0, [r1]
adds r0, #3
cmp r4, r0
beq lbl_0807e1d0
b lbl_0807e3e6
lbl_0807e1d0:
adds r0, r5, #0
adds r0, #0x3a
ldrb r0, [r0]
cmp r0, #4
bls lbl_0807e1dc
b lbl_0807e3e6
lbl_0807e1dc:
lsls r0, r0, #2
ldr r1, lbl_0807e1f0 @ =lbl_0807e1f4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807e1e8: .4byte 0x08760b40
lbl_0807e1ec: .4byte gSaveFilesInfo
lbl_0807e1f0: .4byte lbl_0807e1f4
lbl_0807e1f4: @ jump table
.4byte lbl_0807e208 @ case 0
.4byte lbl_0807e212 @ case 1
.4byte lbl_0807e228 @ case 2
.4byte lbl_0807e23e @ case 3
.4byte lbl_0807e254 @ case 4
lbl_0807e208:
ldr r0, [r7]
lbl_0807e20a:
adds r0, #0x40
movs r1, #5
strb r1, [r0]
b lbl_0807e3e6
lbl_0807e212:
ldr r0, [r7]
adds r0, #0x2f
ldrb r1, [r0]
movs r0, #5
bl sub_0807e3fc
ldr r0, [r7]
lbl_0807e220:
adds r0, #0x40
movs r1, #0xb
strb r1, [r0]
b lbl_0807e3e6
lbl_0807e228:
ldr r0, [r7]
adds r0, #0x30
ldrb r1, [r0]
movs r0, #6
bl sub_0807e3fc
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x11
strb r1, [r0]
b lbl_0807e3e6
lbl_0807e23e:
ldr r0, [r7]
adds r0, #0x31
ldrb r1, [r0]
movs r0, #1
bl sub_0807e3fc
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x18
strb r1, [r0]
b lbl_0807e3e6
lbl_0807e254:
ldr r0, [r7]
adds r0, #0x32
ldrb r1, [r0]
movs r0, #2
bl sub_0807e3fc
ldr r0, [r7]
adds r0, #0x40
movs r1, #0x1e
strb r1, [r0]
b lbl_0807e3e6
lbl_0807e26a:
ldr r1, [r7]
ldr r0, lbl_0807e284 @ =0x00003f42
strh r0, [r1, #2]
movs r0, #0x97
lsls r0, r0, #1
adds r1, r1, r0
movs r0, #0x23
strb r0, [r1]
movs r0, #6
bl sub_0807ef7c
b lbl_0807e3b6
.align 2, 0
lbl_0807e284: .4byte 0x00003f42
lbl_0807e288:
ldr r2, [r7]
movs r1, #0x97
lsls r1, r1, #1
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807e298
b lbl_0807e3e6
lbl_0807e298:
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #6
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
ldrh r0, [r2, #0x18]
strh r0, [r2, #6]
ldr r0, lbl_0807e2bc @ =gBG1HOFS_NonGameplay
movs r5, #0x80
lsls r5, r5, #4
adds r1, r5, #0
strh r1, [r0]
ldr r0, lbl_0807e2c0 @ =gBG1VOFS_NonGameplay
strh r1, [r0]
adds r1, r2, #0
b lbl_0807e3b8
.align 2, 0
lbl_0807e2bc: .4byte gBG1HOFS_NonGameplay
lbl_0807e2c0: .4byte gBG1VOFS_NonGameplay
lbl_0807e2c4:
ldr r0, [r7]
adds r0, #0x3f
ldrb r0, [r0]
lsls r2, r0, #1
adds r2, r2, r0
lsls r2, r2, #6
ldr r0, lbl_0807e304 @ =0x0600f000
adds r2, r2, r0
movs r0, #0x10
str r0, [sp]
movs r0, #3
movs r1, #0
movs r3, #0xc0
bl BitFill
ldr r1, [r7]
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lbl_0807e2ec:
movs r5, #0x80
lsls r5, r5, #4
ldr r1, lbl_0807e308 @ =gBG2VOFS_NonGameplay
ldrh r0, [r1]
cmp r5, r0
beq lbl_0807e310
subs r0, #0xc
cmp r0, r5
bge lbl_0807e30c
non_word_aligned_thumb_func_start sub_0807e2fe
sub_0807e2fe: @ 0x0807e2fe
strh r5, [r1]
b lbl_0807e3e6
.align 2, 0
lbl_0807e304: .4byte 0x0600f000
lbl_0807e308: .4byte gBG2VOFS_NonGameplay
lbl_0807e30c:
strh r0, [r1]
b lbl_0807e3e6
lbl_0807e310:
ldr r4, lbl_0807e340 @ =sNonGameplayRamPointer
ldr r1, [r4]
adds r1, #0xff
ldrb r3, [r1]
movs r2, #0x21
rsbs r2, r2, #0
adds r0, r2, #0
ands r0, r3
strb r0, [r1]
ldr r0, [r4]
ldr r1, lbl_0807e344 @ =0x0000010f
adds r3, r0, r1
ldrb r1, [r3]
adds r0, r2, #0
ands r0, r1
strb r0, [r3]
ldr r0, [r4]
ldr r3, lbl_0807e348 @ =0x0000011f
adds r1, r0, r3
ldrb r0, [r1]
ands r2, r0
strb r2, [r1]
ldr r1, [r4]
b lbl_0807e3b8
.align 2, 0
lbl_0807e340: .4byte sNonGameplayRamPointer
lbl_0807e344: .4byte 0x0000010f
lbl_0807e348: .4byte 0x0000011f
lbl_0807e34c:
movs r5, #1
ldr r1, lbl_0807e364 @ =gWrittenToBLDALPHA_H
ldrh r0, [r1]
cmp r0, #0
beq lbl_0807e36a
movs r5, #0
subs r0, #2
cmp r0, #0
bge lbl_0807e368
strh r5, [r1]
b lbl_0807e36a
.align 2, 0
lbl_0807e364: .4byte gWrittenToBLDALPHA_H
lbl_0807e368:
strh r0, [r1]
lbl_0807e36a:
ldr r1, lbl_0807e3c4 @ =gWrittenToBLDALPHA_L
ldrh r0, [r1]
cmp r0, #0x10
beq lbl_0807e37e
movs r5, #0
adds r0, #2
cmp r0, #0x10
ble lbl_0807e37c
movs r0, #0x10
lbl_0807e37c:
strh r0, [r1]
lbl_0807e37e:
cmp r5, #0
beq lbl_0807e3e6
ldr r1, [r7]
ldrh r2, [r1]
ldr r0, lbl_0807e3c8 @ =0x0000fbff
ands r0, r2
strh r0, [r1]
ldr r5, lbl_0807e3cc @ =0x0000013f
adds r3, r1, r5
ldrb r2, [r3]
movs r1, #0x21
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
strb r0, [r3]
ldr r0, [r7]
ldr r2, lbl_0807e3d0 @ =0x0000014f
adds r3, r0, r2
ldrb r2, [r3]
adds r0, r1, #0
ands r0, r2
strb r0, [r3]
ldr r0, [r7]
ldr r3, lbl_0807e3d4 @ =0x0000015f
adds r2, r0, r3
ldrb r0, [r2]
ands r1, r0
strb r1, [r2]
lbl_0807e3b6:
ldr r1, [r7]
lbl_0807e3b8:
adds r1, #0x40
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
b lbl_0807e3e6
.align 2, 0
lbl_0807e3c4: .4byte gWrittenToBLDALPHA_L
lbl_0807e3c8: .4byte 0x0000fbff
lbl_0807e3cc: .4byte 0x0000013f
lbl_0807e3d0: .4byte 0x0000014f
lbl_0807e3d4: .4byte 0x0000015f
lbl_0807e3d8:
ldr r2, [r7]
ldrh r1, [r2]
ldr r0, lbl_0807e3f8 @ =0x0000dfff
ands r0, r1
strh r0, [r2]
movs r5, #1
lbl_0807e3e4:
mov sl, r5
lbl_0807e3e6:
mov r0, sl
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
lbl_0807e3f8: .4byte 0x0000dfff
thumb_func_start sub_0807e3fc
sub_0807e3fc: @ 0x0807e3fc
push {r4, r5, lr}
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r1, r1, #0x18
lsrs r4, r1, #0x18
cmp r0, #6
bls lbl_0807e40c
b lbl_0807e6d2
lbl_0807e40c:
lsls r0, r0, #2
ldr r1, lbl_0807e418 @ =lbl_0807e41c
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807e418: .4byte lbl_0807e41c
lbl_0807e41c: @ jump table
.4byte lbl_0807e438 @ case 0
.4byte lbl_0807e4b0 @ case 1
.4byte lbl_0807e4fc @ case 2
.4byte lbl_0807e554 @ case 3
.4byte lbl_0807e554 @ case 4
.4byte lbl_0807e5a6 @ case 5
.4byte lbl_0807e614 @ case 6
lbl_0807e438:
cmp r4, #0x80
bne lbl_0807e448
ldr r0, lbl_0807e444 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0xd4
b lbl_0807e61e
.align 2, 0
lbl_0807e444: .4byte sNonGameplayRamPointer
lbl_0807e448:
cmp r4, #0x81
bne lbl_0807e460
ldr r2, lbl_0807e45c @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r0, #0xde
movs r1, #0
strb r1, [r0]
ldr r1, [r2]
adds r1, #0xdf
b lbl_0807e63e
.align 2, 0
lbl_0807e45c: .4byte sNonGameplayRamPointer
lbl_0807e460:
cmp r4, #0
beq lbl_0807e466
b lbl_0807e6d2
lbl_0807e466:
ldr r3, lbl_0807e4ac @ =sNonGameplayRamPointer
ldr r1, [r3]
adds r1, #0xaf
ldrb r2, [r1]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
movs r4, #1
orrs r0, r4
strb r0, [r1]
ldr r1, [r3]
adds r1, #0xe0
ldrb r2, [r1]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r4
strb r0, [r1]
ldr r1, [r3]
adds r2, r1, #0
adds r2, #0xd6
movs r0, #0x80
strh r0, [r2]
subs r2, #2
movs r0, #0x78
strh r0, [r2]
adds r0, r1, #0
adds r0, #0xde
ldrb r0, [r0]
cmp r0, #0x17
bne lbl_0807e4a6
b lbl_0807e6d2
lbl_0807e4a6:
adds r0, r2, #0
b lbl_0807e60c
.align 2, 0
lbl_0807e4ac: .4byte sNonGameplayRamPointer
lbl_0807e4b0:
cmp r4, #0x80
bne lbl_0807e4b6
b lbl_0807e618
lbl_0807e4b6:
cmp r4, #0x81
bne lbl_0807e4bc
b lbl_0807e630
lbl_0807e4bc:
cmp r4, #1
bls lbl_0807e4c2
b lbl_0807e6d2
lbl_0807e4c2:
ldr r3, lbl_0807e4f8 @ =sNonGameplayRamPointer
ldr r1, [r3]
adds r1, #0xaf
ldrb r2, [r1]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r3]
adds r1, #0xb0
ldrb r2, [r1]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r3]
adds r2, r1, #0
adds r2, #0xa6
movs r0, #0x80
strh r0, [r2]
adds r5, r3, #0
cmp r4, #0
beq lbl_0807e4f2
b lbl_0807e5f6
lbl_0807e4f2:
adds r1, #0xa4
movs r0, #0x98
b lbl_0807e5fa
.align 2, 0
lbl_0807e4f8: .4byte sNonGameplayRamPointer
lbl_0807e4fc:
cmp r4, #0x80
bne lbl_0807e502
b lbl_0807e618
lbl_0807e502:
cmp r4, #0x81
bne lbl_0807e508
b lbl_0807e630
lbl_0807e508:
cmp r4, #2
bls lbl_0807e50e
b lbl_0807e6d2
lbl_0807e50e:
ldr r3, lbl_0807e544 @ =sNonGameplayRamPointer
ldr r1, [r3]
adds r1, #0xaf
ldrb r2, [r1]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r3]
adds r1, #0xb0
ldrb r2, [r1]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r3]
adds r2, r1, #0
adds r2, #0xa6
movs r0, #0x80
strh r0, [r2]
adds r5, r3, #0
cmp r4, #0
bne lbl_0807e548
adds r1, #0xa4
movs r0, #0x98
b lbl_0807e5fa
.align 2, 0
lbl_0807e544: .4byte sNonGameplayRamPointer
lbl_0807e548:
cmp r4, #1
beq lbl_0807e5f6
adds r1, #0xa4
movs r0, #0x8c
lsls r0, r0, #1
b lbl_0807e5fa
lbl_0807e554:
cmp r4, #0x80
beq lbl_0807e618
cmp r4, #0x81
beq lbl_0807e630
cmp r4, #1
bls lbl_0807e562
b lbl_0807e6d2
lbl_0807e562:
ldr r3, lbl_0807e598 @ =sNonGameplayRamPointer
ldr r1, [r3]
adds r1, #0xaf
ldrb r2, [r1]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r3]
adds r1, #0xb0
ldrb r2, [r1]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r2, [r3]
adds r1, r2, #0
adds r1, #0xa4
movs r0, #0xd8
strh r0, [r1]
adds r5, r3, #0
cmp r4, #0
bne lbl_0807e59c
adds r1, #2
movs r0, #0xd0
b lbl_0807e5fa
.align 2, 0
lbl_0807e598: .4byte sNonGameplayRamPointer
lbl_0807e59c:
adds r1, r2, #0
adds r1, #0xa6
movs r0, #0xb8
lsls r0, r0, #1
b lbl_0807e5fa
lbl_0807e5a6:
cmp r4, #0x80
beq lbl_0807e618
cmp r4, #0x81
beq lbl_0807e630
cmp r4, #2
bls lbl_0807e5b4
b lbl_0807e6d2
lbl_0807e5b4:
ldr r3, lbl_0807e5e8 @ =sNonGameplayRamPointer
ldr r1, [r3]
adds r1, #0xaf
ldrb r2, [r1]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r3]
adds r1, #0xb0
ldrb r2, [r1]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r3]
adds r2, r1, #0
adds r2, #0xa6
movs r0, #0x6c
strh r0, [r2]
adds r5, r3, #0
cmp r4, #0
bne lbl_0807e5ec
adds r1, #0xa4
movs r0, #0x58
b lbl_0807e5fa
.align 2, 0
lbl_0807e5e8: .4byte sNonGameplayRamPointer
lbl_0807e5ec:
cmp r4, #1
bne lbl_0807e5f6
adds r1, #0xa4
movs r0, #0x98
b lbl_0807e5fa
lbl_0807e5f6:
adds r1, #0xa4
movs r0, #0xd8
lbl_0807e5fa:
strh r0, [r1]
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0xae
ldrb r0, [r0]
cmp r0, #0x17
beq lbl_0807e6d2
adds r0, r1, #0
adds r0, #0xa4
lbl_0807e60c:
movs r1, #0x17
bl UpdateMenuOamDataID
b lbl_0807e6d2
lbl_0807e614:
cmp r4, #0x80
bne lbl_0807e62c
lbl_0807e618:
ldr r0, lbl_0807e628 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0xa4
lbl_0807e61e:
movs r1, #0x18
bl UpdateMenuOamDataID
b lbl_0807e6d2
.align 2, 0
lbl_0807e628: .4byte sNonGameplayRamPointer
lbl_0807e62c:
cmp r4, #0x81
bne lbl_0807e64c
lbl_0807e630:
ldr r2, lbl_0807e648 @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r0, #0xae
movs r1, #0
strb r1, [r0]
ldr r1, [r2]
adds r1, #0xaf
lbl_0807e63e:
ldrb r2, [r1]
movs r0, #0x3f
ands r0, r2
strb r0, [r1]
b lbl_0807e6d2
.align 2, 0
lbl_0807e648: .4byte sNonGameplayRamPointer
lbl_0807e64c:
cmp r4, #1
bhi lbl_0807e6d2
ldr r3, lbl_0807e688 @ =sNonGameplayRamPointer
ldr r1, [r3]
adds r1, #0xaf
ldrb r2, [r1]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r1, [r3]
adds r1, #0xb0
ldrb r2, [r1]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
strb r0, [r1]
ldr r2, [r3]
adds r1, r2, #0
adds r1, #0xa4
movs r0, #0x8c
lsls r0, r0, #1
strh r0, [r1]
adds r5, r3, #0
cmp r4, #0
bne lbl_0807e68c
adds r1, #2
movs r0, #0xb8
b lbl_0807e694
.align 2, 0
lbl_0807e688: .4byte sNonGameplayRamPointer
lbl_0807e68c:
adds r1, r2, #0
adds r1, #0xa6
movs r0, #0xb8
lsls r0, r0, #1
lbl_0807e694:
strh r0, [r1]
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0xae
ldrb r0, [r0]
cmp r0, #0x17
beq lbl_0807e6ac
adds r0, r1, #0
adds r0, #0xa4
movs r1, #0x17
bl UpdateMenuOamDataID
lbl_0807e6ac:
ldr r1, [r5]
adds r0, r1, #0
adds r0, #0x7e
ldrb r0, [r0]
cmp r0, #0x21
beq lbl_0807e6d2
adds r0, r1, #0
adds r0, #0x74
movs r1, #0x21
bl UpdateMenuOamDataID
ldr r1, [r5]
adds r2, r1, #0
adds r2, #0x76
movs r0, #0x78
strh r0, [r2]
adds r1, #0x74
movs r0, #0xd0
strh r0, [r1]
lbl_0807e6d2:
pop {r4, r5}
pop {r0}
bx r0
thumb_func_start sub_0807e6d8
sub_0807e6d8: @ 0x0807e6d8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
movs r6, #1
cmp r0, #0x29
bls lbl_0807e6ee
bl lbl_0807eec8
lbl_0807e6ee:
lsls r0, r0, #2
ldr r1, lbl_0807e6f8 @ =lbl_0807e6fc
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
lbl_0807e6f8: .4byte lbl_0807e6fc
lbl_0807e6fc: @ jump table
.4byte lbl_0807e7a4 @ case 0
.4byte lbl_0807e800 @ case 1
.4byte lbl_0807e838 @ case 2
.4byte lbl_0807e888 @ case 3
.4byte lbl_0807e8b0 @ case 4
.4byte lbl_0807eeb8 @ case 5
.4byte lbl_0807e8cc @ case 6
.4byte lbl_0807e910 @ case 7
.4byte lbl_0807e96c @ case 8
.4byte lbl_0807eeb8 @ case 9
.4byte lbl_0807e988 @ case 10
.4byte lbl_0807ea0c @ case 11
.4byte lbl_0807ea44 @ case 12
.4byte lbl_0807eb98 @ case 13
.4byte lbl_0807ea64 @ case 14
.4byte lbl_0807ea90 @ case 15
.4byte lbl_0807eaa0 @ case 16
.4byte lbl_0807ebd0 @ case 17
.4byte lbl_0807eabc @ case 18
.4byte lbl_0807eb40 @ case 19
.4byte lbl_0807eb78 @ case 20
.4byte lbl_0807eb98 @ case 21
.4byte lbl_0807ebe4 @ case 22
.4byte lbl_0807ec10 @ case 23
.4byte lbl_0807ec40 @ case 24
.4byte lbl_0807ebd0 @ case 25
.4byte lbl_0807ec5c @ case 26
.4byte lbl_0807ec74 @ case 27
.4byte lbl_0807ec8c @ case 28
.4byte lbl_0807eca4 @ case 29
.4byte lbl_0807ecf4 @ case 30
.4byte lbl_0807ed34 @ case 31
.4byte lbl_0807eeb8 @ case 32
.4byte lbl_0807eec8 @ case 33
.4byte lbl_0807ed50 @ case 34
.4byte lbl_0807ed78 @ case 35
.4byte lbl_0807eeb8 @ case 36
.4byte lbl_0807edb0 @ case 37
.4byte lbl_0807eddc @ case 38
.4byte lbl_0807ee6c @ case 39
.4byte lbl_0807ee94 @ case 40
.4byte lbl_0807eeb8 @ case 41
lbl_0807e7a4:
ldr r0, lbl_0807e7ec @ =sNonGameplayRamPointer
ldr r2, [r0]
movs r0, #0x93
lsls r0, r0, #1
adds r1, r2, r0
subs r0, #0x26
strh r0, [r1]
movs r1, #0x92
lsls r1, r1, #1
adds r0, r2, r1
movs r1, #0x80
strh r1, [r0]
movs r1, #0x22
bl UpdateMenuOamDataID
movs r0, #5
bl sub_0807ef7c
ldr r1, lbl_0807e7f0 @ =gBG1HOFS_NonGameplay
movs r2, #0xf8
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807e7f4 @ =gBG1VOFS_NonGameplay
movs r3, #0xed
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807e7f8 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xc0
lsls r0, r0, #6
adds r1, r1, r0
ldr r2, lbl_0807e7fc @ =0x0600e800
b lbl_0807ee54
.align 2, 0
lbl_0807e7ec: .4byte sNonGameplayRamPointer
lbl_0807e7f0: .4byte gBG1HOFS_NonGameplay
lbl_0807e7f4: .4byte gBG1VOFS_NonGameplay
lbl_0807e7f8: .4byte sEwramPointer
lbl_0807e7fc: .4byte 0x0600e800
lbl_0807e800:
ldr r4, lbl_0807e830 @ =sNonGameplayRamPointer
ldr r0, [r4]
ldr r1, lbl_0807e834 @ =0x0000012f
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne lbl_0807e814
b lbl_0807eec6
lbl_0807e814:
movs r0, #1
movs r1, #0
bl sub_080790cc
cmp r0, #0
bne lbl_0807e822
b lbl_0807eec6
lbl_0807e822:
ldr r0, [r4]
movs r1, #0
strh r1, [r0, #2]
ldrh r1, [r0, #0x1c]
strh r1, [r0, #6]
b lbl_0807eec8
.align 2, 0
lbl_0807e830: .4byte sNonGameplayRamPointer
lbl_0807e834: .4byte 0x0000012f
lbl_0807e838:
ldr r0, lbl_0807e878 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r2, r0, #0
adds r2, #0xb6
movs r1, #0xa0
lsls r1, r1, #1
strh r1, [r2]
adds r0, #0xb4
movs r1, #0xa0
strh r1, [r0]
movs r1, #0x26
bl UpdateMenuOamDataID
movs r0, #5
bl sub_0807ef7c
ldr r1, lbl_0807e87c @ =gBG0HOFS_NonGameplay
movs r2, #0xe0
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807e880 @ =gBG0VOFS_NonGameplay
movs r3, #0xe4
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807e884 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xe4
lsls r0, r0, #6
adds r1, r1, r0
b lbl_0807ee52
.align 2, 0
lbl_0807e878: .4byte sNonGameplayRamPointer
lbl_0807e87c: .4byte gBG0HOFS_NonGameplay
lbl_0807e880: .4byte gBG0VOFS_NonGameplay
lbl_0807e884: .4byte sEwramPointer
lbl_0807e888:
ldr r4, lbl_0807e8ac @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r0, #0xbf
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne lbl_0807e89a
b lbl_0807eec6
lbl_0807e89a:
movs r0, #1
movs r1, #0x11
bl sub_080790cc
cmp r0, #0
beq lbl_0807e8a8
b lbl_0807ed1a
lbl_0807e8a8:
b lbl_0807eec6
.align 2, 0
lbl_0807e8ac: .4byte sNonGameplayRamPointer
lbl_0807e8b0:
ldr r0, lbl_0807e8c4 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r2, [r1]
ldr r0, lbl_0807e8c8 @ =0x0000feff
ands r0, r2
strh r0, [r1]
adds r1, #0xbe
movs r0, #0x27
strb r0, [r1]
b lbl_0807ed9e
.align 2, 0
lbl_0807e8c4: .4byte sNonGameplayRamPointer
lbl_0807e8c8: .4byte 0x0000feff
lbl_0807e8cc:
ldr r0, lbl_0807e904 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r2, r0, #0
adds r2, #0xb6
movs r1, #0xa0
lsls r1, r1, #1
strh r1, [r2]
adds r0, #0xb4
movs r1, #0xc0
strh r1, [r0]
movs r1, #0x24
bl UpdateMenuOamDataID
movs r0, #5
bl sub_0807ef7c
ldr r1, lbl_0807e908 @ =gBG0HOFS_NonGameplay
movs r2, #0xe0
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807e90c @ =gBG0VOFS_NonGameplay
movs r3, #0xe4
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
b lbl_0807eec8
.align 2, 0
lbl_0807e904: .4byte sNonGameplayRamPointer
lbl_0807e908: .4byte gBG0HOFS_NonGameplay
lbl_0807e90c: .4byte gBG0VOFS_NonGameplay
lbl_0807e910:
ldr r0, lbl_0807e960 @ =sNonGameplayRamPointer
mov r8, r0
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0xbf
ldrb r1, [r0]
movs r7, #0x10
adds r0, r7, #0
ands r0, r1
cmp r0, #0
bne lbl_0807e928
b lbl_0807eec6
lbl_0807e928:
adds r0, r2, #0
adds r0, #0x38
ldrb r1, [r0]
movs r0, #1
bl sub_080790cc
cmp r0, #0
bne lbl_0807e93a
b lbl_0807eec6
lbl_0807e93a:
ldr r5, lbl_0807e964 @ =sEwramPointer
ldr r0, [r5]
movs r4, #0xf0
lsls r4, r4, #6
adds r0, r0, r4
bl sub_0807eedc
ldr r1, [r5]
adds r1, r1, r4
ldr r2, lbl_0807e968 @ =0x0600e000
movs r3, #0xc0
lsls r3, r3, #2
str r7, [sp]
movs r0, #3
bl DMATransfer
mov r2, r8
ldr r1, [r2]
b lbl_0807ed1c
.align 2, 0
lbl_0807e960: .4byte sNonGameplayRamPointer
lbl_0807e964: .4byte sEwramPointer
lbl_0807e968: .4byte 0x0600e000
lbl_0807e96c:
ldr r0, lbl_0807e980 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r2, [r1]
ldr r0, lbl_0807e984 @ =0x0000feff
ands r0, r2
strh r0, [r1]
adds r1, #0xbe
movs r0, #0x25
strb r0, [r1]
b lbl_0807ed9e
.align 2, 0
lbl_0807e980: .4byte sNonGameplayRamPointer
lbl_0807e984: .4byte 0x0000feff
lbl_0807e988:
ldr r4, lbl_0807e9f4 @ =sNonGameplayRamPointer
ldr r2, [r4]
movs r0, #0x93
lsls r0, r0, #1
adds r1, r2, r0
adds r0, #0x1a
strh r0, [r1]
movs r1, #0x92
lsls r1, r1, #1
adds r0, r2, r1
movs r1, #0xa0
strh r1, [r0]
movs r1, #0x26
bl UpdateMenuOamDataID
movs r0, #5
bl sub_0807ef7c
ldr r1, lbl_0807e9f8 @ =gBG1HOFS_NonGameplay
movs r2, #0xd9
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807e9fc @ =gBG1VOFS_NonGameplay
movs r3, #0xd5
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807ea00 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xfc
lsls r0, r0, #6
adds r1, r1, r0
ldr r2, lbl_0807ea04 @ =0x0600e800
movs r3, #0xc0
lsls r3, r3, #2
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
ldr r2, [r4]
ldrh r0, [r2, #0x1c]
strh r0, [r2, #6]
ldrh r1, [r2]
ldr r0, lbl_0807ea08 @ =0x0000fdff
ands r0, r1
ldrh r1, [r2, #0x1a]
strh r1, [r2, #8]
movs r3, #0x80
lsls r3, r3, #3
adds r1, r3, #0
b lbl_0807ee8a
.align 2, 0
lbl_0807e9f4: .4byte sNonGameplayRamPointer
lbl_0807e9f8: .4byte gBG1HOFS_NonGameplay
lbl_0807e9fc: .4byte gBG1VOFS_NonGameplay
lbl_0807ea00: .4byte sEwramPointer
lbl_0807ea04: .4byte 0x0600e800
lbl_0807ea08: .4byte 0x0000fdff
lbl_0807ea0c:
ldr r4, lbl_0807ea3c @ =sNonGameplayRamPointer
ldr r0, [r4]
ldr r1, lbl_0807ea40 @ =0x0000012f
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne lbl_0807ea20
b lbl_0807eec6
lbl_0807ea20:
movs r0, #1
movs r1, #5
bl sub_080790cc
cmp r0, #0
bne lbl_0807ea2e
b lbl_0807eec6
lbl_0807ea2e:
ldr r1, [r4]
ldrh r0, [r1, #0x1c]
strh r0, [r1, #6]
ldrh r2, [r1]
movs r3, #0x80
lsls r3, r3, #2
b lbl_0807ed26
.align 2, 0
lbl_0807ea3c: .4byte sNonGameplayRamPointer
lbl_0807ea40: .4byte 0x0000012f
lbl_0807ea44:
ldr r0, lbl_0807ea5c @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r2, [r1]
ldr r0, lbl_0807ea60 @ =0x0000fdff
ands r0, r2
strh r0, [r1]
movs r0, #0x97
lsls r0, r0, #1
adds r1, r1, r0
movs r0, #0x27
strb r0, [r1]
b lbl_0807ed9e
.align 2, 0
lbl_0807ea5c: .4byte sNonGameplayRamPointer
lbl_0807ea60: .4byte 0x0000fdff
lbl_0807ea64:
ldr r1, lbl_0807ea84 @ =gBG0HOFS_NonGameplay
movs r3, #0xd9
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r1, lbl_0807ea88 @ =gBG0VOFS_NonGameplay
movs r2, #0xd5
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r0, lbl_0807ea8c @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x84
lsls r3, r3, #7
b lbl_0807ee50
.align 2, 0
lbl_0807ea84: .4byte gBG0HOFS_NonGameplay
lbl_0807ea88: .4byte gBG0VOFS_NonGameplay
lbl_0807ea8c: .4byte sEwramPointer
lbl_0807ea90:
movs r0, #1
movs r1, #6
bl sub_080790cc
cmp r0, #0
beq lbl_0807ea9e
b lbl_0807ec1e
lbl_0807ea9e:
b lbl_0807eec6
lbl_0807eaa0:
ldr r0, lbl_0807eab4 @ =sNonGameplayRamPointer
ldr r2, [r0]
ldrh r1, [r2]
ldr r0, lbl_0807eab8 @ =0x0000feff
ands r0, r1
movs r3, #0x80
lsls r3, r3, #2
adds r1, r3, #0
b lbl_0807ee8a
.align 2, 0
lbl_0807eab4: .4byte sNonGameplayRamPointer
lbl_0807eab8: .4byte 0x0000feff
lbl_0807eabc:
ldr r4, lbl_0807eb28 @ =sNonGameplayRamPointer
ldr r2, [r4]
movs r0, #0x93
lsls r0, r0, #1
adds r1, r2, r0
adds r0, #0x1a
strh r0, [r1]
movs r1, #0x92
lsls r1, r1, #1
adds r0, r2, r1
movs r1, #0xa0
strh r1, [r0]
movs r1, #0x26
bl UpdateMenuOamDataID
movs r0, #5
bl sub_0807ef7c
ldr r1, lbl_0807eb2c @ =gBG1HOFS_NonGameplay
movs r2, #0xd9
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807eb30 @ =gBG1VOFS_NonGameplay
movs r3, #0xd5
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807eb34 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xfc
lsls r0, r0, #6
adds r1, r1, r0
ldr r2, lbl_0807eb38 @ =0x0600e800
movs r3, #0xc0
lsls r3, r3, #2
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
ldr r2, [r4]
ldrh r0, [r2, #0x1c]
strh r0, [r2, #6]
ldrh r1, [r2]
ldr r0, lbl_0807eb3c @ =0x0000fdff
ands r0, r1
ldrh r1, [r2, #0x1a]
strh r1, [r2, #8]
movs r3, #0x80
lsls r3, r3, #3
adds r1, r3, #0
b lbl_0807ee8a
.align 2, 0
lbl_0807eb28: .4byte sNonGameplayRamPointer
lbl_0807eb2c: .4byte gBG1HOFS_NonGameplay
lbl_0807eb30: .4byte gBG1VOFS_NonGameplay
lbl_0807eb34: .4byte sEwramPointer
lbl_0807eb38: .4byte 0x0600e800
lbl_0807eb3c: .4byte 0x0000fdff
lbl_0807eb40:
ldr r4, lbl_0807eb70 @ =sNonGameplayRamPointer
ldr r0, [r4]
ldr r1, lbl_0807eb74 @ =0x0000012f
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne lbl_0807eb54
b lbl_0807eec6
lbl_0807eb54:
movs r0, #1
movs r1, #1
bl sub_080790cc
cmp r0, #0
bne lbl_0807eb62
b lbl_0807eec6
lbl_0807eb62:
ldr r1, [r4]
ldrh r0, [r1, #0x1c]
strh r0, [r1, #6]
ldrh r2, [r1]
movs r3, #0x80
lsls r3, r3, #2
b lbl_0807ed26
.align 2, 0
lbl_0807eb70: .4byte sNonGameplayRamPointer
lbl_0807eb74: .4byte 0x0000012f
lbl_0807eb78:
ldr r0, lbl_0807eb90 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r2, [r1]
ldr r0, lbl_0807eb94 @ =0x0000fdff
ands r0, r2
strh r0, [r1]
movs r0, #0x97
lsls r0, r0, #1
adds r1, r1, r0
movs r0, #0x27
strb r0, [r1]
b lbl_0807ed9e
.align 2, 0
lbl_0807eb90: .4byte sNonGameplayRamPointer
lbl_0807eb94: .4byte 0x0000fdff
lbl_0807eb98:
ldr r0, lbl_0807ebd4 @ =sNonGameplayRamPointer
ldr r2, [r0]
movs r1, #0x97
lsls r1, r1, #1
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, #0
beq lbl_0807ebaa
b lbl_0807eec6
lbl_0807ebaa:
ldrh r0, [r2, #0x18]
strh r0, [r2, #6]
ldrh r0, [r2, #0x16]
strh r0, [r2, #8]
ldrh r1, [r2]
ldr r0, lbl_0807ebd8 @ =0x0000fbff
ands r0, r1
movs r3, #0x80
lsls r3, r3, #2
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r0, lbl_0807ebdc @ =gBG1HOFS_NonGameplay
movs r2, #0x80
lsls r2, r2, #4
adds r1, r2, #0
strh r1, [r0]
ldr r0, lbl_0807ebe0 @ =gBG1VOFS_NonGameplay
strh r1, [r0]
lbl_0807ebd0:
movs r6, #1
b lbl_0807eec8
.align 2, 0
lbl_0807ebd4: .4byte sNonGameplayRamPointer
lbl_0807ebd8: .4byte 0x0000fbff
lbl_0807ebdc: .4byte gBG1HOFS_NonGameplay
lbl_0807ebe0: .4byte gBG1VOFS_NonGameplay
lbl_0807ebe4:
ldr r1, lbl_0807ec04 @ =gBG0HOFS_NonGameplay
movs r3, #0xd9
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r1, lbl_0807ec08 @ =gBG0VOFS_NonGameplay
movs r2, #0xd5
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r0, lbl_0807ec0c @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x84
lsls r3, r3, #7
b lbl_0807ee50
.align 2, 0
lbl_0807ec04: .4byte gBG0HOFS_NonGameplay
lbl_0807ec08: .4byte gBG0VOFS_NonGameplay
lbl_0807ec0c: .4byte sEwramPointer
lbl_0807ec10:
movs r0, #1
movs r1, #3
bl sub_080790cc
cmp r0, #0
bne lbl_0807ec1e
b lbl_0807eec6
lbl_0807ec1e:
ldr r0, lbl_0807ec38 @ =sNonGameplayRamPointer
ldr r2, [r0]
ldrh r0, [r2, #0x1e]
strh r0, [r2, #4]
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #1
adds r0, r3, #0
orrs r0, r1
ldr r1, lbl_0807ec3c @ =0x0000fdff
ands r0, r1
strh r0, [r2]
b lbl_0807eec8
.align 2, 0
lbl_0807ec38: .4byte sNonGameplayRamPointer
lbl_0807ec3c: .4byte 0x0000fdff
lbl_0807ec40:
ldr r0, lbl_0807ec54 @ =sNonGameplayRamPointer
ldr r2, [r0]
ldrh r1, [r2]
ldr r0, lbl_0807ec58 @ =0x0000feff
ands r0, r1
movs r3, #0x80
lsls r3, r3, #2
adds r1, r3, #0
b lbl_0807ee8a
.align 2, 0
lbl_0807ec54: .4byte sNonGameplayRamPointer
lbl_0807ec58: .4byte 0x0000feff
lbl_0807ec5c:
ldr r0, lbl_0807ec6c @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xfc
lsls r0, r0, #6
adds r1, r1, r0
ldr r2, lbl_0807ec70 @ =0x0600e800
b lbl_0807ee54
.align 2, 0
lbl_0807ec6c: .4byte sEwramPointer
lbl_0807ec70: .4byte 0x0600e800
lbl_0807ec74:
ldr r0, lbl_0807ec84 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0x8a
lsls r2, r2, #7
adds r1, r1, r2
ldr r2, lbl_0807ec88 @ =0x0600e800
b lbl_0807ee54
.align 2, 0
lbl_0807ec84: .4byte sEwramPointer
lbl_0807ec88: .4byte 0x0600e800
lbl_0807ec8c:
ldr r0, lbl_0807ec9c @ =sEwramPointer
ldr r1, [r0]
movs r3, #0x84
lsls r3, r3, #7
adds r1, r1, r3
ldr r2, lbl_0807eca0 @ =0x0600e800
b lbl_0807ee54
.align 2, 0
lbl_0807ec9c: .4byte sEwramPointer
lbl_0807eca0: .4byte 0x0600e800
lbl_0807eca4:
ldr r0, lbl_0807ece4 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r2, r0, #0
adds r2, #0xb6
movs r1, #0xa0
lsls r1, r1, #1
strh r1, [r2]
adds r0, #0xb4
movs r1, #0xc0
strh r1, [r0]
movs r1, #0x24
bl UpdateMenuOamDataID
movs r0, #5
bl sub_0807ef7c
ldr r1, lbl_0807ece8 @ =gBG0HOFS_NonGameplay
movs r2, #0xe0
lsls r2, r2, #3
adds r0, r2, #0
strh r0, [r1]
ldr r1, lbl_0807ecec @ =gBG0VOFS_NonGameplay
movs r3, #0xe4
lsls r3, r3, #3
adds r0, r3, #0
strh r0, [r1]
ldr r0, lbl_0807ecf0 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xcc
lsls r0, r0, #6
adds r1, r1, r0
b lbl_0807ee52
.align 2, 0
lbl_0807ece4: .4byte sNonGameplayRamPointer
lbl_0807ece8: .4byte gBG0HOFS_NonGameplay
lbl_0807ecec: .4byte gBG0VOFS_NonGameplay
lbl_0807ecf0: .4byte sEwramPointer
lbl_0807ecf4:
ldr r4, lbl_0807ed30 @ =sNonGameplayRamPointer
ldr r2, [r4]
adds r0, r2, #0
adds r0, #0xbf
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne lbl_0807ed08
b lbl_0807eec6
lbl_0807ed08:
adds r0, r2, #0
adds r0, #0x39
ldrb r1, [r0]
movs r0, #1
bl sub_080790cc
cmp r0, #0
bne lbl_0807ed1a
b lbl_0807eec6
lbl_0807ed1a:
ldr r1, [r4]
lbl_0807ed1c:
ldrh r0, [r1, #0x1e]
strh r0, [r1, #4]
ldrh r2, [r1]
movs r3, #0x80
lsls r3, r3, #1
lbl_0807ed26:
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
b lbl_0807eec8
.align 2, 0
lbl_0807ed30: .4byte sNonGameplayRamPointer
lbl_0807ed34:
ldr r0, lbl_0807ed48 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r2, [r1]
ldr r0, lbl_0807ed4c @ =0x0000feff
ands r0, r2
strh r0, [r1]
adds r1, #0xbe
movs r0, #0x25
strb r0, [r1]
b lbl_0807ed9e
.align 2, 0
lbl_0807ed48: .4byte sNonGameplayRamPointer
lbl_0807ed4c: .4byte 0x0000feff
lbl_0807ed50:
ldr r0, lbl_0807ed70 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x39
ldrb r1, [r0]
movs r0, #1
bl sub_080790cc
cmp r0, #0
bne lbl_0807ed64
b lbl_0807eec6
lbl_0807ed64:
ldr r0, lbl_0807ed74 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0xd8
lsls r0, r0, #6
adds r1, r1, r0
b lbl_0807ee52
.align 2, 0
lbl_0807ed70: .4byte sNonGameplayRamPointer
lbl_0807ed74: .4byte sEwramPointer
lbl_0807ed78:
ldr r3, lbl_0807eda8 @ =sNonGameplayRamPointer
ldr r1, [r3]
ldrh r2, [r1]
ldr r0, lbl_0807edac @ =0x0000feff
ands r0, r2
movs r2, #0
strh r0, [r1]
adds r1, #0x7e
strb r2, [r1]
ldr r1, [r3]
adds r1, #0x7f
ldrb r2, [r1]
movs r0, #0x3f
ands r0, r2
strb r0, [r1]
ldr r0, [r3]
adds r0, #0xbe
movs r1, #0x25
strb r1, [r0]
lbl_0807ed9e:
movs r0, #6
bl sub_0807ef7c
b lbl_0807eec8
.align 2, 0
lbl_0807eda8: .4byte sNonGameplayRamPointer
lbl_0807edac: .4byte 0x0000feff
lbl_0807edb0:
ldr r2, lbl_0807edd4 @ =sNonGameplayRamPointer
ldr r0, [r2]
adds r0, #0x7e
movs r1, #0
strb r1, [r0]
ldr r1, [r2]
adds r1, #0x7f
ldrb r2, [r1]
movs r0, #0x3f
ands r0, r2
strb r0, [r1]
ldr r0, lbl_0807edd8 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0xcc
lsls r2, r2, #6
adds r1, r1, r2
b lbl_0807ee52
.align 2, 0
lbl_0807edd4: .4byte sNonGameplayRamPointer
lbl_0807edd8: .4byte sEwramPointer
lbl_0807eddc:
ldr r0, lbl_0807ee20 @ =0x000001fd
bl SoundPlay
ldr r4, lbl_0807ee24 @ =sNonGameplayRamPointer
ldr r0, [r4]
adds r2, r0, #0
adds r2, #0xb6
movs r1, #0xa0
lsls r1, r1, #1
strh r1, [r2]
adds r0, #0xb4
movs r1, #0xa0
strh r1, [r0]
movs r1, #0x26
bl UpdateMenuOamDataID
ldr r0, lbl_0807ee28 @ =gBG0HOFS_NonGameplay
movs r3, #0xec
lsls r3, r3, #3
adds r1, r3, #0
strh r1, [r0]
ldr r0, lbl_0807ee2c @ =gBG0VOFS_NonGameplay
strh r1, [r0]
ldr r0, [r4]
adds r0, #0x47
ldrb r0, [r0]
cmp r0, #1
bne lbl_0807ee34
ldr r0, lbl_0807ee30 @ =sEwramPointer
ldr r1, [r0]
movs r0, #0x84
lsls r0, r0, #7
adds r1, r1, r0
b lbl_0807ee52
.align 2, 0
lbl_0807ee20: .4byte 0x000001fd
lbl_0807ee24: .4byte sNonGameplayRamPointer
lbl_0807ee28: .4byte gBG0HOFS_NonGameplay
lbl_0807ee2c: .4byte gBG0VOFS_NonGameplay
lbl_0807ee30: .4byte sEwramPointer
lbl_0807ee34:
cmp r0, #2
bne lbl_0807ee48
ldr r0, lbl_0807ee44 @ =sEwramPointer
ldr r1, [r0]
movs r2, #0x8a
lsls r2, r2, #7
adds r1, r1, r2
b lbl_0807ee52
.align 2, 0
lbl_0807ee44: .4byte sEwramPointer
lbl_0807ee48:
ldr r0, lbl_0807ee64 @ =sEwramPointer
ldr r1, [r0]
movs r3, #0xfc
lsls r3, r3, #6
lbl_0807ee50:
adds r1, r1, r3
lbl_0807ee52:
ldr r2, lbl_0807ee68 @ =0x0600e000
lbl_0807ee54:
movs r3, #0xc0
lsls r3, r3, #2
movs r0, #0x10
str r0, [sp]
movs r0, #3
bl DMATransfer
b lbl_0807eec8
.align 2, 0
lbl_0807ee64: .4byte sEwramPointer
lbl_0807ee68: .4byte 0x0600e000
lbl_0807ee6c:
ldr r0, lbl_0807ee90 @ =sNonGameplayRamPointer
ldr r2, [r0]
adds r0, r2, #0
adds r0, #0xbf
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq lbl_0807eec6
ldrh r0, [r2, #0x1e]
strh r0, [r2, #4]
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #1
adds r0, r3, #0
lbl_0807ee8a:
orrs r0, r1
strh r0, [r2]
b lbl_0807eec8
.align 2, 0
lbl_0807ee90: .4byte sNonGameplayRamPointer
lbl_0807ee94:
movs r0, #0xff
lsls r0, r0, #1
bl SoundPlay
ldr r0, lbl_0807eeb0 @ =sNonGameplayRamPointer
ldr r1, [r0]
ldrh r2, [r1]
ldr r0, lbl_0807eeb4 @ =0x0000feff
ands r0, r2
strh r0, [r1]
adds r1, #0xbe
movs r0, #0x27
strb r0, [r1]
b lbl_0807eec8
.align 2, 0
lbl_0807eeb0: .4byte sNonGameplayRamPointer
lbl_0807eeb4: .4byte 0x0000feff
lbl_0807eeb8:
ldr r0, lbl_0807eed8 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0xbe
ldrb r0, [r0]
movs r6, #1
cmp r0, #0
beq lbl_0807eec8
lbl_0807eec6:
movs r6, #0
lbl_0807eec8:
adds r0, r6, #0
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r1}
bx r1
.align 2, 0
lbl_0807eed8: .4byte sNonGameplayRamPointer
thumb_func_start sub_0807eedc
sub_0807eedc: @ 0x0807eedc
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov ip, r0
ldr r2, lbl_0807ef70 @ =gSaveFilesInfo
ldr r0, lbl_0807ef74 @ =sNonGameplayRamPointer
ldr r0, [r0]
adds r0, #0x3f
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r0, r2
ldrb r1, [r0, #0x11]
movs r2, #7
mov r8, r2
ands r2, r1
ldrb r0, [r0, #0x11]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #0x10
lsrs r0, r0, #0x13
movs r1, #7
ands r0, r1
orrs r2, r0
mov r8, r2
movs r0, #0x80
lsls r0, r0, #1
add ip, r0
movs r2, #0
lbl_0807ef18:
mov r1, r8
asrs r1, r2
movs r0, #1
ands r1, r0
movs r0, #0xf0
lsls r0, r0, #8
cmp r1, #0
beq lbl_0807ef2c
movs r0, #0xe0
lsls r0, r0, #8
lbl_0807ef2c:
adds r5, r0, #0
adds r7, r2, #1
ldr r6, lbl_0807ef78 @ =0x000003ff
lsls r1, r2, #7
mov r2, ip
adds r0, r2, r1
adds r3, r0, #0
adds r3, #0x44
add r1, ip
adds r2, r1, #4
movs r4, #0xf
lbl_0807ef42:
ldrh r1, [r2]
adds r0, r6, #0
ands r0, r1
orrs r0, r5
strh r0, [r2]
ldrh r1, [r3]
adds r0, r6, #0
ands r0, r1
orrs r0, r5
strh r0, [r3]
adds r3, #2
adds r2, #2
subs r4, #1
cmp r4, #0
bge lbl_0807ef42
adds r2, r7, #0
cmp r2, #2
ble lbl_0807ef18
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
lbl_0807ef70: .4byte gSaveFilesInfo
lbl_0807ef74: .4byte sNonGameplayRamPointer
lbl_0807ef78: .4byte 0x000003ff
thumb_func_start sub_0807ef7c
sub_0807ef7c: @ 0x0807ef7c
push {lr}
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0xc
bhi lbl_0807ef92
ldr r0, lbl_0807ef98 @ =0x08760c4c
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
bl SoundPlay
lbl_0807ef92:
pop {r0}
bx r0
.align 2, 0
lbl_0807ef98: .4byte 0x08760c4c