pmd-sky/asm/overlay_09.s
AnonymousRandomPerson 279364f654 Decomped SetPokemonJoined
Decomped by @Chesyon and @taxicat1
2026-03-19 23:37:46 -04:00

3264 lines
61 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_09.inc"
.text
arm_func_start ov09_0233CA80
ov09_0233CA80: ; 0x0233CA80
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
bl sub_02003BAC
bl sub_02017B70
mov r0, #0x314
mov r1, #8
bl MemAlloc
ldr r2, _0233CBB8 ; =ov09_0233F7E0
mov r1, #0
str r0, [r2]
str r1, [r0, #0x3c]
ldr r0, [r2]
sub r3, r1, #2
strb r3, [r0]
ldr r0, [r2]
ldr r7, _0233CBBC ; =ov09_0233F61C
strb r3, [r0, #1]
ldr r0, [r2]
strb r3, [r0, #2]
ldr r0, [r2]
strb r3, [r0, #3]
ldr r0, [r2]
strb r3, [r0, #4]
ldr r0, [r2]
ldr r3, _0233CBC0 ; =ov09_0233F664
add r6, r0, #0x4c
add r8, r0, #0x284
mov r2, r1
_0233CAEC:
mov r4, r1, lsl #1
#ifdef JAPAN
add r0, r1, #0x148
#else
add r0, r1, #0xfe
#endif
add r5, r0, #0x400
ldrh r0, [r3, r4]
strh r5, [r6]
add r1, r1, #1
strh r0, [r6, #2]
cmp r1, #0x8d
strb r2, [r8], #1
add r6, r6, #4
blt _0233CAEC
strh r2, [r6]
strh r2, [r6, #2]
ldr r6, _0233CBC4 ; =0x000004FD
mov r5, #0
mov r4, #1
ldr sb, _0233CBB8 ; =ov09_0233F7E0
mvn r8, #0
b _0233CB90
_0233CB38:
ldr r0, [r7]
bl IsSpecialEpisodeBeaten
cmp r0, #0
bne _0233CB8C
ldr r2, [sb]
ldmib r7, {r0, r1}
add r3, r2, #0x4c
add r2, r2, #0x284
cmp r0, r1
add r3, r3, r0, lsl #2
add r2, r2, r0
bgt _0233CB8C
b _0233CB80
_0233CB6C:
strh r6, [r3]
strh r5, [r3, #2]
strb r4, [r2], #1
add r0, r0, #1
add r3, r3, #4
_0233CB80:
ldr r1, [r7, #8]
cmp r0, r1
ble _0233CB6C
_0233CB8C:
add r7, r7, #0xc
_0233CB90:
ldr r0, [r7]
cmp r0, r8
bne _0233CB38
ldr r0, _0233CBB8 ; =ov09_0233F7E0
ldr r1, [r0]
add r0, r1, #8
add r1, r1, #0x4c
bl ov09_0233D964
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_0233CBB8: .word ov09_0233F7E0
_0233CBBC: .word ov09_0233F61C
_0233CBC0: .word ov09_0233F664
#ifdef JAPAN
_0233CBC4: .word 0x00000547
#else
_0233CBC4: .word 0x000004FD
#endif
arm_func_end ov09_0233CA80
; https://decomp.me/scratch/Uyfr0
arm_func_start ov09_0233CBC8
ov09_0233CBC8: ; 0x0233CBC8
stmdb sp!, {r3, lr}
ldr r0, _0233CBF4 ; =ov09_0233F7E0
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl MemFree
ldr r0, _0233CBF4 ; =ov09_0233F7E0
mov r1, #0
str r1, [r0]
bl sub_02003BC8
ldmia sp!, {r3, pc}
.align 2, 0
_0233CBF4: .word ov09_0233F7E0
arm_func_end ov09_0233CBC8
arm_func_start ov09_0233CBF8
ov09_0233CBF8: ; 0x0233CBF8
#ifdef JAPAN
#define OV09_0233CBF8_OFFSET 0x4A
#else
#define OV09_0233CBF8_OFFSET 0
#endif
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x18
sub sp, sp, #0x1000
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r3, [r0]
ldr r0, [r3, #0x3c]
cmp r0, #0xd
addls pc, pc, r0, lsl #2
b _0233D918
_0233CC1C: ; jump table
b _0233CC54 ; case 0
b _0233CC98 ; case 1
b _0233CCFC ; case 2
b _0233CD34 ; case 3
b _0233CE78 ; case 4
b _0233CFA8 ; case 5
b _0233CFF8 ; case 6
b _0233D0C8 ; case 7
b _0233D280 ; case 8
b _0233D56C ; case 9
b _0233D5BC ; case 10
b _0233D770 ; case 11
b _0233D7AC ; case 12
b _0233D8F4 ; case 13
_0233CC54:
bl ov01_0232E94C
cmp r0, #0
bne _0233D918
bl ov00_022BE680
cmp r0, #0
bne _0233D918
mov r0, #0x1e
bl ov00_022BE5C8
bl ov01_02330E00
cmp r0, #0
bne _0233CC84
bl ov01_0232EDAC
_0233CC84:
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r1, #1
ldr r0, [r0]
str r1, [r0, #0x3c]
b _0233D918
_0233CC98:
bl ov01_0232E94C
cmp r0, #0
bne _0233D918
bl ov00_022BE680
cmp r0, #0
bne _0233D918
mov r1, #0
mov r0, #1
str r0, [sp]
ldr r0, _0233D92C ; =ov09_0233F780
mov r2, r1
mov r3, r1
str r1, [sp, #4]
bl sub_02052060
mov r0, #0x1e
bl ov00_022BE57C
bl ov01_02330E00
cmp r0, #0
bne _0233CCE8
bl ov01_02330210
_0233CCE8:
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r1, #2
ldr r0, [r0]
str r1, [r0, #0x3c]
b _0233D918
_0233CCFC:
bl ov01_0232E94C
cmp r0, #0
bne _0233D918
bl ov00_022BE680
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r3, #3
ldr r2, [r0]
mov r1, #0
str r3, [r2, #0x3c]
ldr r0, [r0]
str r1, [r0, #0x48]
b _0233D918
_0233CD34:
ldrsb r0, [r3, #2]
mvn r1, #1
cmp r0, r1
beq _0233CD70
bl IsPlaybackControlsMenuActive
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ClosePlaybackControlsMenu
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #2]
_0233CD70:
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #3]
cmp r0, r1
beq _0233CDB4
bl IsDialogueBoxActive
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl CloseDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #3]
_0233CDB4:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r5, [r0]
ldr r0, [r5, #0x48]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r5, #0x48]
bgt _0233D918
add r3, sp, #0xf00
ldr r4, _0233D930 ; =0x000004EF
add r3, r3, #8
strh r4, [r3, #0x80]
add ip, r5, #0x284
mov lr, #0x10
str ip, [sp, #0xfe0]
ldr r0, _0233D934 ; =ov09_0233F58C
ldr r1, _0233D938 ; =0x00401A13
add r2, sp, #0xf80
str lr, [sp, #0xf8c]
mov ip, #6
add r3, r5, #8
str ip, [sp]
bl CreateJukeboxTrackMenu
ldr r1, _0233D928 ; =ov09_0233F7E0
ldr r2, [r1]
strb r0, [r2]
ldr r1, [r1]
ldrb r0, [r1, #0x1c]
cmp r0, #0
mvneq r0, #0
streq r0, [r1, #0x14]
ldr r0, _0233D93C ; =ov09_0233F59C
bl CreateDialogueBox
ldr r3, _0233D928 ; =ov09_0233F7E0
ldr r1, _0233D940 ; =0x00000404
ldr ip, [r3]
#ifdef JAPAN
ldr r2, _0233F164 ; =0x0000053B
#else
add r2, r1, #0xed
#endif
strb r0, [ip, #1]
ldr r0, [r3]
mov r3, #0
ldrsb r0, [r0, #1]
bl ShowStringIdInDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r3, #0
ldr r2, [r0]
mov r1, #4
strb r3, [r2, #0x44]
ldr r0, [r0]
str r1, [r0, #0x3c]
b _0233D918
_0233CE78:
ldrb r0, [r3, #0x44]
cmp r0, #0
ldr r0, [r3, #0x30]
beq _0233CEB8
cmp r0, #0
bgt _0233CEE4
#ifdef JAPAN
ldrsb r0, [r3, #1]
ldr r1, _0233D940 ; =0x00000404
ldr r2, _0233F164 ; =0x0000053B
#else
ldr r1, _0233D940 ; =0x00000404
ldrsb r0, [r3, #1]
add r2, r1, #0xed
#endif
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r1, #0
ldr r0, [r0]
strb r1, [r0, #0x44]
b _0233CEE4
_0233CEB8:
cmp r0, #0
ble _0233CEE4
ldr r1, _0233D940 ; =0x00000404
ldrsb r0, [r3, #1]
add r2, r1, #0xee + OV09_0233CBF8_OFFSET
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r1, #1
ldr r0, [r0]
strb r1, [r0, #0x44]
_0233CEE4:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0]
bl IsJukeboxTrackMenuActive
cmp r0, #0
bne _0233CF6C
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0]
bl ov09_0233E3A4
cmp r0, #0
blt _0233CF5C
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r3, [r0]
ldr r2, [r3, #0x10]
ldr r1, [r3, #0x14]
cmp r1, r2
beq _0233CF3C
str r2, [r3, #0x14]
ldr r0, [r0]
add r0, r0, #8
bl ov09_0233D9F8
_0233CF3C:
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r3, #7
ldr r2, [r0]
mov r1, #0xa
str r3, [r2, #0x3c]
ldr r0, [r0]
str r1, [r0, #0x48]
b _0233CF6C
_0233CF5C:
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r1, #0xb
ldr r0, [r0]
str r1, [r0, #0x3c]
_0233CF6C:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r1, [r0]
ldrb r0, [r1, #0x1d]
cmp r0, #0
beq _0233D918
ldrsb r0, [r1]
bl ov09_0233E308
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r3, #5
ldr r2, [r0]
mov r1, #0
str r3, [r2, #0x3c]
ldr r0, [r0]
str r1, [r0, #0x48]
b _0233D918
_0233CFA8:
ldr r0, [r3, #0x48]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r3, #0x48]
bgt _0233D918
ldr ip, _0233D944 ; =0x000004FC
add r2, sp, #0xe00
ldr r0, _0233D948 ; =ov09_0233F56C
add r2, r2, #0xe8
add r3, r3, #8
mov r1, #0x13
str ip, [sp]
bl CreateInputLockBox
ldr r1, _0233D928 ; =ov09_0233F7E0
mov r2, #6
ldr r3, [r1]
strb r0, [r3, #4]
ldr r0, [r1]
str r2, [r0, #0x3c]
b _0233D918
_0233CFF8:
ldrsb r0, [r3, #4]
bl IsInputLockBoxActive
cmp r0, #0
bne _0233D050
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r3, #0
ldr r1, [r0]
mov r2, #4
strb r3, [r1, #0x1d]
ldr r1, [r0]
str r2, [r1, #0x3c]
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl CloseInputLockBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r2, #1
ldr r1, [r0]
strb r2, [r1, #4]
ldr r0, [r0]
ldrsb r0, [r0]
bl ov09_0233E2D4
b _0233D918
_0233D050:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r2, [r0]
ldrb r0, [r2, #0x44]
cmp r0, #0
ldr r0, [r2, #0x30]
beq _0233D098
cmp r0, #0
bgt _0233D918
#ifdef JAPAN
ldrsb r0, [r2, #1]
ldr r1, _0233D940 ; =0x00000404
ldr r2, _0233F164 ; =0x0000053B
#else
ldr r1, _0233D940 ; =0x00000404
ldrsb r0, [r2, #1]
add r2, r1, #0xed
#endif
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r1, #0
ldr r0, [r0]
strb r1, [r0, #0x44]
b _0233D918
_0233D098:
cmp r0, #0
ble _0233D918
ldr r1, _0233D940 ; =0x00000404
ldrsb r0, [r2, #1]
add r2, r1, #0xee + OV09_0233CBF8_OFFSET
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r1, #1
ldr r0, [r0]
strb r1, [r0, #0x44]
b _0233D918
_0233D0C8:
ldrsb r0, [r3]
mvn r1, #1
cmp r0, r1
beq _0233D104
bl IsJukeboxTrackMenuActive
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0]
bl CloseJukeboxTrackMenu
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
strb r1, [r0]
_0233D104:
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #1]
cmp r0, r1
beq _0233D148
bl IsDialogueBoxActive
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #1]
bl CloseDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #1]
_0233D148:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r3, [r0]
ldr r0, [r3, #0x48]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r3, #0x48]
bgt _0233D918
mov r0, #0
ldr r1, _0233D94C ; =ov09_0233F5AC
str r0, [sp, #0xe50]
str r1, [sp]
ldr ip, _0233D950 ; =ov09_0233F5E4
ldr r1, _0233D954 ; =0x00400033
add r2, sp, #0xe50
add r3, r3, #8
str ip, [sp, #4]
bl CreatePlaybackControlsMenu
ldr r1, _0233D928 ; =ov09_0233F7E0
ldr r1, [r1]
strb r0, [r1, #2]
mov r0, #0
bl CreateDialogueBox
ldr r1, _0233D928 ; =ov09_0233F7E0
ldr r2, [r1]
strb r0, [r2, #3]
ldr r3, [r1]
add r0, sp, #0x88
ldr r2, [r3, #0x14]
str r2, [r3, #0x40]
ldr r2, [r1]
ldr r1, [r2, #0x40]
add r1, r2, r1, lsl #2
ldrh r1, [r1, #0x4c]
bl GetStringFromFileVeneer
add r0, sp, #0xe00
bl InitPreprocessorArgs
ldr r0, _0233D928 ; =ov09_0233F7E0
add r3, sp, #0x88
ldr lr, [r0]
mov r2, #0
ldr ip, [lr, #0x40]
ldr r1, _0233D940 ; =0x00000404
str r3, [sp, #0xe38]
add r3, ip, #1
str r3, [sp, #0xe24]
str r2, [lr, #0x38]
ldr r0, [r0]
add r2, r1, #0xf6 + OV09_0233CBF8_OFFSET
ldrsb r0, [r0, #3]
add r3, sp, #0xe00
bl ShowStringIdInDialogueBox
add r1, sp, #0xe00
str r1, [sp]
ldr r2, _0233D958 ; =0x000004FA
ldr r3, _0233D95C ; =0x0000C402
add r0, sp, #0xa00
mov r1, #0x100
bl PreprocessStringFromId
add r0, sp, #0xa00
#ifndef JAPAN
b _0233D248
_0233D238:
cmp r1, #0x5d
addeq r0, r0, #1
beq _0233D254
add r0, r0, #1
_0233D248:
ldrb r1, [r0]
cmp r1, #0
bne _0233D238
_0233D254:
#endif
bl sub_020265A8
ldr r1, _0233D928 ; =ov09_0233F7E0
mov r3, #0
ldr ip, [r1]
mov r2, #8
str r0, [ip, #0x38]
ldr r0, [r1]
strb r3, [r0, #0x44]
ldr r0, [r1]
str r2, [r0, #0x3c]
b _0233D918
_0233D280:
ldrsb r0, [r3, #2]
bl IsPlaybackControlsMenuActive
cmp r0, #0
bne _0233D3E8
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ov09_0233ED1C
cmp r0, #7
addls pc, pc, r0, lsl #2
b _0233D3C8
_0233D2AC: ; jump table
b _0233D3C8 ; case 0
b _0233D3C8 ; case 1
b _0233D2CC ; case 2
b _0233D2F0 ; case 3
b _0233D314 ; case 4
b _0233D338 ; case 5
b _0233D35C ; case 6
b _0233D3A4 ; case 7
_0233D2CC:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
add r0, r0, #8
bl ov09_0233D9F8
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ov09_0233EC20
b _0233D918
_0233D2F0:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
add r0, r0, #8
bl ov09_0233DA4C
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ov09_0233EC20
b _0233D918
_0233D314:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
add r0, r0, #8
bl ov09_0233DA70
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ov09_0233EC20
b _0233D918
_0233D338:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
add r0, r0, #8
bl ov09_0233DAD0
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ov09_0233EC20
b _0233D918
_0233D35C:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
add r0, r0, #8
bl ov09_0233DB54
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r2, [r0]
ldrb r1, [r2, #0x1d]
cmp r1, #0
beq _0233D398
mov r1, #9
str r1, [r2, #0x3c]
ldr r0, [r0]
mov r1, #0
str r1, [r0, #0x48]
b _0233D918
_0233D398:
ldrsb r0, [r2, #2]
bl ov09_0233EC20
b _0233D918
_0233D3A4:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
add r0, r0, #8
bl ov09_0233DB6C
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ov09_0233EC20
b _0233D918
_0233D3C8:
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r3, #3
ldr r2, [r0]
mov r1, #0xa
str r3, [r2, #0x3c]
ldr r0, [r0]
str r1, [r0, #0x48]
b _0233D918
_0233D3E8:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r2, [r0]
ldrb r1, [r2, #0x1d]
cmp r1, #0
beq _0233D424
ldrsb r0, [r2, #2]
bl ov09_0233EC98
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r3, #9
ldr r2, [r0]
mov r1, #0
str r3, [r2, #0x3c]
ldr r0, [r0]
str r1, [r0, #0x48]
b _0233D918
_0233D424:
ldrb r1, [r2, #0x44]
cmp r1, #0
ldr r1, [r2, #0x30]
beq _0233D454
cmp r1, #0
bgt _0233D494
mvn r1, #0
str r1, [r2, #0x40]
ldr r0, [r0]
mov r1, #0
strb r1, [r0, #0x44]
b _0233D494
_0233D454:
cmp r1, #0
ble _0233D494
mov r3, #0
str r3, [r2, #0x38]
ldr r0, [r0]
ldr r1, _0233D940 ; =0x00000404
ldrsb r0, [r0, #3]
#ifdef JAPAN
ldr r2, _0233F184 ; =0x00000545
#else
add r2, r1, #0xf7
#endif
bl ShowStringIdInDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r3, #0
ldr r2, [r0]
mov r1, #1
str r3, [r2, #0x40]
ldr r0, [r0]
strb r1, [r0, #0x44]
_0233D494:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r3, [r0]
ldrb r1, [r3, #0x44]
cmp r1, #0
bne _0233D918
ldr r2, [r3, #0x14]
ldr r1, [r3, #0x40]
cmp r1, r2
beq _0233D918
str r2, [r3, #0x40]
ldr r2, [r0]
add r0, sp, #0x48
ldr r1, [r2, #0x40]
add r1, r2, r1, lsl #2
ldrh r1, [r1, #0x4c]
bl GetStringFromFileVeneer
add r0, sp, #0x9b0
bl InitPreprocessorArgs
ldr r0, _0233D928 ; =ov09_0233F7E0
add r3, sp, #0x48
ldr lr, [r0]
mov r2, #0
ldr ip, [lr, #0x40]
ldr r1, _0233D940 ; =0x00000404
str r3, [sp, #0x9e8]
add r3, ip, #1
str r3, [sp, #0x9d4]
str r2, [lr, #0x38]
ldr r0, [r0]
add r3, sp, #0x9b0
ldrsb r0, [r0, #3]
add r2, r1, #0xf6 + OV09_0233CBF8_OFFSET
bl ShowStringIdInDialogueBox
add r1, sp, #0x9b0
str r1, [sp]
ldr r2, _0233D958 ; =0x000004FA
ldr r3, _0233D95C ; =0x0000C402
add r0, sp, #0x5b0
mov r1, #0x100
bl PreprocessStringFromId
add r0, sp, #0x5b0
#ifndef JAPAN
b _0233D54C
_0233D53C:
cmp r1, #0x5d
addeq r0, r0, #1
beq _0233D558
add r0, r0, #1
_0233D54C:
ldrb r1, [r0]
cmp r1, #0
bne _0233D53C
_0233D558:
#endif
bl sub_020265A8
ldr r1, _0233D928 ; =ov09_0233F7E0
ldr r1, [r1]
str r0, [r1, #0x38]
b _0233D918
_0233D56C:
ldr r0, [r3, #0x48]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r3, #0x48]
bgt _0233D918
ldr ip, _0233D944 ; =0x000004FC
add r2, sp, #0x500
ldr r0, _0233D960 ; =ov09_0233F57C
add r2, r2, #0x18
add r3, r3, #8
mov r1, #0x13
str ip, [sp]
bl CreateInputLockBox
ldr r1, _0233D928 ; =ov09_0233F7E0
mov r2, #0xa
ldr r3, [r1]
strb r0, [r3, #4]
ldr r0, [r1]
str r2, [r0, #0x3c]
b _0233D918
_0233D5BC:
ldrsb r0, [r3, #4]
bl IsInputLockBoxActive
cmp r0, #0
bne _0233D614
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r3, #0
ldr r1, [r0]
mov r2, #8
strb r3, [r1, #0x1d]
ldr r1, [r0]
str r2, [r1, #0x3c]
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl CloseInputLockBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r2, #1
ldr r1, [r0]
strb r2, [r1, #4]
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ov09_0233EC20
b _0233D918
_0233D614:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r2, [r0]
ldrb r1, [r2, #0x44]
cmp r1, #0
ldr r1, [r2, #0x30]
beq _0233D64C
cmp r1, #0
bgt _0233D68C
mvn r1, #0
str r1, [r2, #0x40]
ldr r0, [r0]
mov r1, #0
strb r1, [r0, #0x44]
b _0233D68C
_0233D64C:
cmp r1, #0
ble _0233D68C
mov r3, #0
str r3, [r2, #0x38]
ldr r0, [r0]
ldr r1, _0233D940 ; =0x00000404
ldrsb r0, [r0, #3]
#ifdef JAPAN
ldr r2, _0233F184 ; =0x00000545
#else
add r2, r1, #0xf7
#endif
bl ShowStringIdInDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r3, #0
ldr r2, [r0]
mov r1, #1
str r3, [r2, #0x40]
ldr r0, [r0]
strb r1, [r0, #0x44]
_0233D68C:
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r3, [r0]
ldrb r1, [r3, #0x44]
cmp r1, #0
bne _0233D918
ldr r2, [r3, #0x14]
ldr r1, [r3, #0x40]
cmp r1, r2
beq _0233D918
str r2, [r3, #0x40]
ldr r2, [r0]
add r0, sp, #8
ldr r1, [r2, #0x40]
add r1, r2, r1, lsl #2
ldrh r1, [r1, #0x4c]
bl GetStringFromFileVeneer
add r0, sp, #0x400
add r0, r0, #0xc8
bl InitPreprocessorArgs
ldr r0, _0233D928 ; =ov09_0233F7E0
add r3, sp, #8
ldr lr, [r0]
mov r2, #0
ldr ip, [lr, #0x40]
ldr r1, _0233D940 ; =0x00000404
str r3, [sp, #0x500]
add r3, ip, #1
str r3, [sp, #0x4ec]
str r2, [lr, #0x38]
ldr r0, [r0]
add r3, sp, #0x400
ldrsb r0, [r0, #3]
add r3, r3, #0xc8
add r2, r1, #0xf6 + OV09_0233CBF8_OFFSET
bl ShowStringIdInDialogueBox
add r1, sp, #0x400
add r1, r1, #0xc8
str r1, [sp]
ldr r2, _0233D958 ; =0x000004FA
ldr r3, _0233D95C ; =0x0000C402
add r0, sp, #0xc8
mov r1, #0x100
bl PreprocessStringFromId
add r0, sp, #0xc8
#ifndef JAPAN
b _0233D750
_0233D740:
cmp r1, #0x5d
addeq r0, r0, #1
beq _0233D75C
add r0, r0, #1
_0233D750:
ldrb r1, [r0]
cmp r1, #0
bne _0233D740
_0233D75C:
#endif
bl sub_020265A8
ldr r1, _0233D928 ; =ov09_0233F7E0
ldr r1, [r1]
str r0, [r1, #0x38]
b _0233D918
_0233D770:
bl ov01_0232E94C
cmp r0, #0
bne _0233D918
bl ov00_022BE680
cmp r0, #0
bne _0233D918
mov r0, #0x1e
bl ov00_022BE5C8
bl ov01_0232EDAC
bl sub_02017B70
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r1, #0xc
ldr r0, [r0]
str r1, [r0, #0x3c]
b _0233D918
_0233D7AC:
bl ov01_0232E94C
cmp r0, #0
bne _0233D918
bl ov00_022BE680
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0]
cmp r0, r1
beq _0233D808
bl IsJukeboxTrackMenuActive
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0]
bl CloseJukeboxTrackMenu
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
strb r1, [r0]
_0233D808:
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #1]
cmp r0, r1
beq _0233D84C
bl IsDialogueBoxActive
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #1]
bl CloseDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #1]
_0233D84C:
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #2]
cmp r0, r1
beq _0233D890
bl IsPlaybackControlsMenuActive
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ClosePlaybackControlsMenu
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #2]
_0233D890:
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #3]
cmp r0, r1
beq _0233D8D4
bl IsDialogueBoxActive
cmp r0, #0
bne _0233D918
ldr r0, _0233D928 ; =ov09_0233F7E0
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl CloseDialogueBox
ldr r0, _0233D928 ; =ov09_0233F7E0
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #3]
_0233D8D4:
bl ov00_022BE8D0
mov r0, #0x1e
bl ov00_022BE57C
ldr r0, _0233D928 ; =ov09_0233F7E0
mov r1, #0xd
ldr r0, [r0]
str r1, [r0, #0x3c]
b _0233D918
_0233D8F4:
bl ov00_022BE680
cmp r0, #0
bne _0233D918
mov r0, #2
bl PlayBgmByIdVeneer
mov r0, #0x14
bl ov01_023310B8
mov r0, #4
b _0233D91C
_0233D918:
mov r0, #1
_0233D91C:
add sp, sp, #0x18
add sp, sp, #0x1000
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0233D928: .word ov09_0233F7E0
arm_func_end ov09_0233CBF8
_0233D92C: .word ov09_0233F780
_0233D930: .word 0x000004EF + OV09_0233CBF8_OFFSET
_0233D934: .word ov09_0233F58C
_0233D938: .word 0x00401A13
_0233D93C: .word ov09_0233F59C
_0233D940: .word 0x00000404
#ifdef JAPAN
_0233F164: .word 0x0000053B
#endif
_0233D944: .word 0x000004FC + OV09_0233CBF8_OFFSET
_0233D948: .word ov09_0233F56C
_0233D94C: .word ov09_0233F5AC
_0233D950: .word ov09_0233F5E4
_0233D954: .word 0x00400033
#ifdef JAPAN
_0233D958: .word 0x0000053A
_0233D95C: .word 0x0000C402
_0233F184: .word 0x00000545
#else
_0233D958: .word 0x000004FA
_0233D95C: .word 0x0000C402
#endif
_0233D960: .word ov09_0233F57C
arm_func_start ov09_0233D964
ov09_0233D964: ; 0x0233D964
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
mov r4, r1
str r4, [r5]
mvn r2, #0
str r2, [r5, #8]
str r2, [r5, #0xc]
mov r1, #0
strh r1, [r5, #0x10]
strh r1, [r5, #0x12]
strb r1, [r5, #0x14]
strb r1, [r5, #0x15]
strb r1, [r5, #0x16]
str r2, [r5, #0x20]
str r2, [r5, #0x24]
bl ov09_0233D9DC
cmp r4, #0
beq _0233D9D0
mov r1, #0
b _0233D9BC
_0233D9B4:
add r4, r4, #4
add r1, r1, #1
_0233D9BC:
ldrh r0, [r4]
cmp r0, #0
bne _0233D9B4
str r1, [r5, #4]
ldmia sp!, {r3, r4, r5, pc}
_0233D9D0:
mov r0, #0
str r0, [r5, #4]
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov09_0233D964
arm_func_start ov09_0233D9DC
ov09_0233D9DC: ; 0x0233D9DC
mov r1, #0
str r1, [r0, #0x18]
str r1, [r0, #0x1c]
str r1, [r0, #0x2c]
str r1, [r0, #0x28]
str r1, [r0, #0x30]
bx lr
arm_func_end ov09_0233D9DC
arm_func_start ov09_0233D9F8
ov09_0233D9F8: ; 0x0233D9F8
stmdb sp!, {r4, lr}
mov r4, r0
ldr r1, [r4, #0xc]
mvn r0, #0
cmp r1, r0
ldreq r0, [r4, #8]
streq r0, [r4, #0xc]
ldr r1, [r4]
ldr r0, [r4, #0xc]
add r0, r1, r0, lsl #2
ldrh r0, [r0, #2]
cmp r0, #0
ldmeqia sp!, {r4, pc}
bl PlayBgmByIdVeneer
mov r1, #1
mov r0, #0
strb r1, [r4, #0x14]
str r0, [r4, #0x20]
sub r0, r0, #1
str r0, [r4, #0x24]
ldmia sp!, {r4, pc}
arm_func_end ov09_0233D9F8
arm_func_start ov09_0233DA4C
ov09_0233DA4C: ; 0x0233DA4C
stmdb sp!, {r4, lr}
mov r4, r0
bl sub_02017B70
mov r0, #0
strb r0, [r4, #0x14]
sub r0, r0, #1
str r0, [r4, #0x20]
str r0, [r4, #0x24]
ldmia sp!, {r4, pc}
arm_func_end ov09_0233DA4C
arm_func_start ov09_0233DA70
ov09_0233DA70: ; 0x0233DA70
stmdb sp!, {r3, lr}
ldr r3, [r0, #0xc]
mvn r1, #0
cmp r3, r1
ldmeqia sp!, {r3, pc}
mov r2, #0
_0233DA88:
ldr r1, [r0, #4]
sub r1, r1, #1
cmp r3, r1
strge r2, [r0, #0xc]
ldrlt r1, [r0, #0xc]
addlt r1, r1, #1
strlt r1, [r0, #0xc]
ldr r3, [r0, #0xc]
ldr r1, [r0]
add r1, r1, r3, lsl #2
ldrh r1, [r1, #2]
cmp r1, #0
beq _0233DA88
ldrb r1, [r0, #0x14]
cmp r1, #0
ldmeqia sp!, {r3, pc}
bl ov09_0233D9F8
ldmia sp!, {r3, pc}
arm_func_end ov09_0233DA70
arm_func_start ov09_0233DAD0
ov09_0233DAD0: ; 0x0233DAD0
stmdb sp!, {r4, lr}
mov r4, r0
ldr r2, [r4, #0xc]
mvn r1, #0
cmp r2, r1
ldmeqia sp!, {r4, pc}
ldrb r1, [r4, #0x14]
cmp r1, #0
beq _0233DB10
ldr r1, [r4, #0x20]
cmp r1, #0xb4
ble _0233DB10
bl ov09_0233DA4C
mov r0, r4
bl ov09_0233D9F8
ldmia sp!, {r4, pc}
_0233DB10:
cmp r2, #0
ldrle r0, [r4, #4]
ldrgt r0, [r4, #0xc]
sub r0, r0, #1
str r0, [r4, #0xc]
ldr r2, [r4, #0xc]
ldr r0, [r4]
add r0, r0, r2, lsl #2
ldrh r0, [r0, #2]
cmp r0, #0
beq _0233DB10
ldrb r0, [r4, #0x14]
cmp r0, #0
ldmeqia sp!, {r4, pc}
mov r0, r4
bl ov09_0233D9F8
ldmia sp!, {r4, pc}
arm_func_end ov09_0233DAD0
arm_func_start ov09_0233DB54
ov09_0233DB54: ; 0x0233DB54
ldrb r1, [r0, #0x15]
cmp r1, #0
moveq r1, #1
movne r1, #0
strb r1, [r0, #0x15]
bx lr
arm_func_end ov09_0233DB54
arm_func_start ov09_0233DB6C
ov09_0233DB6C: ; 0x0233DB6C
ldrb r1, [r0, #0x16]
cmp r1, #0
moveq r1, #1
movne r1, #0
strb r1, [r0, #0x16]
bx lr
arm_func_end ov09_0233DB6C
arm_func_start ov09_0233DB84
ov09_0233DB84: ; 0x0233DB84
mov r1, #0x78
str r1, [r0, #0x28]
bx lr
arm_func_end ov09_0233DB84
arm_func_start ov09_0233DB90
ov09_0233DB90: ; 0x0233DB90
stmdb sp!, {r3, r4, r5, r6, r7, r8, lr}
sub sp, sp, #4
movs r6, r3
ldrneb r4, [r6]
mov r8, r0
movne r0, #0
strneb r0, [r6]
ldr r5, [sp, #0x20]
mov r0, #0
strb r0, [r5]
ldr r0, [r8, #0x18]
moveq r4, #1
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r8, #0x18]
ldr r0, [r8, #0x1c]
mov r7, r1
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r8, #0x1c]
add r1, sp, #0
mov r0, #0
bl GetPressedButtons
bl sub_02003B5C
cmp r0, #0
ldrneh r0, [sp]
andne r0, r0, #0x300
strneh r0, [sp]
ldrb r0, [r8, #0x14]
cmp r0, #0
beq _0233DCF0
ldr r0, [r8, #0x20]
ldr r2, [r8]
ldr r1, [r8, #0xc]
add r0, r0, #1
str r0, [r8, #0x20]
ldr r0, [r8, #0x24]
add r1, r2, r1, lsl #2
cmp r0, #0
blt _0233DCBC
sub r0, r0, #1
str r0, [r8, #0x24]
ldrb r0, [r8, #0x16]
cmp r0, #0
beq _0233DC74
ldrh r0, [r1, #2]
bl sub_02017B18
cmp r0, #0
movne r0, #0
strne r0, [r8, #0x24]
bne _0233DCF0
ldr r0, [r8, #0x24]
cmp r0, #0
bgt _0233DCF0
mov r0, r8
bl ov09_0233D9F8
b _0233DCF0
_0233DC74:
ldr r0, [r8, #0x24]
cmp r0, #0x12c
bgt _0233DCF0
bne _0233DC90
mov r0, #0x12c
bl sub_02017B7C
b _0233DCF0
_0233DC90:
cmp r0, #0
bgt _0233DCF0
mov r0, r8
bl ov09_0233DA4C
mov r0, r8
bl ov09_0233DA70
mov r0, r8
bl ov09_0233D9F8
mov r0, #1
strb r0, [r5]
b _0233DCF0
_0233DCBC:
ldrh r0, [r1, #2]
bl sub_02017B18
cmp r0, #0
moveq r0, #0x3c
streq r0, [r8, #0x24]
beq _0233DCF0
bl sub_02017B0C
cmp r0, #0
beq _0233DCF0
ldrb r0, [r8, #0x16]
cmp r0, #0
moveq r0, #0x258
streq r0, [r8, #0x24]
_0233DCF0:
ldrh r0, [sp]
tst r0, #8
beq _0233DD1C
mov r0, r7
mov r1, #0
bl PlayWindowInputSound
ldrb r0, [r8, #0x15]
cmp r0, #0
moveq r0, #1
movne r0, #0
strb r0, [r8, #0x15]
_0233DD1C:
ldrb r0, [r8, #0x15]
cmp r0, #0
beq _0233DD70
ldr r0, [r8, #0x28]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r8, #0x28]
ldrh r1, [sp]
ldr r0, _0233DEE8 ; =0x00000F04
tst r1, r0
beq _0233DD68
bl sub_02003B5C
cmp r0, #0
bne _0233DD60
mov r0, r7
mov r1, #2
bl PlayWindowInputSound
_0233DD60:
mov r0, #0x78
str r0, [r8, #0x28]
_0233DD68:
mov r0, #0
b _0233DEE0
_0233DD70:
mov r1, #0
str r1, [r8, #0x28]
ldrh r0, [sp]
tst r0, #4
beq _0233DDA0
mov r0, r7
bl PlayWindowInputSound
ldrb r0, [r8, #0x16]
cmp r0, #0
moveq r0, #1
movne r0, #0
strb r0, [r8, #0x16]
_0233DDA0:
ldr r0, [r8, #0x2c]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r8, #0x2c]
bgt _0233DEDC
ldrh r0, [sp]
tst r0, #0x400
beq _0233DE0C
cmp r4, #0
mov r0, r7
beq _0233DDF0
mov r1, #0
bl PlayWindowInputSound
cmp r6, #0
movne r0, #1
strneb r0, [r6]
bne _0233DDF8
mov r0, r8
bl ov09_0233D9F8
b _0233DDF8
_0233DDF0:
mov r1, #2
bl PlayWindowInputSound
_0233DDF8:
mov r0, #4
str r0, [r8, #0x2c]
mov r0, #1
strb r0, [r5]
b _0233DEDC
_0233DE0C:
tst r0, #0x800
beq _0233DE48
mov r0, r7
mov r1, #0
bl PlayWindowInputSound
mov r1, #4
mov r0, r8
str r1, [r8, #0x2c]
bl ov09_0233DA4C
cmp r6, #0
mvnne r0, #0
strne r0, [r8, #0xc]
mov r0, #1
strb r0, [r5]
b _0233DEDC
_0233DE48:
tst r0, #0x200
beq _0233DE94
mov r0, #4
str r0, [r8, #0x2c]
ldr r1, [r8, #0xc]
sub r0, r0, #5
cmp r1, r0
mov r0, r7
bne _0233DE78
mov r1, #2
bl PlayWindowInputSound
b _0233DEDC
_0233DE78:
mov r1, #0
bl PlayWindowInputSound
mov r0, r8
bl ov09_0233DAD0
mov r0, #1
strb r0, [r5]
b _0233DEDC
_0233DE94:
tst r0, #0x100
beq _0233DEDC
mov r0, #4
str r0, [r8, #0x2c]
ldr r1, [r8, #0xc]
sub r0, r0, #5
cmp r1, r0
mov r0, r7
bne _0233DEC4
mov r1, #2
bl PlayWindowInputSound
b _0233DEDC
_0233DEC4:
mov r1, #0
bl PlayWindowInputSound
mov r0, r8
bl ov09_0233DA70
mov r0, #1
strb r0, [r5]
_0233DEDC:
mov r0, #0
_0233DEE0:
add sp, sp, #4
ldmia sp!, {r3, r4, r5, r6, r7, r8, pc}
.align 2, 0
_0233DEE8: .word 0x00000F04
arm_func_end ov09_0233DB90
arm_func_start ov09_0233DEEC
ov09_0233DEEC: ; 0x0233DEEC
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x10
mov r4, #0
mov r8, r0
mov r7, r1
mov r6, r2
mov r5, r3
bl sub_02003B5C
cmp r0, #0
movne r0, r4
bne _0233E028
ldr r1, [r7, #8]
ldr r0, [r7]
add lr, r1, #0x8a
str r0, [sp]
ldr r0, [r7]
add r3, lr, #0x10
add ip, r0, #0xe
add r2, sp, #0
mov r0, r5
mov r1, #2
str ip, [sp, #4]
str lr, [sp, #8]
str r3, [sp, #0xc]
bl sub_02006C8C
cmp r0, #0
beq _0233DF84
mov r1, #4
str r1, [r8, #0x18]
mov r1, r4
mov r0, r7
mov r4, #1
bl PlayWindowInputSound
ldrb r0, [r8, #0x15]
cmp r0, #0
moveq r0, r4
movne r0, #0
strb r0, [r8, #0x15]
_0233DF84:
ldr r0, [r7]
ldr r1, [r7, #8]
add r0, r0, #1
str r0, [sp]
add lr, r1, #0x9e
ldr r0, [r7]
add r3, lr, #0x10
add ip, r0, #0xf
add r2, sp, #0
mov r0, r5
mov r1, #2
str ip, [sp, #4]
str lr, [sp, #8]
str r3, [sp, #0xc]
bl sub_02006C8C
cmp r0, #0
beq _0233E00C
mov r0, #4
str r0, [r8, #0x1c]
ldrb r0, [r8, #0x15]
mov r4, #1
cmp r0, #0
mov r0, r7
beq _0233DFF0
mov r1, #2
bl PlayWindowInputSound
b _0233E00C
_0233DFF0:
mov r1, #0
bl PlayWindowInputSound
ldrb r0, [r8, #0x16]
cmp r0, #0
moveq r0, r4
movne r0, #0
strb r0, [r8, #0x16]
_0233E00C:
cmp r6, #0
beq _0233E024
mov r0, r7
mov r1, r6
bl sub_020320C8
mov r4, #1
_0233E024:
mov r0, r4
_0233E028:
add sp, sp, #0x10
ldmia sp!, {r4, r5, r6, r7, r8, pc}
arm_func_end ov09_0233DEEC
arm_func_start CreateJukeboxTrackMenu
CreateJukeboxTrackMenu: ; 0x0233E030
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x34
mov sl, r3
ldr r6, [sl]
str r1, [sp, #8]
mov r8, r2
mov sb, r0
mov r1, r6
mov r2, #0
b _0233E060
_0233E058:
add r1, r1, #4
add r2, r2, #1
_0233E060:
ldrh r0, [r1]
cmp r0, #0
bne _0233E058
add r0, r2, #1
add r0, r0, r0, lsl #6
mov r0, r0, lsl #2
mov r1, #8
bl MemAlloc
mov fp, r0
mov r5, fp
mov r4, #0
mov r7, #0x100
b _0233E0B8
_0233E094:
ldr r3, _0233E2C8 ; =0x0000C402
mov r0, r5
mov r1, r7
str r4, [sp]
bl PreprocessStringFromId
ldrh r0, [r6, #2]
add r6, r6, #4
str r0, [r5, #0x100]
add r5, r5, #0x104
_0233E0B8:
ldrh r2, [r6]
cmp r2, #0
bne _0233E094
mov r0, #0
strb r0, [r5]
ldrh r2, [r6, #2]
ldr r1, [sp, #0x58]
mov r0, #0x1ac
str r2, [r5, #0x100]
str r1, [sp, #0x10]
mov r1, #8
bl MemAlloc
mov r7, r0
ldr r5, [sl, #0xc]
mov r4, #0
str r4, [sp, #0xc]
mov r0, sl
mov r6, fp
str sl, [r7, #4]
bl ov09_0233D9DC
ldr r0, [sp, #8]
cmp sb, #0
orr sl, r0, #0x20
addne ip, sp, #0x14
ldmneia sb, {r0, r1, r2, r3}
stmneia ip, {r0, r1, r2, r3}
ldrne r0, _0233E2CC ; =UpdateJukeboxTrackMenu
orr sl, sl, #0x8000
strne r0, [sp, #0x14]
bne _0233E144
ldr r0, _0233E2D0 ; =JUKEBOX_TRACK_MENU_DEFAULT_WINDOW_PARAMS
add sb, sp, #0x14
ldmia r0, {r0, r1, r2, r3}
stmia sb, {r0, r1, r2, r3}
orr sl, sl, #0x300000
_0233E144:
ldrb r0, [sp, #0x1a]
str r7, [sp, #0x20]
cmp r0, #0
bne _0233E194
mov sb, #0
b _0233E170
_0233E15C:
mov r0, r6
bl sub_020265A8
cmp r0, sb
movgt sb, r0
add r6, r6, #0x104
_0233E170:
mov r0, r6
bl IsEmptyString
cmp r0, #0
beq _0233E15C
mov r0, sl
mov r1, r8
add r2, sb, #0x10
bl sub_02031A5C
strb r0, [sp, #0x1a]
_0233E194:
mov r6, fp
b _0233E1B8
_0233E19C:
ldr r0, [sp, #0xc]
add r6, r6, #0x104
cmp r0, r5
moveq r4, r0
ldr r0, [sp, #0xc]
add r0, r0, #1
str r0, [sp, #0xc]
_0233E1B8:
mov r0, r6
bl IsEmptyString
cmp r0, #0
beq _0233E19C
ldr r0, [sp, #0x10]
add r2, sp, #0xc
cmp r0, #0
ldrle r0, [sp, #0xc]
add r3, sp, #0x10
strle r0, [sp, #0x10]
ldrb r0, [sp, #0x1b]
cmp r0, #0
mov r0, sl
bne _0233E200
mov r1, r8
bl CalcMenuHeightDiv8__02031AA4
strb r0, [sp, #0x1b]
b _0233E208
_0233E200:
mov r1, r8
bl CalcMenuHeightDiv8__02031AA4
_0233E208:
tst sl, #0x200000
ldrneb r1, [sp, #0x18]
ldrneb r0, [sp, #0x1a]
subne r0, r1, r0
strneb r0, [sp, #0x18]
tst sl, #0x100000
ldrneb r1, [sp, #0x19]
ldrneb r0, [sp, #0x1b]
subne r0, r1, r0
strneb r0, [sp, #0x19]
ldr r0, _0233E2CC ; =UpdateJukeboxTrackMenu
cmp r8, #0
str r0, [r7]
str sl, [r7, #0x100]
beq _0233E264
add r6, r7, #0x104
mov r5, #9
_0233E24C:
ldmia r8!, {r0, r1, r2, r3}
stmia r6!, {r0, r1, r2, r3}
subs r5, r5, #1
bne _0233E24C
ldmia r8, {r0, r1}
stmia r6, {r0, r1}
_0233E264:
str r4, [r7, #0x104]
str fp, [r7, #0x19c]
mov r2, #0
str r2, [r7, #0x1a0]
strb r2, [r7, #0x1a4]
strb r2, [r7, #0x1a5]
add r0, sp, #0x14
mov r1, #3
strb r2, [sp, #0x1c]
bl NewWindowScreenCheck
add r1, sp, #0x24
mov r5, r0
bl GetWindowRectangle
ldr r0, [sp, #0xc]
add r3, sp, #0x24
str r0, [sp]
ldr r4, [sp, #0x10]
mov r1, sl
add r0, r7, #8
add r2, r7, #0x104
str r4, [sp, #4]
bl InitWindowInput
mov r0, r5
add sp, sp, #0x34
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0233E2C8: .word 0x0000C402
_0233E2CC: .word UpdateJukeboxTrackMenu
_0233E2D0: .word JUKEBOX_TRACK_MENU_DEFAULT_WINDOW_PARAMS
arm_func_end CreateJukeboxTrackMenu
arm_func_start ov09_0233E2D4
ov09_0233E2D4: ; 0x0233E2D4
stmdb sp!, {r3, lr}
bl GetWindowContents
mov r1, #1
str r1, [r0, #0x1a0]
mov r1, #0
strb r1, [r0, #0x1a4]
strb r1, [r0, #0x1a5]
ldr r1, [r0, #0x100]
bic r1, r1, #0x800000
str r1, [r0, #0x100]
add r0, r0, #8
bl sub_02032984
ldmia sp!, {r3, pc}
arm_func_end ov09_0233E2D4
arm_func_start ov09_0233E308
ov09_0233E308: ; 0x0233E308
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl GetWindowContents
mov r4, r0
mov r0, #1
mov r2, #0
strb r0, [r4, #0x1a4]
mov r0, r5
sub r1, r2, #4
strb r2, [r4, #0x1a5]
bl sub_0202830C
mov r0, r5
add r1, r4, #8
bl sub_02028948
mov r0, #5
str r0, [r4, #0x1a0]
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov09_0233E308
arm_func_start CloseJukeboxTrackMenu
CloseJukeboxTrackMenu: ; 0x0233E34C
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl GetWindowContents
mov r4, r0
mov r0, #0
mov r1, r0
bl ov01_02330E38
ldr r0, [r4, #0x19c]
bl MemFree
mov r0, r4
bl MemFree
mov r0, r5
bl DeleteWindow
ldmia sp!, {r3, r4, r5, pc}
arm_func_end CloseJukeboxTrackMenu
arm_func_start IsJukeboxTrackMenuActive
IsJukeboxTrackMenuActive: ; 0x0233E384
stmdb sp!, {r3, lr}
bl GetWindowContents
ldr r0, [r0, #0x1a0]
cmp r0, #7
cmpne r0, #8
movne r0, #1
moveq r0, #0
ldmia sp!, {r3, pc}
arm_func_end IsJukeboxTrackMenuActive
arm_func_start ov09_0233E3A4
ov09_0233E3A4: ; 0x0233E3A4
stmdb sp!, {r3, lr}
bl GetWindowContents
ldrb r1, [r0, #0x1a4]
cmp r1, #0
beq _0233E3D4
ldrb r1, [r0, #0x1a5]
cmp r1, #0
mvnne r0, #0
ldmneia sp!, {r3, pc}
add r0, r0, #8
bl GetSelectedMenuItemIdx
ldmia sp!, {r3, pc}
_0233E3D4:
mov r0, #0
ldmia sp!, {r3, pc}
arm_func_end ov09_0233E3A4
arm_func_start UpdateJukeboxTrackMenu
UpdateJukeboxTrackMenu: ; 0x0233E3DC
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x34
mov r6, r0
ldr r4, [r6, #0xc]
ldr r0, [r4, #0x1a0]
cmp r0, #6
addls pc, pc, r0, lsl #2
b _0233E7E8
_0233E3FC: ; jump table
b _0233E418 ; case 0
b _0233E430 ; case 1
b _0233E444 ; case 2
b _0233E44C ; case 3
b _0233E4AC ; case 4
b _0233E76C ; case 5
b _0233E7B0 ; case 6
_0233E418:
ldrsb r0, [r6, #0x10]
bl sub_0202810C
cmp r0, #0
beq _0233E7E8
mov r0, #2
str r0, [r4, #0x1a0]
_0233E430:
ldr r0, [r4, #0x1a0]
cmp r0, #1
moveq r0, #2
streq r0, [r4, #0x1a0]
beq _0233E7E8
_0233E444:
mov r0, #3
str r0, [r4, #0x1a0]
_0233E44C:
mov r0, r6
bl ov09_0233E7F4
ldr r0, [r4, #0x100]
tst r0, #0x800000
beq _0233E488
mov r0, #8
str r0, [r4, #0x1a0]
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
str r0, [r4, #0x1a8]
sub r0, r0, #4
str r0, [r6, #0xb8]
b _0233E7E8
_0233E488:
mov r1, #4
mov r0, #0
str r1, [r4, #0x1a0]
strb r0, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
str r0, [r4, #0x1a8]
sub r0, r0, #1
str r0, [r6, #0xb8]
b _0233E7E8
_0233E4AC:
bl sub_02003B5C
cmp r0, #0
moveq r3, #1
movne r3, #0
add r1, sp, #0xc
add r2, sp, #0x10
add r0, r4, #8
and r3, r3, #0xff
bl sub_02031C98
ldr r1, [sp, #0xc]
mov r5, r0
cmp r1, #0
bne _0233E52C
ldr r0, [r4, #0x100]
tst r0, #1
beq _0233E52C
mov r3, #0
ldr r2, _0233E7F0 ; =0x00000408
add r1, sp, #0x10
str r3, [sp]
mov ip, #1
add r0, r4, #8
str ip, [sp, #4]
bl sub_02032160
movs r1, r0
bmi _0233E52C
add r0, r4, #8
bl sub_02032684
ldr r0, [sp, #0xc]
mov r5, #1
orr r0, r0, #1
str r0, [sp, #0xc]
_0233E52C:
ldr r0, [sp, #0xc]
cmp r0, #0
bne _0233E54C
add r1, sp, #0xc
add r2, sp, #0x10
add r0, r4, #8
bl sub_02033758
orr r5, r5, r0
_0233E54C:
ldr r2, [sp, #0xc]
cmp r2, #0
bne _0233E56C
ldr r0, [r4, #4]
add r3, sp, #0x10
add r1, r4, #8
bl ov09_0233DEEC
orr r5, r5, r0
_0233E56C:
add r0, r4, #8
bl GetSelectedMenuItemIdx
mov r2, r0
ldr r1, [sp, #0xc]
add r0, r4, #8
mov r3, #0
bl sub_020323F8
orrs r0, r5, r0
beq _0233E598
mov r0, r6
bl ov09_0233E7F4
_0233E598:
add r0, r4, #8
bl GetSelectedMenuItemIdx
ldr r1, [r4, #4]
str r0, [r1, #8]
ldr r0, [sp, #0xc]
tst r0, #1
beq _0233E63C
ldr r0, [r4, #4]
ldrb r1, [r0, #0x15]
cmp r1, #0
beq _0233E5D8
bl ov09_0233DB84
add r0, r4, #8
mov r1, #2
bl PlayWindowInputSound
b _0233E750
_0233E5D8:
add r0, r4, #8
bl IsMenuOptionActive
cmp r0, #0
beq _0233E62C
ldr r0, [r4, #0x100]
tst r0, #0x80000000
bne _0233E600
add r0, r4, #8
mov r1, #0
bl PlayWindowInputSound
_0233E600:
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1a8]
str r0, [r6, #0xb8]
mov r0, #5
str r0, [r4, #0x1a0]
b _0233E750
_0233E62C:
add r0, r4, #8
mov r1, #2
bl PlayWindowInputSound
b _0233E750
_0233E63C:
tst r0, #2
beq _0233E69C
ldr r0, [r4, #4]
ldrb r1, [r0, #0x15]
cmp r1, #0
beq _0233E668
bl ov09_0233DB84
add r0, r4, #8
mov r1, #2
bl PlayWindowInputSound
b _0233E750
_0233E668:
add r0, r4, #8
mov r1, #1
bl PlayWindowInputSound
mov r0, #1
strb r0, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
ldr r1, [sp, #0xc]
sub r0, r0, #6
str r1, [r4, #0x1a8]
str r0, [r6, #0xb8]
mov r0, #5
str r0, [r4, #0x1a0]
b _0233E750
_0233E69C:
add r0, r4, #8
bl IsMenuOptionActive
add r1, sp, #8
strb r0, [sp, #9]
str r1, [sp]
ldr r0, [r4, #4]
ldr r2, [sp, #0xc]
add r3, sp, #9
add r1, r4, #8
bl ov09_0233DB90
cmp r0, #0
beq _0233E6F8
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1a8]
str r0, [r6, #0xb8]
mov r0, #5
str r0, [r4, #0x1a0]
b _0233E73C
_0233E6F8:
ldrb r0, [sp, #9]
cmp r0, #0
beq _0233E73C
ldr r1, [r4, #4]
add r0, r4, #8
ldr r1, [r1, #8]
bl sub_02032684
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a4]
strb r0, [r4, #0x1a5]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1a8]
str r0, [r6, #0xb8]
mov r0, #5
str r0, [r4, #0x1a0]
_0233E73C:
ldrb r0, [sp, #8]
cmp r0, #0
beq _0233E750
mov r0, r6
bl ov09_0233E7F4
_0233E750:
ldrsb r0, [r6, #0x10]
add r1, r4, #8
bl sub_02028948
ldr r1, [r4, #4]
mov r0, #2
bl ov01_02330E38
b _0233E7E8
_0233E76C:
add r0, r4, #8
bl sub_02032070
cmp r0, #0
bne _0233E7E8
ldrb r0, [r4, #0x1a5]
cmp r0, #0
bne _0233E7A8
ldr r0, [r4, #0x100]
tst r0, #0x400000
beq _0233E7A8
mov r0, r6
bl ov09_0233E7F4
mov r0, #8
str r0, [r4, #0x1a0]
b _0233E7E8
_0233E7A8:
mov r0, #6
str r0, [r4, #0x1a0]
_0233E7B0:
mov r0, #0
mov r1, r0
bl ov01_02330E38
ldrsb r0, [r6, #0x10]
bl sub_0202812C
cmp r0, #0
beq _0233E7E8
ldrb r0, [r4, #0x1a5]
cmp r0, #0
mvnne r0, #4
mvneq r0, #3
str r0, [r6, #0xb8]
mov r0, #7
str r0, [r4, #0x1a0]
_0233E7E8:
add sp, sp, #0x34
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
_0233E7F0: .word 0x00000408
arm_func_end UpdateJukeboxTrackMenu
arm_func_start ov09_0233E7F4
ov09_0233E7F4: ; 0x0233E7F4
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x154
mov sl, r0
ldr r4, [sl, #0xc]
add r0, r4, #8
bl GetPageStart
mov r5, r0
add r0, r4, #8
bl GetNumItemsOnPage
ldr r2, [r4, #0x100]
mov fp, r0
tst r2, #0x200
ldrne r0, [r4, #0x164]
ldr r3, [r4, #0x19c]
addne sb, r0, r5
add r1, r5, r5, lsl #6
ldrsb r0, [sl, #0x10]
add r6, r3, r1, lsl #2
moveq sb, #0
bl sub_02027B1C
add r0, sp, #0x104
bl InitPreprocessorArgs
cmp fp, #0
mov r7, #0
ble _0233E8EC
b _0233E8E4
_0233E85C:
ldr r0, [r4, #4]
mov r8, #0x44
ldr r0, [r0, #0xc]
cmp r0, r5
moveq r8, #0x45
beq _0233E88C
cmp sb, #0
beq _0233E88C
ldrb r0, [sb]
add sb, sb, #1
tst r0, #2
movne r8, #0x42
_0233E88C:
add r0, r5, #1
str r0, [sp, #0x128]
str r6, [sp, #0x13c]
add r0, sp, #0x104
str r0, [sp]
#ifdef JAPAN
ldr r2, _0234013C ; =0x0000053A
ldr r3, _0233E914 ; =0x0000C402
add r0, sp, #4
mov r1, #0x100
#else
ldr r3, _0233E914 ; =0x0000C402
add r0, sp, #4
mov r1, #0x100
mov r2, #0x4f0
#endif
bl PreprocessStringFromId
add r0, r4, #8
mov r1, r7
bl GetPageItemYOffset
str r8, [sp]
mov r2, r0
ldrsb r0, [sl, #0x10]
mov r1, #0xd
add r3, sp, #4
bl sub_020263C8
add r7, r7, #1
add r5, r5, #1
add r6, r6, #0x104
_0233E8E4:
cmp r7, fp
blt _0233E85C
_0233E8EC:
ldrsb r1, [sl, #0x10]
add r0, r4, #8
bl sub_0202A03C
ldrsb r0, [sl, #0x10]
bl UpdateWindow
ldr r1, [r4, #4]
mov r0, #2
bl ov01_02330E38
add sp, sp, #0x154
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
#ifdef JAPAN
_0234013C: .word 0x0000053A
#endif
_0233E914: .word 0x0000C402
arm_func_end ov09_0233E7F4
arm_func_start CreatePlaybackControlsMenu
CreatePlaybackControlsMenu: ; 0x0233E918
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x3c
mov sl, r1
mov sb, r2
str r0, [sp, #8]
str r3, [sp, #0xc]
ldr r1, [sp, #0x60]
mov r2, #0
b _0233E944
_0233E93C:
add r1, r1, #8
add r2, r2, #1
_0233E944:
ldrh r0, [r1]
cmp r0, #0
bne _0233E93C
add r0, r2, #1
add r0, r0, r0, lsl #6
mov r4, r0, lsl #2
mov r0, r4
mov r1, #8
bl MemAlloc
str r0, [sp, #0x14]
mov r0, r4
mov r1, #8
bl MemAlloc
str r0, [sp, #0x10]
ldr r5, [sp, #0x14]
mov r6, r0
ldr r7, [sp, #0x60]
ldr r4, [sp, #0x64]
b _0233E9C4
_0233E990:
mov r0, r5
bl GetStringFromFileVeneer
ldr r1, [r7, #4]
mov r0, r6
str r1, [r5, #0x100]
ldrh r1, [r4]
add r7, r7, #8
add r5, r5, #0x104
bl GetStringFromFileVeneer
ldr r0, [r4, #4]
add r4, r4, #8
str r0, [r6, #0x100]
add r6, r6, #0x104
_0233E9C4:
ldrh r1, [r7]
cmp r1, #0
bne _0233E990
mov r0, #0
strb r0, [r5]
strb r0, [r6]
ldr r1, [r7, #4]
mov r0, #0x1b4
str r1, [r5, #0x100]
ldr r2, [r4, #4]
mov r1, #8
str r2, [r6, #0x100]
bl MemAlloc
mov r7, r0
tst sl, #0x20
ldrne r8, [sb]
ldr r0, [sp, #0xc]
mov fp, #0
str fp, [sp, #0x18]
mov r1, r0
ldr r6, [sp, #0x14]
ldr r5, [sp, #0x10]
moveq r8, #0
str r1, [r7, #4]
bl ov09_0233D9DC
ldr r0, [sp, #8]
add r4, sp, #0x1c
cmp r0, #0
ldreq r0, _0233EC18 ; =PLAYBACK_CONTROLS_MENU_DEFAULT_WINDOW_PARAMS
orreq sl, sl, #0x300000
ldmeqia r0, {r0, r1, r2, r3}
stmeqia r4, {r0, r1, r2, r3}
ldmneia r0, {r0, r1, r2, r3}
stmneia r4, {r0, r1, r2, r3}
ldrne r0, _0233EC1C ; =UpdatePlaybackControlsMenu
str r7, [sp, #0x28]
strne r0, [sp, #0x1c]
ldrb r0, [sp, #0x22]
cmp r0, #0
bne _0233EACC
mov r4, #0
b _0233EA80
_0233EA6C:
mov r0, r6
bl sub_020265A8
cmp r0, r4
movgt r4, r0
add r6, r6, #0x104
_0233EA80:
mov r0, r6
bl IsEmptyString
cmp r0, #0
beq _0233EA6C
b _0233EAA8
_0233EA94:
mov r0, r5
bl sub_020265A8
cmp r0, r4
movgt r4, r0
add r5, r5, #0x104
_0233EAA8:
mov r0, r5
bl IsEmptyString
cmp r0, #0
beq _0233EA94
mov r0, sl
mov r1, sb
add r2, r4, #0x10
bl sub_02031A5C
strb r0, [sp, #0x22]
_0233EACC:
ldr r4, [sp, #0x14]
ldr r5, [sp, #0x10]
and r6, sl, #0x20
b _0233EB14
_0233EADC:
cmp r6, #0
beq _0233EB00
ldr r0, [r4, #0x100]
cmp r0, r8
ldreq fp, [sp, #0x18]
beq _0233EB00
ldr r0, [r5, #0x100]
cmp r0, r8
ldreq fp, [sp, #0x18]
_0233EB00:
ldr r0, [sp, #0x18]
add r4, r4, #0x104
add r0, r0, #1
str r0, [sp, #0x18]
add r5, r5, #0x104
_0233EB14:
mov r0, r4
bl IsEmptyString
cmp r0, #0
beq _0233EADC
ldrb r0, [sp, #0x23]
cmp r0, #0
bne _0233EB48
add r2, sp, #0x18
mov r0, sl
mov r1, sb
mov r3, r2
bl CalcMenuHeightDiv8__02031AA4
strb r0, [sp, #0x23]
_0233EB48:
tst sl, #0x200000
ldrneb r1, [sp, #0x20]
ldrneb r0, [sp, #0x22]
subne r0, r1, r0
strneb r0, [sp, #0x20]
tst sl, #0x100000
ldrneb r1, [sp, #0x21]
ldrneb r0, [sp, #0x23]
subne r0, r1, r0
strneb r0, [sp, #0x21]
ldr r0, _0233EC1C ; =UpdatePlaybackControlsMenu
cmp sb, #0
str r0, [r7]
str sl, [r7, #0x100]
beq _0233EBA4
add r5, r7, #0x104
mov r4, #9
_0233EB8C:
ldmia sb!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
subs r4, r4, #1
bne _0233EB8C
ldmia sb, {r0, r1}
stmia r5, {r0, r1}
_0233EBA4:
ldr r0, [sp, #0x14]
str fp, [r7, #0x104]
str r0, [r7, #0x19c]
ldr r0, [sp, #0x10]
mov r2, #0
str r0, [r7, #0x1a0]
str r2, [r7, #0x1a4]
strb r2, [r7, #0x1a8]
strb r2, [r7, #0x1a9]
str r2, [r7, #0x1ac]
strb r2, [r7, #0x1b0]
add r0, sp, #0x1c
mov r1, #3
strb r2, [sp, #0x24]
bl NewWindowScreenCheck
add r1, sp, #0x2c
mov r5, r0
bl GetWindowRectangle
ldr r4, [sp, #0x18]
add r3, sp, #0x2c
str r4, [sp]
mov r1, sl
add r0, r7, #8
add r2, r7, #0x104
str r4, [sp, #4]
bl InitWindowInput
mov r0, r5
add sp, sp, #0x3c
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0233EC18: .word PLAYBACK_CONTROLS_MENU_DEFAULT_WINDOW_PARAMS
_0233EC1C: .word UpdatePlaybackControlsMenu
arm_func_end CreatePlaybackControlsMenu
arm_func_start ov09_0233EC20
ov09_0233EC20: ; 0x0233EC20
stmdb sp!, {r3, lr}
bl GetWindowContents
mov r1, #1
str r1, [r0, #0x1a4]
mov r1, #0
strb r1, [r0, #0x1a8]
strb r1, [r0, #0x1a9]
str r1, [r0, #0x1ac]
ldr r1, [r0, #0x100]
bic r1, r1, #0x800000
str r1, [r0, #0x100]
add r0, r0, #8
bl sub_02032984
ldmia sp!, {r3, pc}
arm_func_end ov09_0233EC20
arm_func_start ClosePlaybackControlsMenu
ClosePlaybackControlsMenu: ; 0x0233EC58
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl GetWindowContents
mov r4, r0
mov r0, #0
mov r1, r0
bl ov01_02330E38
ldr r0, [r4, #0x19c]
bl MemFree
ldr r0, [r4, #0x1a0]
bl MemFree
mov r0, r4
bl MemFree
mov r0, r5
bl DeleteWindow
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ClosePlaybackControlsMenu
arm_func_start ov09_0233EC98
ov09_0233EC98: ; 0x0233EC98
stmdb sp!, {r3, r4, r5, lr}
mov r5, r0
bl GetWindowContents
mov r4, r0
ldr r0, [r4, #0x1a4]
cmp r0, #3
cmpne r0, #4
cmpne r0, #8
movne r0, #0
ldmneia sp!, {r3, r4, r5, pc}
mov r0, #1
mov r2, #0
strb r0, [r4, #0x1a8]
strb r2, [r4, #0x1a9]
mov r0, r5
sub r1, r2, #4
str r2, [r4, #0x1ac]
bl sub_0202830C
mov r0, r5
add r1, r4, #8
bl sub_02028948
mov r0, #5
str r0, [r4, #0x1a4]
mov r0, #1
ldmia sp!, {r3, r4, r5, pc}
arm_func_end ov09_0233EC98
arm_func_start IsPlaybackControlsMenuActive
IsPlaybackControlsMenuActive: ; 0x0233ECFC
stmdb sp!, {r3, lr}
bl GetWindowContents
ldr r0, [r0, #0x1a4]
cmp r0, #7
cmpne r0, #8
movne r0, #1
moveq r0, #0
ldmia sp!, {r3, pc}
arm_func_end IsPlaybackControlsMenuActive
arm_func_start ov09_0233ED1C
ov09_0233ED1C: ; 0x0233ED1C
stmdb sp!, {r4, lr}
bl GetWindowContents
ldrb r1, [r0, #0x1a8]
cmp r1, #0
beq _0233ED7C
ldr r1, [r0, #4]
ldrb r1, [r1, #0x14]
cmp r1, #0
ldrne r4, [r0, #0x1a0]
ldrb r1, [r0, #0x1a9]
ldreq r4, [r0, #0x19c]
add r0, r0, #8
cmp r1, #0
beq _0233ED68
bl GetTotalNumMenuItems
add r0, r0, r0, lsl #6
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x100]
ldmia sp!, {r4, pc}
_0233ED68:
bl GetSelectedMenuItemIdx
add r0, r0, r0, lsl #6
add r0, r4, r0, lsl #2
ldr r0, [r0, #0x100]
ldmia sp!, {r4, pc}
_0233ED7C:
mov r0, #0
ldmia sp!, {r4, pc}
arm_func_end ov09_0233ED1C
arm_func_start UpdatePlaybackControlsMenu
UpdatePlaybackControlsMenu: ; 0x0233ED84
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x34
mov r6, r0
ldr r4, [r6, #0xc]
ldr r0, [r4, #0x1a4]
cmp r0, #6
addls pc, pc, r0, lsl #2
b _0233F12C
_0233EDA4: ; jump table
b _0233EDC0 ; case 0
b _0233EDD8 ; case 1
b _0233EDEC ; case 2
b _0233EE4C ; case 3
b _0233F094 ; case 4
b _0233F0A4 ; case 5
b _0233F0F4 ; case 6
_0233EDC0:
ldrsb r0, [r6, #0x10]
bl sub_0202810C
cmp r0, #0
beq _0233F12C
mov r0, #2
str r0, [r4, #0x1a4]
_0233EDD8:
ldr r0, [r4, #0x1a4]
cmp r0, #1
moveq r0, #2
streq r0, [r4, #0x1a4]
beq _0233F12C
_0233EDEC:
mov r0, r6
bl ov09_0233F138
ldr r0, [r4, #0x100]
tst r0, #0x800000
beq _0233EE28
mov r0, #8
str r0, [r4, #0x1a4]
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
str r0, [r4, #0x1ac]
sub r0, r0, #4
str r0, [r6, #0xb8]
b _0233F12C
_0233EE28:
mov r1, #3
mov r0, #0
str r1, [r4, #0x1a4]
strb r0, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
str r0, [r4, #0x1ac]
sub r0, r0, #1
str r0, [r6, #0xb8]
b _0233F12C
_0233EE4C:
bl sub_02003B5C
cmp r0, #0
moveq r3, #1
movne r3, #0
add r1, sp, #0xc
add r2, sp, #0x10
add r0, r4, #8
and r3, r3, #0xff
bl sub_02031C98
ldr r1, [sp, #0xc]
mov r5, r0
cmp r1, #0
bne _0233EECC
ldr r0, [r4, #0x100]
tst r0, #1
beq _0233EECC
mov r3, #0
ldr r2, _0233F134 ; =0x00000408
add r1, sp, #0x10
str r3, [sp]
mov ip, #1
add r0, r4, #8
str ip, [sp, #4]
bl sub_02032160
movs r1, r0
bmi _0233EECC
add r0, r4, #8
bl sub_02032684
ldr r0, [sp, #0xc]
mov r5, #1
orr r0, r0, #1
str r0, [sp, #0xc]
_0233EECC:
ldr r0, [sp, #0xc]
cmp r0, #0
bne _0233EEEC
add r1, sp, #0xc
add r2, sp, #0x10
add r0, r4, #8
bl sub_02033758
orr r5, r5, r0
_0233EEEC:
add r0, r4, #8
bl GetSelectedMenuItemIdx
mov r2, r0
ldr r1, [sp, #0xc]
add r0, r4, #8
mov r3, #0
bl sub_020323F8
orrs r0, r5, r0
beq _0233EF18
mov r0, r6
bl ov09_0233F138
_0233EF18:
ldr r2, [sp, #0xc]
tst r2, #1
beq _0233EFBC
add r0, r4, #8
bl GetSelectedMenuItemIdx
ldr r2, [r4, #4]
ldrb r1, [r2, #0x15]
cmp r1, #0
cmpne r0, #3
beq _0233EF58
mov r0, r2
bl ov09_0233DB84
add r0, r4, #8
mov r1, #2
bl PlayWindowInputSound
b _0233F078
_0233EF58:
add r0, r4, #8
bl IsMenuOptionActive
cmp r0, #0
beq _0233EFAC
ldr r0, [r4, #0x100]
tst r0, #0x80000000
bne _0233EF80
add r0, r4, #8
mov r1, #0
bl PlayWindowInputSound
_0233EF80:
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1ac]
str r0, [r6, #0xb8]
mov r0, #4
str r0, [r4, #0x1a4]
b _0233F078
_0233EFAC:
add r0, r4, #8
mov r1, #2
bl PlayWindowInputSound
b _0233F078
_0233EFBC:
tst r2, #2
beq _0233F01C
ldr r0, [r4, #4]
ldrb r1, [r0, #0x15]
cmp r1, #0
beq _0233EFE8
bl ov09_0233DB84
add r0, r4, #8
mov r1, #2
bl PlayWindowInputSound
b _0233F078
_0233EFE8:
add r0, r4, #8
mov r1, #1
bl PlayWindowInputSound
mov r0, #1
strb r0, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
ldr r1, [sp, #0xc]
sub r0, r0, #6
str r1, [r4, #0x1ac]
str r0, [r6, #0xb8]
mov r0, #4
str r0, [r4, #0x1a4]
b _0233F078
_0233F01C:
add r0, sp, #8
str r0, [sp]
ldr r0, [r4, #4]
add r1, r4, #8
mov r3, #0
bl ov09_0233DB90
cmp r0, #0
beq _0233F064
mov r1, #1
mov r0, #0
strb r1, [r4, #0x1a8]
strb r0, [r4, #0x1a9]
ldr r1, [sp, #0xc]
sub r0, r0, #4
str r1, [r4, #0x1ac]
str r0, [r6, #0xb8]
mov r0, #4
str r0, [r4, #0x1a4]
_0233F064:
ldrb r0, [sp, #8]
cmp r0, #0
beq _0233F078
mov r0, r6
bl ov09_0233F138
_0233F078:
ldrsb r0, [r6, #0x10]
add r1, r4, #8
bl sub_02028948
ldr r1, [r4, #4]
mov r0, #3
bl ov01_02330E38
b _0233F12C
_0233F094:
add r0, r4, #8
bl sub_02032070
cmp r0, #0
bne _0233F12C
_0233F0A4:
ldrb r0, [r4, #0x1a9]
cmp r0, #0
bne _0233F0D8
ldr r0, [r4, #0x100]
tst r0, #0x400000
beq _0233F0EC
mov r0, r6
bl ov09_0233F138
mvn r0, #3
str r0, [r6, #0xb8]
mov r0, #8
str r0, [r4, #0x1a4]
b _0233F12C
_0233F0D8:
ldrb r0, [r4, #0x1b0]
cmp r0, #0
movne r0, #8
strne r0, [r4, #0x1a4]
bne _0233F12C
_0233F0EC:
mov r0, #6
str r0, [r4, #0x1a4]
_0233F0F4:
mov r0, #0
mov r1, r0
bl ov01_02330E38
ldrsb r0, [r6, #0x10]
bl sub_0202812C
cmp r0, #0
beq _0233F12C
ldrb r0, [r4, #0x1a9]
cmp r0, #0
mvnne r0, #4
mvneq r0, #3
str r0, [r6, #0xb8]
mov r0, #7
str r0, [r4, #0x1a4]
_0233F12C:
add sp, sp, #0x34
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
_0233F134: .word 0x00000408
arm_func_end UpdatePlaybackControlsMenu
arm_func_start ov09_0233F138
ov09_0233F138: ; 0x0233F138
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov sl, r0
ldr r4, [sl, #0xc]
mov r7, #0
ldr r0, [r4, #0x100]
ldr r5, [r4, #0x19c]
tst r0, #0x200
ldrne r8, [r4, #0x164]
ldrsb r0, [sl, #0x10]
ldr r6, [r4, #0x1a0]
moveq r8, #0
bl sub_02027B1C
b _0233F1DC
_0233F16C:
mov r1, #0
cmp r8, #0
beq _0233F188
ldrb r0, [r8]
add r8, r8, #1
tst r0, #2
movne r1, #1
_0233F188:
ldr r0, [r4, #4]
ldrb r0, [r0, #0x14]
cmp r0, #0
movne fp, r6
moveq fp, r5
cmp r1, #0
movne sb, #0x42
moveq sb, #0x44
mov r1, r7
add r0, r4, #8
bl GetPageItemYOffset
and r1, sb, #0xff
str r1, [sp]
mov r2, r0
ldrsb r0, [sl, #0x10]
mov r3, fp
mov r1, #0xd
bl sub_020263C8
add r7, r7, #1
add r5, r5, #0x104
add r6, r6, #0x104
_0233F1DC:
mov r0, r5
bl IsEmptyString
cmp r0, #0
beq _0233F16C
ldrsb r1, [sl, #0x10]
add r0, r4, #8
bl sub_0202A03C
ldrsb r0, [sl, #0x10]
bl UpdateWindow
ldr r1, [r4, #4]
mov r0, #3
bl ov01_02330E38
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
arm_func_end ov09_0233F138
arm_func_start CreateInputLockBox
CreateInputLockBox: ; 0x0233F210
stmdb sp!, {r4, r5, r6, r7, r8, lr}
sub sp, sp, #0x28
mov r7, r0
mov r6, r1
mov r0, #0x2b0
mov r1, #8
mov r5, r2
mov r8, r3
bl MemAlloc
mov r4, r0
ldrh r1, [sp, #0x40]
str r8, [r4, #4]
add r0, r4, #0x100
strh r1, [r0, #0xa0]
mov r1, #0
str r1, [sp]
ldrh r2, [r0, #0xa0]
ldr r3, _0233F3B4 ; =0x0000C402
add r0, r4, #0x1a8
mov r1, #0x100
bl PreprocessStringFromId
add r0, r4, #0x1a8
bl sub_020265A8
cmp r7, #0
mov ip, r0
ldreq r0, _0233F3B8 ; =INPUT_LOCK_BOX_DEFAULT_WINDOW_PARAMS
str ip, [r4, #0x1a4]
addeq r7, sp, #0x18
ldmeqia r0, {r0, r1, r2, r3}
stmeqia r7, {r0, r1, r2, r3}
addne lr, sp, #0x18
ldmneia r7, {r0, r1, r2, r3}
stmneia lr, {r0, r1, r2, r3}
ldrne r0, _0233F3BC ; =UpdateInputLockBox
str r4, [sp, #0x24]
strne r0, [sp, #0x18]
ldrb r0, [sp, #0x1e]
cmp r0, #0
addeq r1, ip, #7
moveq r0, r1, asr #2
addeq r0, r1, r0, lsr #29
moveq r0, r0, asr #3
streqb r0, [sp, #0x1e]
ldrb r0, [sp, #0x1f]
cmp r0, #0
moveq r0, #2
streqb r0, [sp, #0x1f]
tst r6, #0x200000
ldrneb r1, [sp, #0x1c]
ldrneb r0, [sp, #0x1e]
subne r0, r1, r0
strneb r0, [sp, #0x1c]
tst r6, #0x100000
ldrneb r1, [sp, #0x1d]
ldrneb r0, [sp, #0x1f]
subne r0, r1, r0
strneb r0, [sp, #0x1d]
ldrb r1, [sp, #0x1e]
ldr r0, [r4, #0x1a4]
rsb r0, r0, r1, lsl #3
add r0, r0, r0, lsr #31
mov r0, r0, asr #1
str r0, [r4, #0x2ac]
ldrb r0, [sp, #0x1f]
mov r0, r0, lsl #3
sub r0, r0, #0xc
add r0, r0, r0, lsr #31
mov r0, r0, asr #1
str r0, [r4, #0x2a8]
ldr r0, [r4, #0x2ac]
cmp r0, #0
movlt r0, #0
strlt r0, [r4, #0x2ac]
ldr r0, _0233F3BC ; =UpdateInputLockBox
cmp r5, #0
str r0, [r4]
str r6, [r4, #0x100]
beq _0233F368
add ip, r4, #0x104
mov r7, #9
_0233F350:
ldmia r5!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
subs r7, r7, #1
bne _0233F350
ldmia r5, {r0, r1}
stmia ip, {r0, r1}
_0233F368:
mov r2, #0
add r0, sp, #0x18
mov r1, #3
str r2, [r4, #0x19c]
bl NewWindowScreenCheck
add r1, sp, #8
mov r7, r0
bl GetWindowRectangle
mov r5, #1
str r5, [sp]
add r3, sp, #8
mov r1, r6
add r0, r4, #8
add r2, r4, #0x104
str r5, [sp, #4]
bl InitWindowInput
mov r0, r7
add sp, sp, #0x28
ldmia sp!, {r4, r5, r6, r7, r8, pc}
.align 2, 0
_0233F3B4: .word 0x0000C402
_0233F3B8: .word INPUT_LOCK_BOX_DEFAULT_WINDOW_PARAMS
_0233F3BC: .word UpdateInputLockBox
arm_func_end CreateInputLockBox
arm_func_start CloseInputLockBox
CloseInputLockBox: ; 0x0233F3C0
stmdb sp!, {r4, lr}
mov r4, r0
bl GetWindowContents
bl MemFree
mov r0, r4
bl DeleteWindow
ldmia sp!, {r4, pc}
arm_func_end CloseInputLockBox
arm_func_start IsInputLockBoxActive
IsInputLockBoxActive: ; 0x0233F3DC
stmdb sp!, {r3, lr}
bl GetWindowContents
ldr r0, [r0, #0x19c]
cmp r0, #4
movne r0, #1
moveq r0, #0
and r0, r0, #0xff
ldmia sp!, {r3, pc}
arm_func_end IsInputLockBoxActive
arm_func_start UpdateInputLockBox
UpdateInputLockBox: ; 0x0233F3FC
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x2c
mov r5, r0
ldr r4, [r5, #0xc]
ldr r0, [r4, #0x19c]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _0233F564
_0233F41C: ; jump table
b _0233F42C ; case 0
b _0233F444 ; case 1
b _0233F48C ; case 2
b _0233F548 ; case 3
_0233F42C:
ldrsb r0, [r5, #0x10]
bl sub_0202810C
cmp r0, #0
beq _0233F564
mov r0, #1
str r0, [r4, #0x19c]
_0233F444:
ldrsb r0, [r5, #0x10]
ldr r6, [r5, #0xc]
bl sub_02027B1C
ldrsb r0, [r5, #0x10]
ldr r1, [r6, #0x2ac]
ldr r2, [r6, #0x2a8]
add r3, r6, #0x1a8
bl DrawTextInWindow
ldrsb r0, [r5, #0x10]
bl UpdateWindow
ldr r1, [r6, #4]
mov r0, #1
bl ov01_02330E38
mov r0, #2
str r0, [r4, #0x19c]
sub r0, r0, #3
str r0, [r5, #0xb8]
b _0233F564
_0233F48C:
bl sub_02003B5C
cmp r0, #0
#ifdef EUROPE
add r0, sp, #8
beq _0233FC28
mov r5, #0
bl sub_02006BFC
b _0233F4AC
_0233FC28:
ldr r1, [r4, #0x100]
#else
movne r5, #0
bne _0233F4AC
ldr r1, [r4, #0x100]
add r0, sp, #8
#endif
bl sub_02031914
mov r5, r0
_0233F4AC:
tst r5, #0xf3
beq _0233F4CC
ldr r0, [r4, #4]
bl ov09_0233DB84
ldr r0, [r4, #0x100]
mov r1, #2
bl sub_02031A3C
b _0233F538
_0233F4CC:
tst r5, #0x100
beq _0233F4EC
ldr r0, [r4, #0x100]
mov r1, #0
bl sub_02031A3C
mov r0, #3
str r0, [r4, #0x19c]
b _0233F538
_0233F4EC:
add r0, sp, #8
mov r1, #2
mov r2, #0
bl sub_02006C8C
cmp r0, #0
beq _0233F51C
ldr r0, [r4, #0x100]
mov r1, #2
bl sub_02031A3C
ldr r0, [r4, #4]
bl ov09_0233DB84
b _0233F538
_0233F51C:
add r0, sp, #4
str r0, [sp]
ldr r0, [r4, #4]
mov r2, r5
add r1, r4, #8
mov r3, #0
bl ov09_0233DB90
_0233F538:
ldr r1, [r4, #4]
mov r0, #1
bl ov01_02330E38
b _0233F564
_0233F548:
ldrsb r0, [r5, #0x10]
bl sub_0202812C
cmp r0, #0
mvnne r0, #4
strne r0, [r5, #0xb8]
movne r0, #4
strne r0, [r4, #0x19c]
_0233F564:
add sp, sp, #0x2c
ldmia sp!, {r3, r4, r5, r6, pc}
arm_func_end UpdateInputLockBox
; 0x0233F56C
.rodata
.global ov09_0233F56C
ov09_0233F56C:
.byte 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0A, 0x0C, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov09_0233F57C
ov09_0233F57C:
.byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x08, 0x0C, 0x02, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov09_0233F58C
ov09_0233F58C:
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x1C, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov09_0233F59C
ov09_0233F59C:
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x1C, 0x02, 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov09_0233F5AC
ov09_0233F5AC:
#ifdef JAPAN
#define OV09_DATA_OFFSET 0x4A
#else
#define OV09_DATA_OFFSET 0
#endif
.word 0x4F3 + OV09_DATA_OFFSET
.byte 0x02, 0x00, 0x00, 0x00
.word 0x4F5 + OV09_DATA_OFFSET
.byte 0x04, 0x00, 0x00, 0x00
.word 0x4F6 + OV09_DATA_OFFSET
.byte 0x05, 0x00, 0x00, 0x00
.word 0x4F7 + OV09_DATA_OFFSET
.byte 0x06, 0x00, 0x00, 0x00
.word 0x4F8 + OV09_DATA_OFFSET
.byte 0x07, 0x00, 0x00, 0x00
.word 0x4F9 + OV09_DATA_OFFSET
.byte 0x08, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.global ov09_0233F5E4
ov09_0233F5E4:
.word 0x4F4 + OV09_DATA_OFFSET
.byte 0x03, 0x00, 0x00, 0x00
.word 0x4F5 + OV09_DATA_OFFSET
.byte 0x04, 0x00, 0x00, 0x00
.word 0x4F6 + OV09_DATA_OFFSET
.byte 0x05, 0x00, 0x00, 0x00
.word 0x4F7 + OV09_DATA_OFFSET
.byte 0x06, 0x00, 0x00, 0x00
.word 0x4F8 + OV09_DATA_OFFSET
.byte 0x07, 0x00, 0x00, 0x00
.word 0x4F9 + OV09_DATA_OFFSET
.byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.global ov09_0233F61C
ov09_0233F61C:
.byte 0x00, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x6C, 0x00, 0x00, 0x00, 0x72, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00
.byte 0x75, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x76, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00
.byte 0x04, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global ov09_0233F664
ov09_0233F664:
.byte 0x01, 0x00, 0x02, 0x00, 0x06, 0x00, 0x45, 0x00
.byte 0x15, 0x00, 0x0E, 0x00, 0x82, 0x00, 0x07, 0x00, 0x49, 0x00, 0x46, 0x00, 0x08, 0x00, 0x16, 0x00
.byte 0x05, 0x00, 0x09, 0x00, 0x83, 0x00, 0x4A, 0x00, 0x4C, 0x00, 0x17, 0x00, 0x0F, 0x00, 0x4E, 0x00
.byte 0x04, 0x00, 0x0D, 0x00, 0x4F, 0x00, 0x18, 0x00, 0x0C, 0x00, 0x86, 0x00, 0x9F, 0x00, 0xA0, 0x00
.byte 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x1F, 0x00, 0x20, 0x00
.byte 0x21, 0x00, 0x0B, 0x00, 0x85, 0x00, 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x25, 0x00, 0x26, 0x00
.byte 0x48, 0x00, 0x50, 0x00, 0x51, 0x00, 0x27, 0x00, 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00
.byte 0x2C, 0x00, 0x4B, 0x00, 0x3D, 0x00, 0x2E, 0x00, 0x2F, 0x00, 0x30, 0x00, 0x31, 0x00, 0x11, 0x00
.byte 0x4D, 0x00, 0x52, 0x00, 0x53, 0x00, 0x32, 0x00, 0x33, 0x00, 0x6C, 0x00, 0x84, 0x00, 0x10, 0x00
.byte 0x54, 0x00, 0x55, 0x00, 0x79, 0x00, 0x7A, 0x00, 0x56, 0x00, 0x58, 0x00, 0x59, 0x00, 0x5A, 0x00
.byte 0x5B, 0x00, 0x34, 0x00, 0x0A, 0x00, 0xB1, 0x00, 0x9B, 0x00, 0x5F, 0x00, 0x9C, 0x00, 0x61, 0x00
.byte 0x9D, 0x00, 0x9E, 0x00, 0x35, 0x00, 0x36, 0x00, 0x3C, 0x00, 0x38, 0x00, 0x12, 0x00, 0x39, 0x00
.byte 0x3A, 0x00, 0x3B, 0x00, 0x7B, 0x00, 0x3E, 0x00, 0x3F, 0x00, 0x37, 0x00, 0x2D, 0x00, 0x91, 0x00
.byte 0x03, 0x00, 0x81, 0x00, 0x87, 0x00, 0x88, 0x00, 0x89, 0x00, 0x8D, 0x00, 0x8E, 0x00, 0x8A, 0x00
.byte 0x5E, 0x00, 0xB0, 0x00, 0x92, 0x00, 0x93, 0x00, 0xA2, 0x00, 0xA3, 0x00, 0xA4, 0x00, 0x62, 0x00
.byte 0x63, 0x00, 0x8C, 0x00, 0xA6, 0x00, 0x60, 0x00, 0x8B, 0x00, 0xA1, 0x00, 0x8F, 0x00, 0x90, 0x00
.byte 0xA5, 0x00, 0xA7, 0x00, 0x94, 0x00, 0x95, 0x00, 0x96, 0x00, 0x97, 0x00, 0xA8, 0x00, 0x98, 0x00
.byte 0xA9, 0x00, 0x99, 0x00, 0x9A, 0x00, 0xAA, 0x00, 0xAB, 0x00, 0xAE, 0x00, 0xAC, 0x00, 0xAF, 0x00
.byte 0xAD, 0x00, 0x00, 0x00
.global ov09_0233F780
ov09_0233F780:
.byte 0x42, 0x41, 0x43, 0x4B, 0x2F, 0x73, 0x31, 0x38, 0x70, 0x30, 0x32, 0x61
.byte 0x2E, 0x62, 0x67, 0x70, 0x00, 0x00, 0x00, 0x00
.global JUKEBOX_TRACK_MENU_DEFAULT_WINDOW_PARAMS
JUKEBOX_TRACK_MENU_DEFAULT_WINDOW_PARAMS:
.word UpdateJukeboxTrackMenu
.byte 0x1E, 0x0F, 0x00, 0x00
.byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global PLAYBACK_CONTROLS_MENU_DEFAULT_WINDOW_PARAMS
PLAYBACK_CONTROLS_MENU_DEFAULT_WINDOW_PARAMS:
.word UpdatePlaybackControlsMenu
.byte 0x1E, 0x0F, 0x00, 0x00
.byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global INPUT_LOCK_BOX_DEFAULT_WINDOW_PARAMS
INPUT_LOCK_BOX_DEFAULT_WINDOW_PARAMS:
.word UpdateInputLockBox
.byte 0x0A, 0x08, 0x0C, 0x02
.byte 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.data
.global ov09_0233F7E0
ov09_0233F7E0:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00