diff --git a/asm/include/overlay_11.inc b/asm/include/overlay_11.inc index 795302f8..82997b75 100644 --- a/asm/include/overlay_11.inc +++ b/asm/include/overlay_11.inc @@ -149,8 +149,6 @@ .public MemFree .public MemsetSimple .public MemZero -.public ov10_022BCCF4 -.public ov10_022BCD10 .public ov00_022E0378 .public ov00_022E03F0 .public ov00_022E0434 @@ -160,6 +158,8 @@ .public ov10_022BCCB0 .public ov10_022BCCCC .public ov10_022BCCE0 +.public ov10_022BCCF4 +.public ov10_022BCD10 .public ov10_022BCD68 .public ov10_022BCD88 .public ov10_022BCDA8 @@ -210,24 +210,68 @@ .public ov10_022C3E8C .public ov13_0238A468 .public ov13_0238ADFC +.public ov14_0238B708 .public ov14_0238CC94 .public ov14_0238CCA8 .public ov14_0238CCBC .public ov14_0238CCD8 .public ov14_0238CCF0 +.public ov15_0238AE88 .public ov15_0238AE98 +.public ov15_0238AF54 +.public ov16_0238C148 .public ov16_0238C1CC +.public ov16_0238C1F8 .public ov17_0238A140 +.public ov17_0238A71C +.public ov17_0238A754 .public ov18_0238A140 +.public ov18_0238AFD4 +.public ov18_0238B01C .public ov19_0238D56C +.public ov19_0238D5FC +.public ov19_0238D68C +.public ov19_0238D698 +.public ov20_0238A140 +.public ov20_0238A150 .public ov20_0238A160 +.public ov20_0238A1B0 +.public ov21_0238B848 .public ov21_0238B8FC +.public ov21_0238B928 .public ov22_0238D640 +.public ov22_0238D7B0 +.public ov22_0238D800 .public ov23_0238C328 +.public ov23_0238C448 +.public ov23_0238C474 .public ov24_0238C1D4 +.public ov24_0238C340 +.public ov24_0238C36C .public ov25_0238B134 +.public ov25_0238B1CC +.public ov25_0238B1F8 +.public ov26_0238A140 .public ov26_0238A568 +.public ov26_0238A5A0 +.public ov26_0238A970 +.public ov26_0238A99C +.public ov26_0238A9C8 +.public ov26_0238AA68 +.public ov26_0238AA94 +.public ov26_0238AAC0 +.public ov26_0238AC14 +.public ov26_0238AC40 +.public ov26_0238AC6C +.public ov26_0238ACD8 +.public ov26_0238AD10 +.public ov26_0238AD3C +.public ov27_0238A140 +.public ov27_0238A388 +.public ov27_0238A3A4 .public ov27_0238BA7C +.public ov27_0238BB54 +.public ov27_0238BB80 .public ov28_0238A140 .public OverlayIsLoaded .public PointsToZero @@ -250,6 +294,7 @@ .public ScriptSpecialProcess0x3E .public ScriptSpecialProcess0x4 .public SendAudioCommandWrapperVeneer +.public SentryRunState .public SetAdventureLogCompleted .public SetAnimationForAnimationControl .public SetDungeonConquest diff --git a/asm/include/overlay_15.inc b/asm/include/overlay_15.inc index d3f3a212..19b86b31 100644 --- a/asm/include/overlay_15.inc +++ b/asm/include/overlay_15.inc @@ -4,14 +4,18 @@ .public CreateNormalMenu .public CreatePortraitBox .public DebugPrint0 +.public FreeDBox .public FreeNormalMenu +.public FreePortraitBox .public GetGold .public GetNormalMenuResult +.public HidePortraitBox .public InitPortraitBoxWithMonsterId .public InitPreprocessorArgs .public IsDBoxActive .public MemAlloc .public MemFree +.public ov11_022E6E68 .public PreprocessStringFromMessageId .public SetPortraitEmotion .public SetPortraitLayout @@ -25,7 +29,9 @@ .public sub_02026268 .public sub_02027AF0 .public sub_02027B1C +.public sub_0202836C .public sub_020288DC +.public sub_0202F2C4 .public sub_0202F8C4 .public sub_0202F8FC .public sub_0202F954 diff --git a/asm/include/overlay_16.inc b/asm/include/overlay_16.inc index 360f81a2..553eec96 100644 --- a/asm/include/overlay_16.inc +++ b/asm/include/overlay_16.inc @@ -1,32 +1,49 @@ #pragma once +.public __divsi3 .public CreateAdvancedMenu .public CreateDBox .public CreateNormalMenu .public CreatePortraitBox +.public DebugPrint0 .public EVOLUTION_HP_BONUS .public EVOLUTION_PHYSICAL_STAT_BONUSES .public EVOLUTION_SPECIAL_STAT_BONUSES +.public FreeAdvancedMenu .public FreeDBox .public FreeNormalMenu +.public FreePortraitBox .public GetActiveTeamMember +.public GetAdvancedMenuResult .public GetEvolutionPossibilities .public GetFirstUnequippedItemOfType .public GetItemAtIdx +.public GetKeyboardStatus +.public GetKeyboardStringResult .public GetMainCharacter1MemberIdx .public GetNameRaw .public GetNameString +.public GetNormalMenuResult +.public GetPressedButtons .public GetTeamMember .public IncrementNbEvolutions .public InitPortraitBoxWithMonsterId .public InitPreprocessorArgs +.public IsAdvancedMenuActive +.public IsDBoxActive .public IsMainCharacter .public IsMonsterNotNicknamed .public IsMonsterOnTeam +.public IsNormalMenuActive .public IsValidTeamMember .public MemAlloc .public MemFree +.public ov00_0230D220 +.public ov11_022E6E68 +.public ov11_022E6E8C +.public ov11_022E6EC8 .public ov11_02310BDC .public PreprocessString +.public Rand16Bit .public RemoveItemNoHole .public SetPokemonJoined .public SetPortraitEmotion @@ -37,18 +54,36 @@ .public ShowMessageInDBox .public ShowPortraitBox .public StrcpySimple +.public StrncpySimple .public StrncpySimpleNoPadSafe .public sub_02010260 .public sub_02017C50 +.public sub_02017C74 .public sub_02017CB4 .public sub_02025314 .public sub_0202836C .public sub_0202F2C4 +.public sub_02037468 .public sub_0203909C +.public sub_02039218 +.public sub_0203931C .public sub_02039C3C +.public sub_0203A51C +.public sub_0203A5A8 +.public sub_0203A5F0 +.public sub_0203A618 .public sub_0203A638 +.public sub_0203A9EC +.public sub_0203AA20 +.public sub_0203AAB0 .public sub_0203C7E4 +.public sub_0203C874 +.public sub_0203C8E0 +.public sub_0203C940 +.public sub_0203C9E4 .public sub_0203F150 +.public sub_0203F398 +.public sub_0203F990 .public sub_02056410 .public sub_020564B0 .public sub_02056880 diff --git a/asm/include/overlay_19.inc b/asm/include/overlay_19.inc index 10be2f15..82688d76 100644 --- a/asm/include/overlay_19.inc +++ b/asm/include/overlay_19.inc @@ -2,6 +2,7 @@ .public abs .public CanMonsterBeUsedForMissionWrapper .public CreatePortraitBox +.public DebugPrint0 .public DungeonSwapIdToIdx .public EnableIqSkill .public FemaleToMaleForm @@ -29,12 +30,11 @@ .public MemcpySimple .public MemFree .public MemZero -.public ov10_022BCCF4 -.public ov10_022BCD10 -.public ov11_0230D220 .public ov10_022BCC60 .public ov10_022BCC7C .public ov10_022BCCB0 +.public ov10_022BCCF4 +.public ov10_022BCD10 .public ov10_022BCD68 .public ov10_022BCDA8 .public ov10_022BCDBC @@ -42,10 +42,15 @@ .public ov10_022BCE58 .public ov10_022BD394 .public ov10_022BD474 +.public ov11_022E6E68 +.public ov11_022E6E8C +.public ov11_022E6EC8 .public ov11_0230A31C .public ov11_0230A390 .public ov11_0230AD50 .public ov11_0230AD7C +.public ov11_0230CC70 +.public ov11_0230D220 .public ov11_02311D6C .public ov11_02324DB0 .public PreprocessString diff --git a/asm/overlay_11.s b/asm/overlay_11.s index cbb1b5cf..608c6b33 100644 --- a/asm/overlay_11.s +++ b/asm/overlay_11.s @@ -11702,7 +11702,7 @@ _022E60F4: ; jump table _022E6228: mov r0, #0x11 bl LoadOverlay - bl ov17_0238A140 + bl ov28_0238A140 b _022E68AC _022E6238: mov r0, #0x11 @@ -79973,93 +79973,129 @@ ov11_02323048: .byte 0x5B, 0x4D, 0x3A, 0x53, 0x33, 0x5D, 0x5B, 0x4D, 0x3A, 0x53, 0x33, 0x5D, 0x00, 0x00, 0x00, 0x00 .global OVERLAY11_OVERLAY_LOAD_TABLE OVERLAY11_OVERLAY_LOAD_TABLE: - .byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xB7, 0x38, 0x02, 0xFC, 0xB7, 0x38, 0x02 + .byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word ov14_0238B708 + .word SentryRunState .global ov11_0232307C ov11_0232307C: - .byte 0x13, 0x00, 0x00, 0x00, 0x88, 0xAE, 0x38, 0x02 + .byte 0x13, 0x00, 0x00, 0x00 + .word ov15_0238AE88 .word ov15_0238AE98 - .byte 0x54, 0xAF, 0x38, 0x02 + .word ov15_0238AF54 .global ov11_0232308C ov11_0232308C: - .byte 0x14, 0x00, 0x00, 0x00, 0x48, 0xC1, 0x38, 0x02 + .byte 0x14, 0x00, 0x00, 0x00 + .word ov16_0238C148 .word ov16_0238C1CC - .byte 0xF8, 0xC1, 0x38, 0x02 + .word ov16_0238C1F8 .global ov11_0232309C ov11_0232309C: .byte 0x15, 0x00, 0x00, 0x00 - .word ov28_0238A140 - .byte 0x1C, 0xA7, 0x38, 0x02, 0x54, 0xA7, 0x38, 0x02 + .word ov17_0238A140 + .word ov17_0238A71C + .word ov17_0238A754 .global ov11_023230AC ov11_023230AC: .byte 0x16, 0x00, 0x00, 0x00 .word ov18_0238A140 - .byte 0xD4, 0xAF, 0x38, 0x02, 0x1C, 0xB0, 0x38, 0x02 + .word ov18_0238AFD4 + .word ov18_0238B01C .global ov11_023230BC ov11_023230BC: - .byte 0x17, 0x00, 0x00, 0x00, 0xFC, 0xD5, 0x38, 0x02, 0x8C, 0xD6, 0x38, 0x02, 0x98, 0xD6, 0x38, 0x02 + .byte 0x17, 0x00, 0x00, 0x00 + .word ov19_0238D5FC + .word ov19_0238D68C + .word ov19_0238D698 .global ov11_023230CC ov11_023230CC: .byte 0x17, 0x00, 0x00, 0x00 .word ov19_0238D56C - .byte 0x8C, 0xD6, 0x38, 0x02, 0x98, 0xD6, 0x38, 0x02 + .word ov19_0238D68C + .word ov19_0238D698 .global ov11_023230DC ov11_023230DC: - .byte 0x18, 0x00, 0x00, 0x00, 0x50, 0xA1, 0x38, 0x02 + .byte 0x18, 0x00, 0x00, 0x00 + .word ov20_0238A150 .word ov20_0238A160 - .byte 0xB0, 0xA1, 0x38, 0x02 + .word ov20_0238A1B0 .global ov11_023230EC ov11_023230EC: - .byte 0x18, 0x00, 0x00, 0x00, 0x40, 0xA1, 0x38, 0x02, 0x60, 0xA1, 0x38, 0x02, 0xB0, 0xA1, 0x38, 0x02 + .byte 0x18, 0x00, 0x00, 0x00 + .word ov20_0238A140 + .word ov20_0238A160 + .word ov20_0238A1B0 .global ov11_023230FC ov11_023230FC: - .byte 0x19, 0x00, 0x00, 0x00, 0x48, 0xB8, 0x38, 0x02 + .byte 0x19, 0x00, 0x00, 0x00 + .word ov21_0238B848 .word ov21_0238B8FC - .byte 0x28, 0xB9, 0x38, 0x02 + .word ov21_0238B928 .global ov11_0232310C ov11_0232310C: .byte 0x1A, 0x00, 0x00, 0x00 .word ov22_0238D640 - .byte 0xB0, 0xD7, 0x38, 0x02, 0x00, 0xD8, 0x38, 0x02 + .word ov22_0238D7B0 + .word ov22_0238D800 .global ov11_0232311C ov11_0232311C: .byte 0x1B, 0x00, 0x00, 0x00 .word ov23_0238C328 - .byte 0x48, 0xC4, 0x38, 0x02, 0x74, 0xC4, 0x38, 0x02 + .word ov23_0238C448 + .word ov23_0238C474 .global ov11_0232312C ov11_0232312C: .byte 0x1C, 0x00, 0x00, 0x00 .word ov24_0238C1D4 - .byte 0x40, 0xC3, 0x38, 0x02, 0x6C, 0xC3, 0x38, 0x02 + .word ov24_0238C340 + .word ov24_0238C36C .global ov11_0232313C ov11_0232313C: .byte 0x1D, 0x00, 0x00, 0x00 .word ov25_0238B134 - .byte 0xCC, 0xB1, 0x38, 0x02, 0xF8, 0xB1, 0x38, 0x02 + .word ov25_0238B1CC + .word ov25_0238B1F8 .global ov11_0232314C ov11_0232314C: - .byte 0x1E, 0x00, 0x00, 0x00, 0x40, 0xA1, 0x38, 0x02 + .byte 0x1E, 0x00, 0x00, 0x00 + .word ov26_0238A140 .word ov26_0238A568 - .byte 0xA0, 0xA5, 0x38, 0x02 + .word ov26_0238A5A0 .global ov11_0232315C ov11_0232315C: - .byte 0x1E, 0x00, 0x00, 0x00, 0x70, 0xA9, 0x38, 0x02, 0x9C, 0xA9, 0x38, 0x02, 0xC8, 0xA9, 0x38, 0x02 + .byte 0x1E, 0x00, 0x00, 0x00 + .word ov26_0238A970 + .word ov26_0238A99C + .word ov26_0238A9C8 .global ov11_0232316C ov11_0232316C: - .byte 0x1E, 0x00, 0x00, 0x00, 0x68, 0xAA, 0x38, 0x02, 0x94, 0xAA, 0x38, 0x02, 0xC0, 0xAA, 0x38, 0x02 + .byte 0x1E, 0x00, 0x00, 0x00 + .word ov26_0238AA68 + .word ov26_0238AA94 + .word ov26_0238AAC0 .global ov11_0232317C ov11_0232317C: - .byte 0x1E, 0x00, 0x00, 0x00, 0x14, 0xAC, 0x38, 0x02, 0x40, 0xAC, 0x38, 0x02, 0x6C, 0xAC, 0x38, 0x02 + .byte 0x1E, 0x00, 0x00, 0x00 + .word ov26_0238AC14 + .word ov26_0238AC40 + .word ov26_0238AC6C .global ov11_0232318C ov11_0232318C: - .byte 0x1E, 0x00, 0x00, 0x00, 0xD8, 0xAC, 0x38, 0x02, 0x10, 0xAD, 0x38, 0x02, 0x3C, 0xAD, 0x38, 0x02 + .byte 0x1E, 0x00, 0x00, 0x00 + .word ov26_0238ACD8 + .word ov26_0238AD10 + .word ov26_0238AD3C .global ov11_0232319C ov11_0232319C: - .byte 0x1F, 0x00, 0x00, 0x00, 0x40, 0xA1, 0x38, 0x02, 0x88, 0xA3, 0x38, 0x02, 0xA4, 0xA3, 0x38, 0x02 + .byte 0x1F, 0x00, 0x00, 0x00 + .word ov27_0238A140 + .word ov27_0238A388 + .word ov27_0238A3A4 .global ov11_023231AC ov11_023231AC: .byte 0x1F, 0x00, 0x00, 0x00 .word ov27_0238BA7C - .byte 0x54, 0xBB, 0x38, 0x02, 0x80, 0xBB, 0x38, 0x02 + .word ov27_0238BB54 + .word ov27_0238BB80 .global ov11_023231BC ov11_023231BC: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 diff --git a/asm/overlay_15.s b/asm/overlay_15.s index 60e95137..faa995de 100644 --- a/asm/overlay_15.s +++ b/asm/overlay_15.s @@ -999,24 +999,84 @@ _0238AF48: .word ov15_0238B12C _0238AF4C: .word ov15_0238B13C _0238AF50: .word ov15_0238B150 arm_func_end ov15_0238AE98 - ; 0x0238AF54 - .byte 0x08, 0x40, 0x2D, 0xE9, 0xF0, 0x00, 0x9F, 0xE5, 0x00, 0x10, 0x90, 0xE5, 0x00, 0x00, 0x91, 0xE5 - .byte 0x05, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x35, 0x00, 0x00, 0xEA, 0x04, 0x00, 0x00, 0xEA - .byte 0x06, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA, 0x2E, 0x00, 0x00, 0xEA, 0x30, 0x00, 0x00, 0xEA - .byte 0x1A, 0x00, 0x00, 0xEA, 0x01, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x81, 0xE5, 0x2C, 0x00, 0x00, 0xEA - .byte 0xA6, 0xFC, 0xFF, 0xEB, 0x03, 0x00, 0x50, 0xE3, 0xAC, 0x00, 0x9F, 0x05, 0x02, 0x10, 0xA0, 0x03 - .byte 0x00, 0x00, 0x90, 0x05, 0x00, 0x10, 0x80, 0x05, 0x25, 0x00, 0x00, 0xEA, 0xD0, 0x08, 0xD1, 0xE1 - .byte 0x71, 0x90, 0xF2, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x21, 0x00, 0x00, 0x1A, 0x88, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0xD1, 0x08, 0xD0, 0xE1, 0xC2, 0x91, 0xF2, 0xEB, 0x78, 0x00, 0x9F, 0xE5 - .byte 0x00, 0x00, 0x90, 0xE5, 0xD0, 0x08, 0xD0, 0xE1, 0xB8, 0x90, 0xF2, 0xEB, 0x68, 0x00, 0x9F, 0xE5 - .byte 0x05, 0x10, 0xA0, 0xE3, 0x00, 0x00, 0x90, 0xE5, 0x00, 0x10, 0x80, 0xE5, 0x14, 0x00, 0x00, 0xEA - .byte 0xD0, 0x08, 0xD1, 0xE1, 0xDB, 0x74, 0xF2, 0xEB, 0x4C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xD1, 0x08, 0xD0, 0xE1, 0x90, 0x91, 0xF2, 0xEB, 0x3C, 0x00, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0xD0, 0x08, 0xD0, 0xE1, 0x4A, 0x90, 0xF2, 0xEB, 0x2C, 0x00, 0x9F, 0xE5, 0x03, 0x30, 0xA0, 0xE3 - .byte 0x00, 0x20, 0x90, 0xE5, 0x05, 0x10, 0x43, 0xE2, 0x00, 0x30, 0x82, 0xE5, 0x00, 0x00, 0x90, 0xE5 - .byte 0x80, 0x10, 0xC0, 0xE5, 0x02, 0x00, 0x00, 0xEA, 0x89, 0x6F, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3 - .byte 0x08, 0x80, 0xBD, 0xE8, 0x01, 0x00, 0xA0, 0xE3, 0x08, 0x80, 0xBD, 0xE8, 0x80, 0xB1, 0x38, 0x02 + arm_func_start ov15_0238AF54 +ov15_0238AF54: ; 0x0238AF54 + stmdb sp!, {r3, lr} + ldr r0, _0238B050 ; =ov15_0238B180 + ldr r1, [r0] + ldr r0, [r1] + cmp r0, #5 + addls pc, pc, r0, lsl #2 + b _0238B048 +_0238AF70: ; jump table + b _0238AF88 ; case 0 + b _0238AF94 ; case 1 + b _0238AFB0 ; case 2 + b _0238B03C ; case 3 + b _0238B048 ; case 4 + b _0238AFF4 ; case 5 +_0238AF88: + mov r0, #1 + str r0, [r1] + b _0238B048 +_0238AF94: + bl ov15_0238A234 + cmp r0, #3 + ldreq r0, _0238B050 ; =ov15_0238B180 + moveq r1, #2 + ldreq r0, [r0] + streq r1, [r0] + b _0238B048 +_0238AFB0: + ldrsb r0, [r1, #0x80] + bl IsDBoxActive + cmp r0, #0 + bne _0238B048 + ldr r0, _0238B050 ; =ov15_0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl HidePortraitBox + ldr r0, _0238B050 ; =ov15_0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl sub_0202F2C4 + ldr r0, _0238B050 ; =ov15_0238B180 + mov r1, #5 + ldr r0, [r0] + str r1, [r0] + b _0238B048 +_0238AFF4: + ldrsb r0, [r1, #0x80] + bl sub_0202836C + ldr r0, _0238B050 ; =ov15_0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x81] + bl FreePortraitBox + ldr r0, _0238B050 ; =ov15_0238B180 + ldr r0, [r0] + ldrsb r0, [r0, #0x80] + bl FreeDBox + ldr r0, _0238B050 ; =ov15_0238B180 + mov r3, #3 + ldr r2, [r0] + sub r1, r3, #5 + str r3, [r2] + ldr r0, [r0] + strb r1, [r0, #0x80] + b _0238B048 +_0238B03C: + bl ov11_022E6E68 + mov r0, #4 + ldmia sp!, {r3, pc} +_0238B048: + mov r0, #1 + ldmia sp!, {r3, pc} + .align 2, 0 +_0238B050: .word ov15_0238B180 + arm_func_end ov15_0238AF54 + ; 0x0238B054 + .global BANK_MAIN_MENU BANK_MAIN_MENU: .byte 0x6F, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x70, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 diff --git a/asm/overlay_16.s b/asm/overlay_16.s index ad38fbce..545c32a8 100644 --- a/asm/overlay_16.s +++ b/asm/overlay_16.s @@ -2255,151 +2255,631 @@ ov16_0238C1CC: ; 0x0238C1CC .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_0238C1F8 +ov16_0238C1F8: ; 0x0238C1F8 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r3, [r0] + ldr r1, [r3, #0xd8] + cmp r1, #7 + addls pc, pc, r1, lsl #2 + b _0238CAD0 +_0238C218: ; jump table + b _0238C238 ; case 0 + b _0238C250 ; case 1 + b _0238CA40 ; case 2 + b _0238CA5C ; case 3 + b _0238CA84 ; case 4 + b _0238CAAC ; case 5 + b _0238C9EC ; case 6 + b _0238CA30 ; case 7 +_0238C238: + bl ov11_022E6E68 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #0xd8] + b _0238CAD0 +_0238C250: + ldr r1, [r3, #0x70] + cmp r1, #0x29 + addls pc, pc, r1, lsl #2 + b _0238C96C +_0238C260: ; jump table + b _0238C96C ; case 0 + b _0238C96C ; case 1 + b _0238C96C ; case 2 + b _0238C96C ; case 3 + b _0238C96C ; case 4 + b _0238C874 ; case 5 + b _0238C308 ; case 6 + b _0238C96C ; case 7 + b _0238C690 ; case 8 + b _0238C96C ; case 9 + b _0238C96C ; case 10 + b _0238C380 ; case 11 + b _0238C380 ; case 12 + b _0238C614 ; case 13 + b _0238C56C ; case 14 + b _0238C96C ; case 15 + b _0238C96C ; case 16 + b _0238C690 ; case 17 + b _0238C96C ; case 18 + b _0238C690 ; case 19 + b _0238C96C ; case 20 + b _0238C96C ; case 21 + b _0238C96C ; case 22 + b _0238C96C ; case 23 + b _0238C4A4 ; case 24 + b _0238C51C ; case 25 + b _0238C96C ; case 26 + b _0238C690 ; case 27 + b _0238C66C ; case 28 + b _0238C96C ; case 29 + b _0238C96C ; case 30 + b _0238C96C ; case 31 + b _0238C690 ; case 32 + b _0238C96C ; case 33 + b _0238C770 ; case 34 + b _0238C770 ; case 35 + b _0238C7D8 ; case 36 + b _0238C7F0 ; case 37 + b _0238C854 ; case 38 + b _0238C8BC ; case 39 + b _0238C96C ; case 40 + b _0238C87C ; case 41 +_0238C308: + ldrsb r0, [r3, #0xc3] + bl GetNormalMenuResult + cmp r0, #1 + ldrne r1, _0238CADC ; =ov16_0238CE40 + ldrne r1, [r1] + strne r0, [r1, #0x7c] + cmp r0, #1 + beq _0238C370 + cmp r0, #2 + beq _0238C360 + cmp r0, #3 + bne _0238C9B0 + bl ov16_0238CAE8 + bl ov16_0238CBD0 + cmp r0, #0 + bne _0238C354 + mov r0, #0xf + bl ov16_0238A140 + b _0238C9B0 +_0238C354: + mov r0, #0xa + bl ov16_0238A140 + b _0238C9B0 +_0238C360: + bl ov16_0238CAE8 + mov r0, #3 + bl ov16_0238A140 + b _0238C9B0 +_0238C370: + bl ov16_0238CAE8 + mov r0, #4 + bl ov16_0238A140 + b _0238C9B0 +_0238C380: + bl sub_0203C9E4 + bl sub_0203A5A8 + cmp r0, #0 + beq _0238C408 + bl sub_0203A9EC + cmp r0, #0 + beq _0238C9B0 + add r1, sp, #0 + mov r0, #0 + bl GetPressedButtons + ldrh r0, [sp] + tst r0, #8 + beq _0238C9B0 + bl sub_0203AAB0 + ldr r1, _0238CADC ; =ov16_0238CE40 + mov r0, r0, lsl #0x10 + ldr r1, [r1] + mov r0, r0, asr #0x10 + strh r0, [r1, #0x44] + bl ov16_0238CC64 + ldr r0, _0238CAE0 ; =0x00003F02 + mov r1, #0x100 + bl sub_02017C74 + bl sub_0203A5F0 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r3, #0xa + ldr r1, [r0] + mov r2, #0xd + str r3, [r1, #0x78] + ldr r1, [r0] + mov r0, #0x19 + str r2, [r1, #0x74] + bl ov16_0238A140 + b _0238C9B0 +_0238C408: + bl sub_0203AA20 + mvn r1, #0 + cmp r0, r1 + bne _0238C448 + bl sub_0203A51C + bl sub_0203C874 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r3, #0xa + ldr r1, [r0] + mov r2, #2 + str r3, [r1, #0x78] + ldr r1, [r0] + mov r0, #0x18 + str r2, [r1, #0x74] + bl ov16_0238A140 + b _0238C9B0 +_0238C448: + ldr r1, _0238CADC ; =ov16_0238CE40 + mov r0, r0, lsl #0x10 + ldr r1, [r1] + mov r0, r0, asr #0x10 + strh r0, [r1, #0x44] + bl ov16_0238CC64 + bl Rand16Bit + mov r1, #0x64 + bl __divsi3 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r2, [r0] + strb r1, [r2, #6] + ldr r1, [r0] + ldr r0, [r1, #0x3c] + add r1, r1, #2 + bl GetEvolutionPossibilities + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsh r0, [r0, #0x44] + bl ov16_0238CC64 + mov r0, #0xe + bl ov16_0238A140 + b _0238C9B0 +_0238C4A4: + bl sub_0203C9E4 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x78] + cmp r0, #5 + bne _0238C4C4 + bl sub_0203A51C + bl sub_0203C874 +_0238C4C4: + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x78] + cmp r0, #0 + bne _0238C504 + bl sub_0203C8E0 + cmp r0, #0 + beq _0238C4F0 + ldr r0, _0238CAE4 ; =ov16_0238CE04 + bl DebugPrint0 + b _0238C9B0 +_0238C4F0: + bl sub_0203C940 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x74] + bl ov16_0238A140 +_0238C504: + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r1, [r0] + ldr r0, [r1, #0x78] + sub r0, r0, #1 + str r0, [r1, #0x78] + b _0238C9B0 +_0238C51C: + bl sub_0203C9E4 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x78] + cmp r0, #5 + bne _0238C538 + bl sub_0203A618 +_0238C538: + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r1, [r0] + ldr r0, [r1, #0x78] + cmp r0, #0 + bne _0238C554 + ldr r0, [r1, #0x74] + bl ov16_0238A140 +_0238C554: + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r1, [r0] + ldr r0, [r1, #0x78] + sub r0, r0, #1 + str r0, [r1, #0x78] + b _0238C9B0 +_0238C56C: + ldrsb r0, [r3, #0xc3] + bl GetNormalMenuResult + mov r4, r0 + bl sub_0203C9E4 + cmp r4, #1 + beq _0238C5F8 + cmp r4, #3 + beq _0238C598 + cmp r4, #8 + beq _0238C5CC + b _0238C9B0 +_0238C598: + bl ov16_0238CAE8 + bl sub_0203A51C + bl sub_0203C874 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r3, #0xa + ldr r1, [r0] + mov r2, #0x16 + str r3, [r1, #0x78] + ldr r1, [r0] + mov r0, #0x18 + str r2, [r1, #0x74] + bl ov16_0238A140 + b _0238C9B0 +_0238C5CC: + bl ov16_0238CAE8 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r3, #0xa + ldr r1, [r0] + mov r2, #0xd + str r3, [r1, #0x78] + ldr r1, [r0] + mov r0, #0x19 + str r2, [r1, #0x74] + bl ov16_0238A140 + b _0238C9B0 +_0238C5F8: + bl ov16_0238CAE8 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r1, #0xb + ldr r0, [r0] + str r1, [r0, #0x70] + bl sub_0203A638 + b _0238C9B0 +_0238C614: + bl sub_0203F398 + cmp r0, #1 + bne _0238C9B0 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc4] + bl sub_0202836C + bl sub_0203F990 + ldr r0, _0238CADC ; =ov16_0238CE40 + mvn r3, #1 + ldr r1, [r0] + mov r2, #3 + strb r3, [r1, #0xc4] + ldr r1, [r0] + mov r3, #0xc + str r2, [r1, #0xe4] + ldr r2, [r0] + mov r1, #0x1c + str r3, [r2, #0x74] + ldr r0, [r0] + str r1, [r0, #0x70] + b _0238C9B0 +_0238C66C: + ldr r2, [r3, #0xe4] + sub r1, r2, #1 + str r1, [r3, #0xe4] + cmp r2, #0 + bne _0238C9B0 + ldr r0, [r0] + ldr r0, [r0, #0x74] + bl ov16_0238A140 + b _0238C9B0 +_0238C690: + ldrsb r0, [r3, #0xc3] + bl IsNormalMenuActive + cmp r0, #0 + bne _0238C9B0 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc3] + bl GetNormalMenuResult + ldr r1, _0238CADC ; =ov16_0238CE40 + mov r4, r0 + ldr r0, [r1] + mvn r1, #1 + ldrsb r0, [r0, #0xc2] + cmp r0, r1 + beq _0238C6E0 + bl FreePortraitBox + ldr r0, _0238CADC ; =ov16_0238CE40 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0xc2] +_0238C6E0: + cmp r4, #1 + beq _0238C730 + cmp r4, #6 + beq _0238C6FC + cmp r4, #7 + beq _0238C730 + b _0238C9B0 +_0238C6FC: + bl ov16_0238CAE8 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl sub_0202F2C4 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r3, #0xa + ldr r2, [r0] + mov r1, #0x1c + str r3, [r2, #0xe4] + ldr r0, [r0] + str r1, [r0, #0x70] + b _0238C9B0 +_0238C730: + bl ov16_0238CAE8 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl sub_0202F2C4 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r3, #0xa + ldr r4, [r0] + mov r1, #0x1c + ldr r2, [r4, #0x78] + str r2, [r4, #0x74] + ldr r2, [r0] + str r3, [r2, #0xe4] + ldr r0, [r0] + str r1, [r0, #0x70] + b _0238C9B0 +_0238C770: + bl GetKeyboardStatus + cmp r0, #3 + bne _0238C9B0 + bl GetKeyboardStringResult + ldr r1, _0238CADC ; =ov16_0238CE40 + mov r4, r0 + ldr r0, [r1] + mov r1, r4 + add r0, r0, #0x8d + mov r2, #0x10 + bl StrncpySimpleNoPadSafe + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r1, r4 + ldr r0, [r0] + add r0, r0, #0xa1 + bl StrcpySimple + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x3c] + bl IsMonsterNotNicknamed + ldr r1, _0238CADC ; =ov16_0238CE40 + ldr r1, [r1] + strb r0, [r1, #0x46] + mov r0, #0x24 + bl ov16_0238A140 + b _0238C9B0 +_0238C7D8: + bl sub_02037468 + cmp r0, #0 + beq _0238C9B0 + mov r0, #0x25 + bl ov16_0238A140 + b _0238C9B0 +_0238C7F0: + bl sub_0203931C + cmp r0, #0 + bne _0238C830 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r3, #4 + ldr r1, [r0] + mov r2, #0xa + str r3, [r1, #0x78] + ldr r1, [r0] + ldr r0, [r1, #0x3c] + add r1, r1, #0xa1 + add r0, r0, #0x3a + bl StrncpySimple + mov r0, #0x26 + bl ov16_0238A140 + b _0238C9B0 +_0238C830: + cmp r0, #1 + bne _0238C9B0 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r2, #0x23 + ldr r1, [r0] + mov r0, #0x26 + str r2, [r1, #0x78] + bl ov16_0238A140 + b _0238C9B0 +_0238C854: + bl sub_02039218 + cmp r0, #0 + beq _0238C9B0 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x78] + bl ov16_0238A140 + b _0238C9B0 +_0238C874: + mov r0, #3 + b _0238C9B4 +_0238C87C: + ldrsb r0, [r3, #0xc1] + bl IsDBoxActive + cmp r0, #0 + bne _0238C9B0 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl ShowDBox + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r2, #0x2b + ldr r1, [r0] + str r2, [r1, #0x70] + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl sub_0202F2C4 + b _0238C9B0 +_0238C8BC: + ldrsb r0, [r3, #0xc3] + bl IsAdvancedMenuActive + cmp r0, #0 + bne _0238C9B0 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc3] + bl GetAdvancedMenuResult + mov r4, r0 + mvn r0, #0 + cmp r4, r0 + bne _0238C918 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc3] + bl FreeAdvancedMenu + ldr r0, _0238CADC ; =ov16_0238CE40 + mvn r2, #1 + ldr r1, [r0] + mov r0, #2 + strb r2, [r1, #0xc3] + bl ov16_0238A140 + b _0238C9B0 +_0238C918: + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r2, [r0] + add r1, r2, r4, lsl #2 + ldr r1, [r1, #0x50] + str r1, [r2, #0x40] + ldr r0, [r0] + ldrsb r0, [r0, #0xc3] + bl FreeAdvancedMenu + ldr r1, _0238CADC ; =ov16_0238CE40 + mvn r3, #1 + ldr r2, [r1] + mov r0, #0x17 + strb r3, [r2, #0xc3] + ldr r2, [r1] + add r1, r2, r4, lsl #2 + ldr r1, [r1, #0x50] + add r1, r2, r1, lsl #1 + ldrsh r1, [r1, #0xc] + strh r1, [r2, #0xa] + bl ov16_0238A140 + b _0238C9B0 +_0238C96C: + bl ov00_0230D220 + cmp r0, #0 + bne _0238C9B0 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl IsDBoxActive + cmp r0, #0 + bne _0238C9B0 + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl ShowDBox + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldr r0, [r0, #0x74] + bl ov16_0238A140 +_0238C9B0: + mov r0, #0 +_0238C9B4: + cmp r0, #3 + bne _0238CAD0 + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r2, #6 + ldr r1, [r0] + str r2, [r1, #0xd8] + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl sub_0202836C + ldr r0, _0238CADC ; =ov16_0238CE40 + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl sub_0202F2C4 + b _0238CAD0 +_0238C9EC: + mov r1, #7 + str r1, [r3, #0xd8] + ldr r0, [r0] + ldrsb r0, [r0, #0xc1] + bl FreeDBox + ldr r0, _0238CADC ; =ov16_0238CE40 + mvn r1, #1 + ldr r0, [r0] + ldrsb r0, [r0, #0xc2] + cmp r0, r1 + beq _0238CAD0 + bl FreePortraitBox + ldr r0, _0238CADC ; =ov16_0238CE40 + mvn r1, #1 + ldr r0, [r0] + strb r1, [r0, #0xc2] + b _0238CAD0 +_0238CA30: + mvn r0, #0 + bl ov11_022E6E8C + mov r0, #4 + b _0238CAD4 +_0238CA40: + bl ov11_022E6EC8 + cmp r0, #0 + ldrne r0, _0238CADC ; =ov16_0238CE40 + movne r1, #1 + ldrne r0, [r0] + strne r1, [r0, #0xd8] + b _0238CAD0 +_0238CA5C: + bl ov11_022E6EC8 + cmp r0, #0 + beq _0238CAD0 + mov r0, #3 + bl ov11_022E6E8C + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #0xd8] + b _0238CAD0 +_0238CA84: + bl ov11_022E6EC8 + cmp r0, #0 + beq _0238CAD0 + mov r0, #1 + bl ov11_022E6E8C + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #0xd8] + b _0238CAD0 +_0238CAAC: + bl ov11_022E6EC8 + cmp r0, #0 + beq _0238CAD0 + mov r0, #4 + bl ov11_022E6E8C + ldr r0, _0238CADC ; =ov16_0238CE40 + mov r1, #2 + ldr r0, [r0] + str r1, [r0, #0xd8] +_0238CAD0: + mov r0, #1 +_0238CAD4: + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + .align 2, 0 +_0238CADC: .word ov16_0238CE40 +_0238CAE0: .word 0x00003F02 +_0238CAE4: .word ov16_0238CE04 + arm_func_end ov16_0238C1F8 arm_func_start ov16_0238CAE8 ov16_0238CAE8: ; 0x0238CAE8 @@ -2623,7 +3103,10 @@ EVO_D_BOX_LAYOUT_5: EVO_D_BOX_LAYOUT_6: .byte 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 0x02, 0x02, 0x14, 0x10, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov16_0238CE04 +ov16_0238CE04: + .byte 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 .global ov16_0238CE28 diff --git a/asm/overlay_19.s b/asm/overlay_19.s index a0463824..60379de2 100644 --- a/asm/overlay_19.s +++ b/asm/overlay_19.s @@ -3854,83 +3854,359 @@ _0238D67C: _0238D684: .word ov11_02324DB0 _0238D688: .word 0x00000163 arm_func_end ov19_0238D5FC - ; 0x0238D68C - .byte 0x00, 0xC0, 0x9F, 0xE5, 0x1C, 0xFF, 0x2F, 0xE1 - .word ov19_0238A468 - .byte 0x38, 0x40, 0x2D, 0xE9 - .byte 0x28, 0x04, 0x9F, 0xE5, 0x00, 0x40, 0x90, 0xE5, 0x00, 0x00, 0x94, 0xE5, 0x15, 0x00, 0x50, 0xE3 - .byte 0x00, 0xF1, 0x8F, 0x90, 0x03, 0x01, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA - .byte 0x1A, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x2D, 0x00, 0x00, 0xEA, 0x35, 0x00, 0x00, 0xEA - .byte 0x34, 0x00, 0x00, 0xEA, 0x33, 0x00, 0x00, 0xEA, 0x32, 0x00, 0x00, 0xEA, 0x31, 0x00, 0x00, 0xEA - .byte 0x30, 0x00, 0x00, 0xEA, 0x2F, 0x00, 0x00, 0xEA, 0x9B, 0x00, 0x00, 0xEA, 0xDC, 0x00, 0x00, 0xEA - .byte 0xE0, 0x00, 0x00, 0xEA, 0xEF, 0x00, 0x00, 0xEA, 0x2A, 0x00, 0x00, 0xEA, 0x29, 0x00, 0x00, 0xEA - .byte 0x28, 0x00, 0x00, 0xEA, 0x27, 0x00, 0x00, 0xEA, 0x26, 0x00, 0x00, 0xEA, 0x25, 0x00, 0x00, 0xEA - .byte 0xD5, 0x65, 0xFD, 0xEB, 0x04, 0x00, 0xA0, 0xE3, 0x38, 0x80, 0xBD, 0xE8, 0x61, 0xF3, 0xFF, 0xEB - .byte 0x03, 0x00, 0x50, 0xE3, 0x02, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05, 0xE5, 0x00, 0x00, 0xEA - .byte 0x03, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0xE2, 0x00, 0x00, 0xEA, 0xCC, 0x09, 0x94, 0xE5 - .byte 0x01, 0x0C, 0x10, 0xE3, 0x04, 0x00, 0x00, 0x0A, 0x58, 0x0A, 0x94, 0xE5, 0x54, 0x2A, 0x94, 0xE5 - .byte 0x00, 0x10, 0xA0, 0xE3, 0x32, 0xFF, 0x2F, 0xE1, 0x00, 0x00, 0x00, 0xEA, 0xC2, 0x65, 0xFD, 0xEB - .byte 0x41, 0xF3, 0xFF, 0xEB, 0x64, 0x03, 0x9F, 0xE5, 0x00, 0x00, 0x90, 0xE5, 0x86, 0xCE, 0xF1, 0xEB - .byte 0x58, 0x03, 0x9F, 0xE5, 0x00, 0x10, 0xA0, 0xE3, 0x00, 0x10, 0x80, 0xE5, 0x04, 0x00, 0xA0, 0xE3 - .byte 0x38, 0x80, 0xBD, 0xE8, 0xD0, 0x65, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A - .byte 0x37, 0xFD, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xCA, 0x00, 0x00, 0x0A, 0x01, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x84, 0xE5, 0xC7, 0x00, 0x00, 0xEA, 0xC7, 0x65, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0x00, 0x1A, 0x2E, 0xFD, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0xC1, 0x00, 0x00, 0x0A - .byte 0x00, 0x00, 0x94, 0xE5, 0x00, 0x50, 0xE0, 0xE3, 0x05, 0x00, 0x40, 0xE2, 0x10, 0x00, 0x50, 0xE3 - .byte 0x00, 0xF1, 0x8F, 0x90, 0x58, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA, 0x18, 0x00, 0x00, 0xEA - .byte 0x11, 0x00, 0x00, 0xEA, 0x12, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA, 0x18, 0x00, 0x00, 0xEA - .byte 0x09, 0x00, 0x00, 0xEA, 0x50, 0x00, 0x00, 0xEA, 0x4F, 0x00, 0x00, 0xEA, 0x4E, 0x00, 0x00, 0xEA - .byte 0x4D, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA, 0x15, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA - .byte 0x17, 0x00, 0x00, 0xEA, 0x02, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA, 0x02, 0x50, 0xA0, 0xE3 - .byte 0x45, 0x00, 0x00, 0xEA, 0x05, 0x50, 0xA0, 0xE3, 0x43, 0x00, 0x00, 0xEA, 0x0A, 0x50, 0xA0, 0xE3 - .byte 0x41, 0x00, 0x00, 0xEA, 0x0E, 0x50, 0xA0, 0xE3, 0x3F, 0x00, 0x00, 0xEA, 0x0F, 0x50, 0xA0, 0xE3 - .byte 0x3D, 0x00, 0x00, 0xEA, 0x10, 0x50, 0xA0, 0xE3, 0x3B, 0x00, 0x00, 0xEA, 0x11, 0x50, 0xA0, 0xE3 - .byte 0x39, 0x00, 0x00, 0xEA, 0x12, 0x50, 0xA0, 0xE3, 0x37, 0x00, 0x00, 0xEA, 0x28, 0x50, 0xA0, 0xE3 - .byte 0x35, 0x00, 0x00, 0xEA, 0x29, 0x50, 0xA0, 0xE3, 0x33, 0x00, 0x00, 0xEA, 0x2D, 0x50, 0xA0, 0xE3 - .byte 0x31, 0x00, 0x00, 0xEA, 0x2E, 0x50, 0xA0, 0xE3, 0x2F, 0x00, 0x00, 0xEA, 0x02, 0x01, 0xD4, 0xE5 - .byte 0x57, 0x00, 0x40, 0xE2, 0x11, 0x00, 0x50, 0xE3, 0x00, 0xF1, 0x8F, 0x90, 0x2A, 0x00, 0x00, 0xEA - .byte 0x10, 0x00, 0x00, 0xEA, 0x11, 0x00, 0x00, 0xEA, 0x12, 0x00, 0x00, 0xEA, 0x13, 0x00, 0x00, 0xEA - .byte 0x14, 0x00, 0x00, 0xEA, 0x15, 0x00, 0x00, 0xEA, 0x16, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA - .byte 0x18, 0x00, 0x00, 0xEA, 0x19, 0x00, 0x00, 0xEA, 0x1A, 0x00, 0x00, 0xEA, 0x1B, 0x00, 0x00, 0xEA - .byte 0x1D, 0x00, 0x00, 0xEA, 0x1C, 0x00, 0x00, 0xEA, 0x1B, 0x00, 0x00, 0xEA, 0x1A, 0x00, 0x00, 0xEA - .byte 0x19, 0x00, 0x00, 0xEA, 0x17, 0x00, 0x00, 0xEA, 0x14, 0x50, 0xA0, 0xE3, 0x16, 0x00, 0x00, 0xEA - .byte 0x15, 0x50, 0xA0, 0xE3, 0x14, 0x00, 0x00, 0xEA, 0x16, 0x50, 0xA0, 0xE3, 0x12, 0x00, 0x00, 0xEA - .byte 0x17, 0x50, 0xA0, 0xE3, 0x10, 0x00, 0x00, 0xEA, 0x18, 0x50, 0xA0, 0xE3, 0x0E, 0x00, 0x00, 0xEA - .byte 0x19, 0x50, 0xA0, 0xE3, 0x0C, 0x00, 0x00, 0xEA, 0x1A, 0x50, 0xA0, 0xE3, 0x0A, 0x00, 0x00, 0xEA - .byte 0x1B, 0x50, 0xA0, 0xE3, 0x08, 0x00, 0x00, 0xEA, 0x1C, 0x50, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xEA - .byte 0x1D, 0x50, 0xA0, 0xE3, 0x04, 0x00, 0x00, 0xEA, 0x1E, 0x50, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA - .byte 0x1F, 0x50, 0xA0, 0xE3, 0x00, 0x00, 0x00, 0xEA, 0x20, 0x50, 0xA0, 0xE3, 0x90, 0x01, 0x9F, 0xE5 - .byte 0x05, 0x10, 0xA0, 0xE1, 0x2D, 0xFA, 0xF1, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x4F, 0x65, 0xFD, 0xEB - .byte 0x04, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5, 0x5A, 0x00, 0x00, 0xEA, 0x5A, 0x65, 0xFD, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x02, 0x00, 0x00, 0x1A, 0xC1, 0xFC, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x54, 0x00, 0x00, 0x0A, 0x53, 0xFB, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x2E, 0x00, 0x00, 0x0A - .byte 0xC4, 0x21, 0x94, 0xE5, 0x0C, 0x00, 0x52, 0xE3, 0x02, 0xF1, 0x8F, 0x90, 0x24, 0x00, 0x00, 0xEA - .byte 0x23, 0x00, 0x00, 0xEA, 0x0A, 0x00, 0x00, 0xEA, 0x0B, 0x00, 0x00, 0xEA, 0x0C, 0x00, 0x00, 0xEA - .byte 0x0D, 0x00, 0x00, 0xEA, 0x0E, 0x00, 0x00, 0xEA, 0x0F, 0x00, 0x00, 0xEA, 0x10, 0x00, 0x00, 0xEA - .byte 0x11, 0x00, 0x00, 0xEA, 0x12, 0x00, 0x00, 0xEA, 0x13, 0x00, 0x00, 0xEA, 0x14, 0x00, 0x00, 0xEA - .byte 0x15, 0x00, 0x00, 0xEA, 0x32, 0x50, 0xA0, 0xE3, 0x16, 0x00, 0x00, 0xEA, 0x33, 0x50, 0xA0, 0xE3 - .byte 0x14, 0x00, 0x00, 0xEA, 0x3C, 0x50, 0xA0, 0xE3, 0x12, 0x00, 0x00, 0xEA, 0x3D, 0x50, 0xA0, 0xE3 - .byte 0x10, 0x00, 0x00, 0xEA, 0x3E, 0x50, 0xA0, 0xE3, 0x0E, 0x00, 0x00, 0xEA, 0x3F, 0x50, 0xA0, 0xE3 - .byte 0x0C, 0x00, 0x00, 0xEA, 0x40, 0x50, 0xA0, 0xE3, 0x0A, 0x00, 0x00, 0xEA, 0x41, 0x50, 0xA0, 0xE3 - .byte 0x08, 0x00, 0x00, 0xEA, 0x42, 0x50, 0xA0, 0xE3, 0x06, 0x00, 0x00, 0xEA, 0x43, 0x50, 0xA0, 0xE3 - .byte 0x04, 0x00, 0x00, 0xEA, 0x44, 0x50, 0xA0, 0xE3, 0x02, 0x00, 0x00, 0xEA, 0x45, 0x50, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x00, 0xEA, 0x13, 0x50, 0xA0, 0xE3, 0xA8, 0x00, 0x9F, 0xE5, 0x05, 0x10, 0xA0, 0xE1 - .byte 0xF2, 0xF9, 0xF1, 0xEB, 0x05, 0x00, 0xA0, 0xE1, 0x14, 0x65, 0xFD, 0xEB, 0x0C, 0xFB, 0xFF, 0xEB - .byte 0x00, 0x00, 0x50, 0xE3, 0x0E, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05, 0x1D, 0x00, 0x00, 0x0A - .byte 0x84, 0x00, 0x9F, 0xE5, 0xE9, 0xF9, 0xF1, 0xEB, 0x0D, 0x00, 0xA0, 0xE3, 0x00, 0x00, 0x84, 0xE5 - .byte 0x18, 0x00, 0x00, 0xEA, 0x48, 0xFE, 0xFF, 0xEB, 0x0A, 0x00, 0x50, 0xE3, 0x0E, 0x00, 0xA0, 0x03 - .byte 0x00, 0x00, 0x84, 0x05, 0x13, 0x00, 0x00, 0xEA, 0x13, 0x65, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3 - .byte 0x02, 0x00, 0x00, 0x1A, 0x7A, 0xFC, 0xFD, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x0D, 0x00, 0x00, 0x0A - .byte 0x47, 0xFB, 0xFF, 0xEB, 0x00, 0x00, 0x50, 0xE3, 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05 - .byte 0x08, 0x00, 0x00, 0x0A, 0x34, 0x00, 0x9F, 0xE5, 0xD4, 0xF9, 0xF1, 0xEB, 0x0F, 0x00, 0xA0, 0xE3 - .byte 0x00, 0x00, 0x84, 0xE5, 0x03, 0x00, 0x00, 0xEA, 0x33, 0xFE, 0xFF, 0xEB, 0x0A, 0x00, 0x50, 0xE3 - .byte 0x01, 0x00, 0xA0, 0x03, 0x00, 0x00, 0x84, 0x05, 0x01, 0x00, 0xA0, 0xE3, 0x38, 0x80, 0xBD, 0xE8 - .word ov11_02324DB0 - .word ov19_0238E2D0 - .word ov19_0238E2E8 - .word ov19_0238E304 - .word ov19_0238E324 + arm_func_start ov19_0238D68C +ov19_0238D68C: ; 0x0238D68C + ldr ip, _0238D694 ; =ov19_0238A468 + bx ip + .align 2, 0 +_0238D694: .word ov19_0238A468 + arm_func_end ov19_0238D68C + ; 0x0238D698 + + arm_func_start ov19_0238D698 +ov19_0238D698: ; 0x0238D698 + stmdb sp!, {r3, r4, r5, lr} + ldr r0, _0238DACC ; =ov11_02324DB0 + ldr r4, [r0] + ldr r0, [r4] + cmp r0, #0x15 + addls pc, pc, r0, lsl #2 + b _0238DAC4 +_0238D6B4: ; jump table + b _0238D70C ; case 0 + b _0238D718 ; case 1 + b _0238D72C ; case 2 + b _0238D738 ; case 3 + b _0238D780 ; case 4 + b _0238D7A4 ; case 5 + b _0238D7A4 ; case 6 + b _0238D7A4 ; case 7 + b _0238D7A4 ; case 8 + b _0238D7A4 ; case 9 + b _0238D7A4 ; case 10 + b _0238D7A4 ; case 11 + b _0238D958 ; case 12 + b _0238DA60 ; case 13 + b _0238DA74 ; case 14 + b _0238DAB4 ; case 15 + b _0238D7A4 ; case 16 + b _0238D7A4 ; case 17 + b _0238D7A4 ; case 18 + b _0238D7A4 ; case 19 + b _0238D7A4 ; case 20 + b _0238D7A4 ; case 21 +_0238D70C: + bl ov11_022E6E68 + mov r0, #4 + ldmia sp!, {r3, r4, r5, pc} +_0238D718: + bl ov19_0238A4A4 + cmp r0, #3 + moveq r0, #2 + streq r0, [r4] + b _0238DAC4 +_0238D72C: + mov r0, #3 + str r0, [r4] + b _0238DAC4 +_0238D738: + ldr r0, [r4, #0x9cc] + tst r0, #0x100 + beq _0238D758 + ldr r0, [r4, #0xa58] + ldr r2, [r4, #0xa54] + mov r1, #0 + blx r2 + b _0238D75C +_0238D758: + bl ov11_022E6E68 +_0238D75C: + bl ov19_0238A468 + ldr r0, _0238DACC ; =ov11_02324DB0 + ldr r0, [r0] + bl MemFree + ldr r0, _0238DACC ; =ov11_02324DB0 + mov r1, #0 + str r1, [r0] + mov r0, #4 + ldmia sp!, {r3, r4, r5, pc} +_0238D780: + bl ov11_022E6EC8 + cmp r0, #0 + bne _0238D798 + bl ov11_0230CC70 + cmp r0, #0 + beq _0238DAC4 +_0238D798: + mov r0, #1 + str r0, [r4] + b _0238DAC4 +_0238D7A4: + bl ov11_022E6EC8 + cmp r0, #0 + bne _0238D7BC + bl ov11_0230CC70 + cmp r0, #0 + beq _0238DAC4 +_0238D7BC: + ldr r0, [r4] + mvn r5, #0 + sub r0, r0, #5 + cmp r0, #0x10 + addls pc, pc, r0, lsl #2 + b _0238D938 +_0238D7D4: ; jump table + b _0238D838 ; case 0 + b _0238D840 ; case 1 + b _0238D828 ; case 2 + b _0238D830 ; case 3 + b _0238D848 ; case 4 + b _0238D850 ; case 5 + b _0238D818 ; case 6 + b _0238D938 ; case 7 + b _0238D938 ; case 8 + b _0238D938 ; case 9 + b _0238D938 ; case 10 + b _0238D858 ; case 11 + b _0238D860 ; case 12 + b _0238D868 ; case 13 + b _0238D870 ; case 14 + b _0238D820 ; case 15 + b _0238D878 ; case 16 +_0238D818: + mov r5, #2 + b _0238D938 +_0238D820: + mov r5, #5 + b _0238D938 +_0238D828: + mov r5, #0xa + b _0238D938 +_0238D830: + mov r5, #0xe + b _0238D938 +_0238D838: + mov r5, #0xf + b _0238D938 +_0238D840: + mov r5, #0x10 + b _0238D938 +_0238D848: + mov r5, #0x11 + b _0238D938 +_0238D850: + mov r5, #0x12 + b _0238D938 +_0238D858: + mov r5, #0x28 + b _0238D938 +_0238D860: + mov r5, #0x29 + b _0238D938 +_0238D868: + mov r5, #0x2d + b _0238D938 +_0238D870: + mov r5, #0x2e + b _0238D938 +_0238D878: + ldrb r0, [r4, #0x102] + sub r0, r0, #0x57 + cmp r0, #0x11 + addls pc, pc, r0, lsl #2 + b _0238D938 +_0238D88C: ; jump table + b _0238D8D4 ; case 0 + b _0238D8DC ; case 1 + b _0238D8E4 ; case 2 + b _0238D8EC ; case 3 + b _0238D8F4 ; case 4 + b _0238D8FC ; case 5 + b _0238D904 ; case 6 + b _0238D90C ; case 7 + b _0238D914 ; case 8 + b _0238D91C ; case 9 + b _0238D924 ; case 10 + b _0238D92C ; case 11 + b _0238D938 ; case 12 + b _0238D938 ; case 13 + b _0238D938 ; case 14 + b _0238D938 ; case 15 + b _0238D938 ; case 16 + b _0238D934 ; case 17 +_0238D8D4: + mov r5, #0x14 + b _0238D938 +_0238D8DC: + mov r5, #0x15 + b _0238D938 +_0238D8E4: + mov r5, #0x16 + b _0238D938 +_0238D8EC: + mov r5, #0x17 + b _0238D938 +_0238D8F4: + mov r5, #0x18 + b _0238D938 +_0238D8FC: + mov r5, #0x19 + b _0238D938 +_0238D904: + mov r5, #0x1a + b _0238D938 +_0238D90C: + mov r5, #0x1b + b _0238D938 +_0238D914: + mov r5, #0x1c + b _0238D938 +_0238D91C: + mov r5, #0x1d + b _0238D938 +_0238D924: + mov r5, #0x1e + b _0238D938 +_0238D92C: + mov r5, #0x1f + b _0238D938 +_0238D934: + mov r5, #0x20 +_0238D938: + ldr r0, _0238DAD0 ; =ov19_0238E2D0 + mov r1, r5 + bl DebugPrint0 + mov r0, r5 + bl ov11_022E6E8C + mov r0, #4 + str r0, [r4] + b _0238DAC4 +_0238D958: + bl ov11_022E6EC8 + cmp r0, #0 + bne _0238D970 + bl ov11_0230CC70 + cmp r0, #0 + beq _0238DAC4 +_0238D970: + bl ov19_0238C6C4 + cmp r0, #0 + beq _0238DA38 + ldr r2, [r4, #0x1c4] + cmp r2, #0xc + addls pc, pc, r2, lsl #2 + b _0238DA20 +_0238D98C: ; jump table + b _0238DA20 ; case 0 + b _0238D9C0 ; case 1 + b _0238D9C8 ; case 2 + b _0238D9D0 ; case 3 + b _0238D9D8 ; case 4 + b _0238D9E0 ; case 5 + b _0238D9E8 ; case 6 + b _0238D9F0 ; case 7 + b _0238D9F8 ; case 8 + b _0238DA00 ; case 9 + b _0238DA08 ; case 10 + b _0238DA10 ; case 11 + b _0238DA18 ; case 12 +_0238D9C0: + mov r5, #0x32 + b _0238DA24 +_0238D9C8: + mov r5, #0x33 + b _0238DA24 +_0238D9D0: + mov r5, #0x3c + b _0238DA24 +_0238D9D8: + mov r5, #0x3d + b _0238DA24 +_0238D9E0: + mov r5, #0x3e + b _0238DA24 +_0238D9E8: + mov r5, #0x3f + b _0238DA24 +_0238D9F0: + mov r5, #0x40 + b _0238DA24 +_0238D9F8: + mov r5, #0x41 + b _0238DA24 +_0238DA00: + mov r5, #0x42 + b _0238DA24 +_0238DA08: + mov r5, #0x43 + b _0238DA24 +_0238DA10: + mov r5, #0x44 + b _0238DA24 +_0238DA18: + mov r5, #0x45 + b _0238DA24 +_0238DA20: + mov r5, #0x13 +_0238DA24: + ldr r0, _0238DAD4 ; =ov19_0238E2E8 + mov r1, r5 + bl DebugPrint0 + mov r0, r5 + bl ov11_022E6E8C +_0238DA38: + bl ov19_0238C670 + cmp r0, #0 + moveq r0, #0xe + streq r0, [r4] + beq _0238DAC4 + ldr r0, _0238DAD8 ; =ov19_0238E304 + bl DebugPrint0 + mov r0, #0xd + str r0, [r4] + b _0238DAC4 +_0238DA60: + bl ov19_0238D388 + cmp r0, #0xa + moveq r0, #0xe + streq r0, [r4] + b _0238DAC4 +_0238DA74: + bl ov11_022E6EC8 + cmp r0, #0 + bne _0238DA8C + bl ov11_0230CC70 + cmp r0, #0 + beq _0238DAC4 +_0238DA8C: + bl ov19_0238C7B0 + cmp r0, #0 + moveq r0, #1 + streq r0, [r4] + beq _0238DAC4 + ldr r0, _0238DADC ; =ov19_0238E324 + bl DebugPrint0 + mov r0, #0xf + str r0, [r4] + b _0238DAC4 +_0238DAB4: + bl ov19_0238D388 + cmp r0, #0xa + moveq r0, #1 + streq r0, [r4] +_0238DAC4: + mov r0, #1 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 +_0238DACC: .word ov11_02324DB0 +_0238DAD0: .word ov19_0238E2D0 +_0238DAD4: .word ov19_0238E2E8 +_0238DAD8: .word ov19_0238E304 +_0238DADC: .word ov19_0238E324 + arm_func_end ov19_0238D698 + ; 0x0238DAE0 + .global OVERLAY19_UNKNOWN_TABLE__NA_238DAE0 OVERLAY19_UNKNOWN_TABLE__NA_238DAE0: .byte 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00