pmd-sky/asm/overlay_06.s
2025-12-22 06:51:47 +00:00

2764 lines
52 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_06.inc"
.text
arm_func_start ov06_0233CA80
ov06_0233CA80: ; 0x0233CA80
ldr ip, _0233CA90 ; =MemZero
ldr r0, _0233CA94 ; =ov06_0233EEE0
mov r1, #0xc
bx ip
.align 2, 0
_0233CA90: .word MemZero
_0233CA94: .word ov06_0233EEE0
arm_func_end ov06_0233CA80
arm_func_start ov06_0233CA98
ov06_0233CA98: ; 0x0233CA98
ldr r1, _0233CAA4 ; =ov06_0233EEE0
str r0, [r1]
bx lr
.align 2, 0
_0233CAA4: .word ov06_0233EEE0
arm_func_end ov06_0233CA98
arm_func_start ov06_0233CAA8
ov06_0233CAA8: ; 0x0233CAA8
ldr r0, _0233CAB4 ; =ov06_0233EEE0
ldr r0, [r0]
bx lr
.align 2, 0
_0233CAB4: .word ov06_0233EEE0
arm_func_end ov06_0233CAA8
arm_func_start ov06_0233CAB8
ov06_0233CAB8: ; 0x0233CAB8
ldr r1, _0233CAC4 ; =ov06_0233EEE0
str r0, [r1, #4]
bx lr
.align 2, 0
_0233CAC4: .word ov06_0233EEE0
arm_func_end ov06_0233CAB8
arm_func_start ov06_0233CAC8
ov06_0233CAC8: ; 0x0233CAC8
ldr r0, _0233CAD4 ; =ov06_0233EEE0
ldr r0, [r0, #4]
bx lr
.align 2, 0
_0233CAD4: .word ov06_0233EEE0
arm_func_end ov06_0233CAC8
arm_func_start ov06_0233CAD8
ov06_0233CAD8: ; 0x0233CAD8
stmdb sp!, {r3, lr}
mov r0, #4
mov r1, #8
bl MemAlloc
ldr r2, _0233CB0C ; =ov06_0233EEC0
mov r1, #4
str r0, [r2]
bl MemZero
ldr r0, _0233CB0C ; =ov06_0233EEC0
mov r1, #0
ldr r0, [r0]
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0233CB0C: .word ov06_0233EEC0
arm_func_end ov06_0233CAD8
arm_func_start ov06_0233CB10
ov06_0233CB10: ; 0x0233CB10
stmdb sp!, {r3, lr}
ldr r0, _0233CB38 ; =ov06_0233EEC0
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl MemFree
ldr r0, _0233CB38 ; =ov06_0233EEC0
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0233CB38: .word ov06_0233EEC0
arm_func_end ov06_0233CB10
arm_func_start ov06_0233CB3C
ov06_0233CB3C: ; 0x0233CB3C
stmdb sp!, {r3, r4, lr}
sub sp, sp, #4
ldr r0, _0233CD3C ; =ov06_0233EEC0
ldr r0, [r0]
ldr r0, [r0]
cmp r0, #5
addls pc, pc, r0, lsl #2
b _0233CD30
_0233CB5C: ; jump table
b _0233CB74 ; case 0
b _0233CBA8 ; case 1
b _0233CC1C ; case 2
b _0233CCA0 ; case 3
b _0233CCB4 ; case 4
b _0233CCD4 ; case 5
_0233CB74:
mov r0, #6
bl ov01_02337614
str r0, [sp]
mov r0, #0
ldr r2, _0233CD40 ; =ov06_0233ED1C
ldr r3, _0233CD44 ; =0x000037A9
mov r1, r0
bl ov06_0233CD54
ldr r0, _0233CD3C ; =ov06_0233EEC0
mov r1, #1
ldr r0, [r0]
str r1, [r0]
b _0233CD30
_0233CBA8:
bl ov06_0233CD94
mov r4, r0
bl ov06_02046BA0
mov r0, r0, lsl #0x18
mov r1, r0, asr #0x18
mov r0, #6
bl ov01_02337624
cmp r4, #0x10
ldreq r0, _0233CD3C ; =ov06_0233EEC0
moveq r1, #4
ldreq r0, [r0]
streq r1, [r0]
beq _0233CD30
sub r0, r4, #0x11
cmp r0, #1
bhi _0233CD30
mov r0, #7
bl ov01_02337614
str r0, [sp]
mov r0, #0
ldr r2, _0233CD48 ; =ov06_0233ED34
ldr r3, _0233CD4C ; =0x000037AC
mov r1, r0
bl ov06_0233CD54
ldr r0, _0233CD3C ; =ov06_0233EEC0
mov r1, #2
ldr r0, [r0]
str r1, [r0]
b _0233CD30
_0233CC1C:
bl ov06_0233CD94
mov r4, r0
bl ov06_02046BA0
mov r0, r0, lsl #0x18
mov r1, r0, asr #0x18
mov r0, #7
bl ov01_02337624
cmp r4, #0x10
bne _0233CC60
ldr r1, _0233CD50 ; =0x000037AF
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233CD3C ; =ov06_0233EEC0
mov r1, #3
ldr r0, [r0]
str r1, [r0]
b _0233CD30
_0233CC60:
sub r0, r4, #0x11
cmp r0, #1
bhi _0233CD30
mov r0, #6
bl ov01_02337614
str r0, [sp]
mov r0, #0
ldr r2, _0233CD40 ; =ov06_0233ED1C
ldr r3, _0233CD44 ; =0x000037A9
mov r1, r0
bl ov06_0233CD54
ldr r0, _0233CD3C ; =ov06_0233EEC0
mov r1, #1
ldr r0, [r0]
str r1, [r0]
b _0233CD30
_0233CCA0:
bl ov06_0233CDE4
cmp r0, #0x12
bne _0233CD30
mov r0, #1
b _0233CD34
_0233CCB4:
bl sub_02046D20
mov r0, #0x11
bl sub_020668B4
ldr r0, _0233CD3C ; =ov06_0233EEC0
mov r1, #5
ldr r0, [r0]
str r1, [r0]
b _0233CD30
_0233CCD4:
bl sub_02066A44
mvn r1, #0
cmp r0, r1
bne _0233CD1C
bl sub_02067664
mov r0, #6
bl ov01_02337614
str r0, [sp]
mov r0, #0
ldr r2, _0233CD40 ; =ov06_0233ED1C
ldr r3, _0233CD44 ; =0x000037A9
mov r1, r0
bl ov06_0233CD54
ldr r0, _0233CD3C ; =ov06_0233EEC0
mov r1, #1
ldr r0, [r0]
str r1, [r0]
b _0233CD30
_0233CD1C:
cmp r0, #1
bne _0233CD30
bl sub_02067664
mov r0, #2
b _0233CD34
_0233CD30:
mov r0, #0
_0233CD34:
add sp, sp, #4
ldmia sp!, {r3, r4, pc}
.align 2, 0
#if defined(EUROPE)
#define OV06_0233CB3C_OFFSET 2
#elif defined(JAPAN)
#define OV06_0233CB3C_OFFSET -0x37E
#else
#define OV06_0233CB3C_OFFSET 0
#endif
_0233CD3C: .word ov06_0233EEC0
_0233CD40: .word ov06_0233ED1C
_0233CD44: .word 0x000037A9 + OV06_0233CB3C_OFFSET
_0233CD48: .word ov06_0233ED34
_0233CD4C: .word 0x000037AC + OV06_0233CB3C_OFFSET
_0233CD50: .word 0x000037AF + OV06_0233CB3C_OFFSET
arm_func_end ov06_0233CB3C
arm_func_start ov06_0233CD54
ov06_0233CD54: ; 0x0233CD54
stmdb sp!, {r3, lr}
ldrsb ip, [sp, #8]
str ip, [sp]
bl sub_02046A9C
ldmia sp!, {r3, pc}
arm_func_end ov06_0233CD54
arm_func_start ov06_0233CD68
ov06_0233CD68: ; 0x0233CD68
stmdb sp!, {lr}
sub sp, sp, #0xc
ldr ip, [sp, #0x10]
ldrh lr, [sp, #0x14]
str ip, [sp]
mov ip, #0
str lr, [sp, #4]
str ip, [sp, #8]
bl sub_02046A20
add sp, sp, #0xc
ldmia sp!, {pc}
arm_func_end ov06_0233CD68
arm_func_start ov06_0233CD94
ov06_0233CD94: ; 0x0233CD94
stmdb sp!, {r3, lr}
bl sub_02046B04
mvn r1, #1
cmp r0, r1
moveq r0, #0x12
ldmeqia sp!, {r3, pc}
add r1, r1, #1
cmp r0, r1
moveq r0, #0
ldmia sp!, {r3, pc}
arm_func_end ov06_0233CD94
arm_func_start ov06_02046BA0
ov06_02046BA0: ; 0x0233CDBC
ldr ip, _0233CDC4 ; =sub_02046BA0
bx ip
.align 2, 0
_0233CDC4: .word sub_02046BA0
arm_func_end ov06_02046BA0
arm_func_start ov06_0233CDC8
ov06_0233CDC8: ; 0x0233CDC8
ldr ip, _0233CDD4 ; =sub_02046BE8
mov r2, #0
bx ip
.align 2, 0
_0233CDD4: .word sub_02046BE8
arm_func_end ov06_0233CDC8
arm_func_start ov06_0233CDD8
ov06_0233CDD8: ; 0x0233CDD8
ldr ip, _0233CDE0 ; =sub_02046BE8
bx ip
.align 2, 0
_0233CDE0: .word sub_02046BE8
arm_func_end ov06_0233CDD8
arm_func_start ov06_0233CDE4
ov06_0233CDE4: ; 0x0233CDE4
stmdb sp!, {r3, lr}
bl sub_02046C78
cmp r0, #0
movne r0, #0x12
moveq r0, #0
ldmia sp!, {r3, pc}
arm_func_end ov06_0233CDE4
arm_func_start ov06_0233CDFC
ov06_0233CDFC: ; 0x0233CDFC
stmdb sp!, {r3, lr}
mov r0, #0x70
mov r1, #8
bl MemAlloc
ldr r2, _0233CE30 ; =ov06_0233EEC4
mov r1, #0x70
str r0, [r2]
bl MemZero
ldr r0, _0233CE30 ; =ov06_0233EEC4
mov r1, #0
ldr r0, [r0]
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0233CE30: .word ov06_0233EEC4
arm_func_end ov06_0233CDFC
arm_func_start ov06_0233CE34
ov06_0233CE34: ; 0x0233CE34
stmdb sp!, {r3, lr}
ldr r0, _0233CE5C ; =ov06_0233EEC4
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl MemFree
ldr r0, _0233CE5C ; =ov06_0233EEC4
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0233CE5C: .word ov06_0233EEC4
arm_func_end ov06_0233CE34
arm_func_start ov06_0233CE60
ov06_0233CE60: ; 0x0233CE60
stmdb sp!, {r3, r4, r5, r6, r7, lr}
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D4D0 ; =0x00000401
ldr r4, [r0]
ldr r2, [r4]
cmp r2, r1
bgt _0233CEF0
bge _0233D2E4
sub r0, r1, #0xd7
cmp r2, r0
bgt _0233CED0
subs r0, r2, #0x320
addpl pc, pc, r0, lsl #2
b _0233CEC4
_0233CE98: ; jump table
b _0233CF78 ; case 0
b _0233CFA4 ; case 1
b _0233D4C4 ; case 2
b _0233D004 ; case 3
b _0233D298 ; case 4
b _0233D4C4 ; case 5
b _0233D4C4 ; case 6
b _0233D4C4 ; case 7
b _0233D4C4 ; case 8
b _0233D4C4 ; case 9
b _0233D3E0 ; case 10
_0233CEC4:
cmp r2, #0
beq _0233CF44
b _0233D4C4
_0233CED0:
sub r0, r1, #0xf
cmp r2, r0
bgt _0233CEE4
beq _0233D3F4
b _0233D4C4
_0233CEE4:
cmp r2, #0x400
beq _0233D2C4
b _0233D4C4
_0233CEF0:
add r0, r1, #3
cmp r2, r0
bgt _0233CF24
bge _0233D3CC
add r0, r1, #1
cmp r2, r0
bgt _0233CF14
beq _0233D318
b _0233D4C4
_0233CF14:
add r0, r1, #2
cmp r2, r0
beq _0233D380
b _0233D4C4
_0233CF24:
cmp r2, #0x700
bgt _0233CF34
beq _0233D43C
b _0233D4C4
_0233CF34:
add r0, r1, #0x300
cmp r2, r0
beq _0233D454
b _0233D4C4
_0233CF44:
add r0, r4, #0x44
mov r1, #0x22
bl MemZero
bl ov06_0233CAA8
cmp r0, #0
beq _0233D4C4
bl ov06_0233CAA8
cmp r0, #1
ldreq r0, _0233D4CC ; =ov06_0233EEC4
moveq r1, #0x320
ldreq r0, [r0]
streq r1, [r0]
b _0233D4C4
_0233CF78:
mov r2, #0
mov r3, r2
add r1, r4, #0x44
mov r0, #6
bl ShowKeyboard
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D4D4 ; =0x00000321
ldr r0, [r0]
str r1, [r0]
bl sub_02046D20
b _0233D4C4
_0233CFA4:
bl GetKeyboardStatus
ldr r1, _0233D4CC ; =ov06_0233EEC4
ldr r2, [r1]
str r0, [r2, #0x40]
ldr r1, [r1]
ldr r0, [r1, #0x40]
cmp r0, #3
bne _0233CFF4
bl GetKeyboardStringResult
ldr r2, _0233D4CC ; =ov06_0233EEC4
mov r1, r0
ldr r0, [r2]
mov r2, #0x22
add r0, r0, #0x44
bl MemcpySimple
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D4D8 ; =0x00000323
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233CFF4:
cmp r0, #2
ldreq r0, _0233D4D8 ; =0x00000323
streq r0, [r1]
b _0233D4C4
_0233D004:
bl sub_02037468
cmp r0, #1
bne _0233D4C4
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r0, [r0]
ldr r0, [r0, #0x40]
cmp r0, #3
bne _0233D290
bl ov06_0233CAA8
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r4, [r0]
add r0, r4, #0x44
add r1, r4, #0x20
bl WonderMailPasswordToMission
cmp r0, #0
moveq r4, #2
beq _0233D110
add r0, r4, #0x20
bl IsMissionTypeSpecialEpisode
cmp r0, #0
beq _0233D070
mov r0, #2
bl IsSpecialEpisodeOpen
cmp r0, #0
movne r4, #5
moveq r4, #1
b _0233D110
_0233D070:
add r0, r4, #0x20
bl IsMissionSuspendedAndValid
cmp r0, #0
moveq r4, #3
beq _0233D110
ldrsh r0, [r4, #0x34]
mov r1, #1
bl CanSendItem
cmp r0, #0
moveq r4, #3
beq _0233D110
ldrb r0, [r4, #0x36]
cmp r0, #4
addls pc, pc, r0, lsl #2
b _0233D0D8
_0233D0AC: ; jump table
b _0233D0D8 ; case 0
b _0233D0C0 ; case 1
b _0233D0C0 ; case 2
b _0233D0C0 ; case 3
b _0233D0C0 ; case 4
_0233D0C0:
ldrsh r0, [r4, #0x38]
mov r1, #1
bl CanSendItem
cmp r0, #0
moveq r4, #3
beq _0233D110
_0233D0D8:
add r0, r4, #0x20
bl AlreadyHaveMission
cmp r0, #0
movne r4, #4
bne _0233D110
add r0, r4, #0x20
bl sub_0205FA38
cmp r0, #0
movne r4, #4
bne _0233D110
bl CountJobListMissions
cmp r0, #8
movge r4, #6
movlt r4, #0
_0233D110:
ldr r0, _0233D4DC ; =ov06_0233EDCC
bl Debug_Print0
ldr r6, _0233D4E0 ; =ov06_0233EDD0
ldr r5, _0233D4CC ; =ov06_0233EEC4
mov r7, #0
_0233D124:
ldr r1, [r5]
mov r0, r6
add r1, r1, r7
ldrb r1, [r1, #0x44]
bl Debug_Print0
add r7, r7, #1
cmp r7, #0x22
blt _0233D124
ldr r0, _0233D4DC ; =ov06_0233EDCC
bl Debug_Print0
ldr r0, _0233D4CC ; =ov06_0233EEC4
cmp r4, #7
ldr r1, [r0]
str r4, [r1, #0x6c]
addls pc, pc, r4, lsl #2
b _0233D4C4
_0233D164: ; jump table
b _0233D184 ; case 0
b _0233D1CC ; case 1
b _0233D20C ; case 2
b _0233D20C ; case 3
b _0233D240 ; case 4
b _0233D260 ; case 5
b _0233D280 ; case 6
b _0233D4C4 ; case 7
_0233D184:
#ifdef NORTH_AMERICA
mov r0, #0x1c
add r1, r0, #0x3780
#else
ldr r1, _0233DC64 ; =0x0000379E
mov r0, #0x1c
#endif
bl ov06_0233CDC8
ldr r0, _0233D4CC ; =ov06_0233EEC4
mov r1, #0
ldr r0, [r0]
add r0, r0, #0x20
bl CreateJobSummary
ldr r0, _0233D4CC ; =ov06_0233EEC4
mov r2, #0x324
ldr r1, [r0]
str r2, [r1]
ldr r0, [r0]
add r0, r0, #0x20
bl AddMissionToJobList
bl sub_0205F5A8
bl sub_0205F710
b _0233D4C4
_0233D1CC:
mov r0, #2
mov r1, #1
bl SetSpecialEpisodeOpen
#ifdef NORTH_AMERICA
mov r0, #0x1c
add r1, r0, #0x3780
#else
ldr r1, _0233DC64 ; =0x0000379E
mov r0, #0x1c
#endif
bl ov06_0233CDC8
ldr r0, _0233D4CC ; =ov06_0233EEC4
mov r1, #0
ldr r0, [r0]
add r0, r0, #0x20
bl CreateJobSummary
ldr r0, _0233D4CC ; =ov06_0233EEC4
mov r1, #0x324
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D20C:
mov r0, #5
bl ov01_02337614
str r0, [sp]
mov r0, #0
ldr r2, _0233D4E4 ; =ov06_0233ED04
ldr r3, _0233D4E8 ; =0x00003799
mov r1, r0
bl ov06_0233CD54
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D4EC ; =0x000003F2
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D240:
ldr r1, _0233D4F0 ; =0x000037A7
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D4F4 ; =0x0000032A
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D260:
ldr r1, _0233D4F8 ; =0x000037A8
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D4F4 ; =0x0000032A
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D280:
ldr r0, [r0]
mov r1, #0x700
str r1, [r0]
b _0233D4C4
_0233D290:
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0233D298:
bl ov06_0233CDE4
mov r4, r0
bl sub_020698B8
cmp r4, #0x12
bne _0233D4C4
bl sub_02069904
ldr r0, _0233D4CC ; =ov06_0233EEC4
mov r1, #0x400
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D2C4:
#ifdef JAPAN
add r1, r1, #0xcb
#else
ldr r1, _0233D4FC ; =0x0000023B
#endif
mov r0, #0
bl ov06_0233CDC8
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D4D0 ; =0x00000401
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D2E4:
bl ov06_0233CDE4
cmp r0, #0x12
bne _0233D4C4
mov r0, #0xe0
mov r1, #0x88
mov r2, #1
bl sub_02029F88
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D500 ; =0x00000402
ldr r0, [r0]
str r1, [r0]
bl sub_02003B94
b _0233D4C4
_0233D318:
mov r0, #3
bl NoteSaveBase
mov r4, r0
bl sub_02003BC8
bl sub_02029FBC
cmp r4, #0
bne _0233D354
#ifdef JAPAN
ldr r1, _0233ED84 ; =0x000004CD
mov r0, #0x1c
#else
mov r0, #0x1c
mov r1, #0x23c
#endif
bl ov06_0233CDC8
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D504 ; =0x00000403
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D354:
cmp r4, #1
moveq r0, #3
ldmeqia sp!, {r3, r4, r5, r6, r7, pc}
ldr r1, _0233D508 ; =0x00000239
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D50C ; =0x00000404
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D380:
bl ov06_0233CDE4
cmp r0, #0x12
bne _0233D4C4
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r0, [r0]
ldr r0, [r0, #0x6c]
cmp r0, #1
mov r0, #0x1c
bne _0233D3B0
ldr r1, _0233D510 ; =0x0000379E
bl ov06_0233CDC8
b _0233D3B8
_0233D3B0:
ldr r1, _0233D514 ; =0x0000379D
bl ov06_0233CDC8
_0233D3B8:
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D4F4 ; =0x0000032A
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D3CC:
bl ov06_0233CDE4
cmp r0, #0x12
bne _0233D4C4
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0233D3E0:
bl ov06_0233CDE4
cmp r0, #0x12
bne _0233D4C4
mov r0, #2
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0233D3F4:
bl ov06_0233CD94
mov r4, r0
bl ov06_02046BA0
mov r0, r0, lsl #0x18
mov r1, r0, asr #0x18
mov r0, #5
bl ov01_02337624
cmp r4, #0x10
ldreq r0, _0233D4CC ; =ov06_0233EEC4
moveq r1, #0x320
ldreq r0, [r0]
streq r1, [r0]
beq _0233D4C4
sub r0, r4, #0x11
cmp r0, #1
bhi _0233D4C4
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0233D43C:
bl ov06_0233CAD8
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r1, _0233D518 ; =0x00000701
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D454:
bl ov06_0233CB3C
cmp r0, #2
bne _0233D4B0
bl ov06_0233CB10
ldr r0, _0233D4CC ; =ov06_0233EEC4
ldr r0, [r0]
add r0, r0, #0x20
bl AddMissionToJobList
bl sub_0205F5A8
bl sub_0205F710
#ifdef NORTH_AMERICA
mov r0, #0x1c
add r1, r0, #0x3780
#else
ldr r1, _0233DC64 ; =0x0000379E
mov r0, #0x1c
#endif
bl ov06_0233CDC8
ldr r0, _0233D4CC ; =ov06_0233EEC4
mov r1, #0
ldr r0, [r0]
add r0, r0, #0x20
bl CreateJobSummary
ldr r0, _0233D4CC ; =ov06_0233EEC4
mov r1, #0x324
ldr r0, [r0]
str r1, [r0]
b _0233D4C4
_0233D4B0:
cmp r0, #1
bne _0233D4C4
bl ov06_0233CB10
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
_0233D4C4:
mov r0, #0
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
#if defined(EUROPE)
#define OV06_0233CE60_OFFSET 2
#elif defined(JAPAN)
#define OV06_0233CE60_OFFSET -0x37E
#else
#define OV06_0233CE60_OFFSET 0
#endif
_0233D4CC: .word ov06_0233EEC4
_0233D4D0: .word 0x00000401
_0233D4D4: .word 0x00000321
_0233D4D8: .word 0x00000323
_0233D4DC: .word ov06_0233EDCC
_0233D4E0: .word ov06_0233EDD0
#ifndef NORTH_AMERICA
_0233DC64: .word 0x0000379C + OV06_0233CE60_OFFSET
#endif
_0233D4E4: .word ov06_0233ED04
_0233D4E8: .word 0x00003799 + OV06_0233CE60_OFFSET
_0233D4EC: .word 0x000003F2
_0233D4F0: .word 0x000037A7 + OV06_0233CE60_OFFSET
_0233D4F4: .word 0x0000032A
_0233D4F8: .word 0x000037A8 + OV06_0233CE60_OFFSET
#ifdef JAPAN
_0233D500: .word 0x00000402
_0233ED84: .word 0x000004CD
_0233D504: .word 0x00000403
_0233D508: .word 0x000004CA
#else
_0233D4FC: .word 0x0000023B
_0233D500: .word 0x00000402
_0233D504: .word 0x00000403
_0233D508: .word 0x00000239
#endif
_0233D50C: .word 0x00000404
_0233D510: .word 0x0000379E + OV06_0233CE60_OFFSET
_0233D514: .word 0x0000379D + OV06_0233CE60_OFFSET
_0233D518: .word 0x00000701
arm_func_end ov06_0233CE60
arm_func_start ov06_0233D51C
ov06_0233D51C: ; 0x0233D51C
stmdb sp!, {r3, lr}
ldr r0, _0233D59C ; =0x000004B4
mov r1, #8
bl MemAlloc
ldr r2, _0233D5A0 ; =ov06_0233EEEC
ldr r1, _0233D59C ; =0x000004B4
str r0, [r2]
bl MemZero
mov r2, #0
ldr r0, _0233D5A0 ; =ov06_0233EEEC
mov lr, r2
_0233D548:
ldr r1, [r0]
add r1, r1, r2
add r2, r2, #1
strb lr, [r1, #0x10]
cmp r2, #4
blt _0233D548
ldr r0, _0233D5A0 ; =ov06_0233EEEC
mvn r3, #0
ldr ip, [r0]
mov r1, #0xc
add r2, ip, #0x10
str r2, [ip, #0x74]
ldr r2, [r0]
str lr, [r2, #0xc]
ldr r2, [r0]
strh r3, [r2, #0xb0]
ldr r0, [r0]
bl MemZero
bl sub_02046D20
mov r0, #1
ldmia sp!, {r3, pc}
.align 2, 0
_0233D59C: .word 0x000004B4
_0233D5A0: .word ov06_0233EEEC
arm_func_end ov06_0233D51C
arm_func_start ov06_0233D5A4
ov06_0233D5A4: ; 0x0233D5A4
stmdb sp!, {r4, lr}
sub sp, sp, #8
ldr r0, _0233DC74 ; =ov06_0233EEEC
ldr r1, _0233DC78 ; =0x00003001
ldr r3, [r0]
ldr r2, [r3, #0xc]
cmp r2, r1
bgt _0233D630
bge _0233D9D0
sub r0, r1, #0x2000
cmp r2, r0
bgt _0233D608
bge _0233D848
cmp r2, #3
bgt _0233D5FC
cmp r2, #0
addge pc, pc, r2, lsl #2
b _0233DC68
_0233D5EC: ; jump table
b _0233D690 ; case 0
b _0233D718 ; case 1
b _0233D7D4 ; case 2
b _0233D7F0 ; case 3
_0233D5FC:
cmp r2, #0x1000
beq _0233D80C
b _0233DC68
_0233D608:
sub r0, r1, #0x1000
cmp r2, r0
bgt _0233D624
bge _0233D918
cmp r2, #0x2000
beq _0233D8DC
b _0233DC68
_0233D624:
cmp r2, #0x3000
beq _0233D9B8
b _0233DC68
_0233D630:
add r0, r1, #0x2000
cmp r2, r0
bgt _0233D668
bge _0233DB00
add r0, r1, #0x1000
cmp r2, r0
bgt _0233D65C
bge _0233DA68
cmp r2, #0x4000
beq _0233DA54
b _0233DC68
_0233D65C:
cmp r2, #0x5000
beq _0233DAEC
b _0233DC68
_0233D668:
add r0, r1, #0x3000
cmp r2, r0
bgt _0233D684
bge _0233DB9C
cmp r2, #0x6000
beq _0233DB80
b _0233DC68
_0233D684:
cmp r2, r1, lsl #1
beq _0233DBD4
b _0233DC68
_0233D690:
bl ov01_0232E94C
cmp r0, #0
bne _0233DC68
bl ov01_0232F3F4
bl ov06_0233CA80
bl CountJobListMissions
cmp r0, #0
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #3
ldrne r0, _0233DC74 ; =ov06_0233EEEC
movne r1, #0
ldr r0, [r0]
strb r1, [r0, #0x10]
mov r0, #0
bl ov01_02337614
ldr r2, _0233DC7C ; =ov06_0233ED68
ldr r1, _0233DC74 ; =ov06_0233EEEC
ldr r2, [r2, r0, lsl #3]
ldr r0, [r1]
ldr r3, _0233DC80 ; =ov06_0233ED64
str r2, [r0, #0x14]
ldr r2, _0233DC84 ; =0x00003787
str r3, [sp]
str r2, [sp, #4]
ldr r3, [r1]
mov r0, #0
ldr r2, _0233DC88 ; =0x00000233
mov r1, r0
add r3, r3, #0x14
bl ov06_0233CD68
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #1
ldr r0, [r0]
str r1, [r0, #0xc]
_0233D718:
bl ov06_0233CD94
mov r4, r0
bl ov06_02046BA0
mov r0, r0, lsl #0x18
mov r1, r0, asr #0x18
mov r0, #0
bl ov01_02337624
cmp r4, #1
bne _0233D758
mov r0, #0
bl ov06_0233CA98
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0x1000
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233D758:
cmp r4, #2
bne _0233D7BC
bl sub_0204E210
cmp r0, #1
bne _0233D7A0
bl GetAdventureLogDungeonFloor
ldrb r0, [r0]
bl DungeonRequestsDoneWrapper
cmp r0, #8
blt _0233D7A0
ldr r1, _0233DC8C ; =0x0000378A
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #2
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233D7A0:
mov r0, #1
bl ov06_0233CA98
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0x2000
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233D7BC:
cmp r4, #0x12
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #3
ldreq r0, [r0]
streq r1, [r0, #0xc]
b _0233DC68
_0233D7D4:
bl ov06_0233CDE4
cmp r0, #0x12
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0
ldreq r0, [r0]
streq r1, [r0, #0xc]
b _0233DC68
_0233D7F0:
bl ov01_0232E94C
cmp r0, #0
bne _0233DC68
mov r0, #0x12
bl ov01_023310B8
mov r0, #3
b _0233DC6C
_0233D80C:
bl ov01_0232E94C
cmp r0, #0
bne _0233DC68
mov r0, #1
bl ov01_02337614
str r0, [sp]
mov r0, #0
ldr r2, _0233DC90 ; =ov06_0233ED84
ldr r3, _0233DC94 ; =0x0000378B
mov r1, r0
bl ov06_0233CD54
ldr r0, _0233DC74 ; =ov06_0233EEEC
ldr r1, _0233DC98 ; =0x00001001
ldr r0, [r0]
str r1, [r0, #0xc]
_0233D848:
bl ov06_0233CD94
mov r4, r0
bl ov06_02046BA0
mov r0, r0, lsl #0x18
mov r1, r0, asr #0x18
mov r0, #1
bl ov01_02337624
cmp r4, #0xd
bne _0233D894
mov r0, #0
bl ov06_0233CAB8
ldr r1, _0233DC9C ; =0x0000378F
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0x6000
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233D894:
cmp r4, #0xf
bne _0233D8C4
mov r0, #1
bl ov06_0233CAB8
ldr r1, _0233DCA0 ; =0x00003790
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0x6000
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233D8C4:
cmp r4, #0x12
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0
ldreq r0, [r0]
streq r1, [r0, #0xc]
b _0233DC68
_0233D8DC:
bl ov01_0232E94C
cmp r0, #0
bne _0233DC68
mov r0, #2
bl ov01_02337614
str r0, [sp]
mov r0, #0
ldr r2, _0233DCA4 ; =ov06_0233EDA4
ldr r3, _0233DCA8 ; =0x00003794
mov r1, r0
bl ov06_0233CD54
ldr r0, _0233DC74 ; =ov06_0233EEEC
ldr r1, _0233DCAC ; =0x00002001
ldr r0, [r0]
str r1, [r0, #0xc]
_0233D918:
bl ov06_0233CD94
mov r4, r0
bl ov06_02046BA0
mov r0, r0, lsl #0x18
mov r1, r0, asr #0x18
mov r0, #2
bl ov01_02337624
cmp r4, #0xd
bne _0233D958
mov r0, #0
bl ov06_0233CAB8
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0x3000
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233D958:
cmp r4, #0xe
bne _0233D97C
mov r0, #2
bl ov06_0233CAB8
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0x4000
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233D97C:
cmp r4, #0xf
bne _0233D9A0
mov r0, #1
bl ov06_0233CAB8
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0x5000
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233D9A0:
cmp r4, #0x12
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0
ldreq r0, [r0]
streq r1, [r0, #0xc]
b _0233DC68
_0233D9B8:
ldrsh r0, [r3, #0xb0]
bl sub_02069D40
ldr r0, _0233DC74 ; =ov06_0233EEEC
ldr r1, _0233DC78 ; =0x00003001
ldr r0, [r0]
str r1, [r0, #0xc]
_0233D9D0:
bl sub_02003BFC
bl sub_02069DC0
cmp r0, #1
bne _0233DA1C
bl sub_02069D94
bl ov06_0233CAA8
cmp r0, #0
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0x1000
ldreq r0, [r0]
streq r1, [r0, #0xc]
beq _0233DC68
bl ov06_0233CAA8
cmp r0, #1
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0x2000
ldreq r0, [r0]
streq r1, [r0, #0xc]
b _0233DC68
_0233DA1C:
cmp r0, #2
bne _0233DA3C
bl sub_02069D94
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233DA3C:
cmp r0, #3
bne _0233DC68
bl sub_02069D94
bl sub_0204A018
mov r0, #3
b _0233DC6C
_0233DA54:
bl ov06_0233DCF8
ldr r0, _0233DC74 ; =ov06_0233EEEC
ldr r1, _0233DCB0 ; =0x00004001
ldr r0, [r0]
str r1, [r0, #0xc]
_0233DA68:
bl sub_02003BFC
bl ov06_0233DD7C
cmp r0, #1
bne _0233DAB4
bl ov06_0233DD40
bl ov06_0233CAA8
cmp r0, #0
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0x1000
ldreq r0, [r0]
streq r1, [r0, #0xc]
beq _0233DC68
bl ov06_0233CAA8
cmp r0, #1
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0x2000
ldreq r0, [r0]
streq r1, [r0, #0xc]
b _0233DC68
_0233DAB4:
cmp r0, #2
bne _0233DAD4
bl ov06_0233DD40
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233DAD4:
cmp r0, #3
bne _0233DC68
bl ov06_0233DD40
bl sub_0204A018
mov r0, #3
b _0233DC6C
_0233DAEC:
bl ov06_0233CDFC
ldr r0, _0233DC74 ; =ov06_0233EEEC
ldr r1, _0233DCB4 ; =0x00005001
ldr r0, [r0]
str r1, [r0, #0xc]
_0233DB00:
bl ov06_0233CE60
cmp r0, #1
bne _0233DB48
bl ov06_0233CE34
bl ov06_0233CAA8
cmp r0, #0
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0x1000
ldreq r0, [r0]
streq r1, [r0, #0xc]
beq _0233DC68
bl ov06_0233CAA8
cmp r0, #1
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0x2000
ldreq r0, [r0]
streq r1, [r0, #0xc]
b _0233DC68
_0233DB48:
cmp r0, #2
bne _0233DB68
bl ov06_0233CE34
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233DB68:
cmp r0, #3
bne _0233DC68
bl ov06_0233CE34
bl sub_0204A018
mov r0, #3
b _0233DC6C
_0233DB80:
bl ov06_0233CDE4
cmp r0, #0x12
ldreq r0, _0233DC74 ; =ov06_0233EEEC
ldreq r1, _0233DCB8 ; =0x00006001
ldreq r0, [r0]
streq r1, [r0, #0xc]
b _0233DC68
_0233DB9C:
bl sub_02046D20
bl ov06_0233CAC8
cmp r0, #1
bne _0233DBB8
mov r0, #0x10
bl sub_020668B4
b _0233DBC0
_0233DBB8:
mov r0, #0xf
bl sub_020668B4
_0233DBC0:
ldr r0, _0233DC74 ; =ov06_0233EEEC
ldr r1, _0233DCBC ; =0x00006002
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233DBD4:
bl sub_02066A44
mvn r1, #0
cmp r0, r1
bne _0233DBFC
bl sub_02067664
ldr r0, _0233DC74 ; =ov06_0233EEEC
mov r1, #0x1000
ldr r0, [r0]
str r1, [r0, #0xc]
b _0233DC68
_0233DBFC:
cmp r0, #1
bne _0233DC68
bl sub_020674CC
ldr r1, _0233DC74 ; =ov06_0233EEEC
ldr r1, [r1]
strh r0, [r1, #0xb0]
bl sub_02067664
bl ov06_0233CAC8
cmp r0, #0
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0x3000
ldreq r0, [r0]
streq r1, [r0, #0xc]
beq _0233DC68
bl ov06_0233CAC8
cmp r0, #2
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0x4000
ldreq r0, [r0]
streq r1, [r0, #0xc]
beq _0233DC68
bl ov06_0233CAC8
cmp r0, #1
ldreq r0, _0233DC74 ; =ov06_0233EEEC
moveq r1, #0x1000
ldreq r0, [r0]
streq r1, [r0, #0xc]
_0233DC68:
mov r0, #1
_0233DC6C:
add sp, sp, #8
ldmia sp!, {r4, pc}
.align 2, 0
#if defined(EUROPE)
#define OV06_0233D5A4_OFFSET 2
#elif defined(JAPAN)
#define OV06_0233D5A4_OFFSET -0x37E
#else
#define OV06_0233D5A4_OFFSET 0
#endif
_0233DC74: .word ov06_0233EEEC
_0233DC78: .word 0x00003001
_0233DC7C: .word ov06_0233ED68
_0233DC80: .word ov06_0233ED64
_0233DC84: .word 0x00003787 + OV06_0233D5A4_OFFSET
_0233DC88: .word 0x00000233
_0233DC8C: .word 0x0000378A + OV06_0233D5A4_OFFSET
_0233DC90: .word ov06_0233ED84
_0233DC94: .word 0x0000378B + OV06_0233D5A4_OFFSET
_0233DC98: .word 0x00001001
_0233DC9C: .word 0x0000378F + OV06_0233D5A4_OFFSET
_0233DCA0: .word 0x00003790 + OV06_0233D5A4_OFFSET
_0233DCA4: .word ov06_0233EDA4
_0233DCA8: .word 0x00003794 + OV06_0233D5A4_OFFSET
_0233DCAC: .word 0x00002001
_0233DCB0: .word 0x00004001
_0233DCB4: .word 0x00005001
_0233DCB8: .word 0x00006001
_0233DCBC: .word 0x00006002
arm_func_end ov06_0233D5A4
arm_func_start ov06_0233DCC0
ov06_0233DCC0: ; 0x0233DCC0
stmdb sp!, {r3, lr}
ldr r0, _0233DCF4 ; =ov06_0233EEEC
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl sub_02046D20
ldr r0, _0233DCF4 ; =ov06_0233EEEC
ldr r0, [r0]
bl MemFree
ldr r0, _0233DCF4 ; =ov06_0233EEEC
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0233DCF4: .word ov06_0233EEEC
arm_func_end ov06_0233DCC0
arm_func_start ov06_0233DCF8
ov06_0233DCF8: ; 0x0233DCF8
stmdb sp!, {r3, lr}
mov r0, #0x228
mov r1, #8
bl MemAlloc
ldr r2, _0233DD3C ; =ov06_0233EEC8
mov r1, #0x228
str r0, [r2]
bl MemZero
ldr r0, _0233DD3C ; =ov06_0233EEC8
mov r2, #0
ldr r1, [r0]
str r2, [r1]
ldr r1, [r0]
strb r2, [r1, #0x21c]
ldr r0, [r0]
strb r2, [r0, #0x224]
ldmia sp!, {r3, pc}
.align 2, 0
_0233DD3C: .word ov06_0233EEC8
arm_func_end ov06_0233DCF8
arm_func_start ov06_0233DD40
ov06_0233DD40: ; 0x0233DD40
stmdb sp!, {r3, lr}
ldr r0, _0233DD78 ; =ov06_0233EEC8
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
mov r0, #1
bl ov00_022BCBAC
ldr r0, _0233DD78 ; =ov06_0233EEC8
ldr r0, [r0]
bl MemFree
ldr r0, _0233DD78 ; =ov06_0233EEC8
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0233DD78: .word ov06_0233EEC8
arm_func_end ov06_0233DD40
arm_func_start ov06_0233DD7C
ov06_0233DD7C: ; 0x0233DD7C
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x40
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E8E4 ; =0x00004003
ldr r3, [r0]
ldr r2, [r3]
cmp r2, r1
bgt _0233DE28
bge _0233E7DC
ldr r0, _0233E8E8 ; =0x00001005
cmp r2, r0
bgt _0233DDFC
sub r0, r0, #4
subs r0, r2, r0
addpl pc, pc, r0, lsl #2
b _0233DDD0
_0233DDBC: ; jump table
b _0233DEEC ; case 0
b _0233DF44 ; case 1
b _0233DF98 ; case 2
b _0233E16C ; case 3
b _0233E1C0 ; case 4
_0233DDD0:
cmp r2, #1
bgt _0233DDF0
cmp r2, #0
blt _0233E8D4
beq _0233DE80
cmp r2, #1
beq _0233DEB8
b _0233E8D4
_0233DDF0:
cmp r2, #0x1000
beq _0233DED4
b _0233E8D4
_0233DDFC:
sub r0, r1, #2
cmp r2, r0
bgt _0233DE18
bge _0233E768
cmp r2, #0x4000
beq _0233E700
b _0233E8D4
_0233DE18:
sub r0, r1, #1
cmp r2, r0
beq _0233E734
b _0233E8D4
_0233DE28:
cmp r2, #0x6000
bgt _0233DE54
bge _0233E86C
add r0, r1, #1
cmp r2, r0
bgt _0233DE48
beq _0233E844
b _0233E8D4
_0233DE48:
cmp r2, #0x5000
beq _0233E1E4
b _0233E8D4
_0233DE54:
ldr r0, _0233E8EC ; =0x00006002
cmp r2, r0
bgt _0233DE74
bge _0233E8A4
sub r0, r0, #1
cmp r2, r0
beq _0233E890
b _0233E8D4
_0233DE74:
cmp r2, #0x8000
beq _0233E858
b _0233E8D4
_0233DE80:
bl sub_0204A1CC
bl ov00_022BCA80
cmp r0, #3
ldrne r0, _0233E8E0 ; =ov06_0233EEC8
movne r1, #0x1000
ldrne r0, [r0]
strne r1, [r0]
bne _0233E8D4
bl ov01_02339888
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #1
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233DEB8:
bl ov01_023398A4
cmp r0, #0
ldrne r0, _0233E8E0 ; =ov06_0233EEC8
movne r1, #0x1000
ldrne r0, [r0]
strne r1, [r0]
b _0233E8D4
_0233DED4:
bl ov01_02338A24
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E8F0 ; =0x00001001
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233DEEC:
bl ov01_02338EC4
cmp r0, #1
beq _0233DF2C
cmp r0, #4
beq _0233DF0C
cmp r0, #8
beq _0233DF2C
b _0233E8D4
_0233DF0C:
ldr r1, _0233E8F4 ; =0x000037A1
mov r0, #0
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E8F8 ; =0x00001002
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233DF2C:
bl ov01_02338B08
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #0x6000
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233DF44:
bl ov06_0233CDE4
mov r4, r0
bl ov01_02338EC4
cmp r0, #5
bne _0233DF74
bl sub_02046D20
bl ov01_02338C34
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E8E8 ; =0x00001005
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233DF74:
cmp r4, #0x12
bne _0233E8D4
mov r0, #0
bl ov01_02338E48
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E8FC ; =0x00001003
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233DF98:
bl ov01_02338EC4
cmp r0, #4
bne _0233E148
bl ov01_02338E54
mov r8, r0
cmp r8, #0
bgt _0233DFD4
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r3, #0
ldr r2, [r0]
mov r1, #0x5000
str r3, [r2, #4]
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233DFD4:
mov sl, #0
mov sb, sl
mov r6, sl
mov r5, #0xff
ldr fp, _0233E900 ; =0x50443357
ldr r4, _0233E8E0 ; =ov06_0233EEC8
b _0233E0F4
_0233DFF0:
mov r0, sb
add r1, sp, #8
bl ov01_02338E68
mov r7, r0
ldr r0, [r7]
cmp r0, fp
beq _0233E018
ldr r0, _0233E904 ; =ov06_0233EDD4
bl Debug_Print0
b _0233E0F0
_0233E018:
ldr r1, [r7, #4]
ldr r0, _0233E908 ; =0x08261522
cmp r1, r0
beq _0233E034
ldr r0, _0233E90C ; =ov06_0233EDFC
bl Debug_Print0
b _0233E0F0
_0233E034:
#ifdef EUROPE
ldr r0, [r7, #0xc]
mov r0, r0, lsl #0x18
mov r0, r0, asr #0x18
bl sub_02020698_EU
cmp r0, #0
bne _0233E050
#else
bl GetLanguageType
ldr r1, [r7, #0xc]
cmp r1, r0
beq _0233E050
#endif
ldr r0, _0233E910 ; =ov06_0233EE24
bl Debug_Print0
b _0233E0F0
_0233E050:
add r0, r7, #0x20
ldr r1, [sp, #8]
sub r1, r1, #0x20
bl sub_02004F80
mov r2, r0
ldr r1, [r7, #8]
cmp r1, r2
beq _0233E07C
ldr r0, _0233E914 ; =ov06_0233EE4C
bl Debug_Print0
b _0233E0F0
_0233E07C:
ldr r2, [sp, #8]
add r1, r7, #0x20
add r0, sp, #0x30
bl sub_02050974
ldr r1, [r4]
add r0, sp, #0x30
add r1, r1, #0x18
add r7, r1, sl, lsl #5
mov r1, r7
mov r2, #0
bl sub_0205FD88
add r0, sp, #0x30
bl sub_020509BC
mov r0, r7
bl IsMissionTypeSpecialEpisode
cmp r0, #0
bne _0233E0EC
mov r0, r7
bl sub_0205D1F4
cmp r0, #0
bne _0233E0EC
ldr r0, _0233E918 ; =ov06_0233EE84
bl Debug_Print0
strb r6, [r7]
strb r5, [r7, #4]
strb r6, [r7, #5]
strb r6, [r7, #0x16]
b _0233E0F0
_0233E0EC:
add sl, sl, #1
_0233E0F0:
add sb, sb, #1
_0233E0F4:
cmp sb, r8
blt _0233DFF0
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, [r0]
str sl, [r1, #0x14]
ldr r2, [r0]
ldr r1, [r2, #0x14]
cmp r1, #0
ble _0233E130
mov r1, #2
str r1, [r2, #4]
ldr r0, [r0]
mov r1, #0x5000
str r1, [r0]
b _0233E8D4
_0233E130:
mov r1, #0
str r1, [r2, #4]
ldr r0, [r0]
mov r1, #0x5000
str r1, [r0]
b _0233E8D4
_0233E148:
cmp r0, #8
cmpne r0, #6
bne _0233E8D4
bl ov01_02338B08
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #0x6000
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233E16C:
bl ov01_02338EC4
cmp r0, #6
bne _0233E1A0
bl ov01_02338B08
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, [r0]
ldrb r0, [r1, #0x21c]
cmp r0, #0
movne r0, #0x4000
strne r0, [r1]
moveq r0, #0x6000
streq r0, [r1]
b _0233E8D4
_0233E1A0:
cmp r0, #8
bne _0233E8D4
bl ov01_02338B08
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #0x6000
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233E1C0:
bl ov01_02338EC4
cmp r0, #0
beq _0233E8D4
bl ov01_02338B08
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #0x6000
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233E1E4:
ldr r0, [r3, #4]
cmp r0, #9
addls pc, pc, r0, lsl #2
b _0233E69C
_0233E1F4: ; jump table
b _0233E21C ; case 0
b _0233E248 ; case 1
b _0233E2D8 ; case 2
b _0233E2F8 ; case 3
b _0233E314 ; case 4
b _0233E348 ; case 5
b _0233E508 ; case 6
b _0233E5A4 ; case 7
b _0233E5E8 ; case 8
b _0233E600 ; case 9
_0233E21C:
#if defined(EUROPE)
mov r0, #0x1c
rsb r1, r0, #0x37c0
#elif defined(JAPAN)
mov r0, #0x1c
rsb r1, r0, #0x3440
#else
ldr r1, _0233E91C ; =0x000037A2
mov r0, #0x1c
#endif
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r3, _0233E920 ; =0x00002A30
ldr r2, [r0]
mov r1, #1
str r3, [r2, #0x220]
ldr r0, [r0]
str r1, [r0, #4]
b _0233E69C
_0233E248:
add r1, sp, #4
mov r0, #0
bl GetHeldButtons
bl IsTouchScreenNotOff
cmp r0, #0
moveq r0, #0
beq _0233E27C
add r0, sp, #0xc
bl GetReleasedStylus
add r0, sp, #0xc
mov r1, #1
mov r2, #0
bl sub_02006C8C
_0233E27C:
ldrh r1, [sp, #4]
cmp r1, #0
cmpeq r0, #0
ldrne r0, _0233E8E0 ; =ov06_0233EEC8
ldrne r1, _0233E920 ; =0x00002A30
ldrne r0, [r0]
strne r1, [r0, #0x220]
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, [r0]
ldr r0, [r1, #0x220]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r1, #0x220]
bl ov06_0233CDE4
cmp r0, #0x12
beq _0233E2D0
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r0, [r0]
ldr r0, [r0, #0x220]
cmp r0, #0
bgt _0233E69C
_0233E2D0:
mov r4, #1
b _0233E6A0
_0233E2D8:
#ifdef NORTH_AMERICA
sub r1, r1, #0x860
#else
ldr r1, _0233F0AC ; =0x000037A5
#endif
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #3
ldr r0, [r0]
str r1, [r0, #4]
b _0233E69C
_0233E2F8:
bl ov06_0233CDE4
cmp r0, #0x12
ldreq r0, _0233E8E0 ; =ov06_0233EEC8
moveq r1, #4
ldreq r0, [r0]
streq r1, [r0, #4]
b _0233E69C
_0233E314:
bl sub_02046D20
ldr r1, _0233E8E0 ; =ov06_0233EEC8
mov r0, #0x14
ldr r1, [r1]
sub r3, r0, #0x15
ldr r2, [r1, #0x14]
add r1, r1, #0x18
bl sub_02066990
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #5
ldr r0, [r0]
str r1, [r0, #4]
b _0233E69C
_0233E348:
bl sub_02066A44
mvn r1, #0
cmp r0, r1
bne _0233E390
bl sub_02067664
mov r0, #4
bl ov01_02337614
str r0, [sp]
mov r0, #0
ldr r2, _0233E924 ; =ov06_0233ED4C
ldr r3, _0233E928 ; =0x000037A4
mov r1, r0
bl ov06_0233CD54
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #7
ldr r0, [r0]
str r1, [r0, #4]
b _0233E69C
_0233E390:
cmp r0, #1
bne _0233E69C
bl sub_020674CC
ldr r1, _0233E8E0 ; =ov06_0233EEC8
ldr r1, [r1]
str r0, [r1, #0x218]
bl sub_02067664
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, [r0]
ldr r0, [r1, #0x218]
add r1, r1, #0x18
add r0, r1, r0, lsl #5
bl IsMissionTypeSpecialEpisode
cmp r0, #0
beq _0233E478
mov r0, #2
bl IsSpecialEpisodeOpen
cmp r0, #0
beq _0233E418
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E92C ; =0x000037A8
ldr r2, [r0]
mov r3, #0
mov r0, #0x1c
strb r3, [r2, #0x21c]
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r3, _0233E920 ; =0x00002A30
ldr r2, [r0]
mov r1, #6
str r3, [r2, #0x220]
ldr r0, [r0]
str r1, [r0, #4]
b _0233E69C
_0233E418:
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #1
ldr r2, [r0]
mov r0, #2
strb r1, [r2, #0x21c]
bl SetSpecialEpisodeOpen
ldr r1, _0233E930 ; =0x000037A5
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #0
ldr r2, [r0]
ldr r0, [r2, #0x218]
add r2, r2, #0x18
add r0, r2, r0, lsl #5
bl CreateJobSummary
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r3, _0233E920 ; =0x00002A30
ldr r2, [r0]
mov r1, #6
str r3, [r2, #0x220]
ldr r0, [r0]
str r1, [r0, #4]
b _0233E69C
_0233E478:
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, [r0]
ldr r0, [r1, #0x218]
add r1, r1, #0x18
add r0, r1, r0, lsl #5
bl AddMissionToJobList
cmp r0, #0
ldrne r0, _0233E8E0 ; =ov06_0233EEC8
movne r1, #8
ldrne r0, [r0]
strne r1, [r0, #4]
bne _0233E69C
bl sub_0205F5A8
bl sub_0205F710
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E930 ; =0x000037A5
ldr r2, [r0]
mov r3, #1
mov r0, #0x1c
strb r3, [r2, #0x21c]
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #0
ldr r2, [r0]
ldr r0, [r2, #0x218]
add r2, r2, #0x18
add r0, r2, r0, lsl #5
bl CreateJobSummary
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r3, _0233E920 ; =0x00002A30
ldr r2, [r0]
mov r1, #6
str r3, [r2, #0x220]
ldr r0, [r0]
str r1, [r0, #4]
b _0233E69C
_0233E508:
add r1, sp, #4
mov r0, #0
bl GetHeldButtons
bl IsTouchScreenNotOff
cmp r0, #0
moveq r0, #0
beq _0233E53C
add r0, sp, #0xc
bl GetReleasedStylus
add r0, sp, #0xc
mov r1, #1
mov r2, #0
bl sub_02006C8C
_0233E53C:
ldrh r1, [sp, #4]
cmp r1, #0
cmpeq r0, #0
ldrne r0, _0233E8E0 ; =ov06_0233EEC8
ldrne r1, _0233E920 ; =0x00002A30
ldrne r0, [r0]
strne r1, [r0, #0x220]
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, [r0]
ldr r0, [r1, #0x220]
cmp r0, #0
subgt r0, r0, #1
strgt r0, [r1, #0x220]
bl ov06_0233CDE4
mov r4, r0
bl sub_020698B8
cmp r4, #0x12
beq _0233E598
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r0, [r0]
ldr r0, [r0, #0x220]
cmp r0, #0
bgt _0233E69C
_0233E598:
bl sub_02069904
mov r4, #1
b _0233E6A0
_0233E5A4:
bl ov06_0233CD94
mov r4, r0
bl ov06_02046BA0
mov r0, r0, lsl #0x18
mov r1, r0, asr #0x18
mov r0, #4
bl ov01_02337624
cmp r4, #0x10
moveq r4, #1
beq _0233E6A0
sub r0, r4, #0x11
cmp r0, #1
ldrls r0, _0233E8E0 ; =ov06_0233EEC8
movls r1, #4
ldrls r0, [r0]
strls r1, [r0, #4]
b _0233E69C
_0233E5E8:
bl ov06_0233CAD8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #9
ldr r0, [r0]
str r1, [r0, #4]
b _0233E69C
_0233E600:
bl ov06_0233CB3C
cmp r0, #2
bne _0233E688
bl ov06_0233CB10
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, [r0]
ldr r0, [r1, #0x218]
add r1, r1, #0x18
add r0, r1, r0, lsl #5
bl AddMissionToJobList
bl sub_0205F5A8
bl sub_0205F710
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E930 ; =0x000037A5
ldr r2, [r0]
mov r3, #1
mov r0, #0x1c
strb r3, [r2, #0x21c]
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #0
ldr r2, [r0]
ldr r0, [r2, #0x218]
add r2, r2, #0x18
add r0, r2, r0, lsl #5
bl CreateJobSummary
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r3, _0233E920 ; =0x00002A30
ldr r2, [r0]
mov r1, #6
str r3, [r2, #0x220]
ldr r0, [r0]
str r1, [r0, #4]
b _0233E69C
_0233E688:
cmp r0, #1
bne _0233E69C
bl ov06_0233CB10
mov r4, #1
b _0233E6A0
_0233E69C:
mov r4, #0
_0233E6A0:
bl ov01_02338EC4
cmp r0, #5
bne _0233E6D8
bl sub_02067664
bl ov06_0233CB10
bl sub_02069904
bl sub_02046BB4
bl sub_02046D20
bl ov01_02338C34
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E8E8 ; =0x00001005
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233E6D8:
cmp r4, #1
bne _0233E8D4
mov r0, #1
mov r1, #0
bl ov01_02338BEC
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E934 ; =0x00001004
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233E700:
bl ov00_022BD780
ldr r1, _0233E938 ; =0x0000023B
mov r0, #0
bl ov06_0233CDC8
ldr r1, _0233E8E0 ; =ov06_0233EEC8
ldr r3, _0233E93C ; =0x00004002
ldr r2, [r1]
mov r0, #0
str r3, [r2]
ldr r1, [r1]
strb r0, [r1, #0x224]
bl ov00_022BD264
b _0233E8D4
_0233E734:
bl ov06_0233CDE4
cmp r0, #0x12
bne _0233E8D4
mov r0, #0xe0
mov r1, #0x88
mov r2, #1
bl sub_02029F88
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E940 ; =0x00004001
ldr r0, [r0]
str r1, [r0]
bl sub_02003B94
b _0233E8D4
_0233E768:
mov r0, #3
bl NoteSaveBase
mov r4, r0
bl sub_02003BC8
bl sub_02029FBC
cmp r4, #0
bne _0233E7B0
#ifdef JAPAN
ldr r1, _023401C8 ; =0x000004CD
mov r0, #0x1c
#else
mov r0, #0x1c
mov r1, #0x23c
#endif
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r3, _0233E8E4 ; =0x00004003
ldr r2, [r0]
mov r1, #1
str r3, [r2]
ldr r0, [r0]
strb r1, [r0, #0x224]
b _0233E8D4
_0233E7B0:
cmp r4, #1
moveq r0, #3
beq _0233E8D8
ldr r1, _0233E944 ; =0x00000239
mov r0, #0x1c
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E948 ; =0x00004004
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233E7DC:
bl ov06_0233CDE4
cmp r0, #0x12
bne _0233E8D4
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, [r0]
ldr r0, [r1, #0x218]
add r1, r1, #0x18
add r0, r1, r0, lsl #5
bl IsMissionTypeSpecialEpisode
cmp r0, #0
mov r0, #0x1c
beq _0233E828
ldr r1, _0233E94C ; =0x0000379E
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #0x8000
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233E828:
ldr r1, _0233E950 ; =0x000037A6
bl ov06_0233CDC8
ldr r0, _0233E8E0 ; =ov06_0233EEC8
mov r1, #0x8000
ldr r0, [r0]
str r1, [r0]
b _0233E8D4
_0233E844:
bl ov06_0233CDE4
cmp r0, #0x12
bne _0233E8D4
mov r0, #2
b _0233E8D8
_0233E858:
bl ov06_0233CDE4
cmp r0, #0x12
bne _0233E8D4
mov r0, #2
b _0233E8D8
_0233E86C:
bl ov00_022BD274
cmp r0, #0
ldrne r0, _0233E8E0 ; =ov06_0233EEC8
ldrne r1, _0233E954 ; =0x00006001
ldrne r0, [r0]
strne r1, [r0]
bne _0233E8D4
mov r0, #1
b _0233E8D8
_0233E890:
bl ov01_0233769C
ldr r0, _0233E8E0 ; =ov06_0233EEC8
ldr r1, _0233E8EC ; =0x00006002
ldr r0, [r0]
str r1, [r0]
_0233E8A4:
bl ov01_02337718
cmp r0, #1
cmpne r0, #3
bne _0233E8C0
bl ov01_023376DC
mov r0, #1
b _0233E8D8
_0233E8C0:
cmp r0, #2
bne _0233E8D4
bl ov01_023376DC
mov r0, #3
b _0233E8D8
_0233E8D4:
mov r0, #0
_0233E8D8:
add sp, sp, #0x40
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
#if defined(EUROPE)
#define OV06_0233DD7C_OFFSET 2
#elif defined(JAPAN)
#define OV06_0233DD7C_OFFSET -0x37E
#else
#define OV06_0233DD7C_OFFSET 0
#endif
_0233E8E0: .word ov06_0233EEC8
_0233E8E4: .word 0x00004003
_0233E8E8: .word 0x00001005
_0233E8EC: .word 0x00006002
_0233E8F0: .word 0x00001001
_0233E8F4: .word 0x000037A1 + OV06_0233DD7C_OFFSET
_0233E8F8: .word 0x00001002
_0233E8FC: .word 0x00001003
_0233E900: .word 0x50443357
_0233E904: .word ov06_0233EDD4
_0233E908: .word 0x08261522
_0233E90C: .word ov06_0233EDFC
_0233E910: .word ov06_0233EE24
_0233E914: .word ov06_0233EE4C
_0233E918: .word ov06_0233EE84
#ifdef NORTH_AMERICA
_0233E91C: .word 0x000037A2
_0233E920: .word 0x00002A30
#else
_0233E920: .word 0x00002A30
_0233F0AC: .word 0x000037A3 + OV06_0233DD7C_OFFSET
#endif
_0233E924: .word ov06_0233ED4C
_0233E928: .word 0x000037A4 + OV06_0233DD7C_OFFSET
_0233E92C: .word 0x000037A8 + OV06_0233DD7C_OFFSET
_0233E930: .word 0x000037A5 + OV06_0233DD7C_OFFSET
_0233E934: .word 0x00001004
#ifdef JAPAN
_0233E938: .word 0x000004CC
#else
_0233E938: .word 0x0000023B
#endif
_0233E93C: .word 0x00004002
_0233E940: .word 0x00004001
#ifdef JAPAN
_023401C8: .word 0x000004CD
_0233E944: .word 0x000004CA
#else
_0233E944: .word 0x00000239
#endif
_0233E948: .word 0x00004004
_0233E94C: .word 0x0000379E + OV06_0233DD7C_OFFSET
_0233E950: .word 0x000037A6 + OV06_0233DD7C_OFFSET
_0233E954: .word 0x00006001
arm_func_end ov06_0233DD7C
arm_func_start ov06_0233E958
ov06_0233E958: ; 0x0233E958
stmdb sp!, {r3, r4, r5, r6, r7, lr}
mov r0, #0x270
mov r1, #8
bl MemAlloc
ldr r2, _0233EA18 ; =ov06_0233EEF0
mov r1, #0x270
str r0, [r2]
bl MemZero
mov r2, #0
ldr r0, _0233EA18 ; =ov06_0233EEF0
mov r4, r2
_0233E984:
ldr r1, [r0]
add r1, r1, r2
add r2, r2, #1
strb r4, [r1, #4]
cmp r2, #4
blt _0233E984
ldr r0, _0233EA18 ; =ov06_0233EEF0
mvn r1, #0
ldr r3, [r0]
add r2, r3, #4
str r2, [r3, #0x68]
ldr r3, [r0]
add r2, r3, #0x1c8
add r2, r2, #0x1f
bic r2, r2, #0x1f
str r2, [r3, #0x1c4]
ldr r2, [r0]
str r4, [r2]
ldr r0, [r0]
strh r1, [r0, #0xa0]
bl sub_0205B440
ldr r4, _0233EA18 ; =ov06_0233EEF0
mov r6, r0
mov r7, #0
mov r5, #0x20
_0233E9E8:
ldr r0, [r4]
mov r2, r5
add r0, r0, #0xa4
add r0, r0, r7, lsl #5
add r1, r6, r7, lsl #5
bl MemcpySimple
add r7, r7, #1
cmp r7, #9
blt _0233E9E8
bl sub_02046D20
mov r0, #1
ldmia sp!, {r3, r4, r5, r6, r7, pc}
.align 2, 0
_0233EA18: .word ov06_0233EEF0
arm_func_end ov06_0233E958
arm_func_start ov06_0233EA1C
ov06_0233EA1C: ; 0x0233EA1C
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x24
ldr r0, _0233ECBC ; =0x0233EEF0
ldr r6, [r0]
ldr r0, [r6]
cmp r0, #7
addls pc, pc, r0, lsl #2
b _0233ECB0
_0233EA3C: ; jump table
b _0233EA5C ; case 0
b _0233EA74 ; case 1
b _0233EA88 ; case 2
b _0233EAC0 ; case 3
b _0233EBB4 ; case 4
b _0233EC04 ; case 5
b _0233EC8C ; case 6
b _0233ECA0 ; case 7
_0233EA5C:
ldr r1, _0233ECC0 ; =0x00003F19
mov r0, #0x1c
bl ov06_0233CDC8
mov r0, #1
str r0, [r6]
b _0233ECB0
_0233EA74:
bl ov06_0233CDE4
cmp r0, #0x12
moveq r0, #2
streq r0, [r6]
b _0233ECB0
_0233EA88:
bl ov01_0232E94C
cmp r0, #0
bne _0233ECB0
mov r0, #3
str r0, [r6]
bl sub_02046D20
ldr r0, _0233ECBC ; =ov06_0233EEF0
mov r2, #9
ldr r0, [r0]
sub r3, r2, #0xa
add r1, r0, #0xa4
mov r0, #0x15
bl sub_02066990
b _0233ECB0
_0233EAC0:
bl sub_02066A44
mvn r1, #0
cmp r0, r1
bne _0233EAE0
bl sub_02067664
mov r0, #7
str r0, [r6]
b _0233ECB0
_0233EAE0:
cmp r0, #1
bne _0233ECB0
add r4, r6, #0x208
add r5, r6, #0x240
bl sub_020674CC
strh r0, [r6, #0xa0]
bl sub_02067664
mov r0, r4
mov r1, #0x38
bl MemZero
mov r0, r5
mov r1, #0x18
bl MemZero
ldrsh r0, [r6, #0xa0]
add sb, r4, #0x18
mov r8, #0x38
add r0, r6, r0, lsl #5
add sl, r0, #0xa4
ldmia sl!, {r0, r1, r2, r3}
stmia sb!, {r0, r1, r2, r3}
ldmia sl, {r0, r1, r2, r3}
stmia sb, {r0, r1, r2, r3}
str r8, [r6, #0x258]
mov r7, #0x18
str r4, [r6, #0x25c]
str r7, [r6, #0x260]
ldr lr, _0233ECC4 ; =ov01_02337B68
str r5, [r6, #0x264]
mov ip, #0
str lr, [r6, #0x268]
strb ip, [r6, #0x26c]
ldr r0, [r6, #0x1c4]
mov fp, #9
strb fp, [r0]
ldr r0, [r6, #0x1c4]
strb ip, [r0, #1]
mov r0, #0x12
strb r0, [r6, #0x208]
mov r0, #0x11
strb r0, [r6, #0x240]
bl GetLanguageType
strb r0, [r5, #2]
ldrsb r1, [r5, #2]
add r0, r4, #4
strb r1, [r4, #2]
bl GetMainTeamNameWithCheck
add r0, r4, #4
mov r1, #0x34
bl ov01_02337B3C
strb r0, [r4, #3]
mov r0, #4
str r0, [r6]
b _0233ECB0
_0233EBB4:
mov r3, #0
add r0, r6, #0x258
mov r4, #1
str r0, [sp, #4]
str r4, [sp]
str r3, [sp, #0x10]
strb r3, [sp, #0x14]
ldr r2, [r6, #0x1c4]
mov r1, #0x20
add r0, sp, #0
str r2, [sp, #0x18]
strh r1, [sp, #0x1c]
strb r3, [sp, #0x1e]
str r4, [sp, #0x20]
bl ov01_02337BA0
mov r0, r4
bl ov01_02337D18
mov r0, #5
str r0, [r6]
b _0233ECB0
_0233EC04:
bl ov01_02337E0C
movs r4, r0
beq _0233ECB0
bl ov01_02337C54
cmp r4, #0xe
addls pc, pc, r4, lsl #2
b _0233ECB0
_0233EC20: ; jump table
b _0233ECB0 ; case 0
b _0233EC68 ; case 1
b _0233ECB0 ; case 2
b _0233ECB0 ; case 3
b _0233EC5C ; case 4
b _0233EC68 ; case 5
b _0233EC68 ; case 6
b _0233EC80 ; case 7
b _0233EC80 ; case 8
b _0233EC80 ; case 9
b _0233EC80 ; case 10
b _0233EC80 ; case 11
b _0233EC80 ; case 12
b _0233EC80 ; case 13
b _0233EC80 ; case 14
_0233EC5C:
mov r0, #4
str r0, [r6]
b _0233ECB0
_0233EC68:
#ifdef EUROPE
mov r0, #0x1c
add r1, r0, #0x3f00
#else
ldr r1, _0233ECC8 ; =0x00003F1A
mov r0, #0x1c
#endif
bl ov06_0233CDC8
mov r0, #6
str r0, [r6]
b _0233ECB0
_0233EC80:
mov r0, #4
str r0, [r6]
b _0233ECB0
_0233EC8C:
bl ov06_0233CDE4
cmp r0, #0x12
moveq r0, #7
streq r0, [r6]
b _0233ECB0
_0233ECA0:
mov r0, #0x12
bl ov01_023310B8
mov r0, #3
b _0233ECB4
_0233ECB0:
mov r0, #1
_0233ECB4:
add sp, sp, #0x24
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
#if defined(EUROPE)
#define OV06_0233EEF0_OFFSET 2
#elif defined(JAPAN)
#define OV06_0233EEF0_OFFSET -0xAD8
#else
#define OV06_0233EEF0_OFFSET 0
#endif
_0233ECBC: .word ov06_0233EEF0
_0233ECC0: .word 0x00003F19 + OV06_0233EEF0_OFFSET
_0233ECC4: .word ov01_02337B68
#ifndef EUROPE
_0233ECC8: .word 0x00003F1A + OV06_0233EEF0_OFFSET
#endif
arm_func_end ov06_0233EA1C
arm_func_start ov06_0233ECCC
ov06_0233ECCC: ; 0x0233ECCC
stmdb sp!, {r3, lr}
ldr r0, _0233ED00 ; =ov06_0233EEF0
ldr r0, [r0]
cmp r0, #0
ldmeqia sp!, {r3, pc}
bl sub_02046D20
ldr r0, _0233ED00 ; =ov06_0233EEF0
ldr r0, [r0]
bl MemFree
ldr r0, _0233ED00 ; =ov06_0233EEF0
mov r1, #0
str r1, [r0]
ldmia sp!, {r3, pc}
.align 2, 0
_0233ED00: .word ov06_0233EEF0
arm_func_end ov06_0233ECCC
; 0x0233ED04
.rodata
.global ov06_0233ED04
ov06_0233ED04:
#if defined(EUROPE)
#define OV06_DATA_OFFSET 2
#elif defined(JAPAN)
#define OV06_DATA_OFFSET -0x37E
#else
#define OV06_DATA_OFFSET 0
#endif
.word 0x379A + OV06_DATA_OFFSET
.byte 0x10, 0x00, 0x00, 0x00
.word 0x379B + OV06_DATA_OFFSET
.byte 0x12, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.global ov06_0233ED1C
ov06_0233ED1C:
.word 0x37AA + OV06_DATA_OFFSET
.byte 0x10, 0x00, 0x00, 0x00
.word 0x37AB + OV06_DATA_OFFSET
.byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.global ov06_0233ED34
ov06_0233ED34:
.word 0x37AD + OV06_DATA_OFFSET
.byte 0x10, 0x00, 0x00, 0x00
.word 0x37AE + OV06_DATA_OFFSET
.byte 0x11, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.global ov06_0233ED4C
ov06_0233ED4C:
.word 0x375A + OV06_DATA_OFFSET
.byte 0x10, 0x00, 0x00, 0x00
.word 0x375B + OV06_DATA_OFFSET
.byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.global ov06_0233ED64
ov06_0233ED64:
.word 0x3788 + OV06_DATA_OFFSET
.global ov06_0233ED68
ov06_0233ED68:
.byte 0x01, 0x00, 0x00, 0x00
.word 0x3789 + OV06_DATA_OFFSET
.byte 0x02, 0x00, 0x00, 0x00
.word 0x3786 + OV06_DATA_OFFSET
.byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.global ov06_0233ED84
ov06_0233ED84:
.word 0x378C + OV06_DATA_OFFSET
.byte 0x0D, 0x00, 0x00, 0x00
.word 0x378D + OV06_DATA_OFFSET
.byte 0x0F, 0x00, 0x00, 0x00
.word 0x378E + OV06_DATA_OFFSET
.byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.global ov06_0233EDA4
ov06_0233EDA4:
.word 0x3795 + OV06_DATA_OFFSET
.byte 0x0D, 0x00, 0x00, 0x00
.word 0x3797 + OV06_DATA_OFFSET
.byte 0x0F, 0x00, 0x00, 0x00
.word 0x3796 + OV06_DATA_OFFSET
.byte 0x0E, 0x00, 0x00, 0x00
.word 0x3798 + OV06_DATA_OFFSET
.byte 0x12, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
.global ov06_0233EDCC
ov06_0233EDCC:
.byte 0x0A, 0x00, 0x00, 0x00
.global ov06_0233EDD0
ov06_0233EDD0:
.byte 0x25, 0x63, 0x00, 0x00
.global ov06_0233EDD4
ov06_0233EDD4:
.byte 0x4D, 0x79, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6F, 0x75, 0x73, 0x20, 0x57, 0x69, 0x46, 0x69, 0x3A
.byte 0x20, 0x49, 0x6C, 0x6C, 0x65, 0x67, 0x61, 0x6C, 0x20, 0x49, 0x64, 0x65, 0x6E, 0x74, 0x69, 0x66
.byte 0x69, 0x65, 0x72, 0x0A, 0x00, 0x00, 0x00, 0x00
.global ov06_0233EDFC
ov06_0233EDFC:
.byte 0x4D, 0x79, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6F
.byte 0x75, 0x73, 0x20, 0x57, 0x69, 0x46, 0x69, 0x3A, 0x20, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65
.byte 0x6E, 0x63, 0x65, 0x20, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6F, 0x6E, 0x0A, 0x00, 0x00, 0x00, 0x00
.global ov06_0233EE24
ov06_0233EE24:
.byte 0x4D, 0x79, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6F, 0x75, 0x73, 0x20, 0x57, 0x69, 0x46, 0x69, 0x3A
.byte 0x20, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6E, 0x63, 0x65, 0x20, 0x4C, 0x61, 0x6E, 0x67
.byte 0x75, 0x61, 0x67, 0x65, 0x0A, 0x00, 0x00, 0x00
.global ov06_0233EE4C
ov06_0233EE4C:
.byte 0x4D, 0x79, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6F
.byte 0x75, 0x73, 0x20, 0x57, 0x69, 0x46, 0x69, 0x3A, 0x20, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65
.byte 0x6E, 0x63, 0x65, 0x20, 0x43, 0x68, 0x65, 0x63, 0x6B, 0x20, 0x53, 0x75, 0x6D, 0x3A, 0x20, 0x30
.byte 0x78, 0x25, 0x30, 0x38, 0x78, 0x20, 0x30, 0x78, 0x25, 0x30, 0x38, 0x78, 0x0A, 0x00, 0x00, 0x00
.global ov06_0233EE84
ov06_0233EE84:
.byte 0x4D, 0x79, 0x73, 0x74, 0x65, 0x72, 0x69, 0x6F, 0x75, 0x73, 0x20, 0x57, 0x69, 0x46, 0x69, 0x3A
.byte 0x20, 0x49, 0x6C, 0x6C, 0x65, 0x67, 0x61, 0x6C, 0x20, 0x44, 0x61, 0x74, 0x61, 0x0A, 0x00, 0x00
.data
.global ov06_0233EEC0
ov06_0233EEC0:
.byte 0x00, 0x00, 0x00, 0x00
.global ov06_0233EEC4
ov06_0233EEC4:
.byte 0x00, 0x00, 0x00, 0x00
.global ov06_0233EEC8
ov06_0233EEC8:
.byte 0x00, 0x00, 0x00, 0x00
.bss
.global ov06_0233EEE0
ov06_0233EEE0:
.space 0xC
.global ov06_0233EEEC
ov06_0233EEEC:
.space 0x4
.global ov06_0233EEF0
ov06_0233EEF0:
.space 0x10