pmd-sky/asm/overlay_16.s
2023-08-15 23:13:37 -04:00

2618 lines
63 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_16.inc"
.text
arm_func_start ov16_0238A140
ov16_0238A140: ; 0x0238A140
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x128
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r2, [r1]
str r0, [r2, #0x70]
ldr r0, [r1]
ldr r2, [r0, #0x70]
cmp r2, #0x2c
addls pc, pc, r2, lsl #2
b _0238B0C4
_0238A168: ; jump table
b _0238A21C ; case 0
b _0238A274 ; case 1
b _0238A2D8 ; case 2
b _0238A344 ; case 3
b _0238A370 ; case 4
b _0238B0C4 ; case 5
b _0238A318 ; case 6
b _0238A928 ; case 7
b _0238A95C ; case 8
b _0238A9C4 ; case 9
b _0238AEA0 ; case 10
b _0238AE3C ; case 11
b _0238AE6C ; case 12
b _0238A640 ; case 13
b _0238A614 ; case 14
b _0238AE74 ; case 15
b _0238A574 ; case 16
b _0238A5D8 ; case 17
b _0238A480 ; case 18
b _0238A50C ; case 19
b _0238A440 ; case 20
b _0238B0C4 ; case 21
b _0238A730 ; case 22
b _0238A850 ; case 23
b _0238B0C4 ; case 24
b _0238B0C4 ; case 25
b _0238A668 ; case 26
b _0238A6F4 ; case 27
b _0238A9F4 ; case 28
b _0238AA58 ; case 29
b _0238AA94 ; case 30
b _0238AAD8 ; case 31
b _0238AFF8 ; case 32
b _0238AED8 ; case 33
b _0238AF98 ; case 34
b _0238AFD0 ; case 35
b _0238B0C4 ; case 36
b _0238AFEC ; case 37
b _0238B0C4 ; case 38
b _0238B038 ; case 39
b _0238B0C4 ; case 40
b _0238B0C4 ; case 41
b _0238B0C4 ; case 42
b _0238B0C4 ; case 43
b _0238A424 ; case 44
_0238A21C:
bl ov16_0238CBD0
cmp r0, #0
bne _0238A240
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0xf
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238A240:
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #6
ldr r0, [r0]
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, _0238B0D0 ; =0x00000431
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A274:
bl ov16_0238CBD0
cmp r0, #0
bne _0238A298
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0xf
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238A298:
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r3, #6
ldr r1, [r0]
ldr r2, _0238B0D4 ; =0x00000432
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A2D8:
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r3, #1
ldr r1, [r0]
add r2, r3, #0x440
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A318:
ldr r0, _0238B0D8 ; =0x0238CDE4
mov r4, #3
ldr r1, _0238B0DC ; =0x00300011
ldr r3, _0238B0E0 ; =0x0238CD40
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238B0C4
_0238A344:
mov r1, #1
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, _0238B0E4 ; =0x00000442
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A370:
mov r1, #5
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r0, [r0]
ldr r0, [r0, #0x88]
cmp r0, #0
ble _0238A394
bl sub_020572EC
_0238A394:
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, [r0]
ldr r1, [r2, #0x88]
cmp r1, #1
ble _0238A3DC
mov r1, #4
str r1, [r2, #0x74]
ldr r1, [r0]
ldr r2, _0238B0E8 ; =0x00000449
ldrsb r0, [r1, #0xc1]
add r3, r1, #0xe8
mov r1, #0x18
bl ShowMessageInDBox
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0
ldr r0, [r0]
str r1, [r0, #0x88]
b _0238B0C4
_0238A3DC:
bl ov16_0238CBD0
cmp r0, #0
mov r1, #0x18
bne _0238A408
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r2, #0x440
ldr r3, [r0]
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A408:
ldr r0, _0238B0CC ; =ov16_0238CE40
add r2, r1, #0x430
ldr r3, [r0]
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A424:
mov r2, #5
str r2, [r0, #0xd8]
ldr r0, [r1]
mov r1, #1
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238A440:
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r3, #0x27
ldr r1, [r0]
rsb r2, r3, #0x460
str r3, [r1, #0x74]
arm_func_end ov16_0238A140
arm_func_start ov16_0238A468
ov16_0238A468: ; 0x0238A468
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A480:
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r2, #0xa
ldr r0, [r0]
ldr r1, [r0, #0x3c]
add r0, r0, #0x138
add r1, r1, #0x3a
bl StrncpySimpleNoPadSafe
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, [r0]
add r1, r2, #0x138
str r1, [r2, #0x120]
ldr r2, [r0]
ldr r1, [r2, #0x3c]
ldrsh r1, [r1, #4]
str r1, [r2, #0xe8]
ldr r2, [r0]
ldr r1, [r2, #0x40]
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
str r1, [r2, #0xec]
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #8
mov r4, #0x13
ldr r3, [r0]
add r2, r1, #0x430
str r4, [r3, #0x74]
ldr r3, [r0]
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A50C:
ldr r2, [r0, #0x40]
mov r1, #0
add r0, r0, r2, lsl #1
ldrsh r0, [r0, #0xc]
bl IsMonsterOnTeam
cmp r0, #0
ldrne r0, _0238B0CC ; =ov16_0238CE40
movne r1, #0x1a
ldreq r0, _0238B0CC ; =ov16_0238CE40
moveq r1, #0x1c
ldr r0, [r0]
mov r4, #2
str r1, [r0, #0x74]
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r3, _0238B0EC ; =0x0238CD08
ldr r1, [r0]
ldr r0, _0238B0D8 ; =0x0238CDE4
str r4, [r1, #0x78]
ldr r1, _0238B0F0 ; =0x00300013
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238B0C4
_0238A574:
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, [r0]
ldrsh r1, [r2, #0x44]
orr r1, r1, #0x20000
str r1, [r2, #0xe8]
ldr r2, [r0]
ldr r1, [r2, #0x40]
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
str r1, [r2, #0xec]
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r3, #0x11
ldr r1, [r0]
ldr r2, _0238B0F4 ; =0x00000434
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A5D8:
mov r2, #0x1c
str r2, [r0, #0x74]
ldr r0, [r1]
mov r4, #2
str r4, [r0, #0x78]
ldr r0, _0238B0D8 ; =0x0238CDE4
ldr r1, _0238B0F0 ; =0x00300013
ldr r3, _0238B0EC ; =0x0238CD08
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238B0C4
_0238A614:
ldr r0, _0238B0F8 ; =0x0238CDD4
mov r4, #3
ldr r3, _0238B0FC ; =0x0238CD20
mov r1, #0x13
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238B0C4
_0238A640:
ldr r1, [r0, #0x3c]
add r0, sp, #0x18
bl sub_0205B008
add r0, sp, #0x18
mov r1, #3
bl sub_0203F150
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc4]
b _0238B0C4
_0238A668:
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r2, #0xa
ldr r0, [r0]
ldr r1, [r0, #0x3c]
add r0, r0, #0x138
add r1, r1, #0x3a
bl StrncpySimpleNoPadSafe
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, [r0]
add r1, r2, #0x138
str r1, [r2, #0x120]
ldr r2, [r0]
ldr r1, [r2, #0x3c]
ldrsh r1, [r1, #4]
str r1, [r2, #0xe8]
ldr r2, [r0]
ldr r1, [r2, #0x40]
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
str r1, [r2, #0xec]
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r4, #0x1b
ldr r2, [r0]
mov r1, #8
str r4, [r2, #0x74]
ldr r3, [r0]
add r2, r4, #0x420
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A6F4:
mov r2, #0x1c
str r2, [r0, #0x74]
ldr r0, [r1]
mov r4, #2
str r4, [r0, #0x78]
ldr r0, _0238B0D8 ; =0x0238CDE4
ldr r1, _0238B0F0 ; =0x00300013
ldr r3, _0238B0EC ; =0x0238CD08
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238B0C4
_0238A730:
mov r2, #0
str r2, [r0, #0x40]
ldr r3, [r1]
ldr r0, _0238B100 ; =0x00000125
ldr r1, [r3, #0x3c]
ldrsh r1, [r1, #4]
cmp r1, r0
addne r0, r0, #0x258
cmpne r1, r0
moveq r0, #0
beq _0238A7DC
mov r1, r2
_0238A760:
add r0, r3, r1, lsl #1
ldrsh r0, [r0, #0xc]
add r1, r1, #1
cmp r0, #0
addne r2, r2, #1
cmp r1, #8
blt _0238A760
cmp r2, #1
bne _0238A7D8
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r3, #0
_0238A78C:
ldr r2, [r0]
add r1, r2, r3, lsl #1
ldrsh r1, [r1, #0xc]
cmp r1, #0
beq _0238A7C4
strh r1, [r2, #0xc]
ldr r2, [r0]
add r1, r2, r3, lsl #1
ldrsh r1, [r1, #0x1c]
strh r1, [r2, #0x1c]
ldr r2, [r0]
add r1, r2, r3, lsl #1
ldrsh r1, [r1, #0x2c]
strh r1, [r2, #0x2c]
_0238A7C4:
add r3, r3, #1
cmp r3, #8
blt _0238A78C
mov r0, #1
b _0238A7DC
_0238A7D8:
mov r0, #2
_0238A7DC:
cmp r0, #0
beq _0238A7F0
cmp r0, #1
beq _0238A820
b _0238A838
_0238A7F0:
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r1, [r0]
ldrsh r0, [r1, #0xc]
cmp r0, #0
moveq r0, #1
streq r0, [r1, #0x40]
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0x10
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238A820:
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0x17
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238A838:
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0x14
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238A850:
ldrsh r2, [r0, #0x44]
orr r2, r2, #0x20000
str r2, [r0, #0xe8]
ldr r2, [r1]
ldr r0, [r2, #0x40]
add r0, r2, r0, lsl #1
ldrsh r0, [r0, #0xc]
str r0, [r2, #0xec]
ldr r2, [r1]
ldr r0, [r2, #0x40]
add r0, r2, r0, lsl #1
ldrsh r0, [r0, #0x1c]
str r0, [r2, #0xf8]
ldr r2, [r1]
ldr r0, [r2, #0x40]
add r0, r2, r0, lsl #1
ldrsh r0, [r0, #0x2c]
str r0, [r2, #0xfc]
ldr r1, [r1]
ldr r0, [r1, #0xf8]
cmp r0, #0
ldreq r0, [r1, #0xfc]
streq r0, [r1, #0xf8]
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0
ldr r3, [r0]
ldr r2, [r3, #0x40]
add r0, r3, r2, lsl #1
ldrsh r0, [r0, #0x1c]
cmp r0, #0
add r0, r3, r2, lsl #1
ldrsh r0, [r0, #0x2c]
addne r1, r1, #1
cmp r0, #0
addne r1, r1, #1
cmp r1, #0
beq _0238A8F8
cmp r1, #1
beq _0238A908
cmp r1, #2
beq _0238A918
b _0238B0C4
_0238A8F8:
mov r0, #0x12
str r0, [r3, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238A908:
mov r0, #7
str r0, [r3, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238A918:
mov r0, #9
str r0, [r3, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238A928:
bl ov16_0238CAE8
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r3, #8
ldr r1, [r0]
ldr r2, _0238B104 ; =0x0000043E
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A95C:
ldr r2, [r0, #0x40]
mov r1, #0
add r0, r0, r2, lsl #1
ldrsh r0, [r0, #0xc]
bl IsMonsterOnTeam
cmp r0, #0
ldrne r0, _0238B0CC ; =ov16_0238CE40
movne r1, #0x1a
ldreq r0, _0238B0CC ; =ov16_0238CE40
moveq r1, #0x1c
ldr r0, [r0]
mov r4, #2
str r1, [r0, #0x74]
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r3, _0238B0EC ; =0x0238CD08
ldr r1, [r0]
ldr r0, _0238B0D8 ; =0x0238CDE4
str r4, [r1, #0x78]
ldr r1, _0238B0F0 ; =0x00300013
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238B0C4
_0238A9C4:
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r3, #8
ldr r1, [r0]
ldr r2, _0238B108 ; =0x0000043A
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238A9F4:
ldrsb r0, [r0, #0xc1]
bl sub_0202F2C4
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r3, #0x14
ldr r1, [r0]
mov r2, #3
str r3, [r1, #0xe4]
ldr r1, [r0]
mov r3, #0
str r2, [r1, #0xd8]
ldr r4, [r0]
mov r1, #0x1d
ldr r2, [r4, #0x3c]
ldrsh r2, [r2, #4]
strh r2, [r4, #0xdc]
ldr r4, [r0]
ldr r2, [r4, #0x40]
add r2, r4, r2, lsl #1
ldrsh r2, [r2, #0xc]
strh r2, [r4, #0xde]
ldr r2, [r0]
str r3, [r2, #0xe0]
ldr r0, [r0]
str r1, [r0, #0x74]
b _0238B0C4
_0238AA58:
ldrsh r3, [r0, #0x44]
mov r2, #0x1e
orr r3, r3, #0x20000
str r3, [r0, #0xe8]
ldr r0, [r1]
str r2, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, _0238B10C ; =0x0000043C
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238AA94:
mov r1, #0x1f
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r2, #3
ldr r1, [r0]
ldr r3, _0238B110 ; =0x0000140F
str r2, [r1, #0xe0]
ldr r1, [r0]
rsb r2, r2, #0x440
str r3, [r1, #0x10c]
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238AAD8:
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, [r0]
ldr r1, [r2, #0x3c]
ldrsh r1, [r1, #4]
str r1, [r2, #0xe8]
ldr r0, [r0]
ldr r0, [r0, #0x3c]
bl IsMonsterNotNicknamed
ldr r1, _0238B0CC ; =ov16_0238CE40
mov r2, #1
ldr r3, [r1]
strb r0, [r3, #0x46]
ldr r0, [r1]
strb r2, [r0]
bl IncrementNbEvolutions
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r1, [r0]
ldr r0, [r1, #0x40]
add r0, r1, r0, lsl #1
ldrsh r0, [r0, #0xc]
bl SetPokemonJoined
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsh r0, [r0, #0x44]
bl sub_02056410
cmp r0, #0
beq _0238AB84
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsh r0, [r0, #0x44]
bl sub_020564B0
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0x8c]
bl SetTeamSetupHeroOnly
cmp r0, #0
ldr r0, _0238B0CC ; =ov16_0238CE40
movne r1, #2
ldr r0, [r0]
moveq r1, #1
str r1, [r0, #0x88]
b _0238AB9C
_0238AB84:
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r2, #0
ldr r1, [r0]
strb r2, [r1, #0x8c]
ldr r0, [r0]
str r2, [r0, #0x88]
_0238AB9C:
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, [r0]
ldr r1, [r2, #0x40]
add r0, r2, #0x44
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
bl sub_0205A288
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsh r0, [r0, #0x44]
bl ov16_0238CC64
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrb r0, [r0, #0x8c]
cmp r0, #0
beq _0238ABF4
bl sub_02056880
bl GetActiveTeamMember
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
ldrsh r1, [r1, #0x44]
strh r1, [r0, #8]
_0238ABF4:
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r0, _0238B114 ; =0x020A18C4
ldr r3, [r1]
ldrsh r2, [r0]
ldr r4, [r3, #0x3c]
ldr r0, _0238B118 ; =0x000003E7
ldrsh r3, [r4, #0xa]
add r2, r3, r2
strh r2, [r4, #0xa]
ldr r1, [r1]
ldr r3, _0238B11C ; =0x020A18D0
ldr r2, [r1, #0x3c]
ldrsh r1, [r2, #0xa]
cmp r1, r0
strgth r0, [r2, #0xa]
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r0, _0238B120 ; =0x020A18E4
ldr r1, [r1]
ldrsh r5, [r0]
ldr r1, [r1, #0x3c]
ldrsh r2, [r0, #2]
ldrb ip, [r1, #0xc]
ldrb r4, [r1, #0xd]
ldrb lr, [r1, #0xf]
add r0, ip, r5
add r2, r4, r2
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
ldrsh ip, [r3, #2]
cmp r0, #0xff
ldrb r5, [r1, #0xe]
ldrsh r4, [r3]
movgt r0, #0xff
strb r0, [r1, #0xc]
add r3, r5, r4
mov r2, r2, lsl #0x10
mov r4, r2, asr #0x10
ldr r2, _0238B0CC ; =ov16_0238CE40
cmp r4, #0xff
ldr r1, [r2]
mov r3, r3, lsl #0x10
add ip, lr, ip
mov ip, ip, lsl #0x10
ldr r1, [r1, #0x3c]
movgt r4, #0xff
strb r4, [r1, #0xd]
ldr r1, [r2]
mov r3, r3, asr #0x10
cmp r3, #0xff
ldr r1, [r1, #0x3c]
movgt r3, #0xff
strb r3, [r1, #0xe]
ldr r1, [r2]
mov r5, ip, asr #0x10
cmp r5, #0xff
ldr r1, [r1, #0x3c]
movgt r5, #0xff
strb r5, [r1, #0xf]
mov r0, #0
ldr r1, [r2]
strh r0, [sp, #0xa]
ldr r0, [r1, #0x40]
add r0, r1, r0, lsl #1
ldrsh r0, [r0, #0x1c]
strh r0, [sp, #0xc]
bl GetFirstUnequippedItemOfType
mov r4, r0
mvn r1, #0
cmp r4, r1
beq _0238AD2C
bl GetItemAtIdx
ldrb r0, [r0, #1]
cmp r0, #0
beq _0238AD20
bl sub_020582E0
_0238AD20:
mov r0, r4
bl RemoveItemNoHole
b _0238AD40
_0238AD2C:
ldrsh r0, [sp, #0xc]
cmp r0, #0
beq _0238AD40
add r0, sp, #8
bl sub_02010260
_0238AD40:
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r1, [r0]
ldr r0, [r1, #0x40]
add r0, r1, r0, lsl #1
ldrsh r0, [r0, #0x2c]
strh r0, [sp, #0xc]
bl GetFirstUnequippedItemOfType
mov r4, r0
mvn r1, #0
cmp r4, r1
beq _0238AD8C
bl GetItemAtIdx
ldrb r0, [r0, #1]
cmp r0, #0
beq _0238AD80
bl sub_020582E0
_0238AD80:
mov r0, r4
bl RemoveItemNoHole
b _0238ADA0
_0238AD8C:
ldrsh r0, [sp, #0xc]
cmp r0, #0
beq _0238ADA0
add r0, sp, #8
bl sub_02010260
_0238ADA0:
ldr r0, _0238B124 ; =0x00003F01
bl sub_02017CB4
mov r0, #8
bl sub_02017C50
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r1, [r0]
ldrb r0, [r1, #0x46]
cmp r0, #0
moveq r0, #4
streq r0, [r1, #0x74]
beq _0238AE1C
ldr r1, [r1, #0x3c]
add r0, sp, #0xe
ldrsh r1, [r1, #4]
bl GetNameRaw
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r0, [r0]
ldr r0, [r0, #0x3c]
ldrsh r0, [r0, #4]
bl GetNameString
ldr r2, _0238B0CC ; =ov16_0238CE40
mov r1, r0
ldr r0, [r2]
arm_func_end ov16_0238A468
arm_func_start ov16_0238ADFC
ov16_0238ADFC: ; 0x0238ADFC
mov r2, #0xa
ldr r0, [r0, #0x3c]
add r0, r0, #0x3a
bl sub_02025314
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0x21
ldr r0, [r0]
str r1, [r0, #0x74]
_0238AE1C:
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, _0238B128 ; =0x0000043F
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238AE3C:
ldrsb r0, [r0, #0xc1]
bl FreeDBox
ldr r0, _0238B0CC ; =ov16_0238CE40
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #0xc1]
bl GetMainCharacter1MemberIdx
bl sub_0203C7E4
mov r0, #5
mov r1, #0
bl sub_02039C3C
b _0238B0C4
_0238AE6C:
bl sub_0203A638
b _0238B0C4
_0238AE74:
mov r1, #5
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, _0238B12C ; =0x0000042D
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238AEA0:
mov r2, #0xb
str r2, [r0, #0x74]
ldr r0, [r1]
mov r1, #0x29
str r1, [r0, #0x70]
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, _0238B130 ; =0x00000433
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238B0C4
_0238AED8:
bl ov11_02310BDC
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0x20
ldr r0, [r0]
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r2, _0238B134 ; =0x00000447
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
ldr r1, _0238B0CC ; =ov16_0238CE40
mvn r0, #1
ldr r1, [r1]
ldrsb r1, [r1, #0xc2]
cmp r1, r0
bne _0238B0C4
mov r0, #0
mov r1, #3
mov r2, #1
bl CreatePortraitBox
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r2, [r1]
strb r0, [r2, #0xc2]
ldr r2, [r1]
ldr r1, [r2, #0x40]
add r0, r2, #0xc8
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
bl InitPortraitBoxWithMonsterId
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #4
ldr r0, [r0]
add r0, r0, #0xc8
bl SetPortraitUnknownAttr
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0
ldr r0, [r0]
add r0, r0, #0xc8
bl SetPortraitExpressionId
ldr r0, _0238B0CC ; =ov16_0238CE40
ldr r1, [r0]
ldrsb r0, [r1, #0xc2]
add r1, r1, #0xc8
bl ShowPortraitBox
b _0238B0C4
_0238AF98:
ldrsb r0, [r0, #0xc1]
bl FreeDBox
ldr r1, _0238B0CC ; =ov16_0238CE40
mvn r3, #1
ldr r2, [r1]
mov r0, #2
strb r3, [r2, #0xc1]
ldr r3, [r1]
mov r2, #0
ldr r1, [r3, #0x3c]
add r3, r3, #0xb1
add r1, r1, #0x3a
bl ShowKeyboard
b _0238B0C4
_0238AFD0:
ldr r1, [r0, #0x3c]
add r3, r0, #0xb1
add r1, r1, #0x3a
mov r0, #2
mov r2, #0
bl ShowKeyboard
b _0238B0C4
_0238AFEC:
add r0, r0, #0x8d
bl sub_0203909C
b _0238B0C4
_0238AFF8:
mov r2, #0x22
str r2, [r0, #0x74]
ldr r2, [r1]
mov ip, #4
ldr r0, _0238B0D8 ; =0x0238CDE4
ldr r1, _0238B0DC ; =0x00300011
ldr r3, _0238B0EC ; =0x0238CD08
str ip, [r2, #0x78]
mov ip, #2
mov r2, #0
str ip, [sp]
bl CreateNormalMenu
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238B0C4
_0238B038:
mov ip, #0
mov r3, ip
_0238B040:
ldr r2, [r1]
add r0, r2, r3, lsl #1
ldrsh r0, [r0, #0xc]
cmp r0, #0
addne r0, r2, ip, lsl #2
strne r3, [r0, #0x50]
add r3, r3, #1
addne ip, ip, #1
cmp r3, #8
blt _0238B040
cmp ip, #2
bge _0238B088
ldr r0, _0238B0CC ; =ov16_0238CE40
mov r1, #0x17
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238B0C4
_0238B088:
ldr r1, _0238B138 ; =0x00000446
mov r0, #0xf
strh r1, [sp, #0x98]
str r0, [sp, #0x9c]
str ip, [sp]
mov ip, #4
ldr r0, _0238B13C ; =0x0238CDC4
ldr r1, _0238B140 ; =0x00009813
ldr r3, _0238B144 ; =ov16_0238CB30
add r2, sp, #0x90
str ip, [sp, #4]
bl CreateAdvancedMenu
ldr r1, _0238B0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
_0238B0C4:
add sp, sp, #0x128
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0238B0CC: .word ov16_0238CE40
_0238B0D0: .word 0x00000431
_0238B0D4: .word 0x00000432
_0238B0D8: .word 0x0238CDE4
_0238B0DC: .word 0x00300011
_0238B0E0: .word 0x0238CD40
_0238B0E4: .word 0x00000442
_0238B0E8: .word 0x00000449
_0238B0EC: .word 0x0238CD08
_0238B0F0: .word 0x00300013
_0238B0F4: .word 0x00000434
_0238B0F8: .word 0x0238CDD4
_0238B0FC: .word 0x0238CD20
_0238B100: .word 0x00000125
_0238B104: .word 0x0000043E
_0238B108: .word 0x0000043A
_0238B10C: .word 0x0000043C
_0238B110: .word 0x0000140F
_0238B114: .word 0x020A18C4
_0238B118: .word 0x000003E7
_0238B11C: .word 0x020A18D0
_0238B120: .word 0x020A18E4
_0238B124: .word 0x00003F01
_0238B128: .word 0x0000043F
_0238B12C: .word 0x0000042D
_0238B130: .word 0x00000433
_0238B134: .word 0x00000447
_0238B138: .word 0x00000446
_0238B13C: .word 0x0238CDC4
_0238B140: .word 0x00009813
_0238B144: .word ov16_0238CB30
arm_func_end ov16_0238ADFC
arm_func_start ov16_0238B148
ov16_0238B148: ; 0x0238B148
stmdb sp!, {r3, r4, r5, lr}
sub sp, sp, #0x128
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r0, [r1]
ldr r2, [r0, #0x70]
cmp r2, #0x2c
addls pc, pc, r2, lsl #2
b _0238C0C4
_0238B168: ; jump table
b _0238B21C ; case 0
b _0238B274 ; case 1
b _0238B2D8 ; case 2
b _0238B344 ; case 3
b _0238B370 ; case 4
b _0238C0C4 ; case 5
b _0238B318 ; case 6
b _0238B928 ; case 7
b _0238B95C ; case 8
b _0238B9C4 ; case 9
b _0238BEA0 ; case 10
b _0238BE3C ; case 11
b _0238BE6C ; case 12
b _0238B640 ; case 13
b _0238B614 ; case 14
b _0238BE74 ; case 15
b _0238B574 ; case 16
b _0238B5D8 ; case 17
b _0238B480 ; case 18
b _0238B50C ; case 19
b _0238B440 ; case 20
b _0238C0C4 ; case 21
b _0238B730 ; case 22
b _0238B850 ; case 23
b _0238C0C4 ; case 24
b _0238C0C4 ; case 25
b _0238B668 ; case 26
b _0238B6F4 ; case 27
b _0238B9F4 ; case 28
b _0238BA58 ; case 29
b _0238BA94 ; case 30
b _0238BAD8 ; case 31
b _0238BFF8 ; case 32
b _0238BED8 ; case 33
b _0238BF98 ; case 34
b _0238BFD0 ; case 35
b _0238C0C4 ; case 36
b _0238BFEC ; case 37
b _0238C0C4 ; case 38
b _0238C038 ; case 39
b _0238C0C4 ; case 40
b _0238C0C4 ; case 41
b _0238C0C4 ; case 42
b _0238C0C4 ; case 43
b _0238B424 ; case 44
_0238B21C:
bl ov16_0238CBD0
cmp r0, #0
bne _0238B240
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0xf
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238B240:
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #6
ldr r0, [r0]
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, _0238C0D0 ; =0x00000431
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B274:
bl ov16_0238CBD0
cmp r0, #0
bne _0238B298
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0xf
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238B298:
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r3, #6
ldr r1, [r0]
ldr r2, _0238C0D4 ; =0x00000432
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B2D8:
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r3, #1
ldr r1, [r0]
add r2, r3, #0x440
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B318:
ldr r0, _0238C0D8 ; =0x0238CDE4
mov r4, #3
ldr r1, _0238C0DC ; =0x00300011
ldr r3, _0238C0E0 ; =0x0238CD40
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238C0C4
_0238B344:
mov r1, #1
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, _0238C0E4 ; =0x00000442
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B370:
mov r1, #5
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r0, [r0]
ldr r0, [r0, #0x88]
cmp r0, #0
ble _0238B394
bl sub_020572EC
_0238B394:
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, [r0]
ldr r1, [r2, #0x88]
cmp r1, #1
ble _0238B3DC
mov r1, #4
str r1, [r2, #0x74]
ldr r1, [r0]
ldr r2, _0238C0E8 ; =0x00000449
ldrsb r0, [r1, #0xc1]
add r3, r1, #0xe8
mov r1, #0x18
bl ShowMessageInDBox
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0
ldr r0, [r0]
str r1, [r0, #0x88]
b _0238C0C4
_0238B3DC:
bl ov16_0238CBD0
cmp r0, #0
mov r1, #0x18
bne _0238B408
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r2, #0x440
ldr r3, [r0]
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B408:
ldr r0, _0238C0CC ; =ov16_0238CE40
add r2, r1, #0x430
ldr r3, [r0]
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B424:
mov r2, #5
str r2, [r0, #0xd8]
ldr r0, [r1]
mov r1, #1
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238B440:
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r3, #0x27
ldr r1, [r0]
rsb r2, r3, #0x460
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B480:
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r2, #0xa
ldr r0, [r0]
ldr r1, [r0, #0x3c]
add r0, r0, #0x138
add r1, r1, #0x3a
bl StrncpySimpleNoPadSafe
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, [r0]
add r1, r2, #0x138
str r1, [r2, #0x120]
ldr r2, [r0]
ldr r1, [r2, #0x3c]
ldrsh r1, [r1, #4]
str r1, [r2, #0xe8]
ldr r2, [r0]
ldr r1, [r2, #0x40]
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
str r1, [r2, #0xec]
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #8
mov r4, #0x13
ldr r3, [r0]
add r2, r1, #0x430
str r4, [r3, #0x74]
ldr r3, [r0]
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B50C:
ldr r2, [r0, #0x40]
mov r1, #0
add r0, r0, r2, lsl #1
ldrsh r0, [r0, #0xc]
bl IsMonsterOnTeam
cmp r0, #0
ldrne r0, _0238C0CC ; =ov16_0238CE40
movne r1, #0x1a
ldreq r0, _0238C0CC ; =ov16_0238CE40
moveq r1, #0x1c
ldr r0, [r0]
mov r4, #2
str r1, [r0, #0x74]
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r3, _0238C0EC ; =0x0238CD08
ldr r1, [r0]
ldr r0, _0238C0D8 ; =0x0238CDE4
str r4, [r1, #0x78]
ldr r1, _0238C0F0 ; =0x00300013
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238C0C4
_0238B574:
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, [r0]
ldrsh r1, [r2, #0x44]
orr r1, r1, #0x20000
str r1, [r2, #0xe8]
ldr r2, [r0]
ldr r1, [r2, #0x40]
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
str r1, [r2, #0xec]
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r3, #0x11
ldr r1, [r0]
ldr r2, _0238C0F4 ; =0x00000434
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B5D8:
mov r2, #0x1c
str r2, [r0, #0x74]
ldr r0, [r1]
mov r4, #2
str r4, [r0, #0x78]
ldr r0, _0238C0D8 ; =0x0238CDE4
ldr r1, _0238C0F0 ; =0x00300013
ldr r3, _0238C0EC ; =0x0238CD08
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238C0C4
_0238B614:
ldr r0, _0238C0F8 ; =0x0238CDD4
mov r4, #3
ldr r3, _0238C0FC ; =0x0238CD20
mov r1, #0x13
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238C0C4
_0238B640:
ldr r1, [r0, #0x3c]
add r0, sp, #0xb0
bl sub_0205B008
add r0, sp, #0xb0
mov r1, #3
bl sub_0203F150
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc4]
b _0238C0C4
_0238B668:
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r2, #0xa
ldr r0, [r0]
ldr r1, [r0, #0x3c]
add r0, r0, #0x138
add r1, r1, #0x3a
bl StrncpySimpleNoPadSafe
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, [r0]
add r1, r2, #0x138
str r1, [r2, #0x120]
ldr r2, [r0]
ldr r1, [r2, #0x3c]
ldrsh r1, [r1, #4]
str r1, [r2, #0xe8]
ldr r2, [r0]
ldr r1, [r2, #0x40]
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
str r1, [r2, #0xec]
ldr r0, [r0]
ldrsb r0, [r0, #0xc1]
bl ShowDBox
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r4, #0x1b
ldr r2, [r0]
mov r1, #8
str r4, [r2, #0x74]
ldr r3, [r0]
add r2, r4, #0x420
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B6F4:
mov r2, #0x1c
str r2, [r0, #0x74]
ldr r0, [r1]
mov r4, #2
str r4, [r0, #0x78]
ldr r0, _0238C0D8 ; =0x0238CDE4
ldr r1, _0238C0F0 ; =0x00300013
ldr r3, _0238C0EC ; =0x0238CD08
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238C0C4
_0238B730:
mov r2, #0
str r2, [r0, #0x40]
ldr r3, [r1]
ldr r0, _0238C100 ; =0x00000125
ldr r1, [r3, #0x3c]
ldrsh r1, [r1, #4]
cmp r1, r0
addne r0, r0, #0x258
cmpne r1, r0
moveq r0, #0
beq _0238B7DC
mov r1, r2
_0238B760:
add r0, r3, r1, lsl #1
ldrsh r0, [r0, #0xc]
add r1, r1, #1
cmp r0, #0
addne r2, r2, #1
cmp r1, #8
blt _0238B760
cmp r2, #1
bne _0238B7D8
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r3, #0
_0238B78C:
ldr r2, [r0]
add r1, r2, r3, lsl #1
ldrsh r1, [r1, #0xc]
cmp r1, #0
beq _0238B7C4
strh r1, [r2, #0xc]
ldr r2, [r0]
add r1, r2, r3, lsl #1
ldrsh r1, [r1, #0x1c]
strh r1, [r2, #0x1c]
ldr r2, [r0]
add r1, r2, r3, lsl #1
ldrsh r1, [r1, #0x2c]
strh r1, [r2, #0x2c]
_0238B7C4:
add r3, r3, #1
cmp r3, #8
blt _0238B78C
mov r0, #1
b _0238B7DC
_0238B7D8:
mov r0, #2
_0238B7DC:
cmp r0, #0
beq _0238B7F0
cmp r0, #1
beq _0238B820
b _0238B838
_0238B7F0:
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r1, [r0]
ldrsh r0, [r1, #0xc]
cmp r0, #0
moveq r0, #1
streq r0, [r1, #0x40]
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0x10
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238B820:
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0x17
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238B838:
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0x14
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238B850:
ldrsh r2, [r0, #0x44]
orr r2, r2, #0x20000
str r2, [r0, #0xe8]
ldr r2, [r1]
ldr r0, [r2, #0x40]
add r0, r2, r0, lsl #1
ldrsh r0, [r0, #0xc]
str r0, [r2, #0xec]
ldr r2, [r1]
ldr r0, [r2, #0x40]
add r0, r2, r0, lsl #1
ldrsh r0, [r0, #0x1c]
str r0, [r2, #0xf8]
ldr r2, [r1]
ldr r0, [r2, #0x40]
add r0, r2, r0, lsl #1
ldrsh r0, [r0, #0x2c]
str r0, [r2, #0xfc]
ldr r1, [r1]
ldr r0, [r1, #0xf8]
cmp r0, #0
ldreq r0, [r1, #0xfc]
streq r0, [r1, #0xf8]
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0
ldr r3, [r0]
ldr r2, [r3, #0x40]
add r0, r3, r2, lsl #1
ldrsh r0, [r0, #0x1c]
cmp r0, #0
add r0, r3, r2, lsl #1
ldrsh r0, [r0, #0x2c]
addne r1, r1, #1
cmp r0, #0
addne r1, r1, #1
cmp r1, #0
beq _0238B8F8
cmp r1, #1
beq _0238B908
cmp r1, #2
beq _0238B918
b _0238C0C4
_0238B8F8:
mov r0, #0x12
str r0, [r3, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238B908:
mov r0, #7
str r0, [r3, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238B918:
mov r0, #9
str r0, [r3, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238B928:
bl ov16_0238CAE8
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r3, #8
ldr r1, [r0]
ldr r2, _0238C104 ; =0x0000043E
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B95C:
ldr r2, [r0, #0x40]
mov r1, #0
add r0, r0, r2, lsl #1
ldrsh r0, [r0, #0xc]
bl IsMonsterOnTeam
cmp r0, #0
ldrne r0, _0238C0CC ; =ov16_0238CE40
movne r1, #0x1a
ldreq r0, _0238C0CC ; =ov16_0238CE40
moveq r1, #0x1c
ldr r0, [r0]
mov r4, #2
str r1, [r0, #0x74]
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r3, _0238C0EC ; =0x0238CD08
ldr r1, [r0]
ldr r0, _0238C0D8 ; =0x0238CDE4
str r4, [r1, #0x78]
ldr r1, _0238C0F0 ; =0x00300013
mov r2, #0
str r4, [sp]
bl CreateNormalMenu
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238C0C4
_0238B9C4:
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r3, #8
ldr r1, [r0]
ldr r2, _0238C108 ; =0x0000043A
str r3, [r1, #0x74]
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238B9F4:
ldrsb r0, [r0, #0xc1]
bl sub_0202F2C4
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r3, #0x14
ldr r1, [r0]
mov r2, #3
str r3, [r1, #0xe4]
ldr r1, [r0]
mov r3, #0
str r2, [r1, #0xd8]
ldr r4, [r0]
mov r1, #0x1d
ldr r2, [r4, #0x3c]
ldrsh r2, [r2, #4]
strh r2, [r4, #0xdc]
ldr r4, [r0]
ldr r2, [r4, #0x40]
add r2, r4, r2, lsl #1
ldrsh r2, [r2, #0xc]
strh r2, [r4, #0xde]
ldr r2, [r0]
str r3, [r2, #0xe0]
ldr r0, [r0]
str r1, [r0, #0x74]
b _0238C0C4
_0238BA58:
ldrsh r3, [r0, #0x44]
mov r2, #0x1e
orr r3, r3, #0x20000
str r3, [r0, #0xe8]
ldr r0, [r1]
str r2, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, _0238C10C ; =0x0000043C
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238BA94:
mov r1, #0x1f
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r2, #3
ldr r1, [r0]
ldr r3, _0238C110 ; =0x0000140F
str r2, [r1, #0xe0]
ldr r1, [r0]
rsb r2, r2, #0x440
str r3, [r1, #0x10c]
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238BAD8:
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, [r0]
ldr r1, [r2, #0x3c]
ldrsh r1, [r1, #4]
str r1, [r2, #0xe8]
ldr r0, [r0]
ldr r0, [r0, #0x3c]
bl IsMonsterNotNicknamed
ldr r1, _0238C0CC ; =ov16_0238CE40
mov r2, #1
ldr r3, [r1]
strb r0, [r3, #0x46]
ldr r0, [r1]
strb r2, [r0]
bl IncrementNbEvolutions
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r1, [r0]
ldr r0, [r1, #0x40]
add r0, r1, r0, lsl #1
ldrsh r0, [r0, #0xc]
bl SetPokemonJoined
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsh r0, [r0, #0x44]
bl sub_02056410
cmp r0, #0
beq _0238BB84
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsh r0, [r0, #0x44]
bl sub_020564B0
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0x8c]
bl SetTeamSetupHeroOnly
cmp r0, #0
ldr r0, _0238C0CC ; =ov16_0238CE40
movne r1, #2
ldr r0, [r0]
moveq r1, #1
str r1, [r0, #0x88]
b _0238BB9C
_0238BB84:
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r2, #0
ldr r1, [r0]
strb r2, [r1, #0x8c]
ldr r0, [r0]
str r2, [r0, #0x88]
_0238BB9C:
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, [r0]
ldr r1, [r2, #0x40]
add r0, r2, #0x44
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
bl sub_0205A288
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrsh r0, [r0, #0x44]
bl ov16_0238CC64
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r0, [r0]
ldrb r0, [r0, #0x8c]
cmp r0, #0
beq _0238BBF4
bl sub_02056880
bl GetActiveTeamMember
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
ldrsh r1, [r1, #0x44]
strh r1, [r0, #8]
_0238BBF4:
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r0, _0238C114 ; =0x020A18C4
ldr r3, [r1]
ldrsh r2, [r0]
ldr r4, [r3, #0x3c]
ldr r0, _0238C118 ; =0x000003E7
ldrsh r3, [r4, #0xa]
add r2, r3, r2
strh r2, [r4, #0xa]
ldr r1, [r1]
ldr r3, _0238C11C ; =0x020A18D0
ldr r2, [r1, #0x3c]
ldrsh r1, [r2, #0xa]
cmp r1, r0
strgth r0, [r2, #0xa]
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r0, _0238C120 ; =0x020A18E4
ldr r1, [r1]
ldrsh r5, [r0]
ldr r1, [r1, #0x3c]
ldrsh r2, [r0, #2]
ldrb ip, [r1, #0xc]
ldrb r4, [r1, #0xd]
ldrb lr, [r1, #0xf]
add r0, ip, r5
add r2, r4, r2
mov r0, r0, lsl #0x10
mov r0, r0, asr #0x10
ldrsh ip, [r3, #2]
cmp r0, #0xff
ldrb r5, [r1, #0xe]
ldrsh r4, [r3]
movgt r0, #0xff
strb r0, [r1, #0xc]
add r3, r5, r4
mov r2, r2, lsl #0x10
mov r4, r2, asr #0x10
ldr r2, _0238C0CC ; =ov16_0238CE40
cmp r4, #0xff
ldr r1, [r2]
mov r3, r3, lsl #0x10
add ip, lr, ip
mov ip, ip, lsl #0x10
ldr r1, [r1, #0x3c]
movgt r4, #0xff
strb r4, [r1, #0xd]
ldr r1, [r2]
mov r3, r3, asr #0x10
cmp r3, #0xff
ldr r1, [r1, #0x3c]
movgt r3, #0xff
strb r3, [r1, #0xe]
ldr r1, [r2]
mov r5, ip, asr #0x10
cmp r5, #0xff
ldr r1, [r1, #0x3c]
movgt r5, #0xff
strb r5, [r1, #0xf]
mov r0, #0
ldr r1, [r2]
strh r0, [sp, #0xa]
ldr r0, [r1, #0x40]
add r0, r1, r0, lsl #1
ldrsh r0, [r0, #0x1c]
strh r0, [sp, #0xc]
bl GetFirstUnequippedItemOfType
mov r4, r0
mvn r1, #0
cmp r4, r1
beq _0238BD2C
bl GetItemAtIdx
ldrb r0, [r0, #1]
cmp r0, #0
beq _0238BD20
bl sub_020582E0
_0238BD20:
mov r0, r4
bl RemoveItemNoHole
b _0238BD40
_0238BD2C:
ldrsh r0, [sp, #0xc]
cmp r0, #0
beq _0238BD40
add r0, sp, #8
bl sub_02010260
_0238BD40:
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r1, [r0]
ldr r0, [r1, #0x40]
add r0, r1, r0, lsl #1
ldrsh r0, [r0, #0x2c]
strh r0, [sp, #0xc]
bl GetFirstUnequippedItemOfType
mov r4, r0
mvn r1, #0
cmp r4, r1
beq _0238BD8C
bl GetItemAtIdx
ldrb r0, [r0, #1]
cmp r0, #0
beq _0238BD80
bl sub_020582E0
_0238BD80:
mov r0, r4
bl RemoveItemNoHole
b _0238BDA0
_0238BD8C:
ldrsh r0, [sp, #0xc]
cmp r0, #0
beq _0238BDA0
add r0, sp, #8
bl sub_02010260
_0238BDA0:
ldr r0, _0238C124 ; =0x00003F01
bl sub_02017CB4
mov r0, #8
bl sub_02017C50
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r1, [r0]
ldrb r0, [r1, #0x46]
cmp r0, #0
moveq r0, #4
streq r0, [r1, #0x74]
beq _0238BE1C
ldr r1, [r1, #0x3c]
add r0, sp, #0xe
ldrsh r1, [r1, #4]
bl GetNameRaw
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r0, [r0]
ldr r0, [r0, #0x3c]
ldrsh r0, [r0, #4]
bl GetNameString
ldr r2, _0238C0CC ; =ov16_0238CE40
mov r1, r0
ldr r0, [r2]
mov r2, #0xa
ldr r0, [r0, #0x3c]
add r0, r0, #0x3a
bl sub_02025314
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0x21
ldr r0, [r0]
str r1, [r0, #0x74]
_0238BE1C:
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, _0238C128 ; =0x0000043F
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238BE3C:
ldrsb r0, [r0, #0xc1]
bl FreeDBox
ldr r0, _0238C0CC ; =ov16_0238CE40
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #0xc1]
bl GetMainCharacter1MemberIdx
bl sub_0203C7E4
mov r0, #5
mov r1, #0
bl sub_02039C3C
b _0238C0C4
_0238BE6C:
bl sub_0203A638
b _0238C0C4
_0238BE74:
mov r1, #5
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, _0238C12C ; =0x0000042D
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238BEA0:
mov r2, #0xb
str r2, [r0, #0x74]
ldr r0, [r1]
mov r1, #0x29
str r1, [r0, #0x70]
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, _0238C130 ; =0x00000433
ldr r3, [r0]
mov r1, #0x18
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
b _0238C0C4
_0238BED8:
bl ov11_02310BDC
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0x20
ldr r0, [r0]
str r1, [r0, #0x74]
bl ov16_0238CB98
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r2, _0238C134 ; =0x00000447
ldr r3, [r0]
mov r1, #8
ldrsb r0, [r3, #0xc1]
add r3, r3, #0xe8
bl ShowMessageInDBox
ldr r1, _0238C0CC ; =ov16_0238CE40
mvn r0, #1
ldr r1, [r1]
ldrsb r1, [r1, #0xc2]
cmp r1, r0
bne _0238C0C4
mov r0, #0
mov r1, #3
mov r2, #1
bl CreatePortraitBox
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r2, [r1]
strb r0, [r2, #0xc2]
ldr r2, [r1]
ldr r1, [r2, #0x40]
add r0, r2, #0xc8
add r1, r2, r1, lsl #1
ldrsh r1, [r1, #0xc]
bl InitPortraitBoxWithMonsterId
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #4
ldr r0, [r0]
add r0, r0, #0xc8
bl SetPortraitUnknownAttr
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0
ldr r0, [r0]
add r0, r0, #0xc8
bl SetPortraitExpressionId
ldr r0, _0238C0CC ; =ov16_0238CE40
ldr r1, [r0]
ldrsb r0, [r1, #0xc2]
add r1, r1, #0xc8
bl ShowPortraitBox
b _0238C0C4
_0238BF98:
ldrsb r0, [r0, #0xc1]
bl FreeDBox
ldr r1, _0238C0CC ; =ov16_0238CE40
mvn r3, #1
ldr r2, [r1]
mov r0, #2
strb r3, [r2, #0xc1]
ldr r3, [r1]
mov r2, #0
ldr r1, [r3, #0x3c]
add r3, r3, #0xb1
add r1, r1, #0x3a
bl ShowKeyboard
b _0238C0C4
_0238BFD0:
ldr r1, [r0, #0x3c]
add r3, r0, #0xb1
add r1, r1, #0x3a
mov r0, #2
mov r2, #0
bl ShowKeyboard
b _0238C0C4
_0238BFEC:
add r0, r0, #0x8d
bl sub_0203909C
b _0238C0C4
_0238BFF8:
mov r2, #0x22
str r2, [r0, #0x74]
ldr r2, [r1]
mov ip, #4
ldr r0, _0238C0D8 ; =0x0238CDE4
ldr r1, _0238C0DC ; =0x00300011
ldr r3, _0238C0EC ; =0x0238CD08
str ip, [r2, #0x78]
mov ip, #2
mov r2, #0
str ip, [sp]
bl CreateNormalMenu
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
b _0238C0C4
_0238C038:
mov ip, #0
mov r3, ip
_0238C040:
ldr r2, [r1]
add r0, r2, r3, lsl #1
ldrsh r0, [r0, #0xc]
cmp r0, #0
addne r0, r2, ip, lsl #2
strne r3, [r0, #0x50]
add r3, r3, #1
addne ip, ip, #1
cmp r3, #8
blt _0238C040
cmp ip, #2
bge _0238C088
ldr r0, _0238C0CC ; =ov16_0238CE40
mov r1, #0x17
ldr r0, [r0]
str r1, [r0, #0x70]
bl ov16_0238B148
b _0238C0C4
_0238C088:
ldr r1, _0238C138 ; =0x00000446
mov r0, #0xf
strh r1, [sp, #0x20]
str r0, [sp, #0x24]
str ip, [sp]
mov ip, #4
ldr r0, _0238C13C ; =0x0238CDC4
ldr r1, _0238C140 ; =0x00009813
ldr r3, _0238C144 ; =ov16_0238CB30
add r2, sp, #0x18
str ip, [sp, #4]
bl CreateAdvancedMenu
ldr r1, _0238C0CC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc3]
_0238C0C4:
add sp, sp, #0x128
ldmia sp!, {r3, r4, r5, pc}
.align 2, 0
_0238C0CC: .word ov16_0238CE40
_0238C0D0: .word 0x00000431
_0238C0D4: .word 0x00000432
_0238C0D8: .word 0x0238CDE4
_0238C0DC: .word 0x00300011
_0238C0E0: .word 0x0238CD40
_0238C0E4: .word 0x00000442
_0238C0E8: .word 0x00000449
_0238C0EC: .word 0x0238CD08
_0238C0F0: .word 0x00300013
_0238C0F4: .word 0x00000434
_0238C0F8: .word 0x0238CDD4
_0238C0FC: .word 0x0238CD20
_0238C100: .word 0x00000125
_0238C104: .word 0x0000043E
_0238C108: .word 0x0000043A
_0238C10C: .word 0x0000043C
_0238C110: .word 0x0000140F
_0238C114: .word 0x020A18C4
_0238C118: .word 0x000003E7
_0238C11C: .word 0x020A18D0
_0238C120: .word 0x020A18E4
_0238C124: .word 0x00003F01
_0238C128: .word 0x0000043F
_0238C12C: .word 0x0000042D
_0238C130: .word 0x00000433
_0238C134: .word 0x00000447
_0238C138: .word 0x00000446
_0238C13C: .word 0x0238CDC4
_0238C140: .word 0x00009813
_0238C144: .word ov16_0238CB30
arm_func_end ov16_0238B148
arm_func_start ov16_0238C148
ov16_0238C148: ; 0x0238C148
stmdb sp!, {r3, lr}
ldr r0, _0238C1C8 ; =ov16_0238CE40
ldr r0, [r0]
cmp r0, #0
bne _0238C170
mov r0, #0x150
mov r1, #8
bl MemAlloc
ldr r1, _0238C1C8 ; =ov16_0238CE40
str r0, [r1]
_0238C170:
ldr r0, _0238C1C8 ; =ov16_0238CE40
ldr r0, [r0]
add r0, r0, #0xe8
bl InitPreprocessorArgs
ldr r1, _0238C1C8 ; =ov16_0238CE40
mov r0, #0
ldr r2, [r1]
sub r3, r0, #2
str r0, [r2, #0x134]
ldr r2, [r1]
str r0, [r2, #0xe8]
ldr r2, [r1]
str r0, [r2, #0xd8]
ldr r2, [r1]
strb r3, [r2, #0xc1]
ldr r2, [r1]
strb r3, [r2, #0xc2]
ldr r1, [r1]
strb r3, [r1, #0xc3]
bl ov16_0238A140
mov r0, #1
ldmia sp!, {r3, pc}
.align 2, 0
_0238C1C8: .word ov16_0238CE40
arm_func_end ov16_0238C148
arm_func_start ov16_0238C1CC
ov16_0238C1CC: ; 0x0238C1CC
stmdb sp!, {r3, lr}
ldr r0, _0238C1F4 ; =ov16_0238CE40
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl MemFree
ldr r0, _0238C1F4 ; =ov16_0238CE40
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0238C1F4: .word ov16_0238CE40
arm_func_end ov16_0238C1CC
_0238C1F8:
.byte 0x18, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2
.byte 0xD4, 0x08, 0x9F, 0xE5, 0x00, 0x30, 0x90, 0xE5, 0xD8, 0x10, 0x93, 0xE5, 0x07, 0x00, 0x51, 0xE3
.byte 0x01, 0xF1, 0x8F, 0x90, 0x2D, 0x02, 0x00, 0xEA, 0x06, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA
.byte 0x06, 0x02, 0x00, 0xEA, 0x0C, 0x02, 0x00, 0xEA, 0x15, 0x02, 0x00, 0xEA, 0x1E, 0x02, 0x00, 0xEA
.byte 0xED, 0x01, 0x00, 0xEA, 0xFD, 0x01, 0x00, 0xEA, 0x0A, 0x6B, 0xFD, 0xEB, 0x98, 0x08, 0x9F, 0xE5
.byte 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x10, 0x80, 0xE5, 0x1F, 0x02, 0x00, 0xEA
.byte 0x70, 0x10, 0x93, 0xE5, 0x29, 0x00, 0x51, 0xE3, 0x01, 0xF1, 0x8F, 0x90, 0xC2, 0x01, 0x00, 0xEA
.byte 0xC1, 0x01, 0x00, 0xEA, 0xC0, 0x01, 0x00, 0xEA, 0xBF, 0x01, 0x00, 0xEA, 0xBE, 0x01, 0x00, 0xEA
.byte 0xBD, 0x01, 0x00, 0xEA, 0x7E, 0x01, 0x00, 0xEA, 0x22, 0x00, 0x00, 0xEA, 0xBA, 0x01, 0x00, 0xEA
.byte 0x02, 0x01, 0x00, 0xEA, 0xB8, 0x01, 0x00, 0xEA, 0xB7, 0x01, 0x00, 0xEA, 0x3B, 0x00, 0x00, 0xEA
.byte 0x3A, 0x00, 0x00, 0xEA, 0xDE, 0x00, 0x00, 0xEA, 0xB3, 0x00, 0x00, 0xEA, 0xB2, 0x01, 0x00, 0xEA
.byte 0xB1, 0x01, 0x00, 0xEA, 0xF9, 0x00, 0x00, 0xEA, 0xAF, 0x01, 0x00, 0xEA, 0xF7, 0x00, 0x00, 0xEA
.byte 0xAD, 0x01, 0x00, 0xEA, 0xAC, 0x01, 0x00, 0xEA, 0xAB, 0x01, 0x00, 0xEA, 0xAA, 0x01, 0x00, 0xEA
.byte 0x77, 0x00, 0x00, 0xEA, 0x94, 0x00, 0x00, 0xEA, 0xA7, 0x01, 0x00, 0xEA, 0xEF, 0x00, 0x00, 0xEA
.byte 0xE5, 0x00, 0x00, 0xEA, 0xA4, 0x01, 0x00, 0xEA, 0xA3, 0x01, 0x00, 0xEA, 0xA2, 0x01, 0x00, 0xEA
.byte 0xEA, 0x00, 0x00, 0xEA, 0xA0, 0x01, 0x00, 0xEA, 0x20, 0x01, 0x00, 0xEA, 0x1F, 0x01, 0x00, 0xEA
.byte 0x38, 0x01, 0x00, 0xEA, 0x3D, 0x01, 0x00, 0xEA, 0x55, 0x01, 0x00, 0xEA, 0x6E, 0x01, 0x00, 0xEA
.byte 0x99, 0x01, 0x00, 0xEA, 0x5C, 0x01, 0x00, 0xEA, 0xD3, 0x0C, 0xD3, 0xE1, 0x9A, 0x7C, 0xF2, 0xEB
.byte 0x01, 0x00, 0x50, 0xE3, 0xC0, 0x17, 0x9F, 0x15, 0x00, 0x10, 0x91, 0x15, 0x7C, 0x00, 0x81, 0x15
.byte 0x01, 0x00, 0x50, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0x02, 0x00, 0x50, 0xE3, 0x0B, 0x00, 0x00, 0x0A
.byte 0x03, 0x00, 0x50, 0xE3, 0x9D, 0x01, 0x00, 0x1A, 0xEA, 0x01, 0x00, 0xEB, 0x23, 0x02, 0x00, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0x0F, 0x00, 0xA0, 0xE3, 0x7B, 0xF7, 0xFF, 0xEB
.byte 0x96, 0x01, 0x00, 0xEA, 0x0A, 0x00, 0xA0, 0xE3, 0x78, 0xF7, 0xFF, 0xEB, 0x93, 0x01, 0x00, 0xEA
.byte 0xE0, 0x01, 0x00, 0xEB, 0x03, 0x00, 0xA0, 0xE3, 0x74, 0xF7, 0xFF, 0xEB, 0x8F, 0x01, 0x00, 0xEA
.byte 0xDC, 0x01, 0x00, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x70, 0xF7, 0xFF, 0xEB, 0x8B, 0x01, 0x00, 0xEA
.byte 0x97, 0xC1, 0xF2, 0xEB, 0x87, 0xB8, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x1D, 0x00, 0x00, 0x0A
.byte 0x95, 0xB9, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x84, 0x01, 0x00, 0x0A, 0x00, 0x10, 0x8D, 0xE2
.byte 0x00, 0x00, 0xA0, 0xE3, 0xAC, 0xE7, 0xF1, 0xEB, 0xB0, 0x00, 0xDD, 0xE1, 0x08, 0x00, 0x10, 0xE3
.byte 0x7E, 0x01, 0x00, 0x0A, 0xBD, 0xB9, 0xF2, 0xEB, 0x1C, 0x17, 0x9F, 0xE5, 0x00, 0x08, 0xA0, 0xE1
.byte 0x00, 0x10, 0x91, 0xE5, 0x40, 0x08, 0xA0, 0xE1, 0xB4, 0x04, 0xC1, 0xE1, 0x24, 0x02, 0x00, 0xEB
.byte 0x08, 0x07, 0x9F, 0xE5, 0x01, 0x1C, 0xA0, 0xE3, 0x25, 0x2E, 0xF2, 0xEB, 0x83, 0xB8, 0xF2, 0xEB
.byte 0xF4, 0x06, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0D, 0x20, 0xA0, 0xE3
.byte 0x78, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x19, 0x00, 0xA0, 0xE3, 0x74, 0x20, 0x81, 0xE5
.byte 0x4E, 0xF7, 0xFF, 0xEB, 0x69, 0x01, 0x00, 0xEA, 0x84, 0xB9, 0xF2, 0xEB, 0x00, 0x10, 0xE0, 0xE3
.byte 0x01, 0x00, 0x50, 0xE1, 0x0B, 0x00, 0x00, 0x1A, 0x3F, 0xB8, 0xF2, 0xEB, 0x14, 0xC1, 0xF2, 0xEB
.byte 0xB4, 0x06, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x02, 0x20, 0xA0, 0xE3
.byte 0x78, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x18, 0x00, 0xA0, 0xE3, 0x74, 0x20, 0x81, 0xE5
.byte 0x3E, 0xF7, 0xFF, 0xEB, 0x59, 0x01, 0x00, 0xEA, 0x8C, 0x16, 0x9F, 0xE5, 0x00, 0x08, 0xA0, 0xE1
.byte 0x00, 0x10, 0x91, 0xE5, 0x40, 0x08, 0xA0, 0xE1, 0xB4, 0x04, 0xC1, 0xE1, 0x00, 0x02, 0x00, 0xEB
.byte 0x79, 0xD7, 0xF1, 0xEB, 0x64, 0x10, 0xA0, 0xE3, 0x8D, 0x0E, 0xF4, 0xEB, 0x68, 0x06, 0x9F, 0xE5
.byte 0x00, 0x20, 0x90, 0xE5, 0x06, 0x10, 0xC2, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x00, 0x91, 0xE5
.byte 0x02, 0x10, 0x81, 0xE2, 0xA3, 0x35, 0xF3, 0xEB, 0x4C, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xF4, 0x04, 0xD0, 0xE1, 0xF2, 0x01, 0x00, 0xEB, 0x0E, 0x00, 0xA0, 0xE3, 0x27, 0xF7, 0xFF, 0xEB
.byte 0x42, 0x01, 0x00, 0xEA, 0x4E, 0xC1, 0xF2, 0xEB, 0x2C, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0x78, 0x00, 0x90, 0xE5, 0x05, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x16, 0xB8, 0xF2, 0xEB
.byte 0xEB, 0xC0, 0xF2, 0xEB, 0x10, 0x06, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x00, 0x90, 0xE5
.byte 0x00, 0x00, 0x50, 0xE3, 0x0A, 0x00, 0x00, 0x1A, 0x00, 0xC1, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x02, 0x00, 0x00, 0x0A, 0xF8, 0x05, 0x9F, 0xE5, 0x43, 0xFF, 0xF1, 0xEB, 0x2F, 0x01, 0x00, 0xEA
.byte 0x12, 0xC1, 0xF2, 0xEB, 0xE0, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x74, 0x00, 0x90, 0xE5
.byte 0x0E, 0xF7, 0xFF, 0xEB, 0xD0, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x78, 0x00, 0x91, 0xE5
.byte 0x01, 0x00, 0x40, 0xE2, 0x78, 0x00, 0x81, 0xE5, 0x24, 0x01, 0x00, 0xEA, 0x30, 0xC1, 0xF2, 0xEB
.byte 0xB4, 0x05, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x00, 0x90, 0xE5, 0x05, 0x00, 0x50, 0xE3
.byte 0x00, 0x00, 0x00, 0x1A, 0x37, 0xB8, 0xF2, 0xEB, 0x9C, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5
.byte 0x78, 0x00, 0x91, 0xE5, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0x00, 0x1A, 0x74, 0x00, 0x91, 0xE5
.byte 0xFA, 0xF6, 0xFF, 0xEB, 0x80, 0x05, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x78, 0x00, 0x91, 0xE5
.byte 0x01, 0x00, 0x40, 0xE2, 0x78, 0x00, 0x81, 0xE5, 0x10, 0x01, 0x00, 0xEA, 0xD3, 0x0C, 0xD3, 0xE1
.byte 0x01, 0x7C, 0xF2, 0xEB, 0x00, 0x40, 0xA0, 0xE1, 0x19, 0xC1, 0xF2, 0xEB, 0x01, 0x00, 0x54, 0xE3
.byte 0x1C, 0x00, 0x00, 0x0A, 0x03, 0x00, 0x54, 0xE3, 0x02, 0x00, 0x00, 0x0A, 0x08, 0x00, 0x54, 0xE3
.byte 0x0D, 0x00, 0x00, 0x0A, 0x05, 0x01, 0x00, 0xEA, 0x52, 0x01, 0x00, 0xEB, 0xDE, 0xB7, 0xF2, 0xEB
.byte 0xB3, 0xC0, 0xF2, 0xEB, 0x30, 0x05, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5
.byte 0x16, 0x20, 0xA0, 0xE3, 0x78, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x18, 0x00, 0xA0, 0xE3
.byte 0x74, 0x20, 0x81, 0xE5, 0xDD, 0xF6, 0xFF, 0xEB, 0xF8, 0x00, 0x00, 0xEA, 0x45, 0x01, 0x00, 0xEB
.byte 0x04, 0x05, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0D, 0x20, 0xA0, 0xE3
.byte 0x78, 0x30, 0x81, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x19, 0x00, 0xA0, 0xE3, 0x74, 0x20, 0x81, 0xE5
.byte 0xD2, 0xF6, 0xFF, 0xEB, 0xED, 0x00, 0x00, 0xEA, 0x3A, 0x01, 0x00, 0xEB, 0xD8, 0x04, 0x9F, 0xE5
.byte 0x0B, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x70, 0x10, 0x80, 0xE5, 0x09, 0xB8, 0xF2, 0xEB
.byte 0xE6, 0x00, 0x00, 0xEA, 0x5F, 0xCB, 0xF2, 0xEB, 0x01, 0x00, 0x50, 0xE3, 0xE3, 0x00, 0x00, 0x1A
.byte 0xB4, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD4, 0x0C, 0xD0, 0xE1, 0x4E, 0x6F, 0xF2, 0xEB
.byte 0xD6, 0xCC, 0xF2, 0xEB, 0xA0, 0x04, 0x9F, 0xE5, 0x01, 0x30, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5
.byte 0x03, 0x20, 0xA0, 0xE3, 0xC4, 0x30, 0xC1, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x0C, 0x30, 0xA0, 0xE3
.byte 0xE4, 0x20, 0x81, 0xE5, 0x00, 0x20, 0x90, 0xE5, 0x1C, 0x10, 0xA0, 0xE3, 0x74, 0x30, 0x82, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0x70, 0x10, 0x80, 0xE5, 0xD0, 0x00, 0x00, 0xEA, 0xE4, 0x20, 0x93, 0xE5
.byte 0x01, 0x10, 0x42, 0xE2, 0xE4, 0x10, 0x83, 0xE5, 0x00, 0x00, 0x52, 0xE3, 0xCB, 0x00, 0x00, 0x1A
.byte 0x00, 0x00, 0x90, 0xE5, 0x74, 0x00, 0x90, 0xE5, 0xAC, 0xF6, 0xFF, 0xEB, 0xC7, 0x00, 0x00, 0xEA
.byte 0xD3, 0x0C, 0xD3, 0xE1, 0x95, 0x7B, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xC3, 0x00, 0x00, 0x1A
.byte 0x34, 0x04, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x0C, 0xD0, 0xE1, 0xB2, 0x7B, 0xF2, 0xEB
.byte 0x24, 0x14, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x01, 0x10, 0xE0, 0xE3
.byte 0xD2, 0x0C, 0xD0, 0xE1, 0x01, 0x00, 0x50, 0xE1, 0x04, 0x00, 0x00, 0x0A, 0xDF, 0x8B, 0xF2, 0xEB
.byte 0x04, 0x04, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xC2, 0x10, 0xC0, 0xE5
.byte 0x01, 0x00, 0x54, 0xE3, 0x11, 0x00, 0x00, 0x0A, 0x06, 0x00, 0x54, 0xE3, 0x02, 0x00, 0x00, 0x0A
.byte 0x07, 0x00, 0x54, 0xE3, 0x0D, 0x00, 0x00, 0x0A, 0xAC, 0x00, 0x00, 0xEA, 0xF9, 0x00, 0x00, 0xEB
.byte 0xD4, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1, 0xEC, 0x8A, 0xF2, 0xEB
.byte 0xC4, 0x03, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x20, 0x90, 0xE5, 0x1C, 0x10, 0xA0, 0xE3
.byte 0xE4, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x70, 0x10, 0x80, 0xE5, 0x9F, 0x00, 0x00, 0xEA
.byte 0xEC, 0x00, 0x00, 0xEB, 0xA0, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1
.byte 0xDF, 0x8A, 0xF2, 0xEB, 0x90, 0x03, 0x9F, 0xE5, 0x0A, 0x30, 0xA0, 0xE3, 0x00, 0x40, 0x90, 0xE5
.byte 0x1C, 0x10, 0xA0, 0xE3, 0x78, 0x20, 0x94, 0xE5, 0x74, 0x20, 0x84, 0xE5, 0x00, 0x20, 0x90, 0xE5
.byte 0xE4, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x70, 0x10, 0x80, 0xE5, 0x8F, 0x00, 0x00, 0xEA
.byte 0x57, 0xA9, 0xF2, 0xEB, 0x03, 0x00, 0x50, 0xE3, 0x8C, 0x00, 0x00, 0x1A, 0x76, 0xAB, 0xF2, 0xEB
.byte 0x54, 0x13, 0x9F, 0xE5, 0x00, 0x40, 0xA0, 0xE1, 0x00, 0x00, 0x91, 0xE5, 0x04, 0x10, 0xA0, 0xE1
.byte 0x8D, 0x00, 0x80, 0xE2, 0x10, 0x20, 0xA0, 0xE3, 0x95, 0x62, 0xF2, 0xEB, 0x38, 0x03, 0x9F, 0xE5
.byte 0x04, 0x10, 0xA0, 0xE1, 0x00, 0x00, 0x90, 0xE5, 0xA1, 0x00, 0x80, 0xE2, 0x53, 0x62, 0xF2, 0xEB
.byte 0x24, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x3C, 0x00, 0x90, 0xE5, 0x2B, 0x26, 0xF3, 0xEB
.byte 0x14, 0x13, 0x9F, 0xE5, 0x00, 0x10, 0x91, 0xE5, 0x46, 0x00, 0xC1, 0xE5, 0x24, 0x00, 0xA0, 0xE3
.byte 0x5A, 0xF6, 0xFF, 0xEB, 0x75, 0x00, 0x00, 0xEA, 0x22, 0xAB, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3
.byte 0x72, 0x00, 0x00, 0x0A, 0x25, 0x00, 0xA0, 0xE3, 0x54, 0xF6, 0xFF, 0xEB, 0x6F, 0x00, 0x00, 0xEA
.byte 0xC9, 0xB2, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0C, 0x00, 0x00, 0x1A, 0xD8, 0x02, 0x9F, 0xE5
.byte 0x04, 0x30, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x0A, 0x20, 0xA0, 0xE3, 0x78, 0x30, 0x81, 0xE5
.byte 0x00, 0x10, 0x90, 0xE5, 0x3C, 0x00, 0x91, 0xE5, 0xA1, 0x10, 0x81, 0xE2, 0x3A, 0x00, 0x80, 0xE2
.byte 0x3D, 0x62, 0xF2, 0xEB, 0x26, 0x00, 0xA0, 0xE3, 0x44, 0xF6, 0xFF, 0xEB, 0x5F, 0x00, 0x00, 0xEA
.byte 0x01, 0x00, 0x50, 0xE3, 0x5D, 0x00, 0x00, 0x1A, 0x9C, 0x02, 0x9F, 0xE5, 0x23, 0x20, 0xA0, 0xE3
.byte 0x00, 0x10, 0x90, 0xE5, 0x26, 0x00, 0xA0, 0xE3, 0x78, 0x20, 0x81, 0xE5, 0x3B, 0xF6, 0xFF, 0xEB
.byte 0x56, 0x00, 0x00, 0xEA, 0x6F, 0xB2, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x53, 0x00, 0x00, 0x0A
.byte 0x74, 0x02, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x78, 0x00, 0x90, 0xE5, 0x33, 0xF6, 0xFF, 0xEB
.byte 0x4E, 0x00, 0x00, 0xEA, 0x03, 0x00, 0xA0, 0xE3, 0x4D, 0x00, 0x00, 0xEA, 0xD1, 0x0C, 0xD3, 0xE1
.byte 0x3E, 0x8A, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x48, 0x00, 0x00, 0x1A, 0x48, 0x02, 0x9F, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1, 0xC1, 0x8A, 0xF2, 0xEB, 0x38, 0x02, 0x9F, 0xE5
.byte 0x2B, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x70, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xD1, 0x0C, 0xD0, 0xE1, 0x82, 0x8A, 0xF2, 0xEB, 0x3C, 0x00, 0x00, 0xEA, 0xD3, 0x0C, 0xD3, 0xE1
.byte 0x05, 0x7D, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x38, 0x00, 0x00, 0x1A, 0x08, 0x02, 0x9F, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x0C, 0xD0, 0xE1, 0x0C, 0x7D, 0xF2, 0xEB, 0x00, 0x40, 0xA0, 0xE1
.byte 0x00, 0x00, 0xE0, 0xE3, 0x00, 0x00, 0x54, 0xE1, 0x0A, 0x00, 0x00, 0x1A, 0xE8, 0x01, 0x9F, 0xE5
.byte 0x00, 0x00, 0x90, 0xE5, 0xD3, 0x0C, 0xD0, 0xE1, 0xD1, 0x7C, 0xF2, 0xEB, 0xD8, 0x01, 0x9F, 0xE5
.byte 0x01, 0x20, 0xE0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0x02, 0x00, 0xA0, 0xE3, 0xC3, 0x20, 0xC1, 0xE5
.byte 0x0A, 0xF6, 0xFF, 0xEB, 0x25, 0x00, 0x00, 0xEA, 0xBC, 0x01, 0x9F, 0xE5, 0x00, 0x20, 0x90, 0xE5
.byte 0x04, 0x11, 0x82, 0xE0, 0x50, 0x10, 0x91, 0xE5, 0x40, 0x10, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xD3, 0x0C, 0xD0, 0xE1, 0xC2, 0x7C, 0xF2, 0xEB, 0x9C, 0x11, 0x9F, 0xE5, 0x01, 0x30, 0xE0, 0xE3
.byte 0x00, 0x20, 0x91, 0xE5, 0x17, 0x00, 0xA0, 0xE3, 0xC3, 0x30, 0xC2, 0xE5, 0x00, 0x20, 0x91, 0xE5
.byte 0x04, 0x11, 0x82, 0xE0, 0x50, 0x10, 0x91, 0xE5, 0x81, 0x10, 0x82, 0xE0, 0xFC, 0x10, 0xD1, 0xE1
.byte 0xBA, 0x10, 0xC2, 0xE1, 0xF5, 0xF5, 0xFF, 0xEB, 0x10, 0x00, 0x00, 0xEA, 0x2B, 0x02, 0xFE, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0x1A, 0x5C, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xD1, 0x0C, 0xD0, 0xE1, 0xFD, 0x89, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x07, 0x00, 0x00, 0x1A
.byte 0x44, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1, 0x80, 0x8A, 0xF2, 0xEB
.byte 0x34, 0x01, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x74, 0x00, 0x90, 0xE5, 0xE3, 0xF5, 0xFF, 0xEB
.byte 0x00, 0x00, 0xA0, 0xE3, 0x03, 0x00, 0x50, 0xE3, 0x44, 0x00, 0x00, 0x1A, 0x18, 0x01, 0x9F, 0xE5
.byte 0x06, 0x20, 0xA0, 0xE3, 0x00, 0x10, 0x90, 0xE5, 0xD8, 0x20, 0x81, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xD1, 0x0C, 0xD0, 0xE1, 0x64, 0x6E, 0xF2, 0xEB, 0xFC, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5
.byte 0xD1, 0x0C, 0xD0, 0xE1, 0x36, 0x8A, 0xF2, 0xEB, 0x38, 0x00, 0x00, 0xEA, 0x07, 0x10, 0xA0, 0xE3
.byte 0xD8, 0x10, 0x83, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x0C, 0xD0, 0xE1, 0xD1, 0x89, 0xF2, 0xEB
.byte 0xD4, 0x00, 0x9F, 0xE5, 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD2, 0x0C, 0xD0, 0xE1
.byte 0x01, 0x00, 0x50, 0xE1, 0x2D, 0x00, 0x00, 0x0A, 0x0C, 0x8B, 0xF2, 0xEB, 0xB8, 0x00, 0x9F, 0xE5
.byte 0x01, 0x10, 0xE0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xC2, 0x10, 0xC0, 0xE5, 0x27, 0x00, 0x00, 0xEA
.byte 0x00, 0x00, 0xE0, 0xE3, 0x14, 0x69, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x24, 0x00, 0x00, 0xEA
.byte 0x20, 0x69, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x8C, 0x00, 0x9F, 0x15, 0x01, 0x10, 0xA0, 0x13
.byte 0x00, 0x00, 0x90, 0x15, 0xD8, 0x10, 0x80, 0x15, 0x1C, 0x00, 0x00, 0xEA, 0x19, 0x69, 0xFD, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0x19, 0x00, 0x00, 0x0A, 0x03, 0x00, 0xA0, 0xE3, 0x06, 0x69, 0xFD, 0xEB
.byte 0x64, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x10, 0x80, 0xE5
.byte 0x12, 0x00, 0x00, 0xEA, 0x0F, 0x69, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0F, 0x00, 0x00, 0x0A
.byte 0x01, 0x00, 0xA0, 0xE3, 0xFC, 0x68, 0xFD, 0xEB, 0x3C, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3
.byte 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x10, 0x80, 0xE5, 0x08, 0x00, 0x00, 0xEA, 0x05, 0x69, 0xFD, 0xEB
.byte 0x00, 0x00, 0x50, 0xE3, 0x05, 0x00, 0x00, 0x0A, 0x04, 0x00, 0xA0, 0xE3, 0xF2, 0x68, 0xFD, 0xEB
.byte 0x14, 0x00, 0x9F, 0xE5, 0x02, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0xD8, 0x10, 0x80, 0xE5
.byte 0x01, 0x00, 0xA0, 0xE3, 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x40, 0xCE, 0x38, 0x02
.byte 0x02, 0x3F, 0x00, 0x00, 0x04, 0xCE, 0x38, 0x02
arm_func_start ov16_0238CAE8
ov16_0238CAE8: ; 0x0238CAE8
stmdb sp!, {r3, lr}
ldr r0, _0238CB2C ; =ov16_0238CE40
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #0xc3]
cmp r0, r1
ldmeqia sp!, {r3, pc}
bl sub_0202836C
ldr r0, _0238CB2C ; =ov16_0238CE40
ldr r0, [r0]
ldrsb r0, [r0, #0xc3]
bl FreeNormalMenu
ldr r0, _0238CB2C ; =ov16_0238CE40
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #0xc3]
ldmia sp!, {r3, pc}
.align 2, 0
_0238CB2C: .word ov16_0238CE40
arm_func_end ov16_0238CAE8
arm_func_start ov16_0238CB30
ov16_0238CB30: ; 0x0238CB30
stmdb sp!, {r3, r4, r5, r6, lr}
sub sp, sp, #0x54
ldr r2, _0238CB8C ; =ov16_0238CE40
ldr r3, _0238CB90 ; =0x0000C402
ldr r6, [r2]
ldr r2, _0238CB94 ; =0x0238CE28
add r5, r6, r1, lsl #2
ldr r1, [r5, #0x50]
add ip, sp, #4
add r1, r6, r1, lsl #1
ldrsh lr, [r1, #0xc]
mov r1, #0x400
mov r4, r0
str lr, [sp, #4]
ldr lr, [r5, #0x50]
add lr, r6, lr, lsl #1
ldrsh lr, [lr, #0xc]
str lr, [sp, #0x28]
str ip, [sp]
bl PreprocessString
mov r0, r4
add sp, sp, #0x54
ldmia sp!, {r3, r4, r5, r6, pc}
.align 2, 0
_0238CB8C: .word ov16_0238CE40
_0238CB90: .word 0x0000C402
_0238CB94: .word 0x0238CE28
arm_func_end ov16_0238CB30
arm_func_start ov16_0238CB98
ov16_0238CB98: ; 0x0238CB98
stmdb sp!, {r3, lr}
ldr r1, _0238CBCC ; =ov16_0238CE40
mvn r0, #1
ldr r1, [r1]
ldrsb r1, [r1, #0xc1]
cmp r1, r0
ldmneia sp!, {r3, pc}
mov r0, #0
bl CreateDBox
ldr r1, _0238CBCC ; =ov16_0238CE40
ldr r1, [r1]
strb r0, [r1, #0xc1]
ldmia sp!, {r3, pc}
.align 2, 0
_0238CBCC: .word ov16_0238CE40
arm_func_end ov16_0238CB98
arm_func_start ov16_0238CBD0
ov16_0238CBD0: ; 0x0238CBD0
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
sub sp, sp, #0x3c
bl sub_02059B08
ldr r1, _0238CC5C ; =0x020B0A48
mov r6, #0
ldr r8, [r1]
ldr sb, _0238CC60 ; =0x0000022B
mov r5, r0
mov r7, r6
add r4, sp, #0
_0238CBF8:
mov r0, r7, lsl #0x10
mov r0, r0, asr #0x10
bl IsValidTeamMember
cmp r0, #0
beq _0238CC40
cmp r5, #0
bne _0238CC28
mov r0, r7, lsl #0x10
mov r0, r0, asr #0x10
bl IsMainCharacter
cmp r0, #0
bne _0238CC40
_0238CC28:
mov r0, r8
mov r1, r4
bl GetEvolutionPossibilities
ldrsh r0, [sp, #8]
cmp r0, #0
addne r6, r6, #1
_0238CC40:
add r7, r7, #1
cmp r7, sb
add r8, r8, #0x44
blt _0238CBF8
mov r0, r6
add sp, sp, #0x3c
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
.align 2, 0
_0238CC5C: .word 0x020B0A48
_0238CC60: .word 0x0000022B
arm_func_end ov16_0238CBD0
arm_func_start ov16_0238CC64
ov16_0238CC64: ; 0x0238CC64
stmdb sp!, {r3, lr}
bl GetTeamMember
ldr r1, _0238CC90 ; =ov16_0238CE40
ldr r2, [r1]
str r0, [r2, #0x3c]
ldr r0, [r1]
ldr r1, [r0, #0x3c]
add r0, r0, #0xb1
add r1, r1, #0x3a
bl StrcpySimple
ldmia sp!, {r3, pc}
.align 2, 0
_0238CC90: .word ov16_0238CE40
arm_func_end ov16_0238CC64
arm_func_start ov16_0238CC94
ov16_0238CC94: ; 0x0238CC94
ldr r0, _0238CCA4 ; =ov16_0238CE40
ldr r0, [r0]
ldrsh r0, [r0, #0xdc]
bx lr
.align 2, 0
_0238CCA4: .word ov16_0238CE40
arm_func_end ov16_0238CC94
arm_func_start ov16_0238CCA8
ov16_0238CCA8: ; 0x0238CCA8
ldr r0, _0238CCB8 ; =ov16_0238CE40
ldr r0, [r0]
ldrsh r0, [r0, #0xde]
bx lr
.align 2, 0
_0238CCB8: .word ov16_0238CE40
arm_func_end ov16_0238CCA8
arm_func_start ov16_0238CCBC
ov16_0238CCBC: ; 0x0238CCBC
ldr r0, _0238CCD4 ; =ov16_0238CE40
ldr r0, [r0]
cmp r0, #0
moveq r0, #0
ldrne r0, [r0, #0xe0]
bx lr
.align 2, 0
_0238CCD4: .word ov16_0238CE40
arm_func_end ov16_0238CCBC
arm_func_start ov16_0238CCD8
ov16_0238CCD8: ; 0x0238CCD8
ldr r0, _0238CCEC ; =ov16_0238CE40
mov r1, #0
ldr r0, [r0]
str r1, [r0, #0xe0]
bx lr
.align 2, 0
_0238CCEC: .word ov16_0238CE40
arm_func_end ov16_0238CCD8
arm_func_start ov16_0238CCF0
ov16_0238CCF0: ; 0x0238CCF0
ldr r0, _0238CD04 ; =ov16_0238CE40
mov r1, #4
ldr r0, [r0]
str r1, [r0, #0xd8]
bx lr
.align 2, 0
_0238CD04: .word ov16_0238CE40
arm_func_end ov16_0238CCF0
; 0x0238CD08
.byte 0x2B, 0x04, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x2C, 0x04, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x35, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x36, 0x04, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x37, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2E, 0x04, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00
.byte 0x2F, 0x04, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x30, 0x04, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x2D, 0x04, 0x2E, 0x04, 0x2F, 0x04, 0x30, 0x04
.byte 0x31, 0x04, 0x32, 0x04, 0x33, 0x04, 0x34, 0x04, 0x38, 0x04, 0x39, 0x04, 0x3A, 0x04, 0x3C, 0x04
.byte 0x3D, 0x04, 0x3E, 0x04, 0x3F, 0x04, 0x40, 0x04, 0x41, 0x04, 0x42, 0x04, 0x43, 0x04, 0x44, 0x04
.byte 0x45, 0x04, 0x46, 0x04, 0x47, 0x04, 0x48, 0x04, 0x49, 0x04, 0x3B, 0x04, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x12, 0x10, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x16, 0x0A, 0x08, 0x03, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x13, 0x02, 0x0B, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x14, 0x10, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x65, 0x6E, 0x75
.byte 0x4D, 0x6F, 0x6E, 0x73, 0x74, 0x65, 0x72, 0x50, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x42, 0x6F
.byte 0x6F, 0x6B, 0x5F, 0x49, 0x73, 0x42, 0x75, 0x73, 0x79, 0x20, 0x62, 0x75, 0x73, 0x79, 0x0A, 0x00
.byte 0x5B, 0x6B, 0x69, 0x6E, 0x64, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00, 0x00
.data
.global ov16_0238CE40
ov16_0238CE40:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00