pmd-sky/asm/overlay_13.s
2025-10-22 21:15:44 -04:00

1700 lines
37 KiB
ArmAsm

.include "asm/macros.inc"
.include "overlay_13.inc"
.text
; https://decomp.me/scratch/Vph2k
arm_func_start Overlay13SwitchFunctionNa238A574
Overlay13SwitchFunctionNa238A574: ; 0x0238A574
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr}
sub sp, sp, #0x178
add r0, sp, #0xb0
bl GetReleasedStylus
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
add r0, r0, #0x3b4
bl InitPortraitParams
ldr r2, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r2]
ldr r1, [r0, #0x20]
cmp r1, #0x41
addls pc, pc, r1, lsl #2
b _0238BD74
_0238A5AC: ; jump table
b _0238A6B4 ; case 0
b _0238A73C ; case 1
b _0238A79C ; case 2
b _0238A8B8 ; case 3
b _0238AA00 ; case 4
b _0238AA28 ; case 5
b _0238AA6C ; case 6
b _0238AC2C ; case 7
b _0238AEF4 ; case 8
b _0238B038 ; case 9
b _0238B4C0 ; case 10
b _0238B0A8 ; case 11
b _0238B0C4 ; case 12
b _0238B4C0 ; case 13
b _0238AE90 ; case 14
b _0238B5A4 ; case 15
b _0238AF38 ; case 16
b _0238B100 ; case 17
b _0238B558 ; case 18
b _0238AE90 ; case 19
b _0238AF44 ; case 20
b _0238B13C ; case 21
b _0238B4C0 ; case 22
b _0238AE90 ; case 23
b _0238B608 ; case 24
b _0238B63C ; case 25
b _0238AF80 ; case 26
b _0238B178 ; case 27
b _0238B488 ; case 28
b _0238AE80 ; case 29
b _0238AFA0 ; case 30
b _0238B1B4 ; case 31
b _0238B488 ; case 32
b _0238AE78 ; case 33
b _0238AFF8 ; case 34
b _0238BD74 ; case 35
b _0238ACC0 ; case 36
b _0238AD00 ; case 37
b _0238ADD4 ; case 38
b _0238AEA8 ; case 39
b _0238B670 ; case 40
b _0238B410 ; case 41
b _0238B6AC ; case 42
b _0238B410 ; case 43
b _0238B878 ; case 44
b _0238BA70 ; case 45
b _0238BCA8 ; case 46
b _0238B6E8 ; case 47
b _0238B230 ; case 48
b _0238B2A4 ; case 49
b _0238B2FC ; case 50
b _0238B32C ; case 51
b _0238B360 ; case 52
b _0238B3D4 ; case 53
b _0238B744 ; case 54
b _0238ADF8 ; case 55
b _0238AE20 ; case 56
b _0238AE68 ; case 57
b _0238BCC8 ; case 58
b _0238B774 ; case 59
b _0238B7C0 ; case 60
b _0238AFBC ; case 61
b _0238B204 ; case 62
b _0238B438 ; case 63
b _0238BCFC ; case 64
b _0238BD1C ; case 65
_0238A6B4:
mov r0, #0x64
bl RandInt
cmp r0, #0x4b
blt _0238A6E0
add r0, sp, #0x14
bl sub_0204A198
ldrb r1, [sp, #0x19]
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
and r1, r1, #0xf
b _0238A6F4
_0238A6E0:
add r0, sp, #0xd4
bl GetDsFirmwareUserSettingsVeneer
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldrb r1, [sp, #0xd5]
ldr r0, [r0]
_0238A6F4:
add r0, r0, #0x400
strh r1, [r0, #0x26]
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r3, #0xe
ldr r1, [r0]
mov r2, #0
strb r3, [r1]
ldr r1, [r0]
str r2, [r1, #0x24]
ldr r1, [r0]
strb r2, [r1, #0x5e]
ldr r1, [r0]
strb r2, [r1, #0x5f]
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238A73C:
ldr r0, _0238B4FC ; =QUIZ_WINDOW_PARAMS_4
bl CreateDialogueBox
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r3, #2
ldr r4, [r1]
mov r2, #0xa
strb r0, [r4, #2]
ldr r0, [r1]
add r1, sp, #0x1c
ldrsb r0, [r0, #2]
str r3, [sp, #0x1c]
str r2, [sp, #0x20]
ldmia r1, {r1, r2}
bl sub_02028770
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
#ifdef JAPAN
ldr r2, _0238CA60 ; =0x000031C4
ldr r0, [r0]
mov r1, #8
#else
mov r1, #8
ldr r0, [r0]
add r2, r1, #0x6c0
#endif
ldrsb r0, [r0, #2]
mov r3, #0
bl ShowStringIdInDialogueBox
mov r0, #2
bl WaitForNextStep
b _0238BD74
_0238A79C:
mov r1, #0x10
strb r1, [r0]
ldr r0, [r2]
ldrsb r0, [r0, #2]
bl sub_0202836C
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl CloseDialogueBox
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, _0238B500 ; =QUIZ_WINDOW_PARAMS_1
ldr r1, [r1]
mvn r2, #1
strb r2, [r1, #2]
bl CreateDialogueBox
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r3, #0
ldr r2, [r1]
mov sb, r3
strb r0, [r2, #2]
ldr r2, [r1]
ldr r0, [r2, #0x20]
add r0, r0, #1
str r0, [r2, #0x20]
add r0, sp, #0x24
_0238A800:
ldr r2, [r1]
add r2, r2, r3
strb sb, [r2, #0x34]
strb sb, [r0, r3]
add r3, r3, #1
cmp r3, #0x10
blt _0238A800
ldr sl, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r5, #1
mov r4, #4
mov r8, #0x10
add r6, sp, #0x24
_0238A830:
mov r0, r8
bl RandInt
mov r7, r0
ldrsb r0, [r6, r7]
cmp r0, #0
bne _0238A830
mov r0, r4
strb r5, [r6, r7]
bl RandInt
ldr r1, [sl]
add r2, r0, r7, lsl #2
add r0, r1, sb
add sb, sb, #1
strb r2, [r0, #0x55]
cmp sb, #8
blt _0238A830
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r3, #0x41
ldr r1, [r0]
mov r2, #0x40
strb r3, [r1, #0x54]
ldr r1, [r0]
mov r0, #0xb
strb r2, [r1, #0x5d]
bl Debug_GetDebugFlag
cmp r0, #0
beq _0238BD74
ldr r0, _0238B504 ; =QUIZ_WINDOW_PARAMS_3
ldr r1, _0238B508 ; =ov13_0238BE6C
bl CreateTextBox
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r1]
strb r0, [r1, #6]
b _0238BD74
_0238A8B8:
ldrsb r0, [r0, #2]
mov r3, #2
mov r2, #0x11
add r1, sp, #0x1c
str r3, [sp, #0x1c]
str r2, [sp, #0x20]
ldmia r1, {r1, r2}
bl sub_02028770
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r3, _0238B50C ; =QUIZ_QUESTION_ANSWER_ASSOCIATIONS
ldr r7, [r0]
mov r2, #0
ldr r4, [r7, #0x24]
ldr r1, _0238B510 ; =QUIZ_QUESTION_STRINGS
add r4, r7, r4
ldrb r4, [r4, #0x54]
mov r4, r4, lsl #1
ldrh r5, [r3, r4]
ldrh r6, [r1, r4]
str r2, [r7, #0x14]
ldr r3, [r0]
mov r1, r6
ldr r2, [r3, #0x14]
and r8, r5, #0xff
str r2, [r3, #0x18]
ldr r3, [r0]
ldr r2, [r3, #0x18]
str r2, [r3, #0x1c]
ldr r0, [r0]
add r0, r0, #0x6c
bl GetStringFromFileVeneer
mov r0, r5, asr #8
ldr r4, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
and r1, r0, #0xff
ldr r2, [r4]
mov r7, #0
strh r6, [r2, #0x60]
ldr r2, [r4]
ldr r5, _0238B514 ; =QUIZ_DEBUG_MENU_ITEMS
add r0, r2, #0x6c
str r0, [r2, #8]
ldr r0, _0238B518 ; =QUIZ_ANSWER_STRINGS
add r6, r0, r1, lsl #1
b _0238A9A4
_0238A968:
mov r0, r7, lsl #1
ldrh sb, [r0, r6]
ldr r0, [r4]
add r0, r0, #0x26c
mov r1, sb
add r0, r0, r7, lsl #6
bl GetStringFromFileVeneer
ldr r2, [r4]
mov r1, r7, lsl #3
add r0, r2, #0x26c
strh sb, [r5, r1]
add r1, r0, r7, lsl #6
add r0, r2, r7, lsl #2
str r1, [r0, #0xc]
add r7, r7, #1
_0238A9A4:
cmp r7, r8
bne _0238A968
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, _0238B514 ; =QUIZ_DEBUG_MENU_ITEMS
mov r2, r8, lsl #3
mov r3, #0
ldr r0, [r0]
strh r3, [r1, r2]
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #4
ldr r2, [r0]
mov r3, #0
ldrsb r0, [r2, #2]
ldrh r2, [r2, #0x60]
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AA00:
ldrsb r0, [r0, #2]
bl IsDialogueBoxActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AA28:
add r4, r0, #0xc
ldr r0, _0238B51C ; =QUIZ_WINDOW_PARAMS_5
ldr r1, _0238B520 ; =0x00300011
ldr r3, _0238B514 ; =QUIZ_DEBUG_MENU_ITEMS
str r4, [r2, #0x18]
mov r4, #0xa
mov r2, #0
str r4, [sp]
bl CreateSimpleMenuFromStringIds
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, [r1]
strb r0, [r2, #3]
ldr r1, [r1]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AA6C:
ldrsb r0, [r0, #3]
bl IsSimpleMenuActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl GetSimpleMenuResult__0202B870
ldr r3, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, [r3]
ldr r1, [r2, #0x24]
cmp r1, #9
bne _0238AB74
strb r0, [r2, #0x5f]
ldr r0, [r3]
ldrb r0, [r0, #0x5e]
cmp r0, #0
bne _0238AAF4
mov r4, #0
ldr r2, _0238B524 ; =QUIZ_MALE_FEMALE_BOOST_TABLE
b _0238AAEC
_0238AAC0:
ldr r1, [r3]
ldrb r0, [r1, #0x5f]
add r0, r2, r0, lsl #2
ldrb r0, [r4, r0]
cmp r0, #0x10
beq _0238AAF4
add r1, r1, r0
ldrb r0, [r1, #0x34]
add r4, r4, #1
add r0, r0, #4
strb r0, [r1, #0x34]
_0238AAEC:
cmp r4, #4
bne _0238AAC0
_0238AAF4:
mov r4, #0
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r3, r4
mov r2, r4
_0238AB04:
ldr r1, [r0]
add r1, r1, r3
strb r2, [r1, #0x44]
ldr r1, [r0]
add r1, r1, r3
ldrb r1, [r1, #0x34]
add r3, r3, #1
cmp r4, r1
movlt r4, r1
cmp r3, #0x10
blt _0238AB04
ldr r6, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r5, #0
mov r7, #0x14
_0238AB3C:
ldr r0, [r6]
add r0, r0, r5
ldrb r0, [r0, #0x34]
cmp r4, r0
bne _0238AB64
mov r0, r7
bl RandInt
ldr r1, [r6]
add r1, r1, r5
strb r0, [r1, #0x44]
_0238AB64:
add r5, r5, #1
cmp r5, #0x10
blt _0238AB3C
b _0238ABF8
_0238AB74:
cmp r1, #0
bne _0238ABA4
strb r0, [r2, #0x5e]
ldr r0, [r3]
mov r1, #0x6f
ldrb r0, [r0, #0x5e]
cmp r0, #0
moveq r2, #1
movne r2, #0
mov r0, #0
bl SaveScriptVariableValue
b _0238ABF8
_0238ABA4:
add r1, r2, r1
ldrb r2, [r1, #0x54]
ldr r1, _0238B50C ; =QUIZ_QUESTION_ANSWER_ASSOCIATIONS
ldr r5, _0238B528 ; =QUIZ_ANSWER_POINTS
mov r2, r2, lsl #1
ldrh r2, [r1, r2]
mov r1, #0
and r4, r2, #0xff00
mov r2, r4, asr #7
add r2, r4, r2, lsr #24
add r0, r0, r2, asr #8
add r5, r5, r0, lsl #4
_0238ABD4:
ldr r2, [r3]
ldrb r0, [r5, r1]
add r4, r2, r1
ldrb r2, [r4, #0x34]
add r1, r1, #1
cmp r1, #0x10
add r0, r2, r0
strb r0, [r4, #0x34]
blt _0238ABD4
_0238ABF8:
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mvn r1, #1
ldr r0, [r0]
ldrsb r0, [r0, #6]
cmp r0, r1
beq _0238AC14
bl ov13_0238BE6C
_0238AC14:
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AC2C:
ldrsb r0, [r0, #2]
bl sub_02027B1C
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl CloseSimpleMenu
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mvn r1, #1
ldr r2, [r0]
strb r1, [r2, #3]
ldr r3, [r0]
ldr r2, [r3, #0x24]
add r2, r2, #1
str r2, [r3, #0x24]
ldr r4, [r0]
ldr r2, [r4, #0x24]
cmp r2, #0xa
bne _0238ACB4
ldr r2, [r4, #0x20]
mov r3, #4
add r2, r2, #1
str r2, [r4, #0x20]
ldr r2, [r0]
str r3, [r2, #0x30]
ldr r0, [r0]
ldrsb r0, [r0, #6]
cmp r0, r1
beq _0238BD74
bl CloseTextBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mvn r1, #1
ldr r0, [r0]
strb r1, [r0, #6]
b _0238BD74
_0238ACB4:
mov r0, #3
str r0, [r4, #0x20]
b _0238BD74
_0238ACC0:
ldrsb r0, [r0, #2]
bl ShowDialogueBox
bl GetPersonality
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
add r0, r0, r0, lsl #1
ldr r3, [r1]
mov r2, r0, lsl #1
ldr r1, _0238B52C ; =STARTERS_STRINGS
ldrsb r0, [r3, #2]
ldrh r2, [r1, r2]
mov r1, #8
mov r3, #0
bl ShowStringIdInDialogueBox
mov r0, #0x25
bl WaitForNextStep
b _0238BD74
_0238AD00:
mov r0, #0
mov r1, #3
mov r2, #1
bl CreatePortraitBox
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, [r1]
strb r0, [r2, #5]
ldr r4, [r1]
bl GetPersonality
mov r3, r0
ldrb r2, [r4, #0x5f]
ldr r1, _0238B530 ; =STARTERS_HERO_IDS
add r0, r4, #0x3b4
add r2, r2, r3, lsl #1
mov r2, r2, lsl #1
ldrsh r1, [r1, r2]
bl InitPortraitParamsWithMonsterId
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #1
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitEmotion
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #4
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitLayout
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldrsb r0, [r1, #5]
add r1, r1, #0x3b4
bl ShowPortraitInPortraitBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r4, [r0]
bl GetPersonality
add r0, r0, r0, lsl #1
add r3, r0, #1
ldrsb r0, [r4, #2]
ldrb r4, [r4, #0x5f]
ldr r2, _0238B52C ; =STARTERS_STRINGS
mov r1, #0x18
add r3, r4, r3
mov r3, r3, lsl #1
ldrh r2, [r2, r3]
mov r3, #0
bl ShowStringIdInDialogueBox
mov r0, #0x26
bl WaitForNextStep
b _0238BD74
_0238ADD4:
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #5]
bl HidePortraitBox
mov r0, #0x27
bl WaitForNextStep
b _0238BD74
_0238ADF8:
ldrsb r0, [r0, #2]
bl sub_0202F2C4
mov r0, #0xb4
bl sub_02017B7C
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AE20:
ldrsb r0, [r0, #2]
bl sub_0202836C
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl CloseDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mvn r3, #1
ldr r2, [r0]
mov r1, #0xf
strb r3, [r2, #2]
ldr r3, [r0]
ldr r2, [r3, #0x20]
add r2, r2, #1
str r2, [r3, #0x20]
ldr r0, [r0]
strb r1, [r0]
b _0238BD74
_0238AE68:
mov r1, #0x13
strb r1, [r0]
bl ov11_0230D71C
b _0238BD74
_0238AE78:
mov r1, #4
strb r1, [r0]
_0238AE80:
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl sub_0202F2C4
_0238AE90:
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AEA8:
ldrsb r0, [r0, #2]
bl sub_0202F2C4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #5]
bl HidePortraitBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #5]
bl ClosePortraitBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mvn r2, #1
ldr r1, [r0]
strb r2, [r1, #5]
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AEF4:
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl sub_0202F2C4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r3, [r0]
ldr r2, [r3, #0x30]
sub r1, r2, #1
str r1, [r3, #0x30]
cmp r2, #0
ldreq r1, [r0]
ldreq r0, [r1, #0x20]
addeq r0, r0, #1
streq r0, [r1, #0x20]
b _0238BD74
_0238AF38:
add r1, r1, #1
str r1, [r0, #0x20]
b _0238BD74
_0238AF44:
ldr r0, _0238B534 ; =0x00002208
bl sub_02017CB4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r2, #3
ldr r1, [r0]
strb r2, [r1]
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl sub_0202F2C4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AF80:
ldrsb r0, [r0, #4]
bl sub_0202F2C4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AFA0:
mov r1, #7
strb r1, [r0]
ldr r1, [r2]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AFBC:
ldr r0, _0238B534 ; =0x00002208
bl sub_02017CB4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r2, #2
ldr r1, [r0]
strb r2, [r1]
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl sub_0202F2C4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238AFF8:
ldrsb r0, [r0, #4]
bl CloseDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
#ifdef JAPAN
mov r1, #8
ldr r0, [r0]
add r2, r1, #0x30c0
#else
ldr r2, _0238B538 ; =0x000005CC
ldr r0, [r0]
mov r1, #8
#endif
ldrsb r0, [r0, #2]
mov r3, #0
bl ShowStringIdInDialogueBox
mov r0, #0x24
bl WaitForNextStep
b _0238BD74
_0238B038:
ldrb r1, [r0, #0x5f]
ldr r0, _0238B53C ; =QUIZ_BORDER_COLOR_TABLE
ldrb r0, [r0, r1]
bl SetBothScreensWindowsColor
ldr r0, _0238B540 ; =QUIZ_WINDOW_PARAMS_2
bl CreateDialogueBox
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, [r1]
strb r0, [r2, #4]
ldr r0, [r1]
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, _0238B544 ; =0x000006AD
ldr r0, [r0]
mov r1, #8
ldrsb r0, [r0, #4]
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r2, #0x11
ldr r1, [r0]
strb r2, [r1]
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B0A8:
mov r1, #0x12
strb r1, [r0]
ldr r1, [r2]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B0C4:
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, _0238B548 ; =0x000006AE
ldr r0, [r0]
mov r1, #8
ldrsb r0, [r0, #4]
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B100:
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, _0238B54C ; =0x000006AF
ldr r0, [r0]
mov r1, #8
ldrsb r0, [r0, #4]
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B13C:
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
#ifdef JAPAN
ldr r2, _0238CAB0 ; =0x000031AC
ldr r0, [r0]
mov r1, #8
#else
mov r1, #8
ldr r0, [r0]
mov r2, #0x6b0
#endif
ldrsb r0, [r0, #4]
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B178:
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, _0238B550 ; =0x000006B1
ldr r0, [r0]
mov r1, #0x18
ldrsb r0, [r0, #4]
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B1B4:
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #8
ldr r4, [r0]
mov r3, #0
add r0, r4, #0x400
ldrh r2, [r0, #0x26]
ldrsb r0, [r4, #4]
#ifdef JAPAN
add r2, r2, #0xae
add r2, r2, #0x3100
#else
add r2, r2, #0xb2
add r2, r2, #0x600
#endif
mov r2, r2, lsl #0x10
mov r2, r2, lsr #0x10
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B204:
ldrsb r0, [r0, #4]
ldr r2, _0238B554 ; =0x000006C9
mov r1, #0x218
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B230:
add r0, r0, #0x400
ldrsh r1, [r0, #0x24]
add r0, sp, #0x70
bl GetNameRaw
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
add r1, sp, #0x70
ldr r0, [r0]
add r0, r0, #0x3e4
#ifdef JAPAN
bl sub_02025304_JP
#else
bl StrcpyName
#endif
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
add r1, sp, #0x70
ldr r0, [r0]
add r0, r0, #4
add r0, r0, #0x400
#ifdef JAPAN
bl sub_02025304_JP
#else
bl StrcpyName
#endif
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r0, #3
ldr r3, [r1]
mov r2, #0
add r1, r3, #0x3e4
add r3, r3, #4
add r3, r3, #0x400
bl ShowKeyboard
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B2A4:
bl GetKeyboardStatus
cmp r0, #3
bne _0238BD74
bl GetKeyboardStringResult
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r4, r0
ldr r0, [r1]
mov r1, r4
add r0, r0, #0x3c4
mov r2, #0x10
bl StrncpySimpleNoPadSafe
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, r4
ldr r0, [r0]
add r0, r0, #0x3e4
bl StrcpySimple
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B2FC:
bl sub_02037468
cmp r0, #0
beq _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, [r0]
ldr r1, [r2, #0x20]
add r1, r1, #1
str r1, [r2, #0x20]
ldr r0, [r0]
add r0, r0, #0x3c4
bl sub_0203909C
b _0238BD74
_0238B32C:
bl sub_0203931C
cmp r0, #0
ldreq r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
moveq r1, #0x34
ldreq r0, [r0]
streq r1, [r0, #0x20]
beq _0238BD74
cmp r0, #1
ldreq r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
moveq r1, #0x35
ldreq r0, [r0]
streq r1, [r0, #0x20]
b _0238BD74
_0238B360:
bl sub_02039218
cmp r0, #0
beq _0238BD74
add r0, sp, #0x34
bl sub_02048764
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r4, [r0]
bl GetPersonality
ldrb r3, [r4, #0x5f]
ldr r1, _0238B530 ; =STARTERS_HERO_IDS
add r2, r4, #0x400
add r0, r3, r0, lsl #1
mov r0, r0, lsl #1
ldrsh r3, [r1, r0]
add r0, sp, #0x4c
add r1, r4, #0x3e4
strh r3, [sp, #0x34]
ldrsh r3, [r2, #0x24]
strh r3, [sp, #0x36]
ldrh r2, [r2, #0x26]
str r2, [sp, #0x60]
bl StrcpySimple
add r0, sp, #0x34
bl sub_02048794
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #0x36
ldr r0, [r0]
str r1, [r0, #0x20]
b _0238BD74
_0238B3D4:
bl sub_02039218
cmp r0, #0
beq _0238BD74
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r3, #0x31
ldr r2, [r1]
mov r0, #3
str r3, [r2, #0x20]
ldr r1, [r1]
mov r2, #0
add r3, r1, #4
add r1, r1, #0x3e4
add r3, r3, #0x400
bl ShowKeyboard
b _0238BD74
_0238B410:
ldrsb r0, [r0, #2]
bl IsDialogueBoxActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B438:
ldrsb r0, [r0, #4]
bl IsDialogueBoxActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl sub_0202F2C4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r3, #0xc
ldr r2, [r0]
mov r1, #1
str r3, [r2, #0x20]
ldr r0, [r0]
strb r1, [r0]
b _0238BD74
_0238B488:
ldrsb r0, [r0, #4]
bl IsDialogueBoxActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B4C0:
ldrsb r0, [r0, #4]
bl IsDialogueBoxActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
.align 2, 0
#ifdef JAPAN
#define OV13_238A574_OFFSET 0x2AFC
#else
#define OV13_238A574_OFFSET 0
#endif
_0238B4F8: .word OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
_0238B4FC: .word QUIZ_WINDOW_PARAMS_4
#ifdef JAPAN
_0238CA60: .word 0x000031C4
#endif
_0238B500: .word QUIZ_WINDOW_PARAMS_1
_0238B504: .word QUIZ_WINDOW_PARAMS_3
_0238B508: .word ov13_0238BE6C
_0238B50C: .word QUIZ_QUESTION_ANSWER_ASSOCIATIONS
_0238B510: .word QUIZ_QUESTION_STRINGS
_0238B514: .word QUIZ_DEBUG_MENU_ITEMS
_0238B518: .word QUIZ_ANSWER_STRINGS
_0238B51C: .word QUIZ_WINDOW_PARAMS_5
_0238B520: .word 0x00300011
_0238B524: .word QUIZ_MALE_FEMALE_BOOST_TABLE
_0238B528: .word QUIZ_ANSWER_POINTS
_0238B52C: .word STARTERS_STRINGS
_0238B530: .word STARTERS_HERO_IDS
_0238B534: .word 0x00002208
#ifndef JAPAN
_0238B538: .word 0x000005CC
#endif
_0238B53C: .word QUIZ_BORDER_COLOR_TABLE
_0238B540: .word QUIZ_WINDOW_PARAMS_2
_0238B544: .word 0x000006AD + OV13_238A574_OFFSET
_0238B548: .word 0x000006AE + OV13_238A574_OFFSET
_0238B54C: .word 0x000006AF + OV13_238A574_OFFSET
#ifdef JAPAN
_0238CAB0: .word 0x000031AC
#endif
_0238B550: .word 0x000006B1 + OV13_238A574_OFFSET
_0238B554: .word 0x000006C9 + OV13_238A574_OFFSET
_0238B558:
ldrh r1, [sp, #0xb0]
tst r1, #1
moveq r1, #0x3d
streq r1, [r0, #0x20]
beq _0238BD74
ldrsb r0, [r0, #4]
bl IsDialogueBoxActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #4]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B5A4:
add r1, sp, #8
mov r0, #0
bl GetPressedButtons
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r2, #0x3c
ldr r0, [r0]
add r1, sp, #0xc
str r2, [r0, #0x28]
mov r0, #0
bl ov11_022EB3C8
ldrh r0, [sp, #0xb0]
tst r0, #1
beq _0238BD74
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r3, #5
ldr r2, [r1]
ldr r0, _0238B534 ; =0x00002208
strb r3, [r2]
ldr r3, [r1]
mov r1, #0x100
ldr r2, [r3, #0x20]
add r2, r2, #1
str r2, [r3, #0x20]
bl sub_02017C74
b _0238BD74
_0238B608:
ldr r1, [r0, #0x28]
cmp r1, #0
subne r1, r1, #1
strne r1, [r0, #0x28]
ldrh r0, [sp, #0xb0]
tst r0, #1
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B63C:
ldr r1, [r0, #0x28]
cmp r1, #0
subne r1, r1, #1
strne r1, [r0, #0x28]
bne _0238BD74
ldrsb r0, [r0, #4]
bl sub_0202F2C4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B670:
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, _0238BD7C ; =0x000006C2
ldr r0, [r0]
mov r1, #8
ldrsb r0, [r0, #2]
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B6AC:
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, _0238BD80 ; =0x000006C3
ldr r0, [r0]
mov r1, #4
ldrsb r0, [r0, #2]
mov r3, #0
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B6E8:
add r0, sp, #0x128
bl InitPreprocessorArgs
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r0, #4]
add r0, r1, r0, lsl #1
add r0, r0, #0x300
ldrsh r0, [r0, #0x74]
str r0, [sp, #0x128]
ldrsb r0, [r1, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
#ifdef JAPAN
add r3, sp, #0x128
ldr r0, [r0]
mov r1, #4
ldrsb r0, [r0, #2]
mov r2, #0x31c0
#else
mov r1, #4
ldr r0, [r0]
add r3, sp, #0x128
ldrsb r0, [r0, #2]
add r2, r1, #0x6c0
#endif
bl ShowStringIdInDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #0x3b
ldr r0, [r0]
str r1, [r0, #0x20]
b _0238BD74
_0238B744:
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, _0238BD84 ; =0x000006C5
ldr r0, [r0]
mov r1, #8
ldrsb r0, [r0, #2]
mov r3, #0
bl ShowStringIdInDialogueBox
mov r0, #0x37
bl WaitForNextStep
b _0238BD74
_0238B774:
ldrsb r0, [r0, #2]
bl IsDialogueBoxActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B51C ; =QUIZ_WINDOW_PARAMS_5
mov r4, #2
ldr r1, _0238BD88 ; =0x00300013
ldr r3, _0238BD8C ; =QUIZ_MENU_ITEMS_1
mov r2, #0
str r4, [sp]
bl CreateSimpleMenuFromStringIds
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, [r1]
strb r0, [r2, #3]
ldr r1, [r1]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238B7C0:
ldrsb r0, [r0, #3]
bl GetSimpleMenuResult__0202B870
cmp r0, #1
beq _0238B7DC
cmp r0, #2
beq _0238B848
b _0238BD74
_0238B7DC:
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl sub_0202F2C4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl CloseSimpleMenu
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mvn r2, #1
ldr r1, [r0]
strb r2, [r1, #3]
ldr r0, [r0]
ldrsb r0, [r0, #5]
bl ClosePortraitBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mvn r3, #1
ldr r2, [r0]
mov r1, #0x30
strb r3, [r2, #5]
ldr r0, [r0]
str r1, [r0, #0x20]
b _0238BD74
_0238B848:
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl CloseSimpleMenu
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mvn r3, #1
ldr r2, [r0]
mov r1, #0x2a
strb r3, [r2, #3]
ldr r0, [r0]
str r1, [r0, #0x20]
b _0238BD74
_0238B878:
mov r0, #0x1f
str r0, [r2, #8]
bl GetPersonality
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, _0238B530 ; =STARTERS_HERO_IDS
ldr r1, [r1]
ldrb r1, [r1, #0x5f]
add r0, r1, r0, lsl #1
mov r0, r0, lsl #1
ldrsh r4, [r2, r0]
mov r0, r4
bl GetMonsterGenderVeneer
cmp r0, #2
bne _0238B8BC
mov r0, r4
bl FemaleToMaleForm
mov r4, r0
_0238B8BC:
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r0, r4
ldr r2, [r1]
mov r1, #0
str r1, [r2, #0x370]
bl GetType
ldr r2, _0238BD90 ; =STARTERS_TYPE_INCOMPATIBILITY_TABLE
mov r1, #1
ldr sb, [r2, r0, lsl #2]
mov r0, r4
bl GetType
ldr r1, _0238BD90 ; =STARTERS_TYPE_INCOMPATIBILITY_TABLE
ldr r1, [r1, r0, lsl #2]
mov r0, #0x15
orr sb, sb, r1
bl RandInt
ldr fp, _0238BD94 ; =STARTERS_PARTNER_IDS
ldr r5, _0238BD90 ; =STARTERS_TYPE_INCOMPATIBILITY_TABLE
ldr r4, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r6, r0
mov r7, #0
_0238B910:
mov r1, #0x15
add r0, r6, r7
bl _s32_div_f
mov r0, r1, lsl #1
ldrsh sl, [fp, r0]
mov r1, #0
mov r0, sl
bl GetType
ldr r8, [r5, r0, lsl #2]
mov r0, sl
mov r1, #1
bl GetType
ldr r0, [r5, r0, lsl #2]
orr r0, r8, r0
tst sb, r0
bne _0238B970
ldr r2, [r4]
ldr r1, [r2, #0x370]
add r0, r1, #1
str r0, [r2, #0x370]
ldr r0, [r4]
add r0, r0, r1, lsl #1
add r0, r0, #0x300
strh sl, [r0, #0x74]
_0238B970:
add r7, r7, #1
cmp r7, #0x15
blt _0238B910
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, _0238BD98 ; =QUIZ_WINDOW_PARAMS_6
ldr r2, [r1]
ldr r1, _0238BD9C ; =0x00001011
ldr r2, [r2, #0x370]
ldr r3, _0238BDA0 ; =GetOptionStringFromID
str r2, [sp]
mov r4, #6
mov r2, #0
str r4, [sp, #4]
bl CreateAdvancedMenu
ldr r2, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r2]
strb r0, [r1, #3]
ldr r4, [r2]
mov r0, #0
ldr r3, [r4, #0x20]
sub r1, r0, #2
add r3, r3, #1
str r3, [r4, #0x20]
str r0, [r2, #4]
str r0, [r2, #8]
ldr r2, [r2]
ldrsb r2, [r2, #5]
cmp r2, r1
bne _0238B9FC
mov r1, #3
mov r2, #1
bl CreatePortraitBox
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r1]
strb r0, [r1, #5]
_0238B9FC:
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, [r0]
ldr r1, [r0, #4]
add r0, r2, #0x3b4
add r1, r2, r1, lsl #1
add r1, r1, #0x300
ldrsh r1, [r1, #0x74]
bl InitPortraitParamsWithMonsterId
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #0
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitEmotion
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #4
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitLayout
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, _0238BDA4 ; =PORTRAIT_ATTRIBUTES
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitOffset
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldrsb r0, [r1, #5]
add r1, r1, #0x3b4
bl ShowPortraitInPortraitBox
b _0238BD74
_0238BA70:
ldrsb r0, [r0, #3]
ldr r4, [r2, #4]
bl GetAdvancedMenuCurrentOption
cmp r4, r0
beq _0238BB10
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #0
str r1, [r0, #8]
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl GetAdvancedMenuCurrentOption
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
str r0, [r1, #4]
ldr r2, [r1]
add r0, r2, r0, lsl #1
add r0, r0, #0x300
ldrsh r1, [r0, #0x74]
add r0, r2, #0x3b4
bl InitPortraitParamsWithMonsterId
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #0
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitEmotion
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #4
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitLayout
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, _0238BDA4 ; =PORTRAIT_ATTRIBUTES
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitOffset
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldrsb r0, [r1, #5]
add r1, r1, #0x3b4
bl ShowPortraitInPortraitBox
b _0238BB98
_0238BB10:
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0, #8]
cmp r1, #0x20
addne r1, r1, #1
strne r1, [r0, #8]
bne _0238BB98
mov r1, #0xff
str r1, [r0, #8]
ldr r2, [r0]
add r0, r2, r4, lsl #1
add r0, r0, #0x300
ldrsh r1, [r0, #0x74]
add r0, r2, #0x3b4
bl InitPortraitParamsWithMonsterId
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #1
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitEmotion
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #4
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitLayout
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, _0238BDA4 ; =PORTRAIT_ATTRIBUTES
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitOffset
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldrsb r0, [r1, #5]
add r1, r1, #0x3b4
bl ShowPortraitInPortraitBox
_0238BB98:
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl IsAdvancedMenuActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r4, [r0]
ldrsb r0, [r4, #3]
bl GetAdvancedMenuResult
add r0, r4, r0, lsl #1
add r0, r0, #0x300
ldrsh r2, [r0, #0x74]
add r0, r4, #0x400
ldr r1, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
strh r2, [r0, #0x24]
ldr r0, [r1]
ldrsb r0, [r0, #2]
bl ShowDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl sub_02027B1C
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl sub_0202F2C4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r2, [r0]
ldr r1, [r0, #4]
add r0, r2, #0x3b4
add r1, r2, r1, lsl #1
add r1, r1, #0x300
ldrsh r1, [r1, #0x74]
bl InitPortraitParamsWithMonsterId
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #1
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitEmotion
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r1, #4
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitLayout
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, _0238BDA4 ; =PORTRAIT_ATTRIBUTES
ldr r0, [r0]
add r0, r0, #0x3b4
bl SetPortraitOffset
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldrsb r0, [r1, #5]
add r1, r1, #0x3b4
bl ShowPortraitInPortraitBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #3]
bl CloseAdvancedMenu
mvn r2, #1
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
strb r2, [r1, #3]
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238BCA8:
ldrsb r0, [r0, #2]
bl sub_0202836C
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238BCC8:
ldrsb r0, [r0, #2]
bl IsDialogueBoxActive
cmp r0, #0
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl sub_02027B1C
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x30]
str r0, [r1, #0x20]
b _0238BD74
_0238BCFC:
mov r0, #1
bl ov11_023039D4
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r1, [r0]
ldr r0, [r1, #0x20]
add r0, r0, #1
str r0, [r1, #0x20]
b _0238BD74
_0238BD1C:
bl ov11_02303D80
mvn r1, #0
cmp r0, r1
bne _0238BD74
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mov r2, #0x39
ldr r1, [r0]
str r2, [r1, #0x20]
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl sub_0202836C
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
ldr r0, [r0]
ldrsb r0, [r0, #2]
bl CloseDialogueBox
ldr r0, _0238B4F8 ; =OVERLAY13_UNKNOWN_POINTER__NA_238CEA0
mvn r3, #1
ldr r2, [r0]
mov r1, #2
strb r3, [r2, #2]
ldr r0, [r0]
strb r1, [r0]
_0238BD74:
add sp, sp, #0x178
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc}
.align 2, 0
_0238BD7C: .word 0x000006C2 + OV13_238A574_OFFSET
_0238BD80: .word 0x000006C3 + OV13_238A574_OFFSET
_0238BD84: .word 0x000006C5 + OV13_238A574_OFFSET
_0238BD88: .word 0x00300013
_0238BD8C: .word QUIZ_MENU_ITEMS_1
_0238BD90: .word STARTERS_TYPE_INCOMPATIBILITY_TABLE
_0238BD94: .word STARTERS_PARTNER_IDS
_0238BD98: .word QUIZ_WINDOW_PARAMS_6
_0238BD9C: .word 0x00001011
_0238BDA0: .word GetOptionStringFromID
_0238BDA4: .word PORTRAIT_ATTRIBUTES
arm_func_end Overlay13SwitchFunctionNa238A574