pmd-sky/asm/overlay_20.s
AnonymousRandomPerson 6e1d5f7333 Added BSS to overlays
2023-08-14 00:17:21 -04:00

3471 lines
63 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_20.inc"
.text
arm_func_start ov20_0238A140
ov20_0238A140: ; 0x0238A140
ldr ip, _0238A14C ; =ov20_0238B294
mov r0, #0
bx ip
.align 2, 0
_0238A14C: .word ov20_0238B294
arm_func_end ov20_0238A140
arm_func_start ov20_0238A150
ov20_0238A150: ; 0x0238A150
ldr ip, _0238A15C ; =ov20_0238B294
mov r0, #1
bx ip
.align 2, 0
_0238A15C: .word ov20_0238B294
arm_func_end ov20_0238A150
arm_func_start ov20_0238A160
ov20_0238A160: ; 0x0238A160
stmdb sp!, {r3, lr}
ldr r0, _0238A1AC ; =0x0238D120
ldr r1, [r0]
cmp r1, #0
beq _0238A1A4
ldr r0, [r1, #0x9c]
cmp r0, #0
beq _0238A188
add r0, r1, #0x9c
bl sub_020125CC
_0238A188:
bl sub_02046D20
ldr r0, _0238A1AC ; =0x0238D120
ldr r0, [r0]
bl MemFree
ldr r0, _0238A1AC ; =0x0238D120
mov r1, #0
str r1, [r0]
_0238A1A4:
bl sub_020017EC
ldmia sp!, {r3, pc}
.align 2, 0
_0238A1AC: .word 0x0238D120
arm_func_end ov20_0238A160
arm_func_start ov20_0238A1B0
ov20_0238A1B0: ; 0x0238A1B0
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0xb0
ldr r0, _0238B144 ; =0x0238D120
ldr r8, [r0]
ldr r0, [r8]
cmp r0, #8
addls pc, pc, r0, lsl #2
b _0238B288
_0238A1D0: ; jump table
b _0238A1F4 ; case 0
b _0238A204 ; case 1
b _0238A210 ; case 2
b _0238B124 ; case 3
b _0238B130 ; case 4
b _0238B174 ; case 5
b _0238B1A4 ; case 6
b _0238B1C8 ; case 7
b _0238B260 ; case 8
_0238A1F4:
mov r0, #2
str r0, [r8]
bl ov00_022E6E68
b _0238B288
_0238A204:
mov r0, #2
str r0, [r8]
b _0238B288
_0238A210:
bl ov11_022E6EC8
cmp r0, #0
bne _0238A228
bl ov11_0230CCE0
cmp r0, #0
beq _0238B288
_0238A228:
ldr sl, _0238B144 ; =0x0238D120
ldr sb, [sl]
ldr r0, [sb, #4]
cmp r0, #9
addls pc, pc, r0, lsl #2
b _0238B0FC
_0238A240: ; jump table
b _0238A268 ; case 0
b _0238A284 ; case 1
b _0238A298 ; case 2
b _0238A2A4 ; case 3
b _0238A2A4 ; case 4
b _0238A3C4 ; case 5
b _0238B078 ; case 6
b _0238B09C ; case 7
b _0238B0B8 ; case 8
b _0238B0EC ; case 9
_0238A268:
bl ov00_0230D220
cmp r0, #0
bne _0238B0FC
bl ov00_0230D71C
mov r0, #1
str r0, [sb, #4]
b _0238B0FC
_0238A284:
bl ov00_0230D220
cmp r0, #0
moveq r0, #3
streq r0, [sb, #4]
b _0238B0FC
_0238A298:
mov r0, #3
str r0, [sb, #4]
b _0238B0FC
_0238A2A4:
cmp r0, #4
moveq r1, #1
movne r1, #0
ldr r0, [sb, #0xc]
and r4, r1, #0xff
cmp r0, #0
beq _0238A2D4
cmp r0, #1
beq _0238A31C
cmp r0, #2
beq _0238A354
b _0238B0FC
_0238A2D4:
mov r1, #0
mov r0, sb
strb r1, [sb, #0xb0]
bl ov20_0238B4A8
cmp r4, #0
beq _0238A300
ldr r1, _0238B148 ; =0x000045EE
ldr r2, _0238B14C ; =0x0238CFEC
mov r0, sb
bl ov20_0238B39C
b _0238A310
_0238A300:
ldr r1, _0238B150 ; =0x000045ED
ldr r2, _0238B14C ; =0x0238CFEC
mov r0, sb
bl ov20_0238B39C
_0238A310:
mov r0, #2
str r0, [sb, #0xc]
b _0238B0FC
_0238A31C:
cmp r4, #0
beq _0238A338
ldr r1, _0238B148 ; =0x000045EE
ldr r2, _0238B14C ; =0x0238CFEC
mov r0, sb
bl ov20_0238B39C
b _0238A348
_0238A338:
ldr r1, _0238B150 ; =0x000045ED
ldr r2, _0238B14C ; =0x0238CFEC
mov r0, sb
bl ov20_0238B39C
_0238A348:
mov r0, #2
str r0, [sb, #0xc]
b _0238B0FC
_0238A354:
bl sub_02046B04
mvn r1, #0
cmp r0, r1
beq _0238B0FC
cmp r0, #0
moveq r0, #5
streq r0, [sb, #4]
moveq r0, #0
streq r0, [sb, #0xc]
beq _0238B0FC
cmp r0, #1
bne _0238A39C
mov r1, #0
strh r1, [sb, #0xa8]
mov r0, #6
str r0, [sb, #4]
str r1, [sb, #0xc]
b _0238B0FC
_0238A39C:
cmp r0, #2
moveq r0, #7
streq r0, [sb, #4]
moveq r0, #0
streq r0, [sb, #0xc]
movne r0, #8
strne r0, [sb, #4]
movne r0, #0
strne r0, [sb, #0xc]
b _0238B0FC
_0238A3C4:
ldr r6, _0238B154 ; =0x000045F4
mov r7, #0
sub fp, r6, #1
mvn r4, #0
b _0238B06C
_0238A3D8:
ldr r0, [sb, #0xc]
mov r7, #1
cmp r0, #0x3f
addls pc, pc, r0, lsl #2
b _0238B05C
_0238A3EC: ; jump table
b _0238A4EC ; case 0
b _0238A4EC ; case 1
b _0238A590 ; case 2
b _0238A620 ; case 3
b _0238A630 ; case 4
b _0238A644 ; case 5
b _0238A654 ; case 6
b _0238A668 ; case 7
b _0238A678 ; case 8
b _0238A68C ; case 9
b _0238A6C8 ; case 10
b _0238A890 ; case 11
b _0238A8BC ; case 12
b _0238A8FC ; case 13
b _0238A90C ; case 14
b _0238A924 ; case 15
b _0238A948 ; case 16
b _0238A95C ; case 17
b _0238A96C ; case 18
b _0238A980 ; case 19
b _0238A990 ; case 20
b _0238A9A4 ; case 21
b _0238A9BC ; case 22
b _0238A9D4 ; case 23
b _0238B05C ; case 24
b _0238B05C ; case 25
b _0238B05C ; case 26
b _0238AAB4 ; case 27
b _0238AAEC ; case 28
b _0238AB70 ; case 29
b _0238AB80 ; case 30
b ov20_0238AB14 ; case 31
b _0238ABA8 ; case 32
b _0238ABC4 ; case 33
b _0238ABD4 ; case 34
b _0238ABEC ; case 35
b _0238AC34 ; case 36
b _0238AC84 ; case 37
b _0238AC98 ; case 38
b _0238ACB0 ; case 39
b _0238ACC0 ; case 40
b _0238AD14 ; case 41
b _0238AD24 ; case 42
b _0238AD78 ; case 43
b _0238ADC8 ; case 44
b _0238ADDC ; case 45
b _0238AE08 ; case 46
b _0238AE20 ; case 47
b _0238AE44 ; case 48
b _0238AE58 ; case 49
b _0238AE70 ; case 50
b _0238AEA4 ; case 51
b _0238AEB4 ; case 52
b _0238AECC ; case 53
b _0238AEE8 ; case 54
b _0238AF68 ; case 55
b _0238AF80 ; case 56
b _0238AFAC ; case 57
b _0238AFD0 ; case 58
b _0238AFE8 ; case 59
b _0238B00C ; case 60
b _0238B01C ; case 61
b _0238B034 ; case 62
b _0238B048 ; case 63
_0238A4EC:
bl sub_02011EE8
cmp r0, #0
bne _0238A538
ldrb r0, [sb, #0xb0]
cmp r0, #0
beq _0238A520
ldr r2, _0238B158 ; =0x0238CF84
mov r0, sb
add r1, r6, #2
bl ov20_0238B39C
mov r0, #2
str r0, [sb, #0xc]
b _0238A584
_0238A520:
mov r0, #0
str r0, [sb, #0x80]
mov r0, #7
str r0, [sb, #0xc]
mov r7, #0
b _0238A584
_0238A538:
ldr r0, [sb, #0xc]
cmp r0, #0
bne _0238A558
ldr r2, _0238B15C ; =0x0238CFCC
mov r0, sb
mov r1, fp
bl ov20_0238B39C
b _0238A57C
_0238A558:
ldrb r0, [sb, #0xb0]
ldr r2, _0238B15C ; =0x0238CFCC
cmp r0, #0
addne r0, r6, #1
moveq r0, r6
mov r0, r0, lsl #0x10
mov r1, r0, lsr #0x10
mov r0, sb
bl ov20_0238B39C
_0238A57C:
mov r0, #2
str r0, [sb, #0xc]
_0238A584:
mov r0, #0
strb r0, [sb, #0xb0]
b _0238B05C
_0238A590:
bl sub_02046B04
cmp r0, r4
beq _0238B05C
cmp r0, #4
bne _0238A5E8
mov r0, #2
str r0, [sb, #0x80]
bl sub_02011EE8
cmp r0, #0
moveq r0, #3
streq r0, [sb, #0xc]
beq _0238B0FC
bl sub_0201227C
cmp r0, #0
moveq r0, r7
movne r0, #0
tst r0, #0xff
movne r0, #5
strne r0, [sb, #0xc]
moveq r0, #7
streq r0, [sb, #0xc]
b _0238B0FC
_0238A5E8:
cmp r0, #5
moveq r0, r7
streq r0, [sb, #0x80]
moveq r0, #7
streq r0, [sb, #0xc]
beq _0238B0FC
cmp r0, #6
moveq r0, #0
streq r0, [sb, #0x80]
moveq r0, #7
streq r0, [sb, #0xc]
movne r0, #0x3f
strne r0, [sb, #0xc]
b _0238B0FC
_0238A620:
add r0, r6, #7
bl ov20_0238B340
mov r0, #4
str r0, [sb, #0xc]
_0238A630:
bl sub_02046C78
cmp r0, #0
movne r0, #0x3f
strne r0, [sb, #0xc]
b _0238B05C
_0238A644:
add r0, r6, #8
bl ov20_0238B340
mov r0, #6
str r0, [sb, #0xc]
_0238A654:
bl sub_02046C78
cmp r0, #0
movne r0, #7
strne r0, [sb, #0xc]
b _0238B05C
_0238A668:
add r0, r6, #9
bl ov20_0238B340
mov r0, #8
str r0, [sb, #0xc]
_0238A678:
bl sub_02046C78
cmp r0, #0
movne r0, #9
strne r0, [sb, #0xc]
b _0238B05C
_0238A68C:
mov r0, #0
str r0, [sb, #0x14]
bl sub_02046D20
ldrsb r0, [sb, #0x18]
bl HidePortraitBox
mov r0, #0
strb r0, [sb, #0xa4]
ldr r0, [sb, #0x9c]
cmp r0, #0
beq _0238A6BC
add r0, sb, #0x9c
bl sub_020125CC
_0238A6BC:
mov r0, #0xa
str r0, [sb, #0xc]
b _0238B05C
_0238A6C8:
ldr r0, [sb, #0x14]
cmp r0, #0xc
bgt _0238A718
cmp r0, #0xb
blt _0238A6EC
beq _0238A7A0
cmp r0, #0xc
beq _0238A7FC
b _0238A83C
_0238A6EC:
cmp r0, #1
bgt _0238A70C
cmp r0, #0
blt _0238A83C
beq _0238A73C
cmp r0, #1
beq _0238A754
b _0238A83C
_0238A70C:
cmp r0, #0xa
beq _0238A768
b _0238A83C
_0238A718:
cmp r0, #0x15
bgt _0238A730
bge _0238A820
cmp r0, #0x14
beq _0238A80C
b _0238A83C
_0238A730:
cmp r0, #0xff
beq _0238A834
b _0238A83C
_0238A73C:
ldr r0, _0238B160 ; =0x0238CF7C
bl ov11_0230DB58
ldr r0, [sb, #0x14]
add r0, r0, #1
str r0, [sb, #0x14]
b _0238A83C
_0238A754:
bl ov00_0230D220
cmp r0, #0
moveq r0, #0xa
streq r0, [sb, #0x14]
b _0238A83C
_0238A768:
add r0, sb, #0x84
mov r1, #0x18
bl MemZero
bl sub_02011F48
mov r5, r0
bl sub_02011F30
mov r2, r0
ldr r0, [sb, #0x80]
mov r1, r5
bl ov20_0238BB60
ldr r0, [sb, #0x14]
add r0, r0, #1
str r0, [sb, #0x14]
b _0238A83C
_0238A7A0:
bl ov20_0238BD90
cmp r0, #0
beq _0238A83C
bl ov20_0238C1F0
cmp r0, #0
bne _0238A7CC
add r0, sb, #0x84
bl ov20_0238C204
mov r0, #2
str r0, [sb, #0xa0]
b _0238A7EC
_0238A7CC:
cmp r0, #3
movne r0, r7
strne r0, [sb, #0xa0]
bne _0238A7EC
add r0, sb, #0x84
bl ov20_0238C204
mov r0, #3
str r0, [sb, #0xa0]
_0238A7EC:
ldr r0, [sb, #0x14]
add r0, r0, #1
str r0, [sb, #0x14]
b _0238A83C
_0238A7FC:
bl ov20_0238C230
mov r0, #0x14
str r0, [sb, #0x14]
b _0238A83C
_0238A80C:
bl ov00_0230D71C
ldr r0, [sb, #0x14]
add r0, r0, #1
str r0, [sb, #0x14]
b _0238A83C
_0238A820:
bl ov00_0230D220
cmp r0, #0
moveq r0, #0xff
streq r0, [sb, #0x14]
b _0238A83C
_0238A834:
mov r0, r7
b _0238A840
_0238A83C:
mov r0, #0
_0238A840:
cmp r0, #0
beq _0238B05C
ldr r0, [sb, #0xa0]
cmp r0, #2
moveq r0, #0xb
streq r0, [sb, #0xc]
beq _0238B05C
cmp r0, #3
moveq r0, #0xf
streq r0, [sb, #0xc]
beq _0238B05C
cmp r0, #1
bne _0238B05C
bl sub_02011EE8
cmp r0, #0
moveq r0, #0x3f
streq r0, [sb, #0xc]
movne r0, #1
strne r0, [sb, #0xc]
b _0238B05C
_0238A890:
add r0, sb, #0x30
bl InitPreprocessorArgs
ldr r1, [sb, #0x84]
ldr r2, _0238B164 ; =0x0238CF9C
ldrsh r3, [r1]
mov r0, sb
add r1, r6, #0xa
str r3, [sb, #0x40]
bl ov20_0238B39C
mov r0, #0xc
str r0, [sb, #0xc]
_0238A8BC:
bl sub_02046B04
cmp r0, r4
beq _0238B05C
cmp r0, #8
bne _0238A8F0
add r0, sb, #0x84
bl sub_02011EC4
cmp r0, #0
movne r0, #0x13
strne r0, [sb, #0xc]
moveq r0, #0x1f
streq r0, [sb, #0xc]
b _0238B05C
_0238A8F0:
mov r0, #0xd
str r0, [sb, #0xc]
b _0238B05C
_0238A8FC:
add r0, r6, #0xb
bl ov20_0238B340
mov r0, #0xe
str r0, [sb, #0xc]
_0238A90C:
bl sub_02046C78
cmp r0, #0
beq _0238B05C
mov r0, #9
str r0, [sb, #0xc]
b _0238B0FC
_0238A924:
add r0, sb, #0x30
bl InitPreprocessorArgs
ldr r1, [sb, #0x84]
mov r0, #0x4600
ldrsh r1, [r1]
str r1, [sb, #0x40]
bl ov20_0238B340
mov r0, #0x10
str r0, [sb, #0xc]
_0238A948:
bl sub_02046C78
cmp r0, #0
movne r0, #9
strne r0, [sb, #0xc]
b _0238B05C
_0238A95C:
add r0, r6, #0xe
bl ov20_0238B340
mov r0, #0x12
str r0, [sb, #0xc]
_0238A96C:
bl sub_02046C78
cmp r0, #0
movne r0, #1
strne r0, [sb, #0xc]
b _0238B05C
_0238A980:
add r0, r6, #0xd
bl ov20_0238B340
mov r0, #0x14
str r0, [sb, #0xc]
_0238A990:
bl sub_02046C78
cmp r0, #0
movne r0, #0x15
strne r0, [sb, #0xc]
b _0238B05C
_0238A9A4:
mov r0, sb
mov r1, #0
bl ov20_0238B410
mov r0, #0x17
str r0, [sb, #0xc]
b _0238B05C
_0238A9BC:
mov r0, sb
mov r1, r7
bl ov20_0238B410
mov r0, #0x17
str r0, [sb, #0xc]
b _0238B05C
_0238A9D4:
ldr r0, [sb, #0x14]
cmp r0, #3
addls pc, pc, r0, lsl #2
b _0238AA84
_0238A9E4: ; jump table
b _0238A9F4 ; case 0
b _0238AA28 ; case 1
b _0238AA68 ; case 2
b _0238AA7C ; case 3
_0238A9F4:
add r0, sb, #0x84
bl sub_02011DF0
mov r5, r0
add r0, sb, #0x84
bl sub_02011E24
mov r1, r0
mov r0, r5
ldrb r2, [sb, #0xa6]
bl ov20_0238C2E0
ldr r0, [sb, #0x14]
add r0, r0, #1
str r0, [sb, #0x14]
b _0238AA84
_0238AA28:
bl ov20_0238C50C
cmp r0, #0
beq _0238AA84
bl ov20_0238CA0C
cmp r0, #0
movne r0, r7
strne r0, [sb, #0xa0]
bne _0238AA58
mov r0, #2
str r0, [sb, #0xa0]
bl ov20_0238CA20
str r0, [sb, #0x9c]
_0238AA58:
ldr r0, [sb, #0x14]
add r0, r0, #1
str r0, [sb, #0x14]
b _0238AA84
_0238AA68:
bl ov20_0238CA3C
ldr r0, [sb, #0x14]
add r0, r0, #1
str r0, [sb, #0x14]
b _0238AA84
_0238AA7C:
mov r0, r7
b _0238AA88
_0238AA84:
mov r0, #0
_0238AA88:
cmp r0, #0
beq _0238B05C
ldr r0, [sb, #0xa0]
cmp r0, #2
moveq r0, #0x1b
streq r0, [sb, #0xc]
beq _0238B05C
cmp r0, #1
moveq r0, #0x11
streq r0, [sb, #0xc]
b _0238B05C
_0238AAB4:
add r0, sb, #0x30
bl InitPreprocessorArgs
ldr r1, [sb, #0x84]
add r0, sb, #0x84
ldrsh r1, [r1]
str r1, [sb, #0x40]
bl sub_02011E24
str r0, [sb, #0x58]
ldr r2, _0238B164 ; =0x0238CF9C
mov r0, sb
add r1, r6, #0xf
bl ov20_0238B39C
mov r0, #0x1c
str r0, [sb, #0xc]
_0238AAEC:
bl sub_02046B04
cmp r0, r4
beq _0238B05C
cmp r0, #8
moveq r0, #0x1f
streq r0, [sb, #0xc]
movne r0, #0x1d
moveq r7, #0
strne r0, [sb, #0xc]
b _0238B05C
ov20_0238AB14:
ldr r0, [sb, #0x80]
cmp r0, #2
bne _0238AB24
bl sub_02011F14
_0238AB24:
mov r0, #1
strb r0, [sb, #0xb0]
bl sub_02011F60
ldr r1, [sb, #0x9c]
add r0, sb, #0x84
cmp r1, #0
beq _0238AB48
bl sub_02012874
b _0238AB4C
_0238AB48:
bl sub_0201271C
_0238AB4C:
add r0, sb, #0x84
bl sub_02011DFC
cmp r0, #0
movne r0, #0x2f
strne r0, [sb, #0xc]
moveq r0, #0x20
streq r0, [sb, #0xc]
moveq r7, #0
b _0238B05C
_0238AB70:
add r0, r6, #0x10
bl ov20_0238B340
mov r0, #0x1e
str r0, [sb, #0xc]
_0238AB80:
bl sub_02046C78
cmp r0, #0
beq _0238B05C
ldr r0, [sb, #0x9c]
cmp r0, #0
movne r0, #0x16
strne r0, [sb, #0xc]
moveq r0, #9
streq r0, [sb, #0xc]
b _0238B05C
_0238ABA8:
bl IsBagFull
cmp r0, #0
movne r0, #0x27
strne r0, [sb, #0xc]
moveq r0, #0x21
streq r0, [sb, #0xc]
b _0238B05C
_0238ABC4:
add r0, r6, #0x19
bl ov20_0238B340
mov r0, #0x22
str r0, [sb, #0xc]
_0238ABD4:
bl sub_02046C78
cmp r0, #0
movne r0, #0x23
strne r0, [sb, #0xc]
movne r7, #0
b _0238B05C
_0238ABEC:
ldr r1, [sb, #0x84]
add r0, sp, #0x10
ldrsh r1, [r1]
mov r2, #0
bl InitStandardItem
add r0, sp, #0x10
bl AddItemToBagNoHeld
bl sub_02046D20
ldrsb r0, [sb, #0x18]
bl HidePortraitBox
mov r0, #0
strb r0, [sb, #0xa4]
bl sub_020037A4
add r0, r0, #0xa
str r0, [sb, #0xac]
mov r0, #0x24
str r0, [sb, #0xc]
b _0238B05C
_0238AC34:
bl sub_020037A4
ldr r1, [sb, #0xac]
cmp r0, r1
bls _0238B05C
ldr r0, [sb, #0x84]
ldr r1, [sl]
ldrsh r2, [r0]
add r0, r6, #0x1a
str r2, [r1, #0x40]
bl StringFromMessageId
ldr r2, [sl]
mov r1, r0
mov r0, #0x1c
add r2, r2, #0x30
bl sub_02046C30
mov r0, #0x25
str r0, [sb, #0xc]
mov r0, #4
bl sub_02017C50
b _0238B05C
_0238AC84:
bl sub_02046C78
cmp r0, #0
movne r0, #0x26
strne r0, [sb, #0xc]
b _0238B05C
_0238AC98:
mov r0, #4
bl sub_02017C10
cmp r0, #0
moveq r0, #0x36
streq r0, [sb, #0xc]
b _0238B05C
_0238ACB0:
add r0, r6, #0x16
bl ov20_0238B340
mov r0, #0x28
str r0, [sb, #0xc]
_0238ACC0:
bl sub_02046C78
cmp r0, #0
beq _0238B05C
ldr r1, [sb, #0x84]
add r0, sp, #0xa
ldrsh r1, [r1]
mov r2, #0
bl InitStandardItem
add r0, sp, #0xa
bl sub_020103AC
mov r0, #0x2b
str r0, [sb, #0xc]
bl sub_02046D20
ldrsb r0, [sb, #0x18]
bl HidePortraitBox
mov r0, #0
strb r0, [sb, #0xa4]
bl sub_020037A4
add r0, r0, #0xa
str r0, [sb, #0xac]
b _0238B05C
_0238AD14:
add r0, r6, #0x17
bl ov20_0238B340
mov r0, #0x2a
str r0, [sb, #0xc]
_0238AD24:
bl sub_02046C78
cmp r0, #0
beq _0238B05C
ldr r1, [sb, #0x84]
add r0, sp, #4
ldrsh r1, [r1]
mov r2, #0
bl InitStandardItem
add r0, sp, #4
bl sub_020103AC
mov r0, #0x2b
str r0, [sb, #0xc]
bl sub_02046D20
ldrsb r0, [sb, #0x18]
bl HidePortraitBox
mov r0, #0
strb r0, [sb, #0xa4]
bl sub_020037A4
add r0, r0, #0xa
str r0, [sb, #0xac]
b _0238B05C
_0238AD78:
bl sub_020037A4
ldr r1, [sb, #0xac]
cmp r0, r1
bls _0238B05C
ldr r0, [sb, #0x84]
ldr r1, [sl]
ldrsh r2, [r0]
add r0, r6, #0x18
str r2, [r1, #0x40]
bl StringFromMessageId
ldr r2, [sl]
mov r1, r0
mov r0, #0x1c
add r2, r2, #0x30
bl sub_02046C30
mov r0, #0x2c
str r0, [sb, #0xc]
mov r0, #4
bl sub_02017C50
b _0238B05C
_0238ADC8:
bl sub_02046C78
cmp r0, #0
movne r0, #0x2d
strne r0, [sb, #0xc]
b _0238B05C
_0238ADDC:
mov r0, #4
bl sub_02017C10
cmp r0, #0
bne _0238B05C
mov r0, #0x2e
str r0, [sb, #0xc]
bl sub_02046D20
bl sub_020037A4
arm_func_end ov20_0238A1B0
arm_func_start ov20_0238ADFC
ov20_0238ADFC: ; 0x0238ADFC
add r0, r0, #0xa
str r0, [sb, #0xac]
b _0238B05C
_0238AE08:
bl sub_020037A4
ldr r1, [sb, #0xac]
cmp r0, r1
movhi r0, #0x36
strhi r0, [sb, #0xc]
b _0238B05C
_0238AE20:
add r0, sb, #0x30
bl InitPreprocessorArgs
ldr r1, [sb, #0x84]
add r0, r6, #0x11
ldrsh r1, [r1]
str r1, [sb, #0x40]
bl ov20_0238B340
mov r0, #0x30
str r0, [sb, #0xc]
_0238AE44:
bl sub_02046C78
cmp r0, #0
movne r0, #0x31
strne r0, [sb, #0xc]
b _0238B05C
_0238AE58:
ldr r2, _0238B168 ; =0x0238CFB4
mov r0, sb
add r1, r6, #0x12
bl ov20_0238B39C
mov r0, #0x32
str r0, [sb, #0xc]
_0238AE70:
bl sub_02046B04
cmp r0, r4
beq _0238B05C
cmp r0, #8
movne r0, #0x33
strne r0, [sb, #0xc]
bne _0238B05C
add r0, sb, #0x84
bl sub_02011DF0
strh r0, [sb, #0xa8]
mov r0, #0x3e
str r0, [sb, #0xc]
b _0238B05C
_0238AEA4:
add r0, r6, #0x15
bl ov20_0238B340
mov r0, #0x34
str r0, [sb, #0xc]
_0238AEB4:
bl sub_02046C78
cmp r0, #0
movne r0, #0x35
strne r0, [sb, #0xc]
movne r7, #0
b _0238B05C
_0238AECC:
bl IsBagFull
cmp r0, #0
movne r0, #0x29
strne r0, [sb, #0xc]
moveq r0, #0x23
streq r0, [sb, #0xc]
b _0238B05C
_0238AEE8:
bl Rand16Bit
mov r0, r0, lsl #0x10
mov r0, r0, lsr #0x10
mov r1, #0x64
bl DivideInt
mov r5, r1, lsl #0x10
add r0, sb, #0x84
bl sub_02011E18
cmp r0, r5, lsr #16
movls r0, #0
bls _0238AF50
bl sub_02011F48
bl sub_02011D9C
mov r5, r0
str r5, [sp]
bl Rand16Bit
ldr r1, [r5, #4]
bl DivideInt
ldr r2, [r5]
mov r0, #0x18
mla r0, r1, r0, r2
bl sub_02011DF0
strh r0, [sb, #0xa8]
add r0, sp, #0
bl sub_02011DB8
mov r0, r7
_0238AF50:
cmp r0, #0
movne r0, #0x37
moveq r0, #1
str r0, [sb, #0xc]
mov r7, #0
b _0238B05C
_0238AF68:
ldrsh r1, [sb, #0xa8]
add r0, r6, #0x1b
str r1, [sb, #0x40]
bl ov20_0238B340
mov r0, #0x38
str r0, [sb, #0xc]
_0238AF80:
bl sub_02046C78
cmp r0, #0
beq _0238B05C
ldr r2, _0238B168 ; =0x0238CFB4
mov r0, sb
add r1, r6, #0x1c
bl ov20_0238B39C
mov r0, #0x39
str r0, [sb, #0xc]
mov r7, #0
b _0238B05C
_0238AFAC:
bl sub_02046B04
cmp r0, r4
beq _0238B05C
cmp r0, #8
moveq r0, #0x3e
streq r0, [sb, #0xc]
movne r0, #0x3a
strne r0, [sb, #0xc]
b _0238B05C
_0238AFD0:
ldr r2, _0238B168 ; =0x0238CFB4
mov r0, sb
add r1, r6, #0x1d
bl ov20_0238B39C
mov r0, #0x3b
str r0, [sb, #0xc]
_0238AFE8:
bl sub_02046B04
cmp r0, r4
beq _0238B05C
cmp r0, #8
moveq r0, #0x3e
streq r0, [sb, #0xc]
movne r0, #0x3c
strne r0, [sb, #0xc]
b _0238B05C
_0238B00C:
add r0, r6, #0x1e
bl ov20_0238B340
mov r0, #0x3d
str r0, [sb, #0xc]
_0238B01C:
bl sub_02046C78
cmp r0, #0
movne r0, #1
strne r0, [sb, #0xc]
movne r7, #0
b _0238B05C
_0238B034:
mov r0, #6
str r0, [sb, #4]
mov r0, #0
str r0, [sb, #0xc]
b _0238B0FC
_0238B048:
mov r0, #4
str r0, [sb, #4]
mov r0, #0
str r0, [sb, #0xc]
b _0238B0FC
_0238B05C:
ldr r0, [sb, #0xc]
sub r0, r0, #0x3e
cmp r0, #1
movls r7, #0
_0238B06C:
cmp r7, #0
beq _0238A3D8
b _0238B0FC
_0238B078:
ldrsb r0, [sb, #0x18]
bl HidePortraitBox
mov r1, #0
mov r0, sb
strb r1, [sb, #0xa4]
bl ov20_0238B510
bl sub_02046D20
mov r1, #1
b _0238B100
_0238B09C:
ldr r1, _0238B16C ; =0x00004613
mov r0, sb
bl ov20_0238B450
cmp r0, #0
movne r0, #4
strne r0, [sb, #4]
b _0238B0FC
_0238B0B8:
ldr r1, _0238B170 ; =0x00004614
mov r0, sb
bl ov20_0238B450
cmp r0, #0
beq _0238B0FC
mov r0, #9
str r0, [sb, #4]
ldrsb r0, [sb, #0x18]
bl HidePortraitBox
mov r0, #0
strb r0, [sb, #0xa4]
bl sub_02046D20
b _0238B0FC
_0238B0EC:
bl ov00_0230D220
cmp r0, #0
moveq r1, #2
beq _0238B100
_0238B0FC:
mov r1, #0
_0238B100:
sub r0, r1, #1
cmp r0, #1
bhi _0238B288
cmp r1, #1
moveq r0, #7
streq r0, [r8]
movne r0, #3
strne r0, [r8]
b _0238B288
_0238B124:
mov r0, #4
str r0, [r8]
b _0238B288
_0238B130:
mov r0, r8
bl ov20_0238B510
mov r0, #5
str r0, [r8]
b _0238B288
.align 2, 0
_0238B144: .word 0x0238D120
_0238B148: .word 0x000045EE
_0238B14C: .word 0x0238CFEC
_0238B150: .word 0x000045ED
_0238B154: .word 0x000045F4
_0238B158: .word 0x0238CF84
_0238B15C: .word 0x0238CFCC
_0238B160: .word 0x0238CF7C
_0238B164: .word 0x0238CF9C
_0238B168: .word 0x0238CFB4
_0238B16C: .word 0x00004613
_0238B170: .word 0x00004614
_0238B174:
add r0, sp, #0x18
bl ov11_0230CCF0
tst r0, #0x100
beq _0238B198
ldr r0, [sp, #0xa0]
ldr r2, [sp, #0x9c]
mov r1, #0
blx r2
b _0238B19C
_0238B198:
bl ov00_022E6E68
_0238B19C:
mov r0, #4
b _0238B28C
_0238B1A4:
bl ov11_022E6EC8
cmp r0, #0
bne _0238B1BC
bl ov11_0230CCE0
cmp r0, #0
beq _0238B288
_0238B1BC:
mov r0, #2
str r0, [r8]
b _0238B288
_0238B1C8:
bl ov11_022E6EC8
cmp r0, #0
bne _0238B1E0
bl ov11_0230CCE0
cmp r0, #0
beq _0238B288
_0238B1E0:
ldrsh r0, [r8, #0xa8]
cmp r0, #0
bne _0238B1F8
mov r0, #5
bl ov11_022E6E8C
b _0238B244
_0238B1F8:
cmp r0, #0xa9
bne _0238B20C
mov r0, #1
bl ov11_022E6E8C
b _0238B244
_0238B20C:
cmp r0, #0xaa
bne _0238B220
mov r0, #2
bl ov11_022E6E8C
b _0238B244
_0238B220:
cmp r0, #0xab
bne _0238B234
mov r0, #3
bl ov11_022E6E8C
b _0238B244
_0238B234:
cmp r0, #0xac
bne _0238B244
mov r0, #4
bl ov11_022E6E8C
_0238B244:
mov r0, #4
str r0, [r8, #4]
mov r0, #0
str r0, [r8, #0xc]
mov r0, #6
str r0, [r8]
b _0238B288
_0238B260:
bl ov11_022E6EC8
cmp r0, #0
bne _0238B278
bl ov11_0230CCE0
cmp r0, #0
beq _0238B288
_0238B278:
mov r0, #4
bl ov11_022E6E8C
mov r0, #6
str r0, [r8]
_0238B288:
mov r0, #1
_0238B28C:
add sp, sp, #0xb0
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
arm_func_end ov20_0238ADFC
arm_func_start ov20_0238B294
ov20_0238B294: ; 0x0238B294
stmdb sp!, {r4, lr}
ldr r1, _0238B33C ; =0x0238D120
mov r4, r0
ldr r0, [r1]
cmp r0, #0
bne _0238B2C8
mov r0, #0xb4
mov r1, #8
bl MemAlloc
ldr r2, _0238B33C ; =0x0238D120
mov r1, #0xb4
str r0, [r2]
bl MemZero
_0238B2C8:
ldr r0, _0238B33C ; =0x0238D120
mov r1, #0
ldr r2, [r0]
mvn r0, #1
strb r0, [r2, #0x18]
strb r0, [r2, #0x2c]
strb r0, [r2, #0x2d]
strb r0, [r2, #0x2e]
str r1, [r2]
str r1, [r2, #4]
str r1, [r2, #0xc]
str r1, [r2, #0x10]
sub r0, r1, #1
str r0, [r2, #8]
str r1, [r2, #0x14]
strb r1, [r2, #0xa4]
str r1, [r2, #0x9c]
strh r1, [r2, #0xa8]
strb r1, [r2, #0xb0]
cmp r4, #0
strb r4, [r2, #0xa5]
movne r0, #1
strne r0, [r2]
movne r0, #4
strne r0, [r2, #4]
strne r1, [r2, #0xc]
bl sub_020017EC
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
_0238B33C: .word 0x0238D120
arm_func_end ov20_0238B294
arm_func_start ov20_0238B340
ov20_0238B340: ; 0x0238B340
stmdb sp!, {r4, lr}
ldr r1, _0238B394 ; =0x0238D120
mov r4, r0
ldr r0, [r1]
ldrb r1, [r0, #0xa4]
cmp r1, #0
bne _0238B360
bl ov20_0238B4A8
_0238B360:
ldr r1, _0238B394 ; =0x0238D120
mov r0, r4
ldr r1, [r1]
mov r2, #0x188
str r2, [r1, #0x7c]
bl StringFromMessageId
ldr r2, _0238B394 ; =0x0238D120
mov r1, r0
ldr r2, [r2]
ldr r0, _0238B398 ; =0x0000301C
add r2, r2, #0x30
bl sub_02046C30
ldmia sp!, {r4, pc}
.align 2, 0
_0238B394: .word 0x0238D120
_0238B398: .word 0x0000301C
arm_func_end ov20_0238B340
arm_func_start ov20_0238B39C
ov20_0238B39C: ; 0x0238B39C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0xa4
ldrb r3, [r0, #0xa4]
mov r5, r1
mov r4, r2
cmp r3, #0
bne _0238B3BC
bl ov20_0238B4A8
_0238B3BC:
ldr r1, _0238B40C ; =0x0238D120
add r0, sp, #0xc
ldr r2, [r1]
mov r3, #0x188
mov r1, #0x98
str r3, [r2, #0x7c]
bl MemZero
mov r0, #0
str r0, [sp, #0xc]
ldr r1, _0238B40C ; =0x0238D120
stmia sp, {r4, r5}
ldr r1, [r1]
add r3, sp, #0xc
add ip, r1, #0x30
mov r1, #0x3000
mov r2, #0x33
str ip, [sp, #8]
bl sub_02046A20
add sp, sp, #0xa4
ldmia sp!, {r4, r5, pc}
.align 2, 0
_0238B40C: .word 0x0238D120
arm_func_end ov20_0238B39C
arm_func_start ov20_0238B410
ov20_0238B410: ; 0x0238B410
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #0
str r0, [r4, #0x14]
strb r1, [r4, #0xa6]
ldrsb r0, [r4, #0x18]
bl HidePortraitBox
mov r0, #0
strb r0, [r4, #0xa4]
bl sub_02046D20
ldr r0, [r4, #0x9c]
cmp r0, #0
ldmeqia sp!, {r4, pc}
add r0, r4, #0x9c
bl sub_020125CC
ldmia sp!, {r4, pc}
arm_func_end ov20_0238B410
arm_func_start ov20_0238B450
ov20_0238B450: ; 0x0238B450
stmdb sp!, {r4, lr}
mov r4, r0
ldr r0, [r4, #0x10]
cmp r0, #0
beq _0238B470
cmp r0, #1
beq _0238B488
b _0238B4A0
_0238B470:
mov r0, r1
bl ov20_0238B340
ldr r0, [r4, #0x10]
add r0, r0, #1
str r0, [r4, #0x10]
b _0238B4A0
_0238B488:
bl sub_02046C78
cmp r0, #0
movne r0, #0
strne r0, [r4, #0x10]
movne r0, #1
ldmneia sp!, {r4, pc}
_0238B4A0:
mov r0, #0
ldmia sp!, {r4, pc}
arm_func_end ov20_0238B450
arm_func_start ov20_0238B4A8
ov20_0238B4A8: ; 0x0238B4A8
stmdb sp!, {r4, lr}
mov r4, r0
ldrsb r1, [r4, #0x18]
mvn r0, #1
cmp r1, r0
bne _0238B4D4
mov r0, #0
mov r1, #3
mov r2, #1
bl CreatePortraitBox
strb r0, [r4, #0x18]
_0238B4D4:
add r0, r4, #0x1c
mov r1, #0x188
bl InitPortraitBoxWithMonsterId
add r0, r4, #0x1c
mov r1, #0
bl SetPortraitUnknownAttr
add r0, r4, #0x1c
mov r1, #0
bl SetPortraitExpressionId
ldrsb r0, [r4, #0x18]
add r1, r4, #0x1c
bl ShowPortraitBox
mov r0, #1
strb r0, [r4, #0xa4]
ldmia sp!, {r4, pc}
arm_func_end ov20_0238B4A8
arm_func_start ov20_0238B510
ov20_0238B510: ; 0x0238B510
stmdb sp!, {r4, lr}
mov r4, r0
ldrsb r0, [r4, #0x18]
mvn r1, #1
cmp r0, r1
ldmeqia sp!, {r4, pc}
bl FreePortraitBox
mvn r0, #1
strb r0, [r4, #0x18]
mov r0, #0
strb r0, [r4, #0xa4]
ldmia sp!, {r4, pc}
arm_func_end ov20_0238B510
arm_func_start ov20_0238B540
ov20_0238B540: ; 0x0238B540
stmdb sp!, {r4, lr}
mov r4, r0
mov r0, #0x84
mov r1, #8
bl MemAlloc
ldr r1, _0238B5A8 ; =0x0238D124
mov r2, #0
str r0, [r1]
mvn r1, #1
strb r1, [r0, #0x14]
strb r1, [r0, #0x15]
strb r1, [r0, #0x16]
str r2, [r0]
str r2, [r0, #4]
str r2, [r0, #0xc]
str r2, [r0, #0x10]
sub r1, r2, #1
str r1, [r0, #8]
strb r2, [r0, #0x68]
add ip, r0, #0x6c
ldmia r4!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
ldmia r4, {r0, r1}
stmia ip, {r0, r1}
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
_0238B5A8: .word 0x0238D124
arm_func_end ov20_0238B540
arm_func_start ov20_0238B5AC
ov20_0238B5AC: ; 0x0238B5AC
stmdb sp!, {r3, lr}
ldr r0, _0238B658 ; =0x0238D124
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
ldrsb r0, [r0, #0x14]
mvn r1, #1
cmp r0, r1
beq _0238B5E4
bl sub_0202F8FC
ldr r0, _0238B658 ; =0x0238D124
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #0x14]
_0238B5E4:
ldr r0, _0238B658 ; =0x0238D124
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #0x15]
cmp r0, r1
beq _0238B610
bl sub_0202F8FC
ldr r0, _0238B658 ; =0x0238D124
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #0x15]
_0238B610:
ldr r0, _0238B658 ; =0x0238D124
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #0x16]
cmp r0, r1
beq _0238B63C
bl sub_0202F8FC
ldr r0, _0238B658 ; =0x0238D124
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #0x16]
_0238B63C:
ldr r0, _0238B658 ; =0x0238D124
ldr r0, [r0]
bl MemFree
ldr r0, _0238B658 ; =0x0238D124
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0238B658: .word 0x0238D124
arm_func_end ov20_0238B5AC
arm_func_start ov20_0238B65C
ov20_0238B65C: ; 0x0238B65C
stmdb sp!, {r4, lr}
ldr r0, _0238B7E4 ; =0x0238D124
ldr r4, [r0]
cmp r4, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldr r0, [r4]
cmp r0, #7
addls pc, pc, r0, lsl #2
b _0238B7DC
_0238B684: ; jump table
b _0238B6A4 ; case 0
b _0238B6B0 ; case 1
b _0238B79C ; case 2
b _0238B7A8 ; case 3
b _0238B7B4 ; case 4
b _0238B7BC ; case 5
b _0238B7C8 ; case 6
b _0238B7D4 ; case 7
_0238B6A4:
mov r0, #1
str r0, [r4]
b _0238B7DC
_0238B6B0:
ldr r0, [r4, #4]
cmp r0, #7
addls pc, pc, r0, lsl #2
b _0238B788
_0238B6C0: ; jump table
b _0238B788 ; case 0
b _0238B6E0 ; case 1
b _0238B6E0 ; case 2
b _0238B6E0 ; case 3
b _0238B788 ; case 4
b _0238B780 ; case 5
b _0238B780 ; case 6
b _0238B780 ; case 7
_0238B6E0:
ldrsb r1, [r4, #0x14]
mvn r0, #1
cmp r1, r0
bne _0238B70C
ldr r0, _0238B7E8 ; =0x0238D038
ldr r1, _0238B7EC ; =ov20_0238B8CC
mov r2, r4
bl sub_0202F8DC
ldr r1, _0238B7E4 ; =0x0238D124
ldr r1, [r1]
strb r0, [r1, #0x14]
_0238B70C:
ldr r1, _0238B7E4 ; =0x0238D124
mvn r0, #1
ldr r1, [r1]
ldrsb r1, [r1, #0x15]
cmp r1, r0
bne _0238B740
ldr r0, _0238B7F0 ; =0x0238D028
ldr r1, _0238B7F4 ; =ov20_0238BA40
mov r2, r4
bl sub_0202F8DC
ldr r1, _0238B7E4 ; =0x0238D124
ldr r1, [r1]
strb r0, [r1, #0x15]
_0238B740:
ldr r1, _0238B7E4 ; =0x0238D124
mvn r0, #1
ldr r1, [r1]
ldrsb r1, [r1, #0x16]
cmp r1, r0
bne _0238B774
ldr r0, _0238B7F8 ; =0x0238D048
ldr r1, _0238B7FC ; =ov20_0238BAB4
mov r2, r4
bl sub_0202F8DC
ldr r1, _0238B7E4 ; =0x0238D124
ldr r1, [r1]
strb r0, [r1, #0x16]
_0238B774:
mov r0, #0
str r0, [r4, #4]
b _0238B788
_0238B780:
mov r0, #3
b _0238B78C
_0238B788:
mov r0, #0
_0238B78C:
cmp r0, #3
moveq r0, #2
streq r0, [r4]
b _0238B7DC
_0238B79C:
mov r0, #3
str r0, [r4]
b _0238B7DC
_0238B7A8:
mov r0, #4
str r0, [r4]
b _0238B7DC
_0238B7B4:
mov r0, #4
ldmia sp!, {r4, pc}
_0238B7BC:
mov r0, #1
str r0, [r4]
b _0238B7DC
_0238B7C8:
mov r0, #5
str r0, [r4]
b _0238B7DC
_0238B7D4:
mov r0, #5
str r0, [r4]
_0238B7DC:
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
_0238B7E4: .word 0x0238D124
_0238B7E8: .word 0x0238D038
_0238B7EC: .word ov20_0238B8CC
_0238B7F0: .word 0x0238D028
_0238B7F4: .word ov20_0238BA40
_0238B7F8: .word 0x0238D048
_0238B7FC: .word ov20_0238BAB4
arm_func_end ov20_0238B65C
arm_func_start ov20_0238B800
ov20_0238B800: ; 0x0238B800
ldr r0, _0238B820 ; =0x0238D124
ldr r0, [r0]
ldr r0, [r0]
cmp r0, #4
moveq r0, #1
movne r0, #0
and r0, r0, #0xff
bx lr
.align 2, 0
_0238B820: .word 0x0238D124
arm_func_end ov20_0238B800
arm_func_start ov20_0238B824
ov20_0238B824: ; 0x0238B824
stmdb sp!, {r3, r4, r5, lr}
movs r4, r1
mov r5, r0
beq _0238B888
ldr r0, _0238B8C8 ; =0x0238D124
ldr r1, [r0]
ldrb r0, [r1, #0x68]
cmp r0, #0
beq _0238B87C
ldrsb r0, [r1, #0x14]
mvn r1, #1
cmp r0, r1
beq _0238B85C
bl sub_0202F9B8
_0238B85C:
ldr r0, _0238B8C8 ; =0x0238D124
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #0x15]
cmp r0, r1
beq _0238B898
bl sub_0202F9B8
b _0238B898
_0238B87C:
mov r0, #1
str r0, [r1, #4]
b _0238B898
_0238B888:
ldr r0, _0238B8C8 ; =0x0238D124
mov r1, #5
ldr r0, [r0]
str r1, [r0, #4]
_0238B898:
ldr r0, _0238B8C8 ; =0x0238D124
cmp r5, #0
ldr r1, [r0]
strb r4, [r1, #0x68]
ldmeqia sp!, {r3, r4, r5, pc}
ldr r4, [r0]
ldmia r5!, {r0, r1, r2, r3}
add r4, r4, #0x6c
stmia r4!, {r0, r1, r2, r3}
ldmia r5, {r0, r1}
stmia r4, {r0, r1}
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0238B8C8: .word 0x0238D124
arm_func_end ov20_0238B824
arm_func_start ov20_0238B8CC
ov20_0238B8CC: ; 0x0238B8CC
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x154
ldr r1, _0238BA30 ; =0x0238D124
mov sl, r0
ldr r1, [r1]
mov r8, #0
add r7, r1, #0x6c
ldr r4, [r1, #0x6c]
bl sub_02027B1C
add r0, sp, #4
bl InitPreprocessorArgs
ldr r0, _0238BA34 ; =0x00004618
bl StringFromMessageId
mov r3, r0
mov r0, sl
mov r1, #8
mov r2, r8
bl sub_02026214
mov r0, #0x17
str r0, [sp]
mov r0, sl
mov r1, #8
mov r2, #0x10
mov r3, #0xd0
bl sub_02025D50
ldr fp, _0238BA38 ; =0x0000461C
add r6, r4, #0x14
add r8, r8, #0x18
mov sb, #0
sub r4, fp, #2
sub r5, fp, #1
b _0238BA14
_0238B94C:
mov r0, sb, lsl #2
ldrsh r1, [r6, r0]
ldr r0, _0238BA3C ; =0x00000578
add r2, r6, sb, lsl #2
cmp r1, r0
mov r3, #0x400
bne _0238B9B0
ldrsh r2, [r2, #2]
add r0, r7, sb, lsl #1
str r2, [sp, #0x2c]
ldrsh r1, [r0, #4]
ldrsh r0, [r0, #0xc]
add r0, r1, r0
cmp r2, r0
str r0, [sp, #0x30]
addgt r0, fp, #1
movle r0, fp
mov r0, r0, lsl #0x10
mov r2, r0, lsr #0x10
add r0, sp, #4
str r0, [sp]
add r0, sp, #0x54
mov r1, #0x100
bl PreprocessStringFromMessageId
b _0238B9F8
_0238B9B0:
str r1, [sp, #0x14]
ldrsh r2, [r2, #2]
add r0, r7, sb, lsl #1
str r2, [sp, #0x2c]
ldrsh r1, [r0, #4]
ldrsh r0, [r0, #0xc]
add r0, r1, r0
cmp r2, r0
str r0, [sp, #0x30]
movgt r0, r5
movle r0, r4
mov r0, r0, lsl #0x10
mov r2, r0, lsr #0x10
add r0, sp, #4
str r0, [sp]
add r0, sp, #0x54
mov r1, #0x100
bl PreprocessStringFromMessageId
_0238B9F8:
mov r0, sl
mov r1, #8
mov r2, r8
add r3, sp, #0x54
bl sub_02026214
add r8, r8, #0xc
add sb, sb, #1
_0238BA14:
ldrsh r0, [r7, #0x14]
cmp sb, r0
blt _0238B94C
mov r0, sl
bl sub_02027AF0
add sp, sp, #0x154
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0238BA30: .word 0x0238D124
_0238BA34: .word 0x00004618
_0238BA38: .word 0x0000461C
_0238BA3C: .word 0x00000578
arm_func_end ov20_0238B8CC
arm_func_start ov20_0238BA40
ov20_0238BA40: ; 0x0238BA40
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x154
ldr r1, _0238BAAC ; =0x0238D124
mov r5, r0
ldr r1, [r1]
ldr r4, [r1, #0x6c]
bl sub_02027B1C
add r0, sp, #4
bl InitPreprocessorArgs
ldrsh r1, [r4]
ldr r2, _0238BAB0 ; =0x00004617
add ip, sp, #4
str r1, [sp, #0x14]
add r0, sp, #0x54
mov r1, #0x100
mov r3, #0x400
str ip, [sp]
bl PreprocessStringFromMessageId
add r3, sp, #0x54
mov r0, r5
mov r1, #8
mov r2, #2
bl sub_02026214
mov r0, r5
bl sub_02027AF0
add sp, sp, #0x154
ldmia sp!, {r4, r5, pc}
.align 2, 0
_0238BAAC: .word 0x0238D124
_0238BAB0: .word 0x00004617
arm_func_end ov20_0238BA40
arm_func_start ov20_0238BAB4
ov20_0238BAB4: ; 0x0238BAB4
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x154
mov r4, r0
bl sub_02027B1C
add r0, sp, #4
bl InitPreprocessorArgs
add ip, sp, #4
ldr r2, _0238BB58 ; =0x0000461E
add r0, sp, #0x54
mov r1, #0x100
mov r3, #0x400
str ip, [sp]
bl PreprocessStringFromMessageId
add r3, sp, #0x54
mov r0, r4
mov r1, #8
mov r2, #0
bl sub_02026214
mov r0, #0x17
str r0, [sp]
mov r0, r4
mov r1, #8
mov r2, #0x10
mov r3, #0xd0
bl sub_02025D50
add r1, sp, #4
str r1, [sp]
ldr r2, _0238BB5C ; =0x0000461F
add r0, sp, #0x54
mov r1, #0x100
mov r3, #0x400
bl PreprocessStringFromMessageId
mov r0, r4
mov r1, #8
mov r2, #0x18
add r3, sp, #0x54
bl sub_02026214
mov r0, r4
bl sub_02027AF0
add sp, sp, #0x154
ldmia sp!, {r3, r4, pc}
.align 2, 0
_0238BB58: .word 0x0000461E
_0238BB5C: .word 0x0000461F
arm_func_end ov20_0238BAB4
arm_func_start ov20_0238BB60
ov20_0238BB60: ; 0x0238BB60
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr}
sub sp, sp, #8
mov r5, r0
bl sub_02011CF4
mov r4, r0
mov r0, #0x340
mov r1, #8
bl MemAlloc
ldr r1, _0238BD80 ; =0x0238D128
mvn r6, #1
str r0, [r1]
strb r6, [r0, #4]
ldr r0, [r1]
add r2, r6, #1
strb r6, [r0, #5]
ldr r0, [r1]
mov r3, #0
strb r6, [r0, #6]
ldr r0, [r1]
cmp r5, #1
str r2, [r0, #0xc]
ldr r0, [r1]
str r3, [r0, #8]
ldr r0, [r1]
str r3, [r0, #0x10]
ldr r2, [r1]
ldr r0, [r2, #0x10]
str r0, [r2, #0x14]
ldr r0, [r1]
str r3, [r0]
ldr r0, [r1]
strb r3, [r0, #0x18]
ldr r0, [r1]
str r4, [r0, #0x334]
ldr r2, [r1]
ldr r0, [r2, #0x334]
ldr r0, [r0]
str r0, [r2, #0x338]
ldreq r0, [r1]
ldreq r1, _0238BD84 ; =0x00004622
streqh r1, [r0, #0x24]
beq _0238BC20
cmp r5, #2
ldr r0, [r1]
ldreq r1, _0238BD88 ; =0x00004621
streqh r1, [r0, #0x24]
ldrne r1, _0238BD8C ; =0x00004620
strneh r1, [r0, #0x24]
_0238BC20:
ldr r0, _0238BD80 ; =0x0238D128
mov r2, #0x10
ldr r1, [r0]
mov r3, #0xd
str r2, [r1, #0x28]
ldr r1, [r0]
mov r2, #0
str r3, [r1, #0x20]
ldr r1, [r0]
mov r0, #0x14
str r2, [r1, #0x90]
bl Arm9LoadUnkFieldNa0x2029EC8
ldr r2, _0238BD80 ; =0x0238D128
mov r1, #8
ldr r3, [r2]
str r0, [r3, #0x1c]
ldr r0, [r2]
ldr r0, [r0, #0x334]
ldr r0, [r0, #4]
add r0, r0, #1
add r0, r0, r0, lsl #6
mov r0, r0, lsl #2
bl MemAlloc
mov r7, #0
ldr sl, _0238BD80 ; =0x0238D128
add r6, sp, #0
ldr r1, [sl]
mov r5, r7
str r0, [r1, #0x33c]
mov r4, r7
mov r8, #0x18
b _0238BCEC
_0238BCA0:
mul r1, r7, r8
ldr r2, [r2]
mov r0, r6
ldr r1, [r2, r1]
mov r2, r5
ldrsh r1, [r1]
bl InitStandardItem
ldr r0, [sl]
add sb, r7, r7, lsl #6
ldr r0, [r0, #0x33c]
mov r1, r6
mov r2, r4
add r0, r0, sb, lsl #2
bl sub_0200D670
ldr r0, [sl]
ldr r0, [r0, #0x33c]
add r0, r0, sb, lsl #2
str r7, [r0, #0x100]
add r7, r7, #1
_0238BCEC:
ldr r1, [sl]
ldr r2, [r1, #0x334]
ldr r0, [r2, #4]
cmp r7, r0
blt _0238BCA0
ldr r2, [r1, #0x33c]
mov r3, #0
add r0, r7, r7, lsl #6
ldr r1, _0238BD80 ; =0x0238D128
strb r3, [r2, r0, lsl #2]
ldr r2, [r1]
sub r4, r3, #1
ldr r3, [r2, #0x33c]
mov r2, #0xa
add r0, r3, r0, lsl #2
str r4, [r0, #0x100]
ldr r0, [r1]
ldr r1, [r0, #0x334]
add r0, r0, #0xb4
ldr r1, [r1, #4]
bl sub_020327CC
ldr r0, _0238BD80 ; =0x0238D128
mov r3, #0
ldr r1, [r0]
sub r2, r3, #1
str r3, [r1, #0x1c]
ldr r3, [r0]
ldr r1, [r3, #0x178]
str r1, [r3, #0x174]
ldr r1, [r0]
str r2, [r1, #0x330]
ldr r0, [r0]
ldr r0, [r0, #0x338]
bl ov20_0238B540
mov r0, #1
add sp, sp, #8
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc}
.align 2, 0
_0238BD80: .word 0x0238D128
_0238BD84: .word 0x00004622
_0238BD88: .word 0x00004621
_0238BD8C: .word 0x00004620
arm_func_end ov20_0238BB60
arm_func_start ov20_0238BD90
ov20_0238BD90: ; 0x0238BD90
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x5c
ldr r1, _0238C1D0 ; =0x0238D128
ldr r4, [r1]
ldr r0, [r4]
cmp r0, #0xb
addls pc, pc, r0, lsl #2
b _0238C1C0
_0238BDB0: ; jump table
b _0238BDE0 ; case 0
b _0238BE74 ; case 1
b _0238C1C0 ; case 2
b _0238BFA8 ; case 3
b _0238BFDC ; case 4
b _0238C07C ; case 5
b _0238C108 ; case 6
b _0238C1C0 ; case 7
b _0238C148 ; case 8
b _0238C150 ; case 9
b _0238C1B0 ; case 10
b _0238C1B0 ; case 11
_0238BDE0:
ldrsb r2, [r4, #4]
mvn r0, #1
cmp r2, r0
bne _0238BE24
ldr r0, [r4, #8]
mov r2, #8
str r0, [r4, #0x1c]
ldr r4, [r1]
ldr r0, _0238C1D4 ; =0x0238D068
str r2, [sp]
ldr r3, [r4, #0x33c]
ldr r1, _0238C1D8 ; =0x00441C33
add r2, r4, #0x1c
bl sub_0202B1AC
ldr r1, _0238C1D0 ; =0x0238D128
ldr r1, [r1]
strb r0, [r1, #4]
_0238BE24:
ldr r2, _0238C1D0 ; =0x0238D128
mov r0, #0x18
ldr r4, [r2]
mov r1, #1
ldr r3, [r4, #8]
str r3, [r4, #0xc]
ldr r5, [r2]
ldr r4, [r5, #0x334]
ldr r3, [r5, #8]
ldr r4, [r4]
mla r0, r3, r0, r4
str r0, [r5, #0x338]
ldr r0, [r2]
ldr r0, [r0, #0x338]
bl ov20_0238B824
ldr r0, _0238C1D0 ; =0x0238D128
mov r1, #1
ldr r0, [r0]
str r1, [r0]
b _0238C1C0
_0238BE74:
ldrsb r0, [r4, #4]
bl IsNormalMenuActive
cmp r0, #0
bne _0238BEDC
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl GetNormalMenuResult
mvn r1, #0
cmp r0, r1
bne _0238BEC0
ldr r0, _0238C1D0 ; =0x0238D128
mov r3, #2
ldr r2, [r0]
mov r1, #8
str r3, [r2, #0x330]
ldr r0, [r0]
str r1, [r0]
b _0238C1C0
_0238BEC0:
ldr r1, _0238C1D0 ; =0x0238D128
mov r2, #3
ldr r3, [r1]
str r0, [r3, #8]
ldr r0, [r1]
str r2, [r0]
b _0238C1C0
_0238BEDC:
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl sub_0202B530
ldr r1, _0238C1D0 ; =0x0238D128
mov r5, r0
ldr r0, [r1]
ldrsb r0, [r0, #4]
bl sub_0202B544
ldr r1, _0238C1D0 ; =0x0238D128
mov r4, r0
ldr r0, [r1]
ldrsb r0, [r0, #4]
bl sub_0202B568
ldr r2, _0238C1D0 ; =0x0238D128
mla r1, r4, r0, r5
ldr r0, [r2]
str r1, [r0, #8]
ldr r3, [r2]
ldr r1, [r3, #8]
ldr r0, [r3, #0xc]
cmp r0, r1
beq _0238BF68
str r1, [r3, #0xc]
ldr ip, [r2]
mov r0, #0x18
ldr r1, [ip, #0x334]
ldr r3, [ip, #8]
ldr r4, [r1]
mov r1, #1
mla r0, r3, r0, r4
str r0, [ip, #0x338]
ldr r0, [r2]
ldr r0, [r0, #0x338]
bl ov20_0238B824
_0238BF68:
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl sub_0202B558
tst r0, #0x100
beq _0238C1C0
mov r0, #0
bl sub_02017CCC
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
bl ov20_0238C288
ldr r0, _0238C1D0 ; =0x0238D128
mov r1, #5
ldr r0, [r0]
str r1, [r0]
b _0238C1C0
_0238BFA8:
ldr r0, _0238C1DC ; =0x0238D078
mov ip, #3
ldr r3, _0238C1E0 ; =0x0238D088
mov r1, #0x13
mov r2, #0
str ip, [sp]
bl CreateNormalMenu
ldr r1, _0238C1D0 ; =0x0238D128
strb r0, [r4, #5]
ldr r0, [r1]
mov r1, #4
str r1, [r0]
b _0238C1C0
_0238BFDC:
ldrsb r0, [r4, #5]
bl IsNormalMenuActive
cmp r0, #0
bne _0238C1C0
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
ldrsb r0, [r0, #5]
bl GetNormalMenuResult
ldr r2, _0238C1D0 ; =0x0238D128
mvn r1, #0
ldr r3, [r2]
str r0, [r3, #0x330]
ldr r0, [r2]
ldr r2, [r0, #0x330]
cmp r2, r1
cmpne r2, #2
bne _0238C048
ldrsb r0, [r0, #4]
bl sub_0202B490
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
bl ov20_0238C2B8
ldr r0, _0238C1D0 ; =0x0238D128
mov r1, #1
ldr r0, [r0]
str r1, [r0]
b _0238C1C0
_0238C048:
cmp r2, #1
movne r1, #9
strne r1, [r0]
bne _0238C1C0
bl ov20_0238C2B8
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
bl ov20_0238C288
ldr r0, _0238C1D0 ; =0x0238D128
mov r1, #5
ldr r0, [r0]
str r1, [r0]
b _0238C1C0
_0238C07C:
mov r0, r4
bl ov20_0238C2B8
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
bl ov20_0238C288
ldr r1, _0238C1D0 ; =0x0238D128
add r0, sp, #0xc
ldr r1, [r1]
ldr r1, [r1, #0x338]
ldr r1, [r1]
ldrsh r4, [r1]
bl InitPreprocessorArgs
mov r2, #0
add r0, r4, #0xd1
add r0, r0, #0x2900
mov r0, r0, lsl #0x10
mov r1, r0, lsr #0x10
str r4, [sp, #0x1c]
str r2, [sp, #0x30]
str r2, [sp, #0x24]
str r2, [sp, #0x38]
add r3, sp, #0xc
str r3, [sp]
stmib sp, {r1, r3}
ldr r0, _0238C1E4 ; =0x0238D058
ldr r1, _0238C1E8 ; =0x00001013
ldr r3, _0238C1EC ; =0x000008E4
bl sub_0202E3CC
ldr r1, _0238C1D0 ; =0x0238D128
mov r2, #6
ldr r3, [r1]
strb r0, [r3, #6]
ldr r0, [r1]
str r2, [r0]
b _0238C1C0
_0238C108:
ldrsb r0, [r4, #6]
bl sub_0202E6E4
cmp r0, #0
bne _0238C1C0
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
ldrsb r0, [r0, #6]
bl sub_0202E6C8
ldr r0, _0238C1D0 ; =0x0238D128
mvn r3, #1
ldr r2, [r0]
mov r1, #0
strb r3, [r2, #6]
ldr r0, [r0]
str r1, [r0]
b _0238C1C0
_0238C148:
mov r0, #8
str r0, [r4]
_0238C150:
ldr r0, _0238C1D0 ; =0x0238D128
ldr r4, [r0]
ldr r0, [r4, #0x330]
cmp r0, #0
bne _0238C178
ldr r0, [r4, #0x338]
bl sub_02011E68
cmp r0, #0
moveq r0, #3
streq r0, [r4, #0x330]
_0238C178:
mov r0, #0
mov r1, r0
bl ov20_0238B824
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
bl ov20_0238C2B8
ldr r0, _0238C1D0 ; =0x0238D128
ldr r0, [r0]
bl ov20_0238C288
ldr r0, _0238C1D0 ; =0x0238D128
mov r1, #0xa
ldr r0, [r0]
str r1, [r0]
b _0238C1C0
_0238C1B0:
bl ov20_0238B800
cmp r0, #0
movne r0, #1
bne _0238C1C8
_0238C1C0:
bl ov20_0238B65C
mov r0, #0
_0238C1C8:
add sp, sp, #0x5c
ldmia sp!, {r4, r5, pc}
.align 2, 0
_0238C1D0: .word 0x0238D128
_0238C1D4: .word 0x0238D068
_0238C1D8: .word 0x00441C33
_0238C1DC: .word 0x0238D078
_0238C1E0: .word 0x0238D088
_0238C1E4: .word 0x0238D058
_0238C1E8: .word 0x00001013
_0238C1EC: .word 0x000008E4
arm_func_end ov20_0238BD90
arm_func_start ov20_0238C1F0
ov20_0238C1F0: ; 0x0238C1F0
ldr r0, _0238C200 ; =0x0238D128
ldr r0, [r0]
ldr r0, [r0, #0x330]
bx lr
.align 2, 0
_0238C200: .word 0x0238D128
arm_func_end ov20_0238C1F0
arm_func_start ov20_0238C204
ov20_0238C204: ; 0x0238C204
stmdb sp!, {r3, lr}
ldr r1, _0238C22C ; =0x0238D128
mov lr, r0
ldr r0, [r1]
ldr ip, [r0, #0x338]
ldmia ip!, {r0, r1, r2, r3}
stmia lr!, {r0, r1, r2, r3}
ldmia ip, {r0, r1}
stmia lr, {r0, r1}
ldmia sp!, {r3, pc}
.align 2, 0
_0238C22C: .word 0x0238D128
arm_func_end ov20_0238C204
arm_func_start ov20_0238C230
ov20_0238C230: ; 0x0238C230
stmdb sp!, {r3, lr}
ldr r0, _0238C284 ; =0x0238D128
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl ov20_0238B5AC
ldr r0, _0238C284 ; =0x0238D128
ldr r0, [r0]
add r0, r0, #0x334
bl sub_02011DB8
ldr r0, _0238C284 ; =0x0238D128
ldr r0, [r0]
ldr r0, [r0, #0x33c]
bl MemFree
ldr r0, _0238C284 ; =0x0238D128
ldr r0, [r0]
bl MemFree
ldr r0, _0238C284 ; =0x0238D128
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0238C284: .word 0x0238D128
arm_func_end ov20_0238C230
arm_func_start ov20_0238C288
ov20_0238C288: ; 0x0238C288
stmdb sp!, {r4, lr}
mov r4, r0
ldrsb r0, [r4, #4]
mvn r1, #1
cmp r0, r1
ldmeqia sp!, {r4, pc}
bl FreeNormalMenu
mvn r0, #1
strb r0, [r4, #4]
mov r0, #0
strb r0, [r4, #0x18]
ldmia sp!, {r4, pc}
arm_func_end ov20_0238C288
arm_func_start ov20_0238C2B8
ov20_0238C2B8: ; 0x0238C2B8
stmdb sp!, {r4, lr}
mov r4, r0
ldrsb r0, [r4, #5]
mvn r1, #1
cmp r0, r1
ldmeqia sp!, {r4, pc}
bl FreeNormalMenu
mvn r0, #1
strb r0, [r4, #5]
ldmia sp!, {r4, pc}
arm_func_end ov20_0238C2B8
arm_func_start ov20_0238C2E0
ov20_0238C2E0: ; 0x0238C2E0
stmdb sp!, {r4, r5, r6, lr}
mov r6, r1
mov r5, r2
bl sub_0200CE74
bl sub_02012294
mov r4, r0
mov r0, #0x1cc
mov r1, #8
bl MemAlloc
ldr r2, _0238C4D8 ; =0x0238D12C
mov r1, #8
str r0, [r2]
str r6, [r0, #0x1bc]
ldr r0, [r4, #4]
bl MemAlloc
ldr r2, _0238C4D8 ; =0x0238D12C
mov r1, #0
ldr r3, [r2]
mov r6, #3
str r0, [r3, #0x1b0]
mov r3, r1
b _0238C360
_0238C338:
ldr r0, [r4]
add r0, r0, r1, lsl #3
ldrb r0, [r0, #7]
cmp r0, #0
ldr r0, [r2]
ldrne r0, [r0, #0x1b0]
strneb r6, [r0, r1]
ldreq r0, [r0, #0x1b0]
streqb r3, [r0, r1]
add r1, r1, #1
_0238C360:
ldr r0, [r4, #4]
cmp r1, r0
blt _0238C338
cmp r5, #0
mov r3, #0
beq _0238C3A4
ldr r2, _0238C4DC ; =_0238D140
b _0238C394
_0238C380:
ldr r0, [r4]
ldrb r1, [r2, r3]
add r0, r0, r3, lsl #3
add r3, r3, #1
strb r1, [r0, #6]
_0238C394:
ldr r0, [r4, #4]
cmp r3, r0
blt _0238C380
b _0238C3C0
_0238C3A4:
ldr r1, _0238C4DC ; =_0238D140
ldr r0, _0238C4E0 ; =0x0000041A
mov r2, r3
_0238C3B0:
strb r2, [r1, r3]
add r3, r3, #1
cmp r3, r0
blt _0238C3B0
_0238C3C0:
ldr r2, _0238C4D8 ; =0x0238D12C
mov r1, #0
ldr r0, [r2]
mvn r3, #1
strb r3, [r0, #4]
ldr r0, [r2]
sub r6, r1, #1
strb r3, [r0, #5]
ldr r0, [r2]
ldr lr, _0238C4E4 ; =0x0000032F
strb r3, [r0, #6]
ldr r0, [r2]
mov ip, #0x10
strb r3, [r0, #7]
ldr r0, [r2]
mov r5, #0xd
strb r3, [r0, #8]
ldr r3, [r2]
mov r0, #0x14
strb r1, [r3, #0x1c]
ldr r3, [r2]
str r6, [r3, #0x10]
ldr r3, [r2]
str r1, [r3, #0xc]
ldr r3, [r2]
str r1, [r3, #0x14]
ldr r6, [r2]
ldr r3, [r6, #0x14]
str r3, [r6, #0x18]
ldr r3, [r2]
str r1, [r3]
ldr r3, [r2]
strh lr, [r3, #0x28]
ldr r3, [r2]
str ip, [r3, #0x2c]
ldr r3, [r2]
str r5, [r3, #0x24]
ldr r2, [r2]
str r1, [r2, #0x94]
bl Arm9LoadUnkFieldNa0x2029EC8
ldr r1, _0238C4D8 ; =0x0238D12C
ldr r2, [r1]
str r0, [r2, #0x20]
mov r0, #0
ldr r5, [r1]
mov r1, r0
ldr r3, [r5, #0x1b0]
mov r2, r0
str r3, [r5, #0x80]
bl ov20_0238C4E8
ldr r0, _0238C4D8 ; =0x0238D12C
ldr r1, [r4, #4]
ldr r0, [r0]
mov r2, #0xa
add r0, r0, #0xb8
bl sub_020327CC
ldr r1, _0238C4D8 ; =0x0238D12C
mov r2, #0
ldr r0, [r1]
sub r3, r2, #1
str r2, [r0, #0x20]
ldr r5, [r1]
mov r0, #1
ldr r2, [r5, #0x17c]
str r2, [r5, #0x178]
ldr r2, [r1]
str r3, [r2, #0x1b4]
ldr r1, [r1]
str r4, [r1, #0x1b8]
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
_0238C4D8: .word 0x0238D12C
_0238C4DC: .word _0238D140
_0238C4E0: .word 0x0000041A
_0238C4E4: .word 0x0000032F
arm_func_end ov20_0238C2E0
arm_func_start ov20_0238C4E8
ov20_0238C4E8: ; 0x0238C4E8
ldr r3, _0238C508 ; =0x0238D12C
ldr ip, [r3]
str r0, [ip, #0x1c0]
ldr r0, [r3]
str r1, [r0, #0x1c4]
ldr r0, [r3]
str r2, [r0, #0x1c8]
bx lr
.align 2, 0
_0238C508: .word 0x0238D12C
arm_func_end ov20_0238C4E8
arm_func_start ov20_0238C50C
ov20_0238C50C: ; 0x0238C50C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x5c
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r4, [r0]
ldr r1, [r4]
cmp r1, #0xc
addls pc, pc, r1, lsl #2
b _0238C9BC
_0238C52C: ; jump table
b _0238C560 ; case 0
b _0238C650 ; case 1
b _0238C9BC ; case 2
b _0238C798 ; case 3
b _0238C7B0 ; case 4
b _0238C7E4 ; case 5
b _0238C860 ; case 6
b _0238C928 ; case 7
b _0238C9BC ; case 8
b _0238C968 ; case 9
b _0238C970 ; case 10
b _0238C9B4 ; case 11
b _0238C9B4 ; case 12
_0238C560:
ldrsb r1, [r4, #4]
mvn r0, #1
cmp r1, r0
bne _0238C5CC
ldr r1, [r4, #0xc]
ldr r0, _0238C9CC ; =ov20_0238CD20
str r1, [r4, #0x20]
str r0, [sp]
ldr r0, [r4, #0x188]
mov r2, #8
str r0, [sp, #4]
ldr r0, _0238C9D0 ; =0x0238D0E8
ldr r1, _0238C9D4 ; =0x00441E37
ldr r3, _0238C9D8 ; =ov20_0238CC14
str r2, [sp, #8]
add r2, r4, #0x20
bl sub_0202C3A8
strb r0, [r4, #4]
ldrsb r0, [r4, #4]
mov r1, #1
bl sub_0202C794
ldrsb r0, [r4, #4]
ldr r1, _0238C9DC ; =ov20_0238CE3C
bl sub_0202C7BC
ldrsb r0, [r4, #4]
ldr r1, _0238C9E0 ; =ov20_0238CCC0
bl sub_0202C7A8
_0238C5CC:
ldrsb r1, [r4, #7]
mvn r0, #1
cmp r1, r0
bne _0238C5F0
ldr r0, _0238C9E4 ; =0x0238D0B8
ldr r1, _0238C9E8 ; =ov20_0238CE9C
mov r2, r4
bl sub_0202F8DC
strb r0, [r4, #7]
_0238C5F0:
ldrsb r1, [r4, #8]
mvn r0, #1
cmp r1, r0
bne _0238C614
ldr r0, _0238C9EC ; =0x0238D0A8
ldr r1, _0238C9F0 ; =ov20_0238CF20
mov r2, r4
bl sub_0202F8DC
strb r0, [r4, #8]
_0238C614:
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r2, [r0]
ldr r1, [r2, #0xc]
str r1, [r2, #0x10]
ldr r0, [r0]
ldr r1, [r0, #0x1c0]
cmp r1, #0
beq _0238C63C
mov r0, #0
blx r1
_0238C63C:
ldr r0, _0238C9C8 ; =0x0238D12C
mov r1, #1
ldr r0, [r0]
str r1, [r0]
b _0238C9BC
_0238C650:
ldrsb r0, [r4, #4]
bl sub_0202C728
cmp r0, #0
bne _0238C724
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl sub_0202C75C
mov r4, r0
mvn r0, #0
cmp r4, r0
bne _0238C6B4
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
bl ov20_0238CB28
cmp r0, #0
ldreq r0, _0238C9C8 ; =0x0238D12C
moveq r1, #2
ldreq r0, [r0]
streq r1, [r0, #0x1b4]
ldr r0, _0238C9C8 ; =0x0238D12C
mov r1, #9
ldr r0, [r0]
str r1, [r0]
b _0238C9BC
_0238C6B4:
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r5, [r0]
mov r0, r5
bl ov20_0238CAE0
ldr r1, [r5, #0x1bc]
cmp r1, r0
bne _0238C6E8
ldr r0, _0238C9C8 ; =0x0238D12C
str r4, [r5, #0xc]
ldr r0, [r0]
mov r1, #3
str r1, [r0]
b _0238C9BC
_0238C6E8:
ldr r0, [r5, #0x1b8]
ldr r0, [r0]
add r0, r0, r4, lsl #3
ldrb r0, [r0, #7]
cmp r0, #0
bne _0238C718
ldr r0, _0238C9C8 ; =0x0238D12C
str r4, [r5, #0xc]
ldr r0, [r0]
mov r1, #4
str r1, [r0]
b _0238C9BC
_0238C718:
ldrsb r0, [r5, #4]
bl sub_0202C620
b _0238C9BC
_0238C724:
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl sub_0202C748
ldr r1, _0238C9C8 ; =0x0238D12C
ldr r2, [r1]
str r0, [r2, #0xc]
ldr r3, [r1]
ldr r2, [r3, #0xc]
ldr r0, [r3, #0x10]
cmp r0, r2
strne r2, [r3, #0x10]
ldrne r0, [r1]
ldrne r1, [r0, #0x1c4]
cmpne r1, #0
beq _0238C76C
mov r0, #0
blx r1
_0238C76C:
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
ldrb r1, [r0, #0x1c]
cmp r1, #0
beq _0238C9BC
bl ov20_0238CB84
ldr r0, _0238C9C8 ; =0x0238D12C
mov r1, #6
ldr r0, [r0]
str r1, [r0]
b _0238C9BC
_0238C798:
mov r1, #0
str r1, [r4, #0x1b4]
ldr r0, [r0]
mov r1, #0xa
str r1, [r0]
b _0238C9BC
_0238C7B0:
ldr r0, _0238C9F4 ; =0x0238D0D8
mov r5, #3
ldr r3, _0238C9F8 ; =0x0238D0F8
mov r1, #0x13
mov r2, #0
str r5, [sp]
bl CreateNormalMenu
ldr r1, _0238C9C8 ; =0x0238D12C
strb r0, [r4, #5]
ldr r0, [r1]
mov r1, #5
str r1, [r0]
b _0238C9BC
_0238C7E4:
ldrsb r0, [r4, #5]
bl IsNormalMenuActive
cmp r0, #0
bne _0238C9BC
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
ldrsb r0, [r0, #5]
bl GetNormalMenuResult
ldr r1, _0238C9C8 ; =0x0238D12C
ldr r2, [r1]
str r0, [r2, #0x1b4]
ldr r0, [r1]
bl ov20_0238CBEC
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
ldr r1, [r0, #0x1b4]
cmp r1, #1
bne _0238C844
bl ov20_0238CB84
ldr r0, _0238C9C8 ; =0x0238D12C
mov r1, #6
ldr r0, [r0]
str r1, [r0]
b _0238C9BC
_0238C844:
ldrsb r0, [r0, #4]
bl sub_0202C620
ldr r0, _0238C9C8 ; =0x0238D12C
mov r1, #1
ldr r0, [r0]
str r1, [r0]
b _0238C9BC
_0238C860:
ldr r1, [r4, #0x1b8]
ldr r0, [r4, #0xc]
ldr r1, [r1]
add r0, r1, r0, lsl #3
bl sub_020124D8
ldr r1, _0238C9C8 ; =0x0238D12C
mov r4, r0
ldr r0, [r1]
ldr r1, [r0, #0x1b8]
ldr r0, [r0, #0xc]
ldr r1, [r1]
add r0, r1, r0, lsl #3
bl sub_02012518
ldr r1, _0238C9C8 ; =0x0238D12C
mov r5, r0
ldr r0, [r1]
bl ov20_0238CBEC
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
bl ov20_0238CB84
add r0, sp, #0xc
bl InitPreprocessorArgs
ldr r0, _0238C9FC ; =0x0000FFFF
mov r1, #0
cmp r5, r0
add r0, r4, #0xd1
str r1, [sp, #0x30]
addne r1, r5, #0xbc
add r0, r0, #0x2900
mov r2, #0
str r4, [sp, #0x1c]
mov r0, r0, lsl #0x10
str r1, [sp, #0x24]
add r4, sp, #0xc
str r2, [sp, #0x38]
str r4, [sp]
mov r0, r0, lsr #0x10
str r0, [sp, #4]
ldr r0, _0238CA00 ; =0x0238D0C8
ldr r1, _0238CA04 ; =0x00001013
ldr r3, _0238CA08 ; =0x000008E4
str r4, [sp, #8]
bl sub_0202E3CC
ldr r1, _0238C9C8 ; =0x0238D12C
mov r2, #7
ldr r3, [r1]
strb r0, [r3, #6]
ldr r0, [r1]
str r2, [r0]
b _0238C9BC
_0238C928:
ldrsb r0, [r4, #6]
bl sub_0202E6E4
cmp r0, #0
bne _0238C9BC
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
ldrsb r0, [r0, #6]
bl sub_0202E6C8
ldr r0, _0238C9C8 ; =0x0238D12C
mvn r3, #1
ldr r2, [r0]
mov r1, #0
strb r3, [r2, #6]
ldr r0, [r0]
str r1, [r0]
b _0238C9BC
_0238C968:
mov r0, #9
str r0, [r4]
_0238C970:
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
ldr r0, [r0, #0x1c8]
cmp r0, #0
beq _0238C988
blx r0
_0238C988:
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
bl ov20_0238CBEC
ldr r0, _0238C9C8 ; =0x0238D12C
ldr r0, [r0]
bl ov20_0238CB84
ldr r0, _0238C9C8 ; =0x0238D12C
mov r1, #0xb
ldr r0, [r0]
str r1, [r0]
b _0238C9BC
_0238C9B4:
mov r0, #1
b _0238C9C0
_0238C9BC:
mov r0, #0
_0238C9C0:
add sp, sp, #0x5c
ldmia sp!, {r4, r5, pc}
.align 2, 0
_0238C9C8: .word 0x0238D12C
_0238C9CC: .word ov20_0238CD20
_0238C9D0: .word 0x0238D0E8
_0238C9D4: .word 0x00441E37
_0238C9D8: .word ov20_0238CC14
_0238C9DC: .word ov20_0238CE3C
_0238C9E0: .word ov20_0238CCC0
_0238C9E4: .word 0x0238D0B8
_0238C9E8: .word ov20_0238CE9C
_0238C9EC: .word 0x0238D0A8
_0238C9F0: .word ov20_0238CF20
_0238C9F4: .word 0x0238D0D8
_0238C9F8: .word 0x0238D0F8
_0238C9FC: .word 0x0000FFFF
_0238CA00: .word 0x0238D0C8
_0238CA04: .word 0x00001013
_0238CA08: .word 0x000008E4
arm_func_end ov20_0238C50C
arm_func_start ov20_0238CA0C
ov20_0238CA0C: ; 0x0238CA0C
ldr r0, _0238CA1C ; =0x0238D12C
ldr r0, [r0]
ldr r0, [r0, #0x1b4]
bx lr
.align 2, 0
_0238CA1C: .word 0x0238D12C
arm_func_end ov20_0238CA0C
arm_func_start ov20_0238CA20
ov20_0238CA20: ; 0x0238CA20
ldr r0, _0238CA34 ; =0x0238D12C
ldr ip, _0238CA38 ; =sub_0201255C
ldr r0, [r0]
ldr r0, [r0, #0x1b8]
bx ip
.align 2, 0
_0238CA34: .word 0x0238D12C
_0238CA38: .word sub_0201255C
arm_func_end ov20_0238CA20
arm_func_start ov20_0238CA3C
ov20_0238CA3C: ; 0x0238CA3C
stmdb sp!, {r3, lr}
ldr r0, _0238CAD4 ; =0x0238D12C
ldr ip, [r0]
cmp ip, #0
ldmeqia sp!, {r3, pc}
ldr r2, [ip, #0x1b8]
mov r3, #0
ldr r1, _0238CAD8 ; =_0238D140
b _0238CA74
_0238CA60:
ldr r0, [r2]
add r0, r0, r3, lsl #3
ldrb r0, [r0, #6]
strb r0, [r1, r3]
add r3, r3, #1
_0238CA74:
ldr r0, [r2, #4]
cmp r3, r0
blt _0238CA60
mov r2, #0
ldr r1, _0238CAD8 ; =_0238D140
ldr r0, _0238CADC ; =0x0000041A
b _0238CA98
_0238CA90:
strb r2, [r1, r3]
add r3, r3, #1
_0238CA98:
cmp r3, r0
blt _0238CA90
add r0, ip, #0x1b8
bl sub_020125CC
ldr r0, _0238CAD4 ; =0x0238D12C
ldr r0, [r0]
ldr r0, [r0, #0x1b0]
bl MemFree
ldr r0, _0238CAD4 ; =0x0238D12C
ldr r0, [r0]
bl MemFree
ldr r0, _0238CAD4 ; =0x0238D12C
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0238CAD4: .word 0x0238D12C
_0238CAD8: .word _0238D140
_0238CADC: .word 0x0000041A
arm_func_end ov20_0238CA3C
arm_func_start ov20_0238CAE0
ov20_0238CAE0: ; 0x0238CAE0
ldr r1, _0238CB24 ; =0x0238D12C
ldr r2, [r0, #0x1b8]
ldr r1, [r1]
mov r0, #0
mov ip, r0
ldr r3, [r1, #0x1b8]
ldr r2, [r2, #4]
b _0238CB18
_0238CB00:
ldr r1, [r3]
add r1, r1, ip, lsl #3
ldrb r1, [r1, #6]
add ip, ip, #1
cmp r1, #0
addne r0, r0, #1
_0238CB18:
cmp ip, r2
blt _0238CB00
bx lr
.align 2, 0
_0238CB24: .word 0x0238D12C
arm_func_end ov20_0238CAE0
arm_func_start ov20_0238CB28
ov20_0238CB28: ; 0x0238CB28
stmdb sp!, {r3, r4, r5, lr}
ldr r1, _0238CB80 ; =0x0238D12C
mov r5, #0
ldr r1, [r1]
mov r4, r5
ldr lr, [r1, #0x1b8]
mov r3, r5
mov r2, #1
b _0238CB68
_0238CB4C:
ldr r1, [lr]
add ip, r1, r4, lsl #3
ldrb r1, [ip, #6]
add r4, r4, #1
cmp r1, #0
movne r5, r2
strneb r3, [ip, #6]
_0238CB68:
ldr r1, [r0, #0x1b8]
ldr r1, [r1, #4]
cmp r4, r1
blt _0238CB4C
mov r0, r5
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0238CB80: .word 0x0238D12C
arm_func_end ov20_0238CB28
arm_func_start ov20_0238CB84
ov20_0238CB84: ; 0x0238CB84
stmdb sp!, {r4, lr}
mov r4, r0
ldrsb r0, [r4, #4]
mvn r1, #1
cmp r0, r1
beq _0238CBB0
bl sub_0202C70C
mvn r0, #1
strb r0, [r4, #4]
mov r0, #0
strb r0, [r4, #0x1c]
_0238CBB0:
ldrsb r0, [r4, #7]
mvn r1, #1
cmp r0, r1
beq _0238CBCC
bl sub_0202F8FC
mvn r0, #1
strb r0, [r4, #7]
_0238CBCC:
ldrsb r0, [r4, #8]
mvn r1, #1
cmp r0, r1
ldmeqia sp!, {r4, pc}
bl sub_0202F8FC
mvn r0, #1
strb r0, [r4, #8]
ldmia sp!, {r4, pc}
arm_func_end ov20_0238CB84
arm_func_start ov20_0238CBEC
ov20_0238CBEC: ; 0x0238CBEC
stmdb sp!, {r4, lr}
mov r4, r0
ldrsb r0, [r4, #5]
mvn r1, #1
cmp r0, r1
ldmeqia sp!, {r4, pc}
bl FreeNormalMenu
mvn r0, #1
strb r0, [r4, #5]
ldmia sp!, {r4, pc}
arm_func_end ov20_0238CBEC
arm_func_start ov20_0238CC14
ov20_0238CC14: ; 0x0238CC14
stmdb sp!, {r4, r5, r6, lr}
sub sp, sp, #8
ldr r3, _0238CCBC ; =0x0238D12C
mov r5, r0
ldr r0, [r3]
mov r4, r2
ldr r0, [r0, #0x1b8]
ldr r2, [r0]
ldr r0, [r2, r1, lsl #3]
add r6, r2, r1, lsl #3
cmp r0, #0
bne _0238CC60
ldrsh r0, [r6, #4]
bl GetItemAtIdx
mov r1, r0
mov r0, r5
mov r2, #0
bl sub_0200D670
b _0238CC9C
_0238CC60:
cmp r0, #1
bne _0238CC94
ldrsh r0, [r6, #4]
bl sub_02010044
mov r1, r0
add r0, sp, #0
mov r2, #0
bl InitStandardItem
add r1, sp, #0
mov r0, r5
mov r2, #0
bl sub_0200D670
b _0238CC9C
arm_func_end ov20_0238CC14
_0238CC94:
mov r0, #0
b _0238CCB4
_0238CC9C:
ldrb r0, [r6, #6]
cmp r0, #0
movne r0, #1
arm_func_start ov20_0238CCA8
ov20_0238CCA8: ; 0x0238CCA8
moveq r0, #0
str r0, [r4]
mov r0, r5
_0238CCB4:
add sp, sp, #8
ldmia sp!, {r4, r5, r6, pc}
.align 2, 0
arm_func_end ov20_0238CCA8
_0238CCBC: .word 0x0238D12C
arm_func_start ov20_0238CCC0
ov20_0238CCC0: ; 0x0238CCC0
stmdb sp!, {r4, lr}
ldr r1, _0238CD1C ; =0x0238D12C
mov r4, r0
ldr r0, [r1]
bl ov20_0238CAE0
cmp r0, #0
arm_func_end ov20_0238CCC0
arm_func_start ov20_0238CCD8
ov20_0238CCD8: ; 0x0238CCD8
movle r0, #0
ldmleia sp!, {r4, pc}
ldr r0, _0238CD1C ; =0x0238D12C
ldr r0, [r0]
bl ov20_0238CB28
ldr r0, _0238CD1C ; =0x0238D12C
arm_func_end ov20_0238CCD8
arm_func_start ov20_0238CCF0
ov20_0238CCF0: ; 0x0238CCF0
ldr r0, [r0]
ldrsb r0, [r0, #7]
bl sub_0202F9B8
ldr r0, _0238CD1C ; =0x0238D12C
ldr r0, [r0]
ldrsb r0, [r0, #8]
bl sub_0202F9B8
mov r0, r4
bl sub_0202C7E4
mov r0, #1
ldmia sp!, {r4, pc}
.align 2, 0
_0238CD1C: .word 0x0238D12C
arm_func_end ov20_0238CCF0
arm_func_start ov20_0238CD20
ov20_0238CD20: ; 0x0238CD20
stmdb sp!, {r3, r4, r5, lr}
ldr r1, _0238CE38 ; =0x0238D12C
mov r4, #0
ldr r2, [r1]
tst r0, #0x400
strb r4, [r2, #0x1c]
beq _0238CDDC
ldr r0, [r1]
ldrsb r0, [r0, #4]
bl sub_0202D0EC
ldr r1, _0238CE38 ; =0x0238D12C
ldr r2, [r1]
ldr r1, [r2, #0x1b8]
ldr r1, [r1]
add r5, r1, r0, lsl #3
ldrb r0, [r5, #7]
cmp r0, #0
bne _0238CDFC
ldrb r0, [r5, #6]
cmp r0, #0
bne _0238CD94
mov r0, r2
bl ov20_0238CAE0
ldr r1, _0238CE38 ; =0x0238D12C
ldr r1, [r1]
ldr r1, [r1, #0x1bc]
cmp r0, r1
movlt r4, #1
b _0238CD98
_0238CD94:
mov r4, #1
_0238CD98:
cmp r4, #0
beq _0238CDD0
ldrb r0, [r5, #6]
cmp r0, #0
moveq r1, #1
movne r1, #0
ldr r0, _0238CE38 ; =0x0238D12C
strb r1, [r5, #6]
ldr r0, [r0]
ldrsb r0, [r0, #7]
bl sub_0202F9B8
mov r0, #6
bl sub_02017CCC
b _0238CDFC
_0238CDD0:
mov r0, #2
bl sub_02017CCC
b _0238CDFC
_0238CDDC:
tst r0, #0x100
beq _0238CDFC
mov r0, r4
bl sub_02017CCC
ldr r0, _0238CE38 ; =0x0238D12C
mov r1, #1
ldr r0, [r0]
strb r1, [r0, #0x1c]
_0238CDFC:
ldr r0, _0238CE38 ; =0x0238D12C
ldr r5, [r0]
mov r0, r5
bl ov20_0238CAE0
ldr r1, [r5, #0x1bc]
cmp r1, r0
ldrsb r0, [r5, #4]
bne _0238CE28
mov r1, #1
bl sub_0202D16C
b _0238CE30
_0238CE28:
mov r1, #0
bl sub_0202D16C
_0238CE30:
mov r0, r4
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0238CE38: .word 0x0238D12C
arm_func_end ov20_0238CD20
arm_func_start ov20_0238CE3C
ov20_0238CE3C: ; 0x0238CE3C
stmdb sp!, {r3, lr}
ldr lr, _0238CE90 ; =0x0238D12C
mov ip, r0
ldr r0, [lr]
ldr r0, [r0, #0x1b8]
ldr r0, [r0]
ldr r0, [r0, r2, lsl #3]
cmp r0, #0
ldreq r0, _0238CE94 ; =0x0000032F
ldrne r0, _0238CE98 ; =0x00004623
cmp r3, #0
strh r0, [r1, #0x1c]
ble _0238CE80
ldr r0, [r1, #0xbc]
cmp r0, r3
subge r0, r3, #1
strge r0, [r1, #0xbc]
_0238CE80:
mov r0, r1
mov r1, ip
bl sub_0202A03C
ldmia sp!, {r3, pc}
.align 2, 0
_0238CE90: .word 0x0238D12C
_0238CE94: .word 0x0000032F
_0238CE98: .word 0x00004623
arm_func_end ov20_0238CE3C
arm_func_start ov20_0238CE9C
ov20_0238CE9C: ; 0x0238CE9C
stmdb sp!, {r4, r5, lr}
sub sp, sp, #0x154
mov r5, r0
mov r0, r1
bl ov20_0238CAE0
mov r4, r0
mov r0, r5
bl sub_02027B1C
add r0, sp, #4
bl InitPreprocessorArgs
ldr r0, _0238CF18 ; =0x0238D12C
str r4, [sp, #0x2c]
ldr r1, [r0]
add r2, sp, #4
ldr r3, [r1, #0x1bc]
add r0, sp, #0x54
str r3, [sp, #0x30]
str r2, [sp]
ldr r2, _0238CF1C ; =0x00004627
mov r1, #0x100
mov r3, #0x400
bl PreprocessStringFromMessageId
mov r1, #2
mov r0, r5
mov r2, r1
add r3, sp, #0x54
bl sub_02026214
mov r0, r5
bl sub_02027AF0
add sp, sp, #0x154
ldmia sp!, {r4, r5, pc}
.align 2, 0
_0238CF18: .word 0x0238D12C
_0238CF1C: .word 0x00004627
arm_func_end ov20_0238CE9C
arm_func_start ov20_0238CF20
ov20_0238CF20: ; 0x0238CF20
stmdb sp!, {r3, r4, lr}
sub sp, sp, #0x154
mov r4, r0
bl sub_02027B1C
add r0, sp, #4
bl InitPreprocessorArgs
add ip, sp, #4
ldr r2, _0238CF78 ; =0x00004628
add r0, sp, #0x54
mov r1, #0x100
mov r3, #0x400
str ip, [sp]
bl PreprocessStringFromMessageId
mov r1, #2
mov r0, r4
mov r2, r1
add r3, sp, #0x54
bl sub_02026214
mov r0, r4
bl sub_02027AF0
add sp, sp, #0x154
ldmia sp!, {r3, r4, pc}
.align 2, 0
_0238CF78: .word 0x00004628
arm_func_end ov20_0238CF20
; 0x0238CF7C
.byte 0x14, 0xD0, 0x38, 0x02, 0x00, 0x00, 0x00, 0x00, 0x15, 0x46, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x16, 0x46, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0x15, 0x46, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x16, 0x46, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x46, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
.byte 0x08, 0x46, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xF7, 0x45, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xF9, 0x45, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0xFA, 0x45, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.byte 0xEF, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x45, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0xF1, 0x45, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xF2, 0x45, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x42, 0x41, 0x43, 0x4B, 0x2F, 0x73, 0x31, 0x34
.byte 0x70, 0x30, 0x32, 0x61, 0x2E, 0x62, 0x67, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x01, 0x0C, 0x02, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x05, 0x1C, 0x09, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x10, 0x1C, 0x07, 0x01, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x18, 0x13, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x12, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x02, 0x08, 0x05, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x46, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x25, 0x46, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x26, 0x46, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x14, 0x12, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x11, 0x08, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x18, 0x13, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x02, 0x08, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x12, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x46, 0x00, 0x00
.byte 0x01, 0x00, 0x00, 0x00, 0x26, 0x46, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00
.bss
_0238D140:
.space 0x420