pmd-sky/asm/overlay_18.s
2026-03-02 22:38:23 -05:00

4086 lines
81 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_18.inc"
.text
arm_func_start LinkShopEntryPoint
LinkShopEntryPoint: ; 0x0238A140
stmdb sp!, {r3, lr}
mov r0, #0x3c4
mov r1, #8
bl MemAlloc
ldr r1, _0238A298 ; =LINK_SHOP_PTR
mov r2, #1
str r0, [r1]
strb r2, [r0, #0x10]
ldr r0, [r1]
add r0, r0, #0x14
bl InitPreprocessorArgs
ldr r3, _0238A298 ; =LINK_SHOP_PTR
mov r1, #0
ldr r2, [r3]
sub r0, r1, #1
str r1, [r2, #0x74]
ldr r2, [r3]
mov ip, #2
str r1, [r2, #0x78]
ldr lr, [r3]
ldr r2, [lr, #0x78]
str r2, [lr, #0x80]
ldr r2, [r3]
str r1, [r2, #0x7c]
ldr r2, [r3]
str r0, [r2, #0x84]
ldr r2, [r3]
str r1, [r2, #0x88]
ldr r2, [r3]
add r2, r2, #0x300
strh r0, [r2, #0x8c]
ldr r2, [r3]
add r2, r2, #0x300
strh ip, [r2, #0x88]
ldr r2, [r3]
add r2, r2, #0x300
strh ip, [r2, #0x8a]
ldr r2, [r3]
str r1, [r2, #0x3a0]
ldr r2, [r3]
add r2, r2, #0x300
strh r0, [r2, #0xa4]
ldr r0, [r3]
strh r1, [r0, #0x8c]
bl sub_020573A0
bl sub_02041400
ldr r1, _0238A29C ; =ov11_0238A090
ldr r0, _0238A298 ; =LINK_SHOP_PTR
ldr r3, [r1]
ldr r2, [r0]
mvn r1, #1
str r3, [r2, #0x390]
ldr r2, [r0]
strb r1, [r2]
ldr r2, [r0]
strb r1, [r2, #1]
ldr r2, [r0]
strb r1, [r2, #2]
ldr r2, [r0]
strb r1, [r2, #3]
ldr r2, [r0]
strb r1, [r2, #4]
ldr r2, [r0]
strb r1, [r2, #5]
ldr r2, [r0]
strb r1, [r2, #6]
ldr r2, [r0]
strb r1, [r2, #7]
ldr r2, [r0]
strb r1, [r2, #8]
ldr r2, [r0]
strb r1, [r2, #9]
ldr r2, [r0]
strb r1, [r2, #0xa]
ldr r2, [r0]
strb r1, [r2, #0xb]
ldr r2, [r0]
strb r1, [r2, #0xc]
ldr r2, [r0]
strb r1, [r2, #0xd]
ldr r2, [r0]
strb r1, [r2, #0xe]
ldr r2, [r0]
mov r0, #1
strb r1, [r2, #0xf]
ldmia sp!, {r3, pc}
.align 2, 0
_0238A298: .word LINK_SHOP_PTR
_0238A29C: .word ov11_0238A090
arm_func_end LinkShopEntryPoint
arm_func_start ov18_0238A2A0
ov18_0238A2A0: ; 0x0238A2A0
stmdb sp!, {r3, lr}
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #1
bne _0238A2CC
ldrsb r0, [r1]
mvn r1, #1
cmp r0, r1
beq _0238A2CC
bl sub_0202F334
_0238A2CC:
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #2
bne _0238A2F4
ldrsb r0, [r1, #1]
mvn r1, #1
cmp r0, r1
beq _0238A2F4
bl HidePortraitBox
_0238A2F4:
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #4
bne _0238A31C
ldrsb r0, [r1, #2]
mvn r1, #1
cmp r0, r1
beq _0238A31C
bl sub_0202F954
_0238A31C:
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldr r0, [r0, #0x88]
tst r0, #0x80
bne _0238A334
bl sub_0203A618
_0238A334:
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x100
bne _0238A35C
ldrsb r0, [r1, #7]
mvn r1, #1
cmp r0, r1
beq _0238A35C
bl SetAdvancedTextBoxState5
_0238A35C:
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x200
bne _0238A384
ldrsb r0, [r1, #8]
mvn r1, #1
cmp r0, r1
beq _0238A384
bl SetAdvancedTextBoxState5
_0238A384:
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x400
bne _0238A3AC
ldrsb r0, [r1, #9]
mvn r1, #1
cmp r0, r1
beq _0238A3AC
bl SetScrollBoxState7
_0238A3AC:
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x1000
bne _0238A3D4
ldrsb r0, [r1, #0xb]
mvn r1, #1
cmp r0, r1
beq _0238A3D4
bl sub_0202BC60
_0238A3D4:
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x4000
bne _0238A3FC
ldrsb r0, [r1, #0xd]
mvn r1, #1
cmp r0, r1
beq _0238A3FC
bl SetAdvancedTextBoxState5
_0238A3FC:
ldr r0, _0238A428 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x10000
ldmneia sp!, {r3, pc}
ldrsb r0, [r1, #0xf]
mvn r1, #1
cmp r0, r1
ldmeqia sp!, {r3, pc}
bl sub_0202F334
ldmia sp!, {r3, pc}
.align 2, 0
_0238A428: .word LINK_SHOP_PTR
arm_func_end ov18_0238A2A0
arm_func_start ov18_0238A42C
ov18_0238A42C: ; 0x0238A42C
stmdb sp!, {r3, lr}
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #1
bne _0238A498
ldrsb r0, [r1]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A48C
bl IsDialogueBoxActive
cmp r0, #0
movne r2, #0
bne _0238A48C
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0]
bl CloseDialogueBox
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0]
_0238A48C:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A498:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #2
bne _0238A500
ldrsb r0, [r1, #1]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A4F4
bl PortraitBoxNeedsUpdate
cmp r0, #0
movne r2, #0
bne _0238A4F4
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #1]
bl ClosePortraitBox
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #1]
_0238A4F4:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A500:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #4
bne _0238A568
ldrsb r0, [r1, #2]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A55C
bl IsTextBoxActive
cmp r0, #0
movne r2, #0
bne _0238A55C
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl CloseTextBox
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #2]
_0238A55C:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A568:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #8
bne _0238A5D0
ldrsb r0, [r1, #3]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A5C4
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A5C4
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl CloseSimpleMenu
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #3]
_0238A5C4:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A5D0:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x20
bne _0238A638
ldrsb r0, [r1, #4]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A62C
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A62C
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl CloseSimpleMenu
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #4]
_0238A62C:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A638:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x10
bne _0238A6A0
ldrsb r0, [r1, #5]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A694
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A694
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #5]
bl CloseSimpleMenu
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #5]
_0238A694:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A6A0:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x40
bne _0238A708
ldrsb r0, [r1, #6]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A6FC
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A6FC
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #6]
bl CloseSimpleMenu
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #6]
_0238A6FC:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A708:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldr r0, [r0, #0x88]
tst r0, #0x80
bne _0238A740
bl sub_0203A9B8
cmp r0, #0
movne r0, #0
bne _0238A734
bl sub_0203A51C
mov r0, #1
_0238A734:
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A740:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r3, [r0]
ldr r2, [r3, #0x88]
tst r2, #0x100
bne _0238A774
ldrsb r1, [r3, #7]
mvn r0, #1
cmp r1, r0
moveq r0, #1
movne r0, #0
tst r0, #0xff
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A774:
tst r2, #0x200
bne _0238A7D4
ldrsb r0, [r3, #8]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A7C8
bl IsAdvancedTextBoxActive
cmp r0, #0
movne r2, #0
bne _0238A7C8
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #8]
bl CloseAdvancedTextBox
bl sub_020407C0
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #8]
_0238A7C8:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A7D4:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x400
bne _0238A840
ldrsb r0, [r1, #9]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A834
bl IsScrollBoxActive
cmp r0, #0
movne r2, #0
bne _0238A834
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #9]
bl CloseScrollBox
bl sub_02041A00
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #9]
_0238A834:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A840:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x800
bne _0238A8A8
ldrsb r0, [r1, #0xa]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A89C
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A89C
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xa]
bl CloseSimpleMenu
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #0xa]
_0238A89C:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A8A8:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x1000
bne _0238A910
ldrsb r0, [r1, #0xb]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A904
bl IsAdvancedMenuActive2
cmp r0, #0
movne r2, #0
bne _0238A904
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xb]
bl CloseAdvancedMenu
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #0xb]
_0238A904:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A910:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x2000
bne _0238A978
ldrsb r0, [r1, #0xc]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A96C
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238A96C
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xc]
bl CloseSimpleMenu
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #0xc]
_0238A96C:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A978:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x4000
bne _0238A9E4
ldrsb r0, [r1, #0xd]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238A9D8
bl IsAdvancedTextBoxActive
cmp r0, #0
movne r2, #0
bne _0238A9D8
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xd]
bl CloseAdvancedTextBox
bl sub_020407C0
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #0xd]
_0238A9D8:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238A9E4:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x8000
bne _0238AA4C
ldrsb r0, [r1, #0xe]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238AA40
bl IsSimpleMenuActive
cmp r0, #0
movne r2, #0
bne _0238AA40
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xe]
bl CloseSimpleMenu
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #0xe]
_0238AA40:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238AA4C:
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x10000
bne _0238AAB4
ldrsb r0, [r1, #0xf]
mvn r1, #1
cmp r0, r1
moveq r2, #1
beq _0238AAA8
bl IsDialogueBoxActive
cmp r0, #0
movne r2, #0
bne _0238AAA8
ldr r0, _0238AABC ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xf]
bl CloseDialogueBox
ldr r0, _0238AABC ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
mov r2, #1
strb r1, [r0, #0xf]
_0238AAA8:
cmp r2, #0
moveq r0, #0
ldmeqia sp!, {r3, pc}
_0238AAB4:
mov r0, #1
ldmia sp!, {r3, pc}
.align 2, 0
_0238AABC: .word LINK_SHOP_PTR
arm_func_end ov18_0238A42C
arm_func_start ov18_0238AAC0
ov18_0238AAC0: ; 0x0238AAC0
stmdb sp!, {r0, r1, r2, r3}
stmdb sp!, {r3, lr}
add r2, sp, #0xc
bic r2, r2, #3
ldr r1, [sp, #0xc]
add r2, r2, #4
bl vsprintf
ldmia sp!, {r3, lr}
add sp, sp, #0x10
bx lr
arm_func_end ov18_0238AAC0
arm_func_start ov18_0238AAE8
ov18_0238AAE8: ; 0x0238AAE8
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov sl, r0
mov r0, r2
mov sb, r1
mov r8, r3
ldr r7, [sp, #0x28]
mov r6, #0
bl GetMovesetLevelUpPtr
mov r5, r0
mov r4, #1
ldr fp, _0238ABAC ; =0x0000021F
b _0238AB98
_0238AB18:
mov r0, r5
add r1, sp, #0
bl GetEncodedHalfword
ldrb r1, [r0]
add r5, r0, #1
cmp r1, r8
bgt _0238ABA4
ldrsh r0, [sb]
cmp r0, fp
bge _0238AB98
ldrh r0, [sp]
mov r1, r7
bl sub_02053880
cmp r0, #0
beq _0238AB98
ldrh r1, [sp]
mov r2, r1, lsr #0x1f
mov r0, r1, lsr #5
rsb r1, r2, r1, lsl #27
ldr r3, [sl, r0, lsl #2]
add ip, r2, r1, ror #27
tst r3, r4, lsl ip
bne _0238AB98
mov r2, r3
orr r2, r2, r4, lsl ip
str r2, [sl, r0, lsl #2]
add r1, r6, #1
mov r0, r1, lsl #0x10
ldrsh r2, [sb]
mov r6, r0, asr #0x10
add r0, r2, #1
strh r0, [sb]
_0238AB98:
ldrb r0, [r5]
cmp r0, #0
bne _0238AB18
_0238ABA4:
mov r0, r6
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0238ABAC: .word 0x0000021F
arm_func_end ov18_0238AAE8
arm_func_start ov18_0238ABB0
ov18_0238ABB0: ; 0x0238ABB0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x58
ldr r2, _0238ACDC ; =TEAM_MEMBER_TABLE_PTR
mov r1, #0x44
ldr r2, [r2]
mov r3, #0
smlabb r6, r0, r1, r2
mov r0, r3
add r2, sp, #0x14
_0238ABD4:
add r1, r3, #1
mov r1, r1, lsl #0x10
str r0, [r2, r3, lsl #2]
mov r3, r1, asr #0x10
cmp r3, #0x11
blt _0238ABD4
add r8, sp, #0x14
mov r4, #1
mov r3, #6
_0238ABF8:
mla r2, r0, r3, r6
ldrb r1, [r2, #0x22]
tst r1, #1
beq _0238AC28
ldrh r1, [r2, #0x24]
mov r7, r1, lsr #5
mov r2, r1, lsr #0x1f
rsb r1, r2, r1, lsl #27
ldr r5, [r8, r7, lsl #2]
add r1, r2, r1, ror #27
orr r1, r5, r4, lsl r1
str r1, [r8, r7, lsl #2]
_0238AC28:
add r0, r0, #1
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
cmp r0, #4
blt _0238ABF8
mov r0, #0
strh r0, [sp, #4]
ldrsh r1, [r6, #4]
cmp r1, #0
beq _0238ACD4
add r1, sp, #6
mov r0, r6
bl GetEvoFamily
mov r8, r0
mov r7, #0
add r5, sp, #0x14
add r4, sp, #4
add sb, sp, #6
b _0238AC9C
_0238AC74:
ldrsh r2, [r6, #8]
mov r1, r7, lsl #2
add r0, sb, r7, lsl #2
str r2, [sp]
ldrsh r2, [sb, r1]
ldrb r3, [r0, #2]
mov r0, r5
mov r1, r4
bl ov18_0238AAE8
add r7, r7, #1
_0238AC9C:
cmp r7, r8
blt _0238AC74
ldrsh r0, [r6, #4]
ldr r2, _0238ACE0 ; =0x00000216
cmp r0, r2
bne _0238ACD0
ldrsh r3, [r6, #8]
add r0, sp, #0x14
add r1, sp, #4
str r3, [sp]
ldrb r3, [r6, #1]
add r2, r2, #1
bl ov18_0238AAE8
_0238ACD0:
ldrsh r0, [sp, #4]
_0238ACD4:
add sp, sp, #0x58
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_0238ACDC: .word TEAM_MEMBER_TABLE_PTR
_0238ACE0: .word 0x00000216
arm_func_end ov18_0238ABB0
arm_func_start ov18_0238ACE4
ov18_0238ACE4: ; 0x0238ACE4
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
mov sl, r0
mov r0, r2
mov sb, r1
mov r8, r3
ldr r7, [sp, #0x28]
ldr r6, [sp, #0x2c]
bl GetMovesetLevelUpPtr
mov r5, r0
mov r4, #1
ldr fp, _0238ADA4 ; =0x0000021F
b _0238AD90
_0238AD14:
mov r0, r5
add r1, sp, #0
bl GetEncodedHalfword
ldrb r1, [r0]
add r5, r0, #1
cmp r1, r8
bgt _0238AD9C
ldrsh r0, [sb]
cmp r0, fp
bge _0238AD90
ldrh r0, [sp]
mov r1, r7
bl sub_02053880
cmp r0, #0
beq _0238AD90
ldrh r0, [sp]
mov r3, r0, lsr #0x1f
mov r1, r0, lsr #5
rsb r2, r3, r0, lsl #27
ldr ip, [sl, r1, lsl #2]
add r3, r3, r2, ror #27
tst ip, r4, lsl r3
bne _0238AD90
mov r2, ip
orr r2, r2, r4, lsl r3
str r2, [sl, r1, lsl #2]
ldrsh r1, [sb]
cmp r6, r1
ldmeqia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
add r0, r1, #1
strh r0, [sb]
_0238AD90:
ldrb r0, [r5]
cmp r0, #0
bne _0238AD14
_0238AD9C:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0238ADA4: .word 0x0000021F
arm_func_end ov18_0238ACE4
arm_func_start ov18_0238ADA8
ov18_0238ADA8: ; 0x0238ADA8
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #0x5c
ldr r3, _0238AEE8 ; =TEAM_MEMBER_TABLE_PTR
mov r2, #0x44
ldr r3, [r3]
mov r4, r1
smlabb r8, r0, r2, r3
mov r3, #0
mov r1, r3
add r2, sp, #0x18
_0238ADD0:
add r0, r3, #1
mov r0, r0, lsl #0x10
str r1, [r2, r3, lsl #2]
mov r3, r0, asr #0x10
cmp r3, #0x11
blt _0238ADD0
add r0, sp, #0x18
mov r6, #1
mov r5, #6
_0238ADF4:
mla r3, r1, r5, r8
ldrb r2, [r3, #0x22]
tst r2, #1
beq _0238AE24
ldrh r2, [r3, #0x24]
mov sb, r2, lsr #5
mov r3, r2, lsr #0x1f
rsb r2, r3, r2, lsl #27
ldr r7, [r0, sb, lsl #2]
add r2, r3, r2, ror #27
orr r2, r7, r6, lsl r2
str r2, [r0, sb, lsl #2]
_0238AE24:
add r1, r1, #1
mov r1, r1, lsl #0x10
mov r1, r1, asr #0x10
cmp r1, #4
blt _0238ADF4
mov r0, #0
strh r0, [sp, #8]
ldrsh r1, [r8, #4]
cmp r1, #0
beq _0238AEE0
add r1, sp, #0xa
mov r0, r8
bl GetEvoFamily
mov sl, r0
mov sb, #0
add r7, sp, #0x18
add r6, sp, #8
add r5, sp, #0xa
b _0238AEA0
_0238AE70:
ldrsh r2, [r8, #8]
mov r1, sb, lsl #2
add r0, r5, sb, lsl #2
stmia sp, {r2, r4}
ldrsh r2, [r5, r1]
ldrb r3, [r0, #2]
mov r0, r7
mov r1, r6
bl ov18_0238ACE4
cmp r0, #0
bne _0238AEE0
add sb, sb, #1
_0238AEA0:
cmp sb, sl
blt _0238AE70
ldrsh r0, [r8, #4]
ldr r2, _0238AEEC ; =0x00000216
cmp r0, r2
bne _0238AEDC
ldrsh r3, [r8, #8]
add r0, sp, #0x18
add r1, sp, #8
stmia sp, {r3, r4}
ldrb r3, [r8, #1]
add r2, r2, #1
bl ov18_0238ACE4
cmp r0, #0
bne _0238AEE0
_0238AEDC:
mov r0, #0
_0238AEE0:
add sp, sp, #0x5c
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_0238AEE8: .word TEAM_MEMBER_TABLE_PTR
_0238AEEC: .word 0x00000216
arm_func_end ov18_0238ADA8
arm_func_start ov18_0238AEF0
ov18_0238AEF0: ; 0x0238AEF0
stmdb sp!, {r4, lr}
ldr r2, _0238AF34 ; =LINK_SHOP_PTR
mov r1, r1, lsl #0x10
ldr r2, [r2]
mov r4, r0
add r0, r2, #0x300
ldrsh r0, [r0, #0x8c]
mov r1, r1, asr #0x10
bl ov18_0238ADA8
bl GetMoveName
mov r3, r0
ldr r1, _0238AF38 ; =ov18_0238D5F8
mov r0, r4
mov r2, #0x4d
bl ov18_0238AAC0
mov r0, r4
ldmia sp!, {r4, pc}
.align 2, 0
_0238AF34: .word LINK_SHOP_PTR
_0238AF38: .word ov18_0238D5F8
arm_func_end ov18_0238AEF0
arm_func_start ov18_0238AF3C
ov18_0238AF3C: ; 0x0238AF3C
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x54
sub sp, sp, #0x400
mov r4, r0
bl sub_02027B1C
bl GetMoneyCarried
str r0, [sp, #0x428]
bl sub_02041414
cmp r0, #0
ldrne r0, [sp, #0x428]
add ip, sp, #0x400
subne r0, r0, #0x1f4
strne r0, [sp, #0x428]
add ip, ip, #4
ldr r2, _0238AFC8 ; =ov18_0238D608
ldr r3, _0238AFCC ; =0x0000C402
add r0, sp, #4
mov r1, #0x100
str ip, [sp]
bl PreprocessString
#ifdef JAPAN
mov r1, #4
mov r0, r4
rsb r3, r1, #0x430
#else
ldr r3, _0238AFD0 ; =0x00000225
mov r0, r4
mov r1, #4
#endif
mov r2, #2
bl sub_02026268
add r3, sp, #4
mov r0, r4
mov r1, #0x16
mov r2, #0x10
bl DrawTextInWindow
mov r0, r4
bl UpdateWindow
add sp, sp, #0x54
add sp, sp, #0x400
ldmia sp!, {r3, r4, pc}
.align 2, 0
_0238AFC8: .word ov18_0238D608
_0238AFCC: .word 0x0000C402
#ifndef JAPAN
_0238AFD0: .word 0x00000225
#endif
arm_func_end ov18_0238AF3C
arm_func_start LinkShopDestructor
LinkShopDestructor: ; 0x0238AFD4
stmdb sp!, {r3, lr}
ldr r0, _0238B018 ; =LINK_SHOP_PTR
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl MemFree
ldr r0, _0238B018 ; =LINK_SHOP_PTR
mov r1, #0
str r1, [r0]
bl sub_02041414
cmp r0, #0
beq _0238B010
mov r0, #0x1f4
rsb r0, r0, #0
bl AddMoneyCarried
_0238B010:
bl sub_020572EC
ldmia sp!, {r3, pc}
.align 2, 0
_0238B018: .word LINK_SHOP_PTR
arm_func_end LinkShopDestructor
arm_func_start LinkShopMainManager
LinkShopMainManager: ; 0x0238B01C
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x214
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r4, [r0]
ldr r0, [r4, #0x74]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _0238BD34
_0238B03C: ; jump table
b _0238B04C ; case 0
b _0238BD00 ; case 1
b _0238BD1C ; case 2
b _0238BD34 ; case 3
_0238B04C:
ldr ip, _0238BD44 ; =OVERLAY18_FUNCTION_POINTER_TABLE
add r6, sp, #0x1c
mov r5, #0x13
_0238B058:
ldmia ip!, {r0, r1, r2, r3}
stmia r6!, {r0, r1, r2, r3}
subs r5, r5, #1
bne _0238B058
ldr r0, [r4, #0x7c]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _0238BCF8
_0238B078: ; jump table
b _0238B088 ; case 0
b _0238B0FC ; case 1
b _0238BC88 ; case 2
b _0238B088 ; case 3
_0238B088:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
mov r1, #0
str r1, [r4, #0x7c]
ldr r1, [r0]
add r0, sp, #0x1c
ldr r1, [r1, #0x78]
ldr r0, [r0, r1, lsl #2]
blx r0
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r3, [r0]
ldr r1, [r3, #0x78]
ldr r2, [r3, #0x80]
cmp r1, r2
beq _0238BCF8
ldr r1, [r3, #0x7c]
cmp r1, #3
bne _0238B0E4
str r2, [r3, #0x78]
ldr r1, [r0]
add r0, sp, #0x1c
ldr r1, [r1, #0x78]
ldr r0, [r0, r1, lsl #2]
blx r0
_0238B0E4:
bl ov18_0238A2A0
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
mov r1, #1
ldr r0, [r0]
str r1, [r0, #0x7c]
b _0238BCF8
_0238B0FC:
bl ov18_0238A42C
cmp r0, #0
beq _0238BCF8
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #1
beq _0238B4A4
ldrsb r1, [r1]
mvn r0, #1
ldr r4, _0238BD48 ; =0x00003008
cmp r1, r0
bne _0238B150
ldr r0, _0238BD4C ; =LINK_SHOP_WINDOW_PARAMS_11
bl CreateDialogueBox
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
mvn r2, #0
ldr r3, [r1]
strb r0, [r3]
ldr r0, [r1]
str r2, [r0, #0x84]
_0238B150:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0]
bl ShowDialogueBox
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
mov r1, #0x1fc
ldr r3, [r0]
ldr r2, [r3, #0x84]
str r1, [r3, #0x60]
ldr r3, [r0]
mov r0, r2, lsl #0x10
ldr r1, [r3, #0x78]
mov r0, r0, lsr #0x10
cmp r1, #0x48
bgt _0238B1AC
bge _0238B1C8
cmp r1, #0x2d
bgt _0238B1E4
cmp r1, #0x2c
blt _0238B1E4
cmpne r1, #0x2d
beq _0238B1C8
b _0238B1E4
_0238B1AC:
cmp r1, #0x4b
bgt _0238B1E4
cmp r1, #0x49
blt _0238B1E4
cmpne r1, #0x4a
cmpne r1, #0x4b
bne _0238B1E4
_0238B1C8:
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r2, [r1]
add r1, r2, #0x300
ldrsh r1, [r1, #0x8c]
orr r1, r1, #0x20000
str r1, [r2, #0x14]
b _0238B1EC
_0238B1E4:
mov r1, #0x1fc
str r1, [r3, #0x14]
_0238B1EC:
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r3, [r1]
ldr r2, [r3, #0x78]
cmp r2, #0x4b
addls pc, pc, r2, lsl #2
b _0238B468
_0238B204: ; jump table
b _0238B334 ; case 0
b _0238B468 ; case 1
b _0238B468 ; case 2
b _0238B360 ; case 3
b _0238B360 ; case 4
b _0238B36C ; case 5
b _0238B468 ; case 6
b _0238B468 ; case 7
b _0238B374 ; case 8
b _0238B374 ; case 9
b _0238B380 ; case 10
b _0238B380 ; case 11
b _0238B38C ; case 12
b _0238B38C ; case 13
b _0238B398 ; case 14
b _0238B398 ; case 15
b _0238B468 ; case 16
b _0238B468 ; case 17
b _0238B468 ; case 18
b _0238B3BC ; case 19
b _0238B3BC ; case 20
b _0238B468 ; case 21
b _0238B468 ; case 22
b _0238B468 ; case 23
b _0238B468 ; case 24
b _0238B3A4 ; case 25
b _0238B3A4 ; case 26
b _0238B468 ; case 27
b _0238B468 ; case 28
b _0238B468 ; case 29
b _0238B468 ; case 30
b _0238B468 ; case 31
b _0238B468 ; case 32
b _0238B468 ; case 33
b _0238B3C8 ; case 34
b _0238B3C8 ; case 35
b _0238B3D4 ; case 36
b _0238B468 ; case 37
b _0238B468 ; case 38
b _0238B3DC ; case 39
b _0238B468 ; case 40
b _0238B468 ; case 41
b _0238B3E4 ; case 42
b _0238B3E4 ; case 43
b _0238B3F0 ; case 44
b _0238B3F0 ; case 45
b _0238B468 ; case 46
b _0238B3FC ; case 47
b _0238B3FC ; case 48
b _0238B408 ; case 49
b _0238B408 ; case 50
b _0238B414 ; case 51
b _0238B468 ; case 52
b _0238B468 ; case 53
b _0238B468 ; case 54
b _0238B468 ; case 55
b _0238B468 ; case 56
b _0238B468 ; case 57
b _0238B420 ; case 58
b _0238B420 ; case 59
b _0238B468 ; case 60
b _0238B468 ; case 61
b _0238B468 ; case 62
b _0238B468 ; case 63
b _0238B468 ; case 64
b _0238B468 ; case 65
b _0238B434 ; case 66
b _0238B468 ; case 67
b _0238B468 ; case 68
b _0238B43C ; case 69
b _0238B468 ; case 70
b _0238B468 ; case 71
b _0238B444 ; case 72
b _0238B444 ; case 73
b _0238B458 ; case 74
b _0238B458 ; case 75
_0238B334:
ldrb r0, [r3, #0x10]
cmp r0, #0
ldreq r0, _0238BD50 ; =0x000003FB
beq _0238B468
mov r0, #0x1f4
str r0, [r3, #0x38]
ldr r0, [r1]
mov r1, #0
strb r1, [r0, #0x10]
ldr r0, _0238BD54 ; =0x000003F9
b _0238B468
_0238B360:
#ifdef JAPAN
ldr r0, _0238D2B4 ; =0x00003D36
#else
mov r0, #0x410
#endif
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B36C:
ldr r0, _0238BD5C ; =0x0000040B
b _0238B468
_0238B374:
ldr r0, _0238BD60 ; =0x0000040C
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B380:
ldr r0, _0238BD64 ; =0x0000040D
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B38C:
ldr r0, _0238BD68 ; =0x0000040E
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B398:
ldr r0, _0238BD6C ; =0x0000040F
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B3A4:
bl GetMoneyCarried
cmp r0, #0x1f4
ldrlt r0, _0238BD70 ; =0x00003FCC
ldr r4, _0238BD74 ; =0x00000408
ldrge r0, _0238BD78 ; =0x00003FCD
b _0238B468
_0238B3BC:
ldr r0, _0238BD7C ; =0x00000405
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B3C8:
ldr r0, _0238BD80 ; =0x00000406
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B3D4:
ldr r0, _0238BD84 ; =0x00000407
b _0238B468
_0238B3DC:
ldr r0, _0238BD88 ; =0x00000409
b _0238B468
_0238B3E4:
#ifdef JAPAN
ldr r0, _0238D2EC ; =0x00003D2E
#else
ldr r0, _0238BD74 ; =0x00000408
#endif
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B3F0:
ldr r0, _0238BD8C ; =0x0000040A
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B3FC:
#ifdef JAPAN
ldr r0, _0238D2F4 ; =0x00003D22
#else
mov r0, #0x3fc
#endif
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B408:
ldr r0, _0238BD90 ; =0x000003FD
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B414:
ldr r0, _0238BD94 ; =0x000003FE
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B420:
ldr r1, _0238BD98 ; =0x0000131B
ldr r0, _0238BD9C ; =0x000003FF
str r1, [r3, #0x38]
ldr r4, _0238BD58 ; =0x00003018
b _0238B468
_0238B434:
ldr r0, _0238BDA0 ; =0x00000401
b _0238B468
_0238B43C:
ldr r0, _0238BDA4 ; =0x00000403
b _0238B468
_0238B444:
ldr r1, _0238BD98 ; =0x0000131B
ldr r0, _0238BDA8 ; =0x00000402
str r1, [r3, #0x38]
#ifdef JAPAN
sub r4, r0, #0xd10
#else
ldr r4, _0238BD58 ; =0x00003018
#endif
b _0238B468
_0238B458:
ldr r1, _0238BD98 ; =0x0000131B
ldr r0, _0238BDAC ; =0x00000404
ldr r4, _0238BD58 ; =0x00003018
str r1, [r3, #0x38]
_0238B468:
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
mov r0, r0, lsl #0x10
ldr r3, [r1]
mov r5, r0, lsr #0x10
ldr r2, [r3, #0x84]
cmp r2, r0, lsr #16
beq _0238B4A4
str r5, [r3, #0x84]
ldr r3, [r1]
mov r1, r4
ldr r2, [r3, #0x84]
ldrsb r0, [r3], #0x14
mov r2, r2, lsl #0x10
mov r2, r2, lsr #0x10
bl ShowStringIdInDialogueBox
_0238B4A4:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #2
beq _0238B530
ldrsb r1, [r1, #1]
mvn r0, #1
cmp r1, r0
bne _0238B530
mov r0, #0
mov r1, #3
mov r2, #1
bl CreatePortraitBox
ldr r2, _0238BD40 ; =LINK_SHOP_PTR
mov r1, #0x1fc
ldr r3, [r2]
strb r0, [r3, #1]
ldr r0, [r2]
add r0, r0, #0x64
bl InitPortraitParamsWithMonsterId
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
mov r1, #0
ldr r0, [r0]
add r0, r0, #0x64
bl SetPortraitLayout
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
mov r1, #0
ldr r0, [r0]
add r0, r0, #0x64
bl SetPortraitEmotion
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldrsb r0, [r1, #1]
add r1, r1, #0x64
bl ShowPortraitInPortraitBox
_0238B530:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #4
beq _0238B56C
ldrsb r1, [r1, #2]
mvn r0, #1
cmp r1, r0
bne _0238B56C
ldr r0, _0238BDB0 ; =LINK_SHOP_WINDOW_PARAMS_1
ldr r1, _0238BDB4 ; =ov18_0238AF3C
bl CreateTextBox
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #2]
_0238B56C:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #8
beq _0238B5B8
ldrsb r1, [r1, #3]
mvn r0, #1
cmp r1, r0
bne _0238B5B8
ldr r0, _0238BDB8 ; =LINK_SHOP_WINDOW_PARAMS_9
mov r4, #3
ldr r1, _0238BDBC ; =0x00300013
ldr r3, _0238BDC0 ; =LINK_SHOP_MAIN_MENU_ITEMS
mov r2, #0
str r4, [sp]
bl CreateSimpleMenuFromStringIds
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #3]
_0238B5B8:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x20
beq _0238B604
ldrsb r1, [r1, #4]
mvn r0, #1
cmp r1, r0
bne _0238B604
ldr r0, _0238BDC4 ; =LINK_SHOP_WINDOW_PARAMS_7
mov r4, #4
ldr r1, _0238BDBC ; =0x00300013
ldr r3, _0238BDC8 ; =LINK_SHOP_SUBMENU_ITEMS_3
mov r2, #0
str r4, [sp]
bl CreateSimpleMenuFromStringIds
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #4]
_0238B604:
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r3, [r1]
ldr r0, [r3, #0x88]
tst r0, #0x40
beq _0238B65C
ldrsb r2, [r3, #6]
mvn r0, #1
cmp r2, r0
bne _0238B65C
mov r0, #1
str r0, [r3, #0x90]
mov r0, #2
str r0, [sp]
ldr r2, [r1]
ldr r0, _0238BDCC ; =LINK_SHOP_WINDOW_PARAMS_2
ldr r1, _0238BDD0 ; =0x00300033
ldr r3, _0238BDD4 ; =LINK_SHOP_MENU_ITEMS_CONFIRM
add r2, r2, #0x90
bl CreateSimpleMenuFromStringIds
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #6]
_0238B65C:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x10
beq _0238B6A8
ldrsb r1, [r1, #5]
mvn r0, #1
cmp r1, r0
bne _0238B6A8
ldr r0, _0238BDD8 ; =LINK_SHOP_WINDOW_PARAMS_8
mov r4, #5
ldr r3, _0238BDDC ; =LINK_SHOP_SUBMENU_ITEMS_4
mov r1, #0x13
mov r2, #0
str r4, [sp]
bl CreateSimpleMenuFromStringIds
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #5]
_0238B6A8:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldr r0, [r0, #0x88]
tst r0, #0x80
beq _0238B6F8
bl sub_0203A998
cmp r0, #0
bne _0238B6F8
ldr r2, _0238BD40 ; =LINK_SHOP_PTR
mov r3, #2
ldr r1, [r2]
mov r0, #6
add r1, r1, #0x300
strh r3, [r1, #0x88]
ldr r1, [r2]
add r1, r1, #0x300
strh r3, [r1, #0x8a]
ldr r1, [r2]
add r1, r1, #0x388
bl sub_02039C2C
_0238B6F8:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r2, [r0]
ldr r0, [r2, #0x88]
tst r0, #0x100
beq _0238B744
ldrsb r1, [r2, #7]
mvn r0, #1
cmp r1, r0
bne _0238B744
add r0, r2, #0x300
ldrsh r1, [r0, #0x8c]
add r0, sp, #0x19c
bl sub_0205B028
add r0, sp, #0x19c
mov r1, #3
bl sub_0203F150
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #7]
_0238B744:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x200
beq _0238B7B0
ldrsb r1, [r1, #8]
mvn r0, #1
cmp r1, r0
bne _0238B7AC
bl GetMoneyCarried
mov r1, #0
cmp r0, #0x1f4
mov r2, r1
bge _0238B794
mov r0, #4
bl sub_0204018C
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #8]
b _0238B7B0
_0238B794:
mov r0, #5
bl sub_0204018C
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #8]
b _0238B7B0
_0238B7AC:
bl sub_02041178
_0238B7B0:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r2, [r0]
ldr r0, [r2, #0x88]
tst r0, #0x400
beq _0238B820
ldrsb r1, [r2, #7]
mvn r0, #1
cmp r1, r0
bne _0238B820
ldr r0, [r2, #0x3a0]
cmp r0, #0
bne _0238B800
add r0, r2, #0xa6
add r0, r0, #0x300
mov r1, #1
bl sub_02041860
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #9]
b _0238B820
_0238B800:
add r1, r2, #0x300
ldrsh r2, [r1, #0xa4]
mov r1, #4
mov r3, #1
bl sub_020417A8
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #9]
_0238B820:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x800
beq _0238B984
ldrsb r1, [r1, #0xa]
mvn r0, #1
cmp r1, r0
bne _0238B984
bl sub_02041094
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
mov r6, r0
ldr r0, [r1]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl sub_020564B0
cmp r0, #0
beq _0238B87C
bl sub_02040FA8
cmp r0, #0
ldrne r4, _0238BDE0 ; =LINK_SHOP_SUBMENU_ITEMS_6
ldreq r4, _0238BDE4 ; =LINK_SHOP_SUBMENU_ITEMS_5
b _0238B880
_0238B87C:
ldr r4, _0238BDE8 ; =LINK_SHOP_SUBMENU_ITEMS_7
_0238B880:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
mov r2, #0
ldr r0, [r0]
mov r1, r2
add r5, r0, #0x394
_0238B894:
add r0, r2, #1
mov r0, r0, lsl #0x10
strb r1, [r5, r2]
mov r2, r0, asr #0x10
cmp r2, #8
blt _0238B894
mov r0, r6
bl sub_02041194
cmp r0, #0
moveq r0, #3
streqb r0, [r5, #1]
mov r0, r6
bl sub_02041364
cmp r0, #0
moveq r0, #3
streqb r0, [r5, #2]
cmp r6, #0
movle r0, #3
strleb r0, [r5, #3]
bl sub_0203FD38
add r1, r6, #1
mov r1, r1, lsl #0x10
mov r6, #0
mov ip, r1, asr #0x10
mov r2, r6
mov r3, #1
b _0238B934
_0238B900:
ldrb r1, [r0, ip, lsl #3]
tst r1, #1
movne r1, r3
moveq r1, r2
tst r1, #0xff
beq _0238B928
ldrb r1, [r0, ip, lsl #3]
tst r1, #2
moveq r6, #1
beq _0238B93C
_0238B928:
add r1, ip, #1
mov r1, r1, lsl #0x10
mov ip, r1, asr #0x10
_0238B934:
cmp ip, #4
blt _0238B900
_0238B93C:
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
cmp r6, #0
moveq r0, #3
streqb r0, [r5, #4]
ldr r5, [r1]
mov r2, #8
add r3, r5, #0x394
str r3, [r5, #0x188]
str r2, [sp]
ldr r2, [r1]
ldr r0, _0238BDEC ; =LINK_SHOP_WINDOW_PARAMS_5
ldr r1, _0238BDF0 ; =0x80000213
mov r3, r4
add r2, r2, #0x128
bl CreateSimpleMenuFromStringIds
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #0xa]
_0238B984:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r2, [r0]
ldr r0, [r2, #0x88]
tst r0, #0x1000
beq _0238BA70
ldrsb r1, [r2, #0xb]
mvn r0, #1
cmp r1, r0
bne _0238BA70
add r0, r2, #0x300
ldr r1, _0238BDF4 ; =TEAM_MEMBER_TABLE_PTR
ldrsh r2, [r0, #0x8c]
ldr r1, [r1]
mov r0, #0x44
smlabb r1, r2, r0, r1
add r0, sp, #8
add r1, r1, #0x3a
mov r2, #0xa
bl StrncpySimpleNoPadSafe
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, _0238BDF8 ; =ov18_0238D5F8
ldr r0, [r0]
add r3, sp, #8
add r0, r0, #0xae
add r0, r0, #0x300
mov r2, #0x46
bl ov18_0238AAC0
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r3, _0238BDFC ; =0x00000A3E
ldr r4, [r1]
mov r2, #0x10
ldrsh r0, [r4, #0x8c]
str r0, [r4, #0x1c0]
ldr r0, [r1]
add r0, r0, #0x100
strh r3, [r0, #0xc8]
ldr r0, [r1]
str r2, [r0, #0x1cc]
ldr r2, [r1]
add r0, r2, #0xae
add r0, r0, #0x300
str r0, [r2, #0x208]
ldr r0, [r1]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl ov18_0238ABB0
str r0, [sp]
mov r1, #8
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
str r1, [sp, #4]
ldr r1, [r0]
ldr r0, _0238BE00 ; =LINK_SHOP_WINDOW_PARAMS_6
add r2, r1, #0x1c0
ldr r1, _0238BE04 ; =0x00401833
ldr r3, _0238BE08 ; =ov18_0238AEF0
bl CreateAdvancedMenu
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #0xb]
_0238BA70:
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r3, [r1]
ldr r0, [r3, #0x88]
tst r0, #0x2000
beq _0238BAC8
ldrsb r2, [r3, #0xc]
mvn r0, #1
cmp r2, r0
bne _0238BAC8
mov r0, #1
str r0, [r3, #0x258]
mov r0, #3
str r0, [sp]
ldr r1, [r1]
ldr r0, _0238BE0C ; =LINK_SHOP_WINDOW_PARAMS_4
ldr r3, _0238BE10 ; =LINK_SHOP_SUBMENU_ITEMS_1
add r2, r1, #0x258
mov r1, #0x33
bl CreateSimpleMenuFromStringIds
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #0xc]
_0238BAC8:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x4000
beq _0238BB10
ldrsb r1, [r1, #0xd]
mvn r0, #1
cmp r1, r0
bne _0238BB0C
mov r1, #0
mov r2, r1
mov r0, #6
bl sub_0204018C
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #0xd]
b _0238BB10
_0238BB0C:
bl sub_02041178
_0238BB10:
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r3, [r1]
ldr r0, [r3, #0x88]
tst r0, #0x8000
beq _0238BBAC
ldrsb r2, [r3, #0xe]
mvn r0, #1
cmp r2, r0
bne _0238BBAC
mov r2, #0
strb r2, [r3, #0x39c]
ldr r0, [r1]
strb r2, [r0, #0x39d]
ldr r0, [r1]
strb r2, [r0, #0x39e]
bl sub_02041094
cmp r0, #4
ldrge r0, _0238BD40 ; =LINK_SHOP_PTR
movge r1, #3
ldrge r0, [r0]
mov r3, #1
strgeb r1, [r0, #0x39c]
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
mov r4, #3
ldr r2, [r1]
add r0, r2, #0x39c
str r0, [r2, #0x350]
ldr r2, [r1]
ldr r0, _0238BE14 ; =LINK_SHOP_WINDOW_PARAMS_3
str r3, [r2, #0x2f0]
str r4, [sp]
ldr r2, [r1]
ldr r3, _0238BE18 ; =LINK_SHOP_SUBMENU_ITEMS_2
add r1, r4, #0x230
add r2, r2, #0x2f0
bl CreateSimpleMenuFromStringIds
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r1]
strb r0, [r1, #0xe]
_0238BBAC:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x10000
beq _0238BC74
ldrsb r1, [r1, #0xf]
mvn r0, #1
cmp r1, r0
bne _0238BBF0
ldr r0, _0238BE1C ; =LINK_SHOP_WINDOW_PARAMS_10
bl CreateDialogueBox
ldr r1, _0238BD40 ; =LINK_SHOP_PTR
mvn r2, #0
ldr r3, [r1]
strb r0, [r3, #0xf]
ldr r0, [r1]
str r2, [r0, #0x84]
_0238BBF0:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xf]
bl ShowDialogueBox
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r3, [r0]
ldr r0, [r3, #0x78]
cmp r0, #0x12
bgt _0238BC2C
cmp r0, #0x10
blt _0238BC48
cmpne r0, #0x11
cmpne r0, #0x12
beq _0238BC34
b _0238BC48
_0238BC2C:
cmp r0, #0x3c
b _0238BC48
_0238BC34:
mov r0, #0x1fc
str r0, [sp, #0x198]
ldr r2, _0238BE20 ; =0x000003FA
ldr r1, _0238BE24 ; =0x00003408
b _0238BC50
_0238BC48:
#ifdef JAPAN
ldr r2, _0238D390 ; =0x00003D26
ldr r1, _0238BD74 ; =0x00000408
#else
mov r2, #0x400
add r1, r2, #8
#endif
_0238BC50:
ldr r0, [r3, #0x84]
cmp r0, r2
beq _0238BC74
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
str r2, [r3, #0x84]
ldr r0, [r0]
add r3, sp, #0x14c
ldrsb r0, [r0, #0xf]
bl ShowStringIdInDialogueBox
_0238BC74:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
mov r1, #2
ldr r0, [r0]
str r1, [r0, #0x7c]
b _0238BCF8
_0238BC88:
ldr r0, [r4, #0x88]
tst r0, #1
beq _0238BCA8
ldrsb r0, [r4]
bl IsDialogueBoxActive
cmp r0, #0
movne r0, #0
bne _0238BCD4
_0238BCA8:
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
ldr r1, [r0]
ldr r0, [r1, #0x88]
tst r0, #0x10000
beq _0238BCD0
ldrsb r0, [r1, #0xf]
bl IsDialogueBoxActive
cmp r0, #0
movne r0, #0
bne _0238BCD4
_0238BCD0:
mov r0, #1
_0238BCD4:
cmp r0, #0
beq _0238BCF8
ldr r0, _0238BD40 ; =LINK_SHOP_PTR
mov r2, #0
ldr r1, [r0]
str r2, [r1, #0x7c]
ldr r1, [r0]
ldr r0, [r1, #0x80]
str r0, [r1, #0x78]
_0238BCF8:
mov r0, #1
b _0238BD38
_0238BD00:
bl ov18_0238A42C
cmp r0, #0
ldrne r0, _0238BD40 ; =LINK_SHOP_PTR
movne r1, #2
ldrne r0, [r0]
strne r1, [r0, #0x74]
b _0238BD34
_0238BD1C:
mov r0, #3
str r0, [r4, #0x74]
bl ov11_022E6E68
bl LinkShopDestructor
mov r0, #4
b _0238BD38
_0238BD34:
mov r0, #1
_0238BD38:
add sp, sp, #0x214
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
#ifdef JAPAN
#define OV18_0238B01C_OFFSET 0x3926
#else
#define OV18_0238B01C_OFFSET 0
#endif
_0238BD40: .word LINK_SHOP_PTR
_0238BD44: .word OVERLAY18_FUNCTION_POINTER_TABLE
_0238BD48: .word 0x00003008
_0238BD4C: .word LINK_SHOP_WINDOW_PARAMS_11
_0238BD50: .word 0x000003FB + OV18_0238B01C_OFFSET
_0238BD54: .word 0x000003F9 + OV18_0238B01C_OFFSET
#ifdef JAPAN
_0238D2B4: .word 0x00003D36
#endif
_0238BD58: .word 0x00003018
_0238BD5C: .word 0x0000040B + OV18_0238B01C_OFFSET
_0238BD60: .word 0x0000040C + OV18_0238B01C_OFFSET
_0238BD64: .word 0x0000040D + OV18_0238B01C_OFFSET
_0238BD68: .word 0x0000040E + OV18_0238B01C_OFFSET
_0238BD6C: .word 0x0000040F + OV18_0238B01C_OFFSET
#if defined(EUROPE)
_0238BD70: .word 0x00003FCE
_0238BD74: .word 0x00000408
_0238BD78: .word 0x00003FCF
#elif defined(JAPAN)
_0238BD70: .word 0x000049CF
_0238BD74: .word 0x00000408
_0238BD78: .word 0x000049D0
#else
_0238BD70: .word 0x00003FCC
_0238BD74: .word 0x00000408
_0238BD78: .word 0x00003FCD
#endif
_0238BD7C: .word 0x00000405 + OV18_0238B01C_OFFSET
_0238BD80: .word 0x00000406 + OV18_0238B01C_OFFSET
_0238BD84: .word 0x00000407 + OV18_0238B01C_OFFSET
_0238BD88: .word 0x00000409 + OV18_0238B01C_OFFSET
#ifdef JAPAN
_0238D2EC: .word 0x00003D2E
_0238BD8C: .word 0x00003D30
_0238D2F4: .word 0x00003D22
#else
_0238BD8C: .word 0x0000040A + OV18_0238B01C_OFFSET
#endif
_0238BD90: .word 0x000003FD + OV18_0238B01C_OFFSET
_0238BD94: .word 0x000003FE + OV18_0238B01C_OFFSET
_0238BD98: .word 0x0000131B
_0238BD9C: .word 0x000003FF + OV18_0238B01C_OFFSET
_0238BDA0: .word 0x00000401 + OV18_0238B01C_OFFSET
_0238BDA4: .word 0x00000403 + OV18_0238B01C_OFFSET
_0238BDA8: .word 0x00000402 + OV18_0238B01C_OFFSET
_0238BDAC: .word 0x00000404 + OV18_0238B01C_OFFSET
_0238BDB0: .word LINK_SHOP_WINDOW_PARAMS_1
_0238BDB4: .word ov18_0238AF3C
_0238BDB8: .word LINK_SHOP_WINDOW_PARAMS_9
_0238BDBC: .word 0x00300013
_0238BDC0: .word LINK_SHOP_MAIN_MENU_ITEMS
_0238BDC4: .word LINK_SHOP_WINDOW_PARAMS_7
_0238BDC8: .word LINK_SHOP_SUBMENU_ITEMS_3
_0238BDCC: .word LINK_SHOP_WINDOW_PARAMS_2
_0238BDD0: .word 0x00300033
_0238BDD4: .word LINK_SHOP_MENU_ITEMS_CONFIRM
_0238BDD8: .word LINK_SHOP_WINDOW_PARAMS_8
_0238BDDC: .word LINK_SHOP_SUBMENU_ITEMS_4
_0238BDE0: .word LINK_SHOP_SUBMENU_ITEMS_6
_0238BDE4: .word LINK_SHOP_SUBMENU_ITEMS_5
_0238BDE8: .word LINK_SHOP_SUBMENU_ITEMS_7
_0238BDEC: .word LINK_SHOP_WINDOW_PARAMS_5
_0238BDF0: .word 0x80000213
_0238BDF4: .word TEAM_MEMBER_TABLE_PTR
_0238BDF8: .word ov18_0238D5F8
#ifdef JAPAN
_0238BDFC: .word 0x00000879
#else
_0238BDFC: .word 0x00000A3E
#endif
_0238BE00: .word LINK_SHOP_WINDOW_PARAMS_6
_0238BE04: .word 0x00401833
_0238BE08: .word ov18_0238AEF0
_0238BE0C: .word LINK_SHOP_WINDOW_PARAMS_4
_0238BE10: .word LINK_SHOP_SUBMENU_ITEMS_1
_0238BE14: .word LINK_SHOP_WINDOW_PARAMS_3
_0238BE18: .word LINK_SHOP_SUBMENU_ITEMS_2
_0238BE1C: .word LINK_SHOP_WINDOW_PARAMS_10
_0238BE20: .word 0x000003FA + OV18_0238B01C_OFFSET
_0238BE24: .word 0x00003408
#ifdef JAPAN
_0238D390: .word 0x00003D26
#endif
arm_func_end LinkShopMainManager
arm_func_start ov18_0238BE28
ov18_0238BE28: ; 0x0238BE28
ldr r1, _0238BE44 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r1]
str r3, [r2, #0x7c]
ldr r1, [r1]
str r0, [r1, #0x80]
bx lr
.align 2, 0
_0238BE44: .word LINK_SHOP_PTR
arm_func_end ov18_0238BE28
arm_func_start ov18_0238BE48
ov18_0238BE48: ; 0x0238BE48
ldr r0, _0238BE68 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #1
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238BE68: .word LINK_SHOP_PTR
arm_func_end ov18_0238BE48
arm_func_start ov18_0238BE6C
ov18_0238BE6C: ; 0x0238BE6C
ldr r0, _0238BE8C ; =LINK_SHOP_PTR
mov r3, #0xf
ldr r2, [r0]
mov r1, #2
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238BE8C: .word LINK_SHOP_PTR
arm_func_end ov18_0238BE6C
arm_func_start ov18_0238BE90
ov18_0238BE90: ; 0x0238BE90
stmdb sp!, {r3, lr}
ldr r0, _0238BF08 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0238BF08 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl GetSimpleMenuResult__0202B870
cmp r0, #6
addls pc, pc, r0, lsl #2
b _0238BEFC
_0238BEC8: ; jump table
b _0238BEFC ; case 0
b _0238BEFC ; case 1
b _0238BEFC ; case 2
b _0238BEE4 ; case 3
b _0238BEF0 ; case 4
b _0238BEFC ; case 5
b _0238BEFC ; case 6
_0238BEE4:
mov r0, #0x11
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238BEF0:
mov r0, #5
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238BEFC:
mov r0, #3
bl ov18_0238BE28
ldmia sp!, {r3, pc}
.align 2, 0
_0238BF08: .word LINK_SHOP_PTR
arm_func_end ov18_0238BE90
arm_func_start ov18_0238BF0C
ov18_0238BF0C: ; 0x0238BF0C
ldr r0, _0238BF2C ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #4
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238BF2C: .word LINK_SHOP_PTR
arm_func_end ov18_0238BF0C
arm_func_start ov18_0238BF30
ov18_0238BF30: ; 0x0238BF30
stmdb sp!, {r3, lr}
ldr r0, _0238BF5C ; =LINK_SHOP_PTR
mov r1, #0
ldr r0, [r0]
str r1, [r0, #0x88]
bl ov18_0238A2A0
ldr r0, _0238BF5C ; =LINK_SHOP_PTR
mov r1, #1
ldr r0, [r0]
str r1, [r0, #0x74]
ldmia sp!, {r3, pc}
.align 2, 0
_0238BF5C: .word LINK_SHOP_PTR
arm_func_end ov18_0238BF30
arm_func_start ov18_0238BF60
ov18_0238BF60: ; 0x0238BF60
ldr r0, _0238BF80 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #6
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238BF80: .word LINK_SHOP_PTR
arm_func_end ov18_0238BF60
arm_func_start ov18_0238BF84
ov18_0238BF84: ; 0x0238BF84
ldr r0, _0238BFA4 ; =LINK_SHOP_PTR
mov r3, #0x23
ldr r2, [r0]
mov r1, #7
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238BFA4: .word LINK_SHOP_PTR
arm_func_end ov18_0238BF84
arm_func_start ov18_0238BFA8
ov18_0238BFA8: ; 0x0238BFA8
stmdb sp!, {r3, lr}
ldr r0, _0238C038 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0238C038 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl GetSimpleMenuResult__0202B870
cmp r0, #8
bgt _0238BFFC
cmp r0, #2
blt _0238C02C
beq _0238C02C
cmp r0, #7
beq _0238C008
cmp r0, #8
beq _0238C014
b _0238C02C
_0238BFFC:
cmp r0, #0xd
beq _0238C020
b _0238C02C
_0238C008:
mov r0, #8
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238C014:
mov r0, #0xa
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238C020:
mov r0, #0xe
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238C02C:
mov r0, #0
bl ov18_0238BE28
ldmia sp!, {r3, pc}
.align 2, 0
_0238C038: .word LINK_SHOP_PTR
arm_func_end ov18_0238BFA8
arm_func_start ov18_0238C03C
ov18_0238C03C: ; 0x0238C03C
ldr r0, _0238C05C ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #9
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C05C: .word LINK_SHOP_PTR
arm_func_end ov18_0238C03C
arm_func_start ov18_0238C060
ov18_0238C060: ; 0x0238C060
ldr r0, _0238C074 ; =LINK_SHOP_PTR
mov r1, #5
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C074: .word LINK_SHOP_PTR
arm_func_end ov18_0238C060
arm_func_start ov18_0238C078
ov18_0238C078: ; 0x0238C078
ldr r0, _0238C098 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0xc
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C098: .word LINK_SHOP_PTR
arm_func_end ov18_0238C078
arm_func_start ov18_0238C09C
ov18_0238C09C: ; 0x0238C09C
ldr r0, _0238C0BC ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0xd
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C0BC: .word LINK_SHOP_PTR
arm_func_end ov18_0238C09C
arm_func_start ov18_0238C0C0
ov18_0238C0C0: ; 0x0238C0C0
ldr r0, _0238C0D4 ; =LINK_SHOP_PTR
mov r1, #5
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C0D4: .word LINK_SHOP_PTR
arm_func_end ov18_0238C0C0
arm_func_start ov18_0238C0D8
ov18_0238C0D8: ; 0x0238C0D8
ldr r0, _0238C0F8 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0xf
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C0F8: .word LINK_SHOP_PTR
arm_func_end ov18_0238C0D8
arm_func_start ov18_0238C0FC
ov18_0238C0FC: ; 0x0238C0FC
ldr r0, _0238C110 ; =LINK_SHOP_PTR
mov r1, #5
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C110: .word LINK_SHOP_PTR
arm_func_end ov18_0238C0FC
arm_func_start ov18_0238C114
ov18_0238C114: ; 0x0238C114
ldr r0, _0238C134 ; =LINK_SHOP_PTR
ldr r3, _0238C138 ; =0x00010002
ldr r2, [r0]
mov r1, #0x11
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C134: .word LINK_SHOP_PTR
_0238C138: .word 0x00010002
arm_func_end ov18_0238C114
arm_func_start ov18_0238C13C
ov18_0238C13C: ; 0x0238C13C
ldr r0, _0238C15C ; =LINK_SHOP_PTR
ldr r3, _0238C160 ; =0x00010080
ldr r2, [r0]
mov r1, #0x12
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C15C: .word LINK_SHOP_PTR
_0238C160: .word 0x00010080
arm_func_end ov18_0238C13C
arm_func_start ov18_0238C164
ov18_0238C164: ; 0x0238C164
stmdb sp!, {r3, lr}
bl sub_0203A5A8
cmp r0, #0
beq _0238C1CC
bl sub_0203A9EC
cmp r0, #0
ldmeqia sp!, {r3, pc}
add r1, sp, #0
mov r0, #0
bl GetPressedButtons
ldrh r0, [sp]
tst r0, #8
ldmeqia sp!, {r3, pc}
mov r0, #0
bl PlaySeVolumeWrapper
bl sub_0203AAB0
ldr r1, _0238C218 ; =LINK_SHOP_PTR
ldr r1, [r1]
add r1, r1, #0x300
strh r0, [r1, #0x8c]
bl sub_0203A5F0
ldr r0, _0238C218 ; =LINK_SHOP_PTR
mov r1, #0x17
ldr r0, [r0]
str r1, [r0, #0x80]
ldmia sp!, {r3, pc}
_0238C1CC:
bl sub_0203AA20
mvn r1, #0
cmp r0, r1
bne _0238C1EC
bl sub_0203A51C
mov r0, #0
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238C1EC:
ldr r2, _0238C218 ; =LINK_SHOP_PTR
ldr r1, [r2]
add r1, r1, #0x300
strh r0, [r1, #0x8c]
ldr r0, [r2]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl sub_0203FA64
mov r0, #0x15
bl ov18_0238BE28
ldmia sp!, {r3, pc}
.align 2, 0
_0238C218: .word LINK_SHOP_PTR
arm_func_end ov18_0238C164
arm_func_start ov18_0238C21C
ov18_0238C21C: ; 0x0238C21C
ldr r0, _0238C23C ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x14
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C23C: .word LINK_SHOP_PTR
arm_func_end ov18_0238C21C
arm_func_start ov18_0238C240
ov18_0238C240: ; 0x0238C240
ldr r0, _0238C254 ; =LINK_SHOP_PTR
mov r1, #0x11
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C254: .word LINK_SHOP_PTR
arm_func_end ov18_0238C240
arm_func_start ov18_0238C258
ov18_0238C258: ; 0x0238C258
ldr r0, _0238C278 ; =LINK_SHOP_PTR
mov r3, #0x90
ldr r2, [r0]
mov r1, #0x16
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C278: .word LINK_SHOP_PTR
arm_func_end ov18_0238C258
arm_func_start ov18_0238C27C
ov18_0238C27C: ; 0x0238C27C
stmdb sp!, {r3, lr}
ldr r0, _0238C33C ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #5]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r3, pc}
ldr r0, _0238C33C ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #5]
bl GetSimpleMenuResult__0202B870
sub r0, r0, #5
cmp r0, #0xb
addls pc, pc, r0, lsl #2
b _0238C2F4
_0238C2B8: ; jump table
b _0238C32C ; case 0
b _0238C32C ; case 1
b _0238C2F4 ; case 2
b _0238C2F4 ; case 3
b _0238C2F4 ; case 4
b _0238C2F4 ; case 5
b _0238C2F4 ; case 6
b _0238C2F4 ; case 7
b _0238C320 ; case 8
b _0238C2F4 ; case 9
b _0238C2E8 ; case 10
b _0238C300 ; case 11
_0238C2E8:
mov r0, #0x17
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238C2F4:
mov r0, #0x19
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238C300:
ldr r0, _0238C33C ; =LINK_SHOP_PTR
mov r3, #0
ldr r2, [r0]
mov r1, #0x1b
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
ldmia sp!, {r3, pc}
_0238C320:
mov r0, #0x2e
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238C32C:
bl sub_0203A638
mov r0, #0x11
bl ov18_0238BE28
ldmia sp!, {r3, pc}
.align 2, 0
_0238C33C: .word LINK_SHOP_PTR
arm_func_end ov18_0238C27C
arm_func_start ov18_0238C340
ov18_0238C340: ; 0x0238C340
ldr r0, _0238C360 ; =LINK_SHOP_PTR
mov r3, #0x100
ldr r2, [r0]
mov r1, #0x18
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C360: .word LINK_SHOP_PTR
arm_func_end ov18_0238C340
arm_func_start ov18_0238C364
ov18_0238C364: ; 0x0238C364
stmdb sp!, {r3, lr}
bl sub_0203F398
cmp r0, #1
ldmneia sp!, {r3, pc}
bl sub_0203F990
ldr r0, _0238C394 ; =LINK_SHOP_PTR
mvn r2, #1
ldr r1, [r0]
mov r0, #0x11
strb r2, [r1, #7]
bl ov18_0238BE28
ldmia sp!, {r3, pc}
.align 2, 0
_0238C394: .word LINK_SHOP_PTR
arm_func_end ov18_0238C364
arm_func_start ov18_0238C398
ov18_0238C398: ; 0x0238C398
ldr r0, _0238C3B8 ; =LINK_SHOP_PTR
ldr r3, _0238C3BC ; =0x00000201
ldr r2, [r0]
mov r1, #0x1a
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C3B8: .word LINK_SHOP_PTR
_0238C3BC: .word 0x00000201
arm_func_end ov18_0238C398
arm_func_start ov18_0238C3C0
ov18_0238C3C0: ; 0x0238C3C0
stmdb sp!, {r4, lr}
bl sub_020407EC
movs r4, r0
beq _0238C3E4
ldr r0, _0238C424 ; =LINK_SHOP_PTR
ldr r0, [r0]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl sub_0203FD80
_0238C3E4:
cmp r4, #1
beq _0238C40C
cmp r4, #2
beq _0238C400
cmp r4, #7
beq _0238C418
ldmia sp!, {r4, pc}
_0238C400:
mov r0, #0x1f
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238C40C:
mov r0, #0x11
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238C418:
mov r0, #0x1d
bl ov18_0238BE28
ldmia sp!, {r4, pc}
.align 2, 0
_0238C424: .word LINK_SHOP_PTR
arm_func_end ov18_0238C3C0
arm_func_start ov18_0238C428
ov18_0238C428: ; 0x0238C428
stmdb sp!, {r3, lr}
ldr r1, _0238C474 ; =LINK_SHOP_PTR
ldr r0, _0238C478 ; =TEAM_MEMBER_TABLE_PTR
ldr r2, [r1]
ldr r1, [r0]
add r0, r2, #0x300
ldrsh r2, [r0, #0x8c]
mov r0, #0x44
mov r3, #0
smlabb r1, r2, r0, r1
ldrsh r0, [r1, #4]
ldrsh r2, [r1, #8]
add r1, r1, #0x14
bl PrintIqSkillsMenu
ldr r0, _0238C474 ; =LINK_SHOP_PTR
mov r1, #0x1c
ldr r0, [r0]
str r1, [r0, #0x80]
ldmia sp!, {r3, pc}
.align 2, 0
_0238C474: .word LINK_SHOP_PTR
_0238C478: .word TEAM_MEMBER_TABLE_PTR
arm_func_end ov18_0238C428
arm_func_start ov18_0238C47C
ov18_0238C47C: ; 0x0238C47C
stmdb sp!, {r3, lr}
bl sub_02041B7C
cmp r0, #1
ldmneia sp!, {r3, pc}
bl sub_020420F4
bl sub_020572EC
mov r0, #0x11
bl ov18_0238BE28
ldmia sp!, {r3, pc}
arm_func_end ov18_0238C47C
arm_func_start ov18_0238C4A0
ov18_0238C4A0: ; 0x0238C4A0
stmdb sp!, {r3, lr}
bl sub_0203FD38
ldr r1, _0238C4E4 ; =LINK_SHOP_PTR
ldr r1, [r1]
str r0, [r1, #0x3a0]
bl sub_02041094
ldr r2, _0238C4E4 ; =LINK_SHOP_PTR
mov ip, #0x400
ldr r1, [r2]
mov r3, #0x1e
add r1, r1, #0x300
strh r0, [r1, #0xa4]
ldr r0, [r2]
str ip, [r0, #0x88]
ldr r0, [r2]
str r3, [r0, #0x80]
ldmia sp!, {r3, pc}
.align 2, 0
_0238C4E4: .word LINK_SHOP_PTR
arm_func_end ov18_0238C4A0
arm_func_start ov18_0238C4E8
ov18_0238C4E8: ; 0x0238C4E8
stmdb sp!, {r3, lr}
bl sub_02041A18
cmp r0, #0
ldmeqia sp!, {r3, pc}
mov r0, #0x19
bl ov18_0238BE28
ldmia sp!, {r3, pc}
arm_func_end ov18_0238C4E8
arm_func_start ov18_0238C504
ov18_0238C504: ; 0x0238C504
ldr r0, _0238C524 ; =LINK_SHOP_PTR
mov r3, #0xa00
ldr r2, [r0]
mov r1, #0x20
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C524: .word LINK_SHOP_PTR
arm_func_end ov18_0238C504
arm_func_start ov18_0238C528
ov18_0238C528: ; 0x0238C528
stmdb sp!, {r3, r4, r5, lr}
ldr r0, _0238C714 ; =LINK_SHOP_PTR
mov r4, #0
ldr r0, [r0]
ldrsb r0, [r0, #0xa]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r3, r4, r5, pc}
bl sub_02041094
ldr r1, _0238C714 ; =LINK_SHOP_PTR
mov r5, r0
ldr r0, [r1]
ldrsb r0, [r0, #0xa]
bl GetSimpleMenuResult__0202B870
sub r1, r0, #4
cmp r1, #0xe
addls pc, pc, r1, lsl #2
b _0238C6D0
_0238C570: ; jump table
b _0238C6BC ; case 0
b _0238C6D0 ; case 1
b _0238C6D0 ; case 2
b _0238C5AC ; case 3
b _0238C5C8 ; case 4
b _0238C638 ; case 5
b _0238C6A8 ; case 6
b _0238C5AC ; case 7
b _0238C5AC ; case 8
b _0238C6D0 ; case 9
b _0238C6D0 ; case 10
b _0238C6D0 ; case 11
b _0238C6D0 ; case 12
b _0238C670 ; case 13
b _0238C68C ; case 14
_0238C5AC:
ldr r0, _0238C718 ; =0x00003F07
mov r1, #0x100
bl sub_02017C74
mov r0, r5
mov r4, #1
bl sub_02041000
b _0238C6E4
_0238C5C8:
mov r4, #1
bl GetMoneyCarried
cmp r0, #0x1f4
bge _0238C5EC
mov r0, #0
bl PlaySeVolumeWrapper
mov r0, #0x13
bl ov18_0238BE28
ldmia sp!, {r3, r4, r5, pc}
_0238C5EC:
mov r0, r5
bl sub_02041194
cmp r0, #0
beq _0238C62C
bl sub_02041414
cmp r0, #0
bne _0238C614
ldr r0, _0238C71C ; =0x00001308
bl PlaySeByIdVolumeWrapper
b _0238C620
_0238C614:
ldr r0, _0238C718 ; =0x00003F07
mov r1, #0x100
bl sub_02017C74
_0238C620:
mov r0, r5
bl sub_020412B0
b _0238C6E4
_0238C62C:
mov r0, #2
bl PlaySeVolumeWrapper
b _0238C6E4
_0238C638:
mov r0, r5
mov r4, #1
bl sub_02041364
cmp r0, #0
beq _0238C664
ldr r0, _0238C718 ; =0x00003F07
mov r1, #0x100
bl sub_02017C74
mov r0, r5
bl sub_02041394
b _0238C6E4
_0238C664:
mov r0, #2
bl PlaySeVolumeWrapper
b _0238C6E4
_0238C670:
mov r0, r4
bl PlaySeVolumeWrapper
mov r0, r5
bl sub_020416BC
bl sub_020410A4
mov r4, #1
b _0238C6E4
_0238C68C:
mov r0, r4
bl PlaySeVolumeWrapper
mov r0, r5
bl sub_020416DC
bl sub_020410A4
mov r4, #1
b _0238C6E4
_0238C6A8:
ldr r0, _0238C718 ; =0x00003F07
bl PlaySeByIdVolumeWrapper
mov r0, #0x21
bl ov18_0238BE28
b _0238C6E4
_0238C6BC:
mov r0, r4
bl PlaySeVolumeWrapper
mov r0, #0x1d
bl ov18_0238BE28
b _0238C6E4
_0238C6D0:
cmp r0, #6
beq _0238C6E0
mov r0, #1
bl PlaySeVolumeWrapper
_0238C6E0:
mov r4, #1
_0238C6E4:
cmp r4, #0
ldmeqia sp!, {r3, r4, r5, pc}
ldr r0, _0238C714 ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #8]
cmp r0, r1
beq _0238C708
bl sub_020307EC
_0238C708:
mov r0, #0x19
bl ov18_0238BE28
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0238C714: .word LINK_SHOP_PTR
_0238C718: .word 0x00003F07
_0238C71C: .word 0x00001308
arm_func_end ov18_0238C528
arm_func_start ov18_0238C720
ov18_0238C720: ; 0x0238C720
stmdb sp!, {r4, lr}
bl sub_02041094
mov r4, r0
bl sub_02041154
ldr r1, _0238C788 ; =LINK_SHOP_PTR
cmp r4, #0
ldr r1, [r1]
str r0, [r1, #0x24]
bne _0238C760
mov r0, r4
bl sub_02041424
cmp r0, #0
bne _0238C760
mov r0, #0x22
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238C760:
mov r0, r4
bl sub_02041364
cmp r0, #0
beq _0238C77C
mov r0, #0x24
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238C77C:
mov r0, #0x27
bl ov18_0238BE28
ldmia sp!, {r4, pc}
.align 2, 0
_0238C788: .word LINK_SHOP_PTR
arm_func_end ov18_0238C720
arm_func_start ov18_0238C78C
ov18_0238C78C: ; 0x0238C78C
ldr r0, _0238C7AC ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x23
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C7AC: .word LINK_SHOP_PTR
arm_func_end ov18_0238C78C
arm_func_start ov18_0238C7B0
ov18_0238C7B0: ; 0x0238C7B0
ldr ip, _0238C7BC ; =ov18_0238BE28
mov r0, #0x19
bx ip
.align 2, 0
_0238C7BC: .word ov18_0238BE28
arm_func_end ov18_0238C7B0
arm_func_start ov18_0238C7C0
ov18_0238C7C0: ; 0x0238C7C0
ldr r0, _0238C7E0 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x25
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C7E0: .word LINK_SHOP_PTR
arm_func_end ov18_0238C7C0
arm_func_start ov18_0238C7E4
ov18_0238C7E4: ; 0x0238C7E4
ldr r0, _0238C804 ; =LINK_SHOP_PTR
mov r3, #0x43
ldr r2, [r0]
mov r1, #0x26
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C804: .word LINK_SHOP_PTR
arm_func_end ov18_0238C7E4
arm_func_start ov18_0238C808
ov18_0238C808: ; 0x0238C808
stmdb sp!, {r4, lr}
ldr r0, _0238C884 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #6]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r4, pc}
bl sub_02041094
ldr r1, _0238C884 ; =LINK_SHOP_PTR
mov r4, r0
ldr r0, [r1]
ldrsb r0, [r0, #6]
bl GetSimpleMenuResult__0202B870
cmp r0, #0
beq _0238C850
cmp r0, #1
beq _0238C878
ldmia sp!, {r4, pc}
_0238C850:
mov r0, r4
bl sub_02041484
ldr r0, _0238C884 ; =LINK_SHOP_PTR
ldr r0, [r0]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl sub_0203FD80
mov r0, #0x2a
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238C878:
mov r0, #0x19
bl ov18_0238BE28
ldmia sp!, {r4, pc}
.align 2, 0
_0238C884: .word LINK_SHOP_PTR
arm_func_end ov18_0238C808
arm_func_start ov18_0238C888
ov18_0238C888: ; 0x0238C888
ldr r0, _0238C8A8 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x28
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C8A8: .word LINK_SHOP_PTR
arm_func_end ov18_0238C888
arm_func_start ov18_0238C8AC
ov18_0238C8AC: ; 0x0238C8AC
ldr r0, _0238C8CC ; =LINK_SHOP_PTR
mov r3, #0x43
ldr r2, [r0]
mov r1, #0x29
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C8CC: .word LINK_SHOP_PTR
arm_func_end ov18_0238C8AC
arm_func_start ov18_0238C8D0
ov18_0238C8D0: ; 0x0238C8D0
stmdb sp!, {r4, lr}
ldr r0, _0238C94C ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #6]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r4, pc}
bl sub_02041094
ldr r1, _0238C94C ; =LINK_SHOP_PTR
mov r4, r0
ldr r0, [r1]
ldrsb r0, [r0, #6]
bl GetSimpleMenuResult__0202B870
cmp r0, #0
beq _0238C918
cmp r0, #1
beq _0238C940
ldmia sp!, {r4, pc}
_0238C918:
mov r0, r4
bl sub_02041484
ldr r0, _0238C94C ; =LINK_SHOP_PTR
ldr r0, [r0]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl sub_0203FD80
mov r0, #0x2c
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238C940:
mov r0, #0x19
bl ov18_0238BE28
ldmia sp!, {r4, pc}
.align 2, 0
_0238C94C: .word LINK_SHOP_PTR
arm_func_end ov18_0238C8D0
arm_func_start ov18_0238C950
ov18_0238C950: ; 0x0238C950
ldr r0, _0238C970 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x2b
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C970: .word LINK_SHOP_PTR
arm_func_end ov18_0238C950
arm_func_start ov18_0238C974
ov18_0238C974: ; 0x0238C974
ldr ip, _0238C980 ; =ov18_0238BE28
mov r0, #0x19
bx ip
.align 2, 0
_0238C980: .word ov18_0238BE28
arm_func_end ov18_0238C974
arm_func_start ov18_0238C984
ov18_0238C984: ; 0x0238C984
ldr r0, _0238C9A4 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x2d
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238C9A4: .word LINK_SHOP_PTR
arm_func_end ov18_0238C984
arm_func_start ov18_0238C9A8
ov18_0238C9A8: ; 0x0238C9A8
ldr ip, _0238C9B4 ; =ov18_0238BE28
mov r0, #0x19
bx ip
.align 2, 0
_0238C9B4: .word ov18_0238BE28
arm_func_end ov18_0238C9A8
arm_func_start ov18_0238C9B8
ov18_0238C9B8: ; 0x0238C9B8
stmdb sp!, {r3, lr}
bl sub_0204159C
cmp r0, #0
ldreq r0, _0238CA14 ; =LINK_SHOP_PTR
moveq r1, #0x2f
ldreq r0, [r0]
streq r1, [r0, #0x80]
ldmeqia sp!, {r3, pc}
ldr r0, _0238CA14 ; =LINK_SHOP_PTR
ldr r0, [r0]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl ov18_0238ABB0
cmp r0, #0
ldrle r0, _0238CA14 ; =LINK_SHOP_PTR
movle r1, #0x31
ldrle r0, [r0]
strle r1, [r0, #0x80]
ldrgt r0, _0238CA14 ; =LINK_SHOP_PTR
movgt r1, #0x33
ldrgt r0, [r0]
strgt r1, [r0, #0x80]
ldmia sp!, {r3, pc}
.align 2, 0
_0238CA14: .word LINK_SHOP_PTR
arm_func_end ov18_0238C9B8
arm_func_start ov18_0238CA18
ov18_0238CA18: ; 0x0238CA18
ldr r0, _0238CA38 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x30
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238CA38: .word LINK_SHOP_PTR
arm_func_end ov18_0238CA18
arm_func_start ov18_0238CA3C
ov18_0238CA3C: ; 0x0238CA3C
ldr ip, _0238CA48 ; =ov18_0238BE28
mov r0, #0x11
bx ip
.align 2, 0
_0238CA48: .word ov18_0238BE28
arm_func_end ov18_0238CA3C
arm_func_start ov18_0238CA4C
ov18_0238CA4C: ; 0x0238CA4C
ldr r0, _0238CA6C ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x32
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238CA6C: .word LINK_SHOP_PTR
arm_func_end ov18_0238CA4C
arm_func_start ov18_0238CA70
ov18_0238CA70: ; 0x0238CA70
ldr ip, _0238CA7C ; =ov18_0238BE28
mov r0, #0x11
bx ip
.align 2, 0
_0238CA7C: .word ov18_0238BE28
arm_func_end ov18_0238CA70
arm_func_start ov18_0238CA80
ov18_0238CA80: ; 0x0238CA80
ldr r0, _0238CAAC ; =LINK_SHOP_PTR
mov r2, #3
ldr r1, [r0]
mov r3, #0
str r2, [r1, #0x88]
ldr r2, [r0]
mov r1, #0x34
strh r3, [r2, #0x8c]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238CAAC: .word LINK_SHOP_PTR
arm_func_end ov18_0238CA80
arm_func_start ov18_0238CAB0
ov18_0238CAB0: ; 0x0238CAB0
ldr r0, _0238CAD0 ; =LINK_SHOP_PTR
mov r3, #0x1000
ldr r2, [r0]
mov r1, #0x35
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238CAD0: .word LINK_SHOP_PTR
arm_func_end ov18_0238CAB0
arm_func_start ov18_0238CAD4
ov18_0238CAD4: ; 0x0238CAD4
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
add r1, sp, #0
mov r0, #0
bl GetPressedButtons
ldr r0, _0238CBD8 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xb]
bl GetAdvancedMenuCurrentOption
ldr r1, _0238CBD8 ; =LINK_SHOP_PTR
ldr r2, [r1]
strh r0, [r2, #0x8c]
ldrh r0, [sp]
tst r0, #8
beq _0238CB8C
ldr r1, [r1]
ldrsb r0, [r1, #0xb]
ldrsh r4, [r1, #0x8c]
bl sub_0202C1E4
ldr r0, _0238CBD8 ; =LINK_SHOP_PTR
mov r1, r4
ldr r0, [r0]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl ov18_0238ADA8
ldr r2, _0238CBD8 ; =LINK_SHOP_PTR
mov lr, #0
ldr r1, [r2]
mov ip, #1
str lr, [r1, #0x3a0]
ldr r1, [r2]
mov r3, #0x38
add r1, r1, #0x300
strh r0, [r1, #0xaa]
ldr r0, [r2]
strb ip, [r0, #0x3a6]
ldr r0, [r2]
add r0, r0, #0x300
strh lr, [r0, #0xa8]
ldr r0, [r2]
strb ip, [r0, #0x3ac]
ldr r0, [r2]
strb lr, [r0, #0x3ad]
ldr r0, [r2]
str r3, [r0, #0x80]
b _0238CBD0
_0238CB8C:
ldr r0, [r1]
ldrsb r0, [r0, #0xb]
bl IsAdvancedMenuActive2
cmp r0, #0
bne _0238CBD0
ldr r0, _0238CBD8 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xb]
bl GetAdvancedMenuResult
mvn r1, #0
cmp r0, r1
bne _0238CBC8
mov r0, #0x11
bl ov18_0238BE28
b _0238CBD0
_0238CBC8:
mov r0, #0x36
bl ov18_0238BE28
_0238CBD0:
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
_0238CBD8: .word LINK_SHOP_PTR
arm_func_end ov18_0238CAD4
arm_func_start ov18_0238CBDC
ov18_0238CBDC: ; 0x0238CBDC
ldr r0, _0238CBFC ; =LINK_SHOP_PTR
mov r3, #0x3000
ldr r2, [r0]
mov r1, #0x37
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238CBFC: .word LINK_SHOP_PTR
arm_func_end ov18_0238CBDC
arm_func_start ov18_0238CC00
ov18_0238CC00: ; 0x0238CC00
stmdb sp!, {r4, lr}
ldr r0, _0238CD84 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xb]
bl GetAdvancedMenuResult
ldr r1, _0238CD84 ; =LINK_SHOP_PTR
mov r4, r0
ldr r0, [r1]
ldrsb r0, [r0, #0xc]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r4, pc}
ldr r0, _0238CD84 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xc]
bl GetSimpleMenuResult__0202B870
sub r0, r0, #4
cmp r0, #9
addls pc, pc, r0, lsl #2
b _0238CD5C
_0238CC50: ; jump table
b _0238CCF0 ; case 0
b _0238CD5C ; case 1
b _0238CD5C ; case 2
b _0238CD5C ; case 3
b _0238CD5C ; case 4
b _0238CD5C ; case 5
b _0238CD5C ; case 6
b _0238CD5C ; case 7
b _0238CD5C ; case 8
b _0238CC78 ; case 9
_0238CC78:
ldr r1, _0238CD84 ; =LINK_SHOP_PTR
mov r0, r4, lsl #0x10
ldr r2, [r1]
mov r1, r0, asr #0x10
add r0, r2, #0x300
ldrsh r0, [r0, #0x8c]
bl ov18_0238ADA8
ldr r1, _0238CD84 ; =LINK_SHOP_PTR
mov r4, r0
ldr r0, [r1]
str r4, [r0, #0x24]
bl sub_020415BC
cmp r0, #0
mov r0, r4
beq _0238CCCC
bl sub_0203FD14
ldr r0, _0238CD84 ; =LINK_SHOP_PTR
mov r1, #0x3c
ldr r0, [r0]
str r1, [r0, #0x80]
ldmia sp!, {r4, pc}
_0238CCCC:
bl sub_02041614
ldr r0, _0238CD84 ; =LINK_SHOP_PTR
ldr r0, [r0]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl sub_0203FD80
mov r0, #0x3a
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238CCF0:
ldr r1, _0238CD84 ; =LINK_SHOP_PTR
mov r0, r4, lsl #0x10
ldr r2, [r1]
mov r1, r0, asr #0x10
add r0, r2, #0x300
ldrsh r0, [r0, #0x8c]
bl ov18_0238ADA8
ldr r2, _0238CD84 ; =LINK_SHOP_PTR
mov r4, #0
ldr r1, [r2]
mov r3, #1
str r4, [r1, #0x3a0]
ldr r1, [r2]
add r1, r1, #0x300
strh r0, [r1, #0xaa]
ldr r1, [r2]
mov r0, #0x38
strb r3, [r1, #0x3a6]
ldr r1, [r2]
add r1, r1, #0x300
strh r4, [r1, #0xa8]
ldr r1, [r2]
strb r3, [r1, #0x3ac]
ldr r1, [r2]
strb r4, [r1, #0x3ad]
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238CD5C:
ldr r0, _0238CD84 ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #0xb]
cmp r0, r1
beq _0238CD78
bl ResumeAdvancedMenu
_0238CD78:
mov r0, #0x34
bl ov18_0238BE28
ldmia sp!, {r4, pc}
.align 2, 0
_0238CD84: .word LINK_SHOP_PTR
arm_func_end ov18_0238CC00
arm_func_start ov18_0238CD88
ov18_0238CD88: ; 0x0238CD88
ldr r0, _0238CDA8 ; =LINK_SHOP_PTR
mov r3, #0x400
ldr r2, [r0]
mov r1, #0x39
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238CDA8: .word LINK_SHOP_PTR
arm_func_end ov18_0238CD88
arm_func_start ov18_0238CDAC
ov18_0238CDAC: ; 0x0238CDAC
stmdb sp!, {r3, lr}
bl sub_02041A18
cmp r0, #0
ldmeqia sp!, {r3, pc}
mov r0, #0x34
bl ov18_0238BE28
ldmia sp!, {r3, pc}
arm_func_end ov18_0238CDAC
arm_func_start ov18_0238CDC8
ov18_0238CDC8: ; 0x0238CDC8
ldr r0, _0238CDE8 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x3b
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238CDE8: .word LINK_SHOP_PTR
arm_func_end ov18_0238CDC8
arm_func_start ov18_0238CDEC
ov18_0238CDEC: ; 0x0238CDEC
ldr ip, _0238CDF8 ; =ov18_0238BE28
mov r0, #0x11
bx ip
.align 2, 0
_0238CDF8: .word ov18_0238BE28
arm_func_end ov18_0238CDEC
arm_func_start ov18_0238CDFC
ov18_0238CDFC: ; 0x0238CDFC
ldr r0, _0238CE1C ; =LINK_SHOP_PTR
mov r3, #0x14000
ldr r2, [r0]
mov r1, #0x3d
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238CE1C: .word LINK_SHOP_PTR
arm_func_end ov18_0238CDFC
arm_func_start ov18_0238CE20
ov18_0238CE20: ; 0x0238CE20
stmdb sp!, {r4, lr}
bl sub_020407EC
movs r4, r0
beq _0238CE44
ldr r0, _0238CE84 ; =LINK_SHOP_PTR
ldr r0, [r0]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl sub_0203FD80
_0238CE44:
cmp r4, #1
beq _0238CE6C
cmp r4, #2
beq _0238CE60
cmp r4, #7
beq _0238CE78
ldmia sp!, {r4, pc}
_0238CE60:
mov r0, #0x3e
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238CE6C:
mov r0, #0x11
bl ov18_0238BE28
ldmia sp!, {r4, pc}
_0238CE78:
mov r0, #0x40
bl ov18_0238BE28
ldmia sp!, {r4, pc}
.align 2, 0
_0238CE84: .word LINK_SHOP_PTR
arm_func_end ov18_0238CE20
arm_func_start ov18_0238CE88
ov18_0238CE88: ; 0x0238CE88
stmdb sp!, {r3, lr}
ldr r0, _0238CED4 ; =LINK_SHOP_PTR
mov r1, #0xc000
ldr r0, [r0]
str r1, [r0, #0x88]
bl sub_02041094
bl sub_02041154
ldr r1, _0238CED4 ; =LINK_SHOP_PTR
ldr r1, [r1]
str r0, [r1, #0x24]
mov r0, #4
bl sub_02041154
ldr r1, _0238CED4 ; =LINK_SHOP_PTR
mov r2, #0x3f
ldr r3, [r1]
str r0, [r3, #0x28]
ldr r0, [r1]
str r2, [r0, #0x80]
ldmia sp!, {r3, pc}
.align 2, 0
_0238CED4: .word LINK_SHOP_PTR
arm_func_end ov18_0238CE88
arm_func_start ov18_0238CED8
ov18_0238CED8: ; 0x0238CED8
stmdb sp!, {r3, lr}
bl sub_02041094
ldr r0, _0238CF94 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xe]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r3, pc}
bl sub_0203FD38
ldr r0, _0238CF94 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #0xe]
bl GetSimpleMenuResult__0202B870
sub r0, r0, #4
cmp r0, #6
addls pc, pc, r0, lsl #2
b _0238CF6C
_0238CF1C: ; jump table
b _0238CF60 ; case 0
b _0238CF6C ; case 1
b _0238CF6C ; case 2
b _0238CF6C ; case 3
b _0238CF6C ; case 4
b _0238CF6C ; case 5
b _0238CF38 ; case 6
_0238CF38:
bl sub_02041094
bl sub_02041364
cmp r0, #0
beq _0238CF54
mov r0, #0x42
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238CF54:
mov r0, #0x45
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238CF60:
mov r0, #0x40
bl ov18_0238BE28
ldmia sp!, {r3, pc}
_0238CF6C:
ldr r0, _0238CF94 ; =LINK_SHOP_PTR
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #0xb]
cmp r0, r1
beq _0238CF88
bl ResumeAdvancedMenu
_0238CF88:
mov r0, #0x3c
bl ov18_0238BE28
ldmia sp!, {r3, pc}
.align 2, 0
_0238CF94: .word LINK_SHOP_PTR
arm_func_end ov18_0238CED8
arm_func_start ov18_0238CF98
ov18_0238CF98: ; 0x0238CF98
stmdb sp!, {r4, lr}
bl sub_0203FD38
mov r4, r0
bl sub_02041094
cmp r0, #4
blt _0238CFF0
bl sub_0203FD2C
ldr r2, _0238D030 ; =LINK_SHOP_PTR
mov r1, r0
ldr r0, [r2]
mov r2, #8
add r0, r0, #0xa6
add r0, r0, #0x300
bl memcpy
ldr r0, _0238D030 ; =LINK_SHOP_PTR
mov r2, #0
ldr r1, [r0]
str r2, [r1, #0x3a0]
ldr r0, [r0]
add r0, r0, #0x300
strh r2, [r0, #0xa4]
b _0238D010
_0238CFF0:
ldr r0, _0238D030 ; =LINK_SHOP_PTR
ldr r0, [r0]
str r4, [r0, #0x3a0]
bl sub_02041094
ldr r1, _0238D030 ; =LINK_SHOP_PTR
ldr r1, [r1]
add r1, r1, #0x300
strh r0, [r1, #0xa4]
_0238D010:
ldr r0, _0238D030 ; =LINK_SHOP_PTR
mov r3, #0x400
ldr r2, [r0]
mov r1, #0x41
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
ldmia sp!, {r4, pc}
.align 2, 0
_0238D030: .word LINK_SHOP_PTR
arm_func_end ov18_0238CF98
arm_func_start ov18_0238D034
ov18_0238D034: ; 0x0238D034
stmdb sp!, {r3, lr}
bl sub_02041A18
cmp r0, #0
ldmeqia sp!, {r3, pc}
mov r0, #0x3c
bl ov18_0238BE28
ldmia sp!, {r3, pc}
arm_func_end ov18_0238D034
arm_func_start ov18_0238D050
ov18_0238D050: ; 0x0238D050
ldr r0, _0238D070 ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x43
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238D070: .word LINK_SHOP_PTR
arm_func_end ov18_0238D050
arm_func_start ov18_0238D074
ov18_0238D074: ; 0x0238D074
ldr r0, _0238D094 ; =LINK_SHOP_PTR
mov r3, #0x43
ldr r2, [r0]
mov r1, #0x44
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238D094: .word LINK_SHOP_PTR
arm_func_end ov18_0238D074
arm_func_start ov18_0238D098
ov18_0238D098: ; 0x0238D098
stmdb sp!, {r4, lr}
ldr r0, _0238D128 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #6]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r4, pc}
bl sub_02041094
ldr r1, _0238D128 ; =LINK_SHOP_PTR
mov r4, r0
ldr r0, [r1]
ldrsb r0, [r0, #6]
bl GetSimpleMenuResult__0202B870
cmp r0, #0
beq _0238D0E0
cmp r0, #1
beq _0238D11C
ldmia sp!, {r4, pc}
_0238D0E0:
mov r0, r4
bl sub_02041484
bl sub_0203FD2C
ldrh r0, [r0, #4]
bl sub_02041614
ldr r0, _0238D128 ; =LINK_SHOP_PTR
ldr r0, [r0]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl sub_0203FD80
ldr r0, _0238D128 ; =LINK_SHOP_PTR
mov r1, #0x48
ldr r0, [r0]
str r1, [r0, #0x80]
ldmia sp!, {r4, pc}
_0238D11C:
mov r0, #0x3c
bl ov18_0238BE28
ldmia sp!, {r4, pc}
.align 2, 0
_0238D128: .word LINK_SHOP_PTR
arm_func_end ov18_0238D098
arm_func_start ov18_0238D12C
ov18_0238D12C: ; 0x0238D12C
ldr r0, _0238D14C ; =LINK_SHOP_PTR
mov r3, #3
ldr r2, [r0]
mov r1, #0x46
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238D14C: .word LINK_SHOP_PTR
arm_func_end ov18_0238D12C
arm_func_start ov18_0238D150
ov18_0238D150: ; 0x0238D150
ldr r0, _0238D170 ; =LINK_SHOP_PTR
mov r3, #0x43
ldr r2, [r0]
mov r1, #0x47
str r3, [r2, #0x88]
ldr r0, [r0]
str r1, [r0, #0x80]
bx lr
.align 2, 0
_0238D170: .word LINK_SHOP_PTR
arm_func_end ov18_0238D150
arm_func_start ov18_0238D174
ov18_0238D174: ; 0x0238D174
stmdb sp!, {r4, lr}
ldr r0, _0238D204 ; =LINK_SHOP_PTR
ldr r0, [r0]
ldrsb r0, [r0, #6]
bl IsSimpleMenuActive
cmp r0, #0
ldmneia sp!, {r4, pc}
bl sub_02041094
ldr r1, _0238D204 ; =LINK_SHOP_PTR
mov r4, r0
ldr r0, [r1]
ldrsb r0, [r0, #6]
bl GetSimpleMenuResult__0202B870
cmp r0, #0
beq _0238D1BC
cmp r0, #1
beq _0238D1F8
ldmia sp!, {r4, pc}
_0238D1BC:
mov r0, r4
bl sub_02041484
bl sub_0203FD2C
ldrh r0, [r0, #4]
bl sub_02041614
ldr r0, _0238D204 ; =LINK_SHOP_PTR
ldr r0, [r0]
add r0, r0, #0x300
ldrsh r0, [r0, #0x8c]
bl sub_0203FD80
ldr r0, _0238D204 ; =LINK_SHOP_PTR
mov r1, #0x4a
ldr r0, [r0]
str r1, [r0, #0x80]
ldmia sp!, {r4, pc}
_0238D1F8:
mov r0, #0x3c
bl ov18_0238BE28
ldmia sp!, {r4, pc}
.align 2, 0
_0238D204: .word LINK_SHOP_PTR
arm_func_end ov18_0238D174
; 0x0238D208
.rodata
.global ov18_0238D208
ov18_0238D208:
.byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x49, 0x10, 0xA0, 0xE3
.byte 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5, 0x1E, 0xFF, 0x2F, 0xE1
.word LINK_SHOP_PTR
.global ov18_0238D22C
ov18_0238D22C:
.byte 0x04, 0xC0, 0x9F, 0xE5, 0x11, 0x00, 0xA0, 0xE3, 0x1C, 0xFF, 0x2F, 0xE1
.word ov18_0238BE28
.global ov18_0238D23C
ov18_0238D23C:
.byte 0x18, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5
.byte 0x4B, 0x10, 0xA0, 0xE3, 0x88, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x80, 0x10, 0x80, 0xE5
.byte 0x1E, 0xFF, 0x2F, 0xE1
.word LINK_SHOP_PTR
.global ov18_0238D260
ov18_0238D260:
.byte 0x04, 0xC0, 0x9F, 0xE5, 0x11, 0x00, 0xA0, 0xE3
.byte 0x1C, 0xFF, 0x2F, 0xE1
.word ov18_0238BE28
.global LINK_SHOP_WINDOW_PARAMS_1
LINK_SHOP_WINDOW_PARAMS_1:
.byte 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x08, 0x04
.byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_2
LINK_SHOP_WINDOW_PARAMS_2:
.byte 0x00, 0x00, 0x00, 0x00, 0x1E, 0x0F, 0x08, 0x00
.byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_3
LINK_SHOP_WINDOW_PARAMS_3:
.byte 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x08, 0x00
.byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_4
LINK_SHOP_WINDOW_PARAMS_4:
.byte 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x08, 0x00
.byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_5
LINK_SHOP_WINDOW_PARAMS_5:
.byte 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x08, 0x00
.byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_6
LINK_SHOP_WINDOW_PARAMS_6:
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x12, 0x00
.byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_7
LINK_SHOP_WINDOW_PARAMS_7:
.byte 0x00, 0x00, 0x00, 0x00, 0x1E, 0x0F, 0x0B, 0x00
.byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_8
LINK_SHOP_WINDOW_PARAMS_8:
.byte 0x00, 0x00, 0x00, 0x00, 0x13, 0x02, 0x0B, 0x00
.byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_9
LINK_SHOP_WINDOW_PARAMS_9:
.byte 0x00, 0x00, 0x00, 0x00, 0x1E, 0x0F, 0x00, 0x00
.byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_10
LINK_SHOP_WINDOW_PARAMS_10:
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x12, 0x1C, 0x04
.byte 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_WINDOW_PARAMS_11
LINK_SHOP_WINDOW_PARAMS_11:
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x11, 0x1C, 0x05
.byte 0x00, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.global LINK_SHOP_MENU_ITEMS_CONFIRM
LINK_SHOP_MENU_ITEMS_CONFIRM:
#ifdef JAPAN
#define OV18_DATA_OFFSET 0x3926
#define OV18_DATA_OFFSET_2 -0x1C5
#else
#define OV18_DATA_OFFSET 0
#define OV18_DATA_OFFSET_2 0
#define OV18_DATA_OFFSET_2 0
#endif
.word 0x3E7 + OV18_DATA_OFFSET
.byte 0x00, 0x00, 0x00, 0x00
.word 0x3E8 + OV18_DATA_OFFSET
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.global LINK_SHOP_SUBMENU_ITEMS_1
LINK_SHOP_SUBMENU_ITEMS_1:
.word 0x3F3 + OV18_DATA_OFFSET
.byte 0x0D, 0x00, 0x00, 0x00
.word 0x3EB + OV18_DATA_OFFSET
.byte 0x04, 0x00, 0x00, 0x00
.word 0x3EC + OV18_DATA_OFFSET
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.global LINK_SHOP_SUBMENU_ITEMS_2
LINK_SHOP_SUBMENU_ITEMS_2:
.word 0x3F0 + OV18_DATA_OFFSET
.byte 0x0A, 0x00, 0x00, 0x00
.word 0x3EB + OV18_DATA_OFFSET
.byte 0x04, 0x00, 0x00, 0x00
.word 0x3EC + OV18_DATA_OFFSET
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.global LINK_SHOP_MAIN_MENU_ITEMS
LINK_SHOP_MAIN_MENU_ITEMS:
.word 0x3EA + OV18_DATA_OFFSET
.byte 0x03, 0x00, 0x00, 0x00
.word 0x3EB + OV18_DATA_OFFSET
.byte 0x04, 0x00, 0x00, 0x00
.word 0x3EC + OV18_DATA_OFFSET
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.global LINK_SHOP_SUBMENU_ITEMS_3
LINK_SHOP_SUBMENU_ITEMS_3:
.word 0x3ED + OV18_DATA_OFFSET
.byte 0x07, 0x00, 0x00, 0x00
.word 0x3EE + OV18_DATA_OFFSET
.byte 0x08, 0x00, 0x00, 0x00
.word 0x3F3 + OV18_DATA_OFFSET
.byte 0x0D, 0x00, 0x00, 0x00
.word 0x3E9 + OV18_DATA_OFFSET
.byte 0x02, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00
.global LINK_SHOP_SUBMENU_ITEMS_4
LINK_SHOP_SUBMENU_ITEMS_4:
.word 0x3F4 + OV18_DATA_OFFSET
.byte 0x0E, 0x00, 0x00, 0x00
.word 0x3F5 + OV18_DATA_OFFSET
.byte 0x0F, 0x00, 0x00, 0x00
.word 0x3F6 + OV18_DATA_OFFSET
.byte 0x10, 0x00, 0x00, 0x00
.word 0x3F3 + OV18_DATA_OFFSET
.byte 0x0D, 0x00, 0x00, 0x00
.word 0x3EC + OV18_DATA_OFFSET
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00
.global LINK_SHOP_SUBMENU_ITEMS_5
LINK_SHOP_SUBMENU_ITEMS_5:
.word 0x3ED + OV18_DATA_OFFSET
.byte 0x07, 0x00, 0x00, 0x00
.word 0x3EE + OV18_DATA_OFFSET
.byte 0x08, 0x00, 0x00, 0x00
.word 0x3EF + OV18_DATA_OFFSET
.byte 0x09, 0x00, 0x00, 0x00
.word 0xA3F + OV18_DATA_OFFSET_2
.byte 0x11, 0x00, 0x00, 0x00
.word 0xA40 + OV18_DATA_OFFSET_2
.byte 0x12, 0x00, 0x00, 0x00
.word 0x3F0 + OV18_DATA_OFFSET
.byte 0x0A, 0x00, 0x00, 0x00
.word 0x3EB + OV18_DATA_OFFSET
.byte 0x04, 0x00, 0x00, 0x00
.word 0x3EC + OV18_DATA_OFFSET
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.global LINK_SHOP_SUBMENU_ITEMS_6
LINK_SHOP_SUBMENU_ITEMS_6:
.word 0x3F1 + OV18_DATA_OFFSET
.byte 0x0B, 0x00, 0x00, 0x00
.word 0x3EE + OV18_DATA_OFFSET
.byte 0x08, 0x00, 0x00, 0x00
.word 0x3EF + OV18_DATA_OFFSET
.byte 0x09, 0x00, 0x00, 0x00
.word 0xA3F + OV18_DATA_OFFSET_2
.byte 0x11, 0x00, 0x00, 0x00
.word 0xA40 + OV18_DATA_OFFSET_2
.byte 0x12, 0x00, 0x00, 0x00
.word 0x3F0 + OV18_DATA_OFFSET
.byte 0x0A, 0x00, 0x00, 0x00
.word 0x3EB + OV18_DATA_OFFSET
.byte 0x04, 0x00, 0x00, 0x00
.word 0x3EC + OV18_DATA_OFFSET
.byte 0x05, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.global LINK_SHOP_SUBMENU_ITEMS_7
LINK_SHOP_SUBMENU_ITEMS_7:
.word 0x3F2 + OV18_DATA_OFFSET
.byte 0x0C, 0x00, 0x00, 0x00
.word 0x3EE + OV18_DATA_OFFSET
.byte 0x08, 0x00, 0x00, 0x00
.word 0x3EF + OV18_DATA_OFFSET
.byte 0x09, 0x00, 0x00, 0x00
.word 0xA3F + OV18_DATA_OFFSET_2
.byte 0x11, 0x00, 0x00, 0x00
.word 0xA40 + OV18_DATA_OFFSET_2
.byte 0x12, 0x00, 0x00, 0x00
.word 0x3F0 + OV18_DATA_OFFSET
.byte 0x0A, 0x00, 0x00, 0x00
.word 0x3EB + OV18_DATA_OFFSET
.byte 0x04, 0x00, 0x00, 0x00
.word 0x3EC + OV18_DATA_OFFSET
.byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.global OVERLAY18_FUNCTION_POINTER_TABLE
OVERLAY18_FUNCTION_POINTER_TABLE:
.word ov18_0238BE48
.word ov18_0238BE6C
.word ov18_0238BE90
.word ov18_0238BF0C
.word ov18_0238BF30
.word ov18_0238BF60
.word ov18_0238BF84
.word ov18_0238BFA8
.word ov18_0238C03C
.word ov18_0238C060
.word ov18_0238C078
.word ov18_0238C060
.word ov18_0238C09C
.word ov18_0238C0C0
.word ov18_0238C0D8
.word ov18_0238C0FC
.word ov18_0238C114
.word ov18_0238C13C
.word ov18_0238C164
.word ov18_0238C21C
.word ov18_0238C240
.word ov18_0238C258
.word ov18_0238C27C
.word ov18_0238C340
.word ov18_0238C364
.word ov18_0238C398
.word ov18_0238C3C0
.word ov18_0238C428
.word ov18_0238C47C
.word ov18_0238C4A0
.word ov18_0238C4E8
.word ov18_0238C504
.word ov18_0238C528
.word ov18_0238C720
.word ov18_0238C78C
.word ov18_0238C7B0
.word ov18_0238C7C0
.word ov18_0238C7E4
.word ov18_0238C808
.word ov18_0238C888
.word ov18_0238C8AC
.word ov18_0238C8D0
.word ov18_0238C950
.word ov18_0238C974
.word ov18_0238C984
.word ov18_0238C9A8
.word ov18_0238C9B8
.word ov18_0238CA18
.word ov18_0238CA3C
.word ov18_0238CA4C
.word ov18_0238CA70
.word ov18_0238CA80
.word ov18_0238CAB0
.word ov18_0238CAD4
.word ov18_0238CBDC
.word ov18_0238CC00
.word ov18_0238CD88
.word ov18_0238CDAC
.word ov18_0238CDC8
.word ov18_0238CDEC
.word ov18_0238CDFC
.word ov18_0238CE20
.word ov18_0238CE88
.word ov18_0238CED8
.word ov18_0238CF98
.word ov18_0238D034
.word ov18_0238D050
.word ov18_0238D074
.word ov18_0238D098
.word ov18_0238D12C
.word ov18_0238D150
.word ov18_0238D174
.word ov18_0238D208
.word ov18_0238D22C
.word ov18_0238D23C
.word ov18_0238D260
.global ov18_0238D5F8
ov18_0238D5F8:
.byte 0x5B, 0x43, 0x53, 0x3A, 0x25, 0x63, 0x5D, 0x25, 0x73, 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00
.global ov18_0238D608
ov18_0238D608:
.byte 0x5B, 0x43, 0x53, 0x3A, 0x56, 0x5D, 0x5B, 0x67, 0x6F, 0x6C, 0x64, 0x3A, 0x30, 0x5D, 0x5B, 0x43
.byte 0x52, 0x5D, 0x00, 0x00
.data
.global LINK_SHOP_PTR
LINK_SHOP_PTR:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00