.include "asm/macros.inc" .include "overlay_05.inc" .text arm_func_start ov05_0233CA80 ov05_0233CA80: ; 0x0233CA80 ldr ip, _0233CA90 ; =MemZero ldr r0, _0233CA94 ; =ov05_0233FCC0 mov r1, #0xc bx ip .align 2, 0 _0233CA90: .word MemZero _0233CA94: .word ov05_0233FCC0 arm_func_end ov05_0233CA80 arm_func_start ov05_0233CA98 ov05_0233CA98: ; 0x0233CA98 ldr r1, _0233CAA4 ; =ov05_0233FCC0 str r0, [r1] bx lr .align 2, 0 _0233CAA4: .word ov05_0233FCC0 arm_func_end ov05_0233CA98 arm_func_start ov05_0233CAA8 ov05_0233CAA8: ; 0x0233CAA8 ldr r0, _0233CAB4 ; =ov05_0233FCC0 ldr r0, [r0] bx lr .align 2, 0 _0233CAB4: .word ov05_0233FCC0 arm_func_end ov05_0233CAA8 arm_func_start ov05_0233CAB8 ov05_0233CAB8: ; 0x0233CAB8 ldr r1, _0233CAC4 ; =ov05_0233FCC0 str r0, [r1, #4] bx lr .align 2, 0 _0233CAC4: .word ov05_0233FCC0 arm_func_end ov05_0233CAB8 arm_func_start ov05_0233CAC8 ov05_0233CAC8: ; 0x0233CAC8 stmdb sp!, {r3, lr} ldrsb ip, [sp, #8] str ip, [sp] bl sub_02046A9C arm_func_end ov05_0233CAC8 arm_func_start ov05_0233CAD8 ov05_0233CAD8: ; 0x0233CAD8 ldmia sp!, {r3, pc} arm_func_end ov05_0233CAD8 arm_func_start ov05_0233CADC ov05_0233CADC: ; 0x0233CADC stmdb sp!, {lr} sub sp, sp, #0xc ldr ip, [sp, #0x10] ldrh lr, [sp, #0x14] str ip, [sp] mov ip, #0 str lr, [sp, #4] str ip, [sp, #8] bl sub_02046A20 add sp, sp, #0xc ldmia sp!, {pc} arm_func_end ov05_0233CADC arm_func_start ov05_0233CB08 ov05_0233CB08: ; 0x0233CB08 stmdb sp!, {lr} sub sp, sp, #0xc arm_func_end ov05_0233CB08 arm_func_start ov05_0233CB10 ov05_0233CB10: ; 0x0233CB10 ldr ip, [sp, #0x10] ldrh lr, [sp, #0x14] str ip, [sp] ldr ip, [sp, #0x18] str lr, [sp, #4] str ip, [sp, #8] bl sub_02046A20 add sp, sp, #0xc ldmia sp!, {pc} arm_func_end ov05_0233CB10 arm_func_start ov05_0233CB34 ov05_0233CB34: ; 0x0233CB34 stmdb sp!, {r3, lr} bl sub_02046B04 arm_func_end ov05_0233CB34 arm_func_start ov05_0233CB3C ov05_0233CB3C: ; 0x0233CB3C mvn r1, #1 cmp r0, r1 moveq r0, #0xd ldmeqia sp!, {r3, pc} add r1, r1, #1 cmp r0, r1 moveq r0, #0 ldmia sp!, {r3, pc} arm_func_end ov05_0233CB3C arm_func_start ov05_02046BA0 ov05_02046BA0: ; 0x0233CB5C ldr ip, _0233CB64 ; =sub_02046BA0 bx ip .align 2, 0 _0233CB64: .word sub_02046BA0 arm_func_end ov05_02046BA0 arm_func_start ov05_0233CB68 ov05_0233CB68: ; 0x0233CB68 ldr ip, _0233CB74 ; =sub_02046BE8 mov r2, #0 bx ip .align 2, 0 _0233CB74: .word sub_02046BE8 arm_func_end ov05_0233CB68 arm_func_start ov05_02046BE8 ov05_02046BE8: ; 0x0233CB78 ldr ip, _0233CB80 ; =sub_02046BE8 bx ip .align 2, 0 _0233CB80: .word sub_02046BE8 arm_func_end ov05_02046BE8 arm_func_start ov05_0233CB84 ov05_0233CB84: ; 0x0233CB84 stmdb sp!, {r3, lr} bl sub_02046C78 cmp r0, #0 movne r0, #0xd moveq r0, #0 ldmia sp!, {r3, pc} arm_func_end ov05_0233CB84 arm_func_start ov05_0233CB9C ov05_0233CB9C: ; 0x0233CB9C stmdb sp!, {r3, lr} mov r0, #0xb4 mov r1, #8 bl MemAlloc ldr r2, _0233CC08 ; =ov05_0233FCCC mov r1, #0xb4 str r0, [r2, #4] bl MemZero ldr r0, _0233CC08 ; =ov05_0233FCCC mov r3, #0 ldr r2, [r0, #4] mov r1, #0xc str r3, [r2, #0xc] ldr r3, [r0, #4] add r2, r3, #0x10 str r2, [r3, #0x74] ldr r0, [r0, #4] bl MemZero ldr r0, _0233CC08 ; =ov05_0233FCCC mov r1, #0 str r1, [r0] bl sub_02046D20 ldr r0, _0233CC0C ; =ov05_0233FCA0 mov r1, #0 str r1, [r0] mov r0, #1 ldmia sp!, {r3, pc} .align 2, 0 _0233CC08: .word ov05_0233FCCC _0233CC0C: .word ov05_0233FCA0 arm_func_end ov05_0233CB9C arm_func_start ov05_0233CC10 ov05_0233CC10: ; 0x0233CC10 stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x18c ldr r0, _0233D344 ; =ov05_0233FCCC ldr r1, _0233D348 ; =0x00002001 ldr r0, [r0, #4] ldr r2, [r0, #0xc] cmp r2, r1 bgt _0233CC98 bge _0233D10C sub r0, r1, #0x1000 cmp r2, r0 bgt _0233CC78 bge _0233CF98 cmp r2, #2 bgt _0233CC6C cmp r2, #0 blt _0233D338 beq _0233CCE8 cmp r2, #1 beq _0233CDA0 cmp r2, #2 beq _0233CE2C b _0233D338 _0233CC6C: cmp r2, #0x1000 beq _0233CE48 b _0233D338 _0233CC78: ldr r0, _0233D34C ; =0x00001002 cmp r2, r0 bgt _0233CC8C beq _0233D018 b _0233D338 _0233CC8C: cmp r2, #0x2000 beq _0233D034 b _0233D338 _0233CC98: add r0, r1, #0x1000 cmp r2, r0 bgt _0233CCC8 bge _0233D220 add r0, r1, #1 cmp r2, r0 bgt _0233CCBC beq _0233D18C b _0233D338 _0233CCBC: cmp r2, #0x3000 beq _0233D20C b _0233D338 _0233CCC8: cmp r2, #0x4000 bgt _0233CCD8 beq _0233D2A4 b _0233D338 _0233CCD8: add r0, r1, #0x2000 cmp r2, r0 beq _0233D2B8 b _0233D338 _0233CCE8: bl ov01_0232E94C cmp r0, #0 bne _0233D338 bl ov01_0232F3F4 bl ov05_0233CA80 ldr r0, _0233D344 ; =ov05_0233FCCC mov r1, #3 ldr r0, [r0, #4] add r0, r0, #0x10 bl MemZero bl sub_0204E210 cmp r0, #0 bne _0233CD3C bl GetAdventureLogDungeonFloor ldrb r0, [r0] cmp r0, #0xbe ldreq r0, _0233D344 ; =ov05_0233FCCC moveq r1, #3 ldreq r0, [r0, #4] streqb r1, [r0, #0x11] beq _0233CD4C _0233CD3C: ldr r0, _0233D344 ; =ov05_0233FCCC mov r1, #0 ldr r0, [r0, #4] strb r1, [r0, #0x11] _0233CD4C: mov r0, #0 bl ov01_0233767C ldr r2, _0233D350 ; =ov05_0233FBD8 ldr r1, _0233D344 ; =ov05_0233FCCC ldr r2, [r2, r0, lsl #3] ldr r0, [r1, #4] ldr r3, _0233D354 ; =ov05_0233FBD4 str r2, [r0, #0x14] mov r0, #0 ldr r2, _0233D358 ; =0x000037E1 str r3, [sp] str r2, [sp, #4] ldr r3, [r1, #4] ldr r2, _0233D35C ; =0x00000233 mov r1, r0 add r3, r3, #0x14 bl ov05_0233CADC ldr r0, _0233D344 ; =ov05_0233FCCC mov r1, #1 ldr r0, [r0, #4] str r1, [r0, #0xc] _0233CDA0: bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #0 bl ov01_0233768C cmp r4, #1 bne _0233CDE0 mov r0, #0 arm_func_end ov05_0233CC10 arm_func_start ov05_0233CDC8 ov05_0233CDC8: ; 0x0233CDC8 bl ov05_0233CA98 ldr r0, _0233D344 ; =ov05_0233FCCC mov r1, #0x1000 ldr r0, [r0, #4] arm_func_end ov05_0233CDC8 arm_func_start ov05_0233CDD8 ov05_0233CDD8: ; 0x0233CDD8 str r1, [r0, #0xc] b _0233D338 _0233CDE0: cmp r4, #2 arm_func_end ov05_0233CDD8 arm_func_start ov05_0233CDE4 ov05_0233CDE4: ; 0x0233CDE4 bne _0233CE10 mov r0, #1 bl ov05_0233CA98 ldr r0, _0233D344 ; =ov05_0233FCCC mov r3, #0 ldr r2, [r0, #4] mov r1, #0x2000 strb r3, [r2, #0xb1] ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233CE10: sub r0, r4, #0xc cmp r0, #1 ldrls r0, _0233D344 ; =ov05_0233FCCC movls r1, #2 ldrls r0, [r0, #4] strls r1, [r0, #0xc] b _0233D338 _0233CE2C: bl ov01_0232E94C cmp r0, #0 bne _0233D338 mov r0, #0x13 bl ov01_023310B8 mov r0, #3 b _0233D33C _0233CE48: bl ov01_0232E94C cmp r0, #0 bne _0233D338 bl sub_0204E5E4 cmp r0, #0 bne _0233CE80 ldr r1, _0233D360 ; =0x000037E3 mov r0, #0x1c bl ov05_0233CB68 ldr r0, _0233D344 ; =ov05_0233FCCC ldr r1, _0233D34C ; =0x00001002 ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233CE80: add r0, sp, #0x13c mov r7, #0 bl InitPreprocessorArgs add r0, sp, #0xc bl sub_02057010 mov r6, r0 mov r5, r7 add r4, sp, #0xc mov sb, #6 mvn sl, #0 b _0233CF20 _0233CEAC: mov r0, r5, lsl #1 ldrsh r0, [r4, r0] bl GetTeamMember mov r8, r0 ldrsh r0, [r8, #4] cmp r0, #0x218 beq _0233CEE4 ldrsh r0, [r8, #4] bl sub_02054F18 cmp r0, #0 ldrnesh r0, [r8, #4] movne r7, #1 strne r0, [sp, #0x13c] bne _0233CF28 _0233CEE4: add r0, r8, #0x22 bl GetFirstNotRealMoveInTimeDarkness cmp r0, sl beq _0233CF1C mla r1, r0, sb, r8 ldrh r0, [r1, #0x24] cmp r0, #0x1d4 bne _0233CF1C ldrsh r0, [r8, #4] mov r7, #2 str r0, [sp, #0x13c] ldrh r0, [r1, #0x24] str r0, [sp, #0x14c] b _0233CF28 _0233CF1C: add r5, r5, #1 _0233CF20: cmp r5, r6 blt _0233CEAC _0233CF28: cmp r7, #0 bne _0233CF64 mov r0, #1 bl ov01_0233767C str r0, [sp] mov r0, #0 ldr r2, _0233D364 ; =ov05_0233FB94 ldr r3, _0233D368 ; =0x000037E2 mov r1, r0 bl ov05_0233CAC8 ldr r0, _0233D344 ; =ov05_0233FCCC ldr r1, _0233D36C ; =0x00001001 ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233CF64: cmp r7, #2 ldreq r0, _0233D370 ; =0x000037E5 add r2, sp, #0x13c ldrne r0, _0233D374 ; =0x000037E4 mov r0, r0, lsl #0x10 mov r1, r0, lsr #0x10 mov r0, #0x1c bl ov05_02046BE8 ldr r0, _0233D344 ; =ov05_0233FCCC ldr r1, _0233D34C ; =0x00001002 ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233CF98: bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #1 bl ov01_0233768C cmp r4, #3 bne _0233CFD8 mov r0, #0 bl ov05_0233CAB8 ldr r0, _0233D344 ; =ov05_0233FCCC mov r1, #0x3000 ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233CFD8: cmp r4, #4 bne _0233CFFC mov r0, #1 bl ov05_0233CAB8 ldr r0, _0233D344 ; =ov05_0233FCCC mov r1, #0x4000 ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233CFFC: sub r0, r4, #0xc cmp r0, #1 ldrls r0, _0233D344 ; =ov05_0233FCCC movls r1, #0 ldrls r0, [r0, #4] strls r1, [r0, #0xc] b _0233D338 _0233D018: bl ov05_0233CB84 cmp r0, #0xd ldreq r0, _0233D344 ; =ov05_0233FCCC moveq r1, #0 ldreq r0, [r0, #4] streq r1, [r0, #0xc] b _0233D338 _0233D034: bl ov01_0232E94C cmp r0, #0 bne _0233D338 bl ExplorerMazeMonsterExists cmp r0, #0 beq _0233D0D8 ldr r0, _0233D344 ; =ov05_0233FCCC ldr r0, [r0, #4] ldrb r0, [r0, #0xb1] cmp r0, #0 bne _0233D0D8 add r0, sp, #0xec bl InitPreprocessorArgs add r0, sp, #0x14 bl GetExplorerMazeTeamName add r2, sp, #0x14 add r0, sp, #0x54 mov r1, #0x98 str r2, [sp, #0x124] bl MemZero mov r0, #3 bl ov01_0233767C ldr r2, _0233D378 ; =ov05_0233FB68 ldr r1, _0233D37C ; =ov05_0233FB64 ldr r2, [r2, r0, lsl #3] ldr r0, _0233D380 ; =0x000037EC str r2, [sp, #0x54] str r1, [sp] str r0, [sp, #4] add r1, sp, #0xec str r1, [sp, #8] mov r0, #0 mov r1, #8 mov r2, #0x33 add r3, sp, #0x54 bl ov05_0233CB08 ldr r0, _0233D344 ; =ov05_0233FCCC ldr r1, _0233D384 ; =0x00002002 ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233D0D8: mov r0, #2 bl ov01_0233767C str r0, [sp] mov r0, #0 ldr r2, _0233D388 ; =ov05_0233FBB4 ldr r3, _0233D38C ; =0x000037E9 mov r1, r0 bl ov05_0233CAC8 ldr r0, _0233D344 ; =ov05_0233FCCC ldr r1, _0233D348 ; =0x00002001 ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233D10C: bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #2 bl ov01_0233768C cmp r4, #3 bne _0233D14C mov r0, #0 bl ov05_0233CAB8 ldr r0, _0233D344 ; =ov05_0233FCCC mov r1, #0x3000 ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233D14C: cmp r4, #4 bne _0233D170 mov r0, #1 bl ov05_0233CAB8 ldr r0, _0233D344 ; =ov05_0233FCCC mov r1, #0x4000 ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233D170: sub r0, r4, #0xc cmp r0, #1 ldrls r0, _0233D344 ; =ov05_0233FCCC movls r1, #0 ldrls r0, [r0, #4] strls r1, [r0, #0xc] b _0233D338 _0233D18C: bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #3 bl ov01_0233768C cmp r4, #0xb bne _0233D1F0 mov r0, #2 bl ov01_0233767C str r0, [sp] mov r0, #0 ldr r2, _0233D388 ; =ov05_0233FBB4 ldr r3, _0233D38C ; =0x000037E9 mov r1, r0 bl ov05_0233CAC8 ldr r0, _0233D344 ; =ov05_0233FCCC mov r3, #1 ldr r2, [r0, #4] add r1, r3, #0x2000 strb r3, [r2, #0xb1] ldr r0, [r0, #4] str r1, [r0, #0xc] b _0233D338 _0233D1F0: sub r0, r4, #0xc cmp r0, #1 ldrls r0, _0233D344 ; =ov05_0233FCCC movls r1, #0 ldrls r0, [r0, #4] strls r1, [r0, #0xc] b _0233D338 _0233D20C: bl ov05_0233D3D0 ldr r0, _0233D344 ; =ov05_0233FCCC ldr r1, _0233D390 ; =0x00003001 ldr r0, [r0, #4] str r1, [r0, #0xc] _0233D220: bl ov05_0233D450 mov r4, r0 bl sub_02003BFC cmp r4, #1 bne _0233D270 bl ov05_0233D424 bl ov05_0233CAA8 cmp r0, #1 ldreq r0, _0233D344 ; =ov05_0233FCCC moveq r1, #0x2000 ldreq r0, [r0, #4] streq r1, [r0, #0xc] beq _0233D338 bl ov05_0233CAA8 cmp r0, #0 ldreq r0, _0233D344 ; =ov05_0233FCCC moveq r1, #0x1000 ldreq r0, [r0, #4] streq r1, [r0, #0xc] b _0233D338 _0233D270: cmp r4, #3 bne _0233D288 bl ov05_0233D424 bl sub_0204A018 mov r0, #3 b _0233D33C _0233D288: cmp r4, #2 bne _0233D338 bl ov05_0233D424 mov r0, #0x13 bl ov01_023310B8 mov r0, #3 b _0233D33C _0233D2A4: bl ov05_0233DB1C ldr r0, _0233D344 ; =ov05_0233FCCC ldr r1, _0233D394 ; =0x00004001 ldr r0, [r0, #4] str r1, [r0, #0xc] _0233D2B8: bl sub_02003BFC bl ov05_0233DBDC cmp r0, #1 bne _0233D304 bl ov05_0233DBA0 bl ov05_0233CAA8 cmp r0, #1 ldreq r0, _0233D344 ; =ov05_0233FCCC moveq r1, #0x2000 ldreq r0, [r0, #4] streq r1, [r0, #0xc] beq _0233D338 bl ov05_0233CAA8 cmp r0, #0 ldreq r0, _0233D344 ; =ov05_0233FCCC moveq r1, #0x1000 ldreq r0, [r0, #4] streq r1, [r0, #0xc] b _0233D338 _0233D304: cmp r0, #3 bne _0233D31C bl ov05_0233DBA0 bl sub_0204A018 mov r0, #3 b _0233D33C _0233D31C: cmp r0, #2 bne _0233D338 bl ov05_0233DBA0 mov r0, #0x13 bl ov01_023310B8 mov r0, #3 b _0233D33C _0233D338: mov r0, #1 _0233D33C: add sp, sp, #0x18c ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 #if defined(EUROPE) #define OV05_0233CDE4_OFFSET 2 #elif defined(JAPAN) #define OV05_0233CDE4_OFFSET 0x164 #else #define OV05_0233CDE4_OFFSET 0 #endif _0233D344: .word ov05_0233FCCC _0233D348: .word 0x00002001 _0233D34C: .word 0x00001002 _0233D350: .word ov05_0233FBD8 _0233D354: .word ov05_0233FBD4 _0233D358: .word 0x000037E1 + OV05_0233CDE4_OFFSET _0233D35C: .word 0x00000233 _0233D360: .word 0x000037E3 + OV05_0233CDE4_OFFSET _0233D364: .word ov05_0233FB94 _0233D368: .word 0x000037E2 + OV05_0233CDE4_OFFSET _0233D36C: .word 0x00001001 _0233D370: .word 0x000037E5 + OV05_0233CDE4_OFFSET _0233D374: .word 0x000037E4 + OV05_0233CDE4_OFFSET _0233D378: .word ov05_0233FB68 _0233D37C: .word ov05_0233FB64 _0233D380: .word 0x000037EC + OV05_0233CDE4_OFFSET _0233D384: .word 0x00002002 _0233D388: .word ov05_0233FBB4 _0233D38C: .word 0x000037E9 + OV05_0233CDE4_OFFSET _0233D390: .word 0x00003001 _0233D394: .word 0x00004001 arm_func_end ov05_0233CDE4 arm_func_start ov05_0233D398 ov05_0233D398: ; 0x0233D398 stmdb sp!, {r3, lr} ldr r0, _0233D3CC ; =ov05_0233FCCC ldr r0, [r0, #4] cmp r0, #0 ldmeqia sp!, {r3, pc} bl sub_02046D20 ldr r0, _0233D3CC ; =ov05_0233FCCC ldr r0, [r0, #4] bl MemFree ldr r0, _0233D3CC ; =ov05_0233FCCC mov r1, #0 str r1, [r0, #4] ldmia sp!, {r3, pc} .align 2, 0 _0233D3CC: .word ov05_0233FCCC arm_func_end ov05_0233D398 arm_func_start ov05_0233D3D0 ov05_0233D3D0: ; 0x0233D3D0 stmdb sp!, {r3, lr} mov r0, #0x1dc mov r1, #8 bl MemAlloc ldr r2, _0233D420 ; =ov05_0233FCA4 mov r1, #0x1dc str r0, [r2] bl MemZero ldr r0, _0233D420 ; =ov05_0233FCA4 mov r3, #0 ldr r1, [r0] sub r2, r3, #2 str r3, [r1] ldr r1, [r0] strb r2, [r1, #8] ldr r1, [r0] add r0, r1, #0x33 bic r0, r0, #0x1f str r0, [r1, #0x10] ldmia sp!, {r3, pc} .align 2, 0 _0233D420: .word ov05_0233FCA4 arm_func_end ov05_0233D3D0 arm_func_start ov05_0233D424 ov05_0233D424: ; 0x0233D424 stmdb sp!, {r3, lr} ldr r0, _0233D44C ; =ov05_0233FCA4 ldr r0, [r0] cmp r0, #0 ldmeqia sp!, {r3, pc} bl MemFree ldr r0, _0233D44C ; =ov05_0233FCA4 mov r1, #0 str r1, [r0] ldmia sp!, {r3, pc} .align 2, 0 _0233D44C: .word ov05_0233FCA4 arm_func_end ov05_0233D424 arm_func_start ov05_0233D450 ov05_0233D450: ; 0x0233D450 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x17c ldr r0, _0233D9FC ; =ov05_0233FCA4 ldr r4, [r0] ldr r2, [r4] cmp r2, #0x4000 bgt _0233D4A4 bge _0233D884 cmp r2, #0 bgt _0233D480 beq _0233D4E8 b _0233D9F0 _0233D480: ldr r0, _0233DA00 ; =0x00001001 cmp r2, r0 bgt _0233D9F0 cmp r2, #0x1000 blt _0233D9F0 beq _0233D688 cmp r2, r0 beq _0233D730 b _0233D9F0 _0233D4A4: cmp r2, #0x5000 bgt _0233D4B4 beq _0233D898 b _0233D9F0 _0233D4B4: ldr r1, _0233DA04 ; =0x00005005 cmp r2, r1 bgt _0233D9F0 sub r0, r1, #2 cmp r2, r0 blt _0233D9F0 beq _0233D8AC sub r0, r1, #1 cmp r2, r0 beq _0233D8C0 cmp r2, r1 beq _0233D9E0 b _0233D9F0 _0233D4E8: bl ov05_0233CAA8 cmp r0, #1 bne _0233D56C ldr r0, _0233D9FC ; =ov05_0233FCA4 ldr r1, [r0] cmp r1, #0 movne r0, #1 strne r0, [r1, #4] add r0, r4, #0x54 mov r1, #0x150 bl MemZero add r0, r4, #0x1bc mov r1, #0x18 bl MemZero mov r0, #0x18 str r0, [r4, #0x1a4] add r0, r4, #0x1bc str r0, [r4, #0x1a8] mov r0, #0x150 str r0, [r4, #0x1ac] add r0, r4, #0x54 str r0, [r4, #0x1b0] mov r1, #0 strb r1, [r4, #0x1b8] ldr r0, _0233DA08 ; =ov05_0233DA2C mov r1, #1 str r0, [r4, #0x1b4] add r0, r4, #0x1c0 strb r1, [r4, #0x1d4] bl GetMainTeamNameWithCheck mov r0, #0x1000 str r0, [r4] b _0233D9F0 _0233D56C: bl ov05_0233CAA8 cmp r0, #0 bne _0233D9F0 ldr r0, _0233D9FC ; =ov05_0233FCA4 ldr r1, [r0] cmp r1, #0 movne r0, #0 strne r0, [r1, #4] add r0, r4, #0x54 mov r1, #0x150 bl MemZero add r0, r4, #0x1bc mov r1, #0x18 bl MemZero mov r0, #0x150 str r0, [r4, #0x1a4] add r0, r4, #0x54 str r0, [r4, #0x1a8] mov r0, #0x18 str r0, [r4, #0x1ac] add r0, r4, #0x1bc str r0, [r4, #0x1b0] mov r1, #0 ldr r0, _0233DA0C ; =ov01_02337B68 strb r1, [r4, #0x1b8] str r0, [r4, #0x1b4] add r0, r4, #0x5a strb r1, [r4, #0x1d4] bl GetMainTeamNameWithCheck add r0, sp, #0 mov r1, #0 bl sub_02057030 mov sb, r0 mov r8, #0 add r6, r4, #0x70 mov r5, #0xf8 add r7, sp, #0 mov fp, #0x4c b _0233D63C _0233D608: mul sl, r8, fp mov r0, r8, lsl #1 ldrsh r0, [r7, r0] bl GetTeamMember mov r1, r0 add r0, r6, sl bl sub_02055E14 add sl, r4, sl ldrb r0, [sl, #0x75] bl sub_02051798 cmp r0, #0xff streqb r5, [sl, #0x75] add r8, r8, #1 _0233D63C: cmp r8, sb blt _0233D608 mov r3, sb mov r2, #0 mov r0, #0x4c b _0233D660 _0233D654: mla r1, r3, r0, r4 strh r2, [r1, #0x78] add r3, r3, #1 _0233D660: cmp r3, #4 blt _0233D654 bl GetLanguageType strb r0, [r4, #0x58] bl sub_02050CD0 strb r0, [r4, #0x59] str sb, [r4, #0x1a0] mov r0, #0x1000 str r0, [r4] b _0233D9F0 _0233D688: ldr r1, [r4, #0x10] mov r0, #6 strb r0, [r1] mov r0, #0 strb r0, [r1, #1] mov r0, #0x10 strb r0, [r4, #0x54] mov r0, #0x11 strb r0, [r4, #0x1bc] add r5, r4, #0x1bc bl GetLanguageType strb r0, [r5, #2] ldrsb r2, [r5, #2] add r0, r4, #0x58 mov r1, #0x14c strb r2, [r4, #0x56] bl ov01_02337B3C strb r0, [r4, #0x57] add r0, r5, #4 mov r1, #0x14 bl ov01_02337B3C strb r0, [r5, #3] add r0, r4, #0x1a4 mov r1, #1 str r0, [sp, #0xc] str r1, [sp, #8] ldr r1, [r4, #4] add r0, sp, #8 str r1, [sp, #0x18] ldrb r3, [r4, #0x1d4] mov r2, #0x20 mov r1, #0 strb r3, [sp, #0x1c] ldr r3, [r4, #0x10] str r3, [sp, #0x20] strh r2, [sp, #0x24] strb r1, [sp, #0x26] str r1, [sp, #0x28] bl ov01_02337BA0 ldr r0, _0233DA00 ; =0x00001001 str r0, [r4] b _0233D9F0 _0233D730: bl ov01_02337E0C movs r6, r0 beq _0233D9F0 add r0, sp, #0x2c add r5, r4, #0x54 add r7, r4, #0x1bc bl InitPreprocessorArgs bl ov01_02337C54 cmp r6, #0xe addls pc, pc, r6, lsl #2 b _0233D9F0 _0233D75C: ; jump table b _0233D9F0 ; case 0 b _0233D87C ; case 1 b _0233D9F0 ; case 2 b _0233D9F0 ; case 3 b _0233D798 ; case 4 b _0233D87C ; case 5 b _0233D87C ; case 6 b _0233D87C ; case 7 b _0233D87C ; case 8 b _0233D87C ; case 9 b _0233D87C ; case 10 b _0233D87C ; case 11 b _0233D87C ; case 12 b _0233D87C ; case 13 b _0233D87C ; case 14 _0233D798: bl ov05_0233CAA8 cmp r0, #0 bne _0233D7F4 bl GetLanguageType ldrsb r1, [r7, #2] cmp r1, r0 add r0, sp, #0x7c bne _0233D7C8 add r1, r7, #4 mov r2, #0x14 bl StrncpySimpleNoPadSafe b _0233D7D0 _0233D7C8: ldr r1, _0233DA10 ; =0x000038C9 bl GetStringFromFileVeneer _0233D7D0: ldr r1, _0233DA14 ; =0x000037ED add r3, sp, #0x7c add r2, sp, #0x2c mov r0, #0x1c str r3, [sp, #0x64] bl ov05_02046BE8 mov r0, #0x4000 str r0, [r4] b _0233D9F0 _0233D7F4: bl ov05_0233CAA8 cmp r0, #1 bne _0233D9F0 bl GetLanguageType ldrsb r1, [r5, #2] cmp r1, r0 add r0, sp, #0x7c bne _0233D824 add r1, r5, #6 mov r2, #0x14 bl StrncpySimpleNoPadSafe b _0233D82C _0233D824: ldr r1, _0233DA10 ; =0x000038C9 bl GetStringFromFileVeneer _0233D82C: add r0, sp, #0x7c str r0, [sp, #0x64] mov r3, #0 mov r0, #0x4c _0233D83C: mla r2, r3, r0, r5 ldrh r1, [r2, #0x1c] add r3, r3, #1 cmp r3, #4 and r1, r1, #1 strh r1, [r2, #0x1c] blt _0233D83C add r0, r5, #4 bl sub_02058FCC ldr r1, _0233DA18 ; =0x000037EE add r2, sp, #0x2c mov r0, #0x1c bl ov05_02046BE8 mov r0, #0x5000 str r0, [r4] b _0233D9F0 _0233D87C: mov r0, #1 b _0233D9F4 _0233D884: bl ov05_0233CB84 cmp r0, #0xd bne _0233D9F0 mov r0, #2 b _0233D9F4 _0233D898: bl ov05_0233CB84 cmp r0, #0xd ldreq r0, _0233DA1C ; =0x00005004 streq r0, [r4] b _0233D9F0 _0233D8AC: mov r0, #0 str r0, [r4, #0x1d8] sub r0, r1, #1 str r0, [r4] b _0233D9F0 _0233D8C0: ldr r0, [r4, #0x1d8] cmp r0, #4 addls pc, pc, r0, lsl #2 b _0233D9A0 _0233D8D0: ; jump table b _0233D8E4 ; case 0 b _0233D8F8 ; case 1 b _0233D924 ; case 2 b _0233D97C ; case 3 b _0233D990 ; case 4 _0233D8E4: ldr r1, _0233DA20 ; =0x0000023B mov r0, #0 bl ov05_0233CB68 mov r0, #1 str r0, [r4, #0x1d8] _0233D8F8: bl ov05_0233CB84 cmp r0, #0xd bne _0233D9A0 mov r0, #0xe0 mov r1, #0x88 mov r2, #1 bl sub_02029F88 mov r0, #2 str r0, [r4, #0x1d8] bl sub_02003B94 b _0233D9A0 _0233D924: mov r0, #3 bl NoteSaveBase mov r5, r0 bl sub_02003BC8 bl sub_02029FBC cmp r5, #0 bne _0233D958 #ifdef JAPAN ldr r1, _0233F2A4 ; =0x000004CD mov r0, #0x1c #else mov r0, #0x1c mov r1, #0x23c #endif bl ov05_0233CB68 mov r0, #3 str r0, [r4, #0x1d8] b _0233D9A0 _0233D958: cmp r5, #1 moveq r0, #3 beq _0233D9A4 ldr r1, _0233DA24 ; =0x00000239 mov r0, #0x1c bl ov05_0233CB68 mov r0, #4 str r0, [r4, #0x1d8] b _0233D9A0 _0233D97C: bl ov05_0233CB84 cmp r0, #0xd bne _0233D9A0 mov r0, #1 b _0233D9A4 _0233D990: bl ov05_0233CB84 cmp r0, #0xd moveq r0, #2 beq _0233D9A4 _0233D9A0: mov r0, #0 _0233D9A4: cmp r0, #1 bne _0233D9C4 ldr r1, _0233DA28 ; =0x000037EF mov r0, #0x1c bl ov05_0233CB68 ldr r0, _0233DA04 ; =0x00005005 str r0, [r4] b _0233D9F0 _0233D9C4: cmp r0, #3 moveq r0, #3 beq _0233D9F4 cmp r0, #2 bne _0233D9F0 mov r0, #2 b _0233D9F4 _0233D9E0: bl ov05_0233CB84 cmp r0, #0xd moveq r0, #2 beq _0233D9F4 _0233D9F0: mov r0, #0 _0233D9F4: add sp, sp, #0x17c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 #if defined(EUROPE) #define OV05_0233D450_OFFSET 2 #elif defined(JAPAN) #define OV05_0233D450_OFFSET 0x164 #else #define OV05_0233D450_OFFSET 0 #endif _0233D9FC: .word ov05_0233FCA4 _0233DA00: .word 0x00001001 _0233DA04: .word 0x00005005 _0233DA08: .word ov05_0233DA2C _0233DA0C: .word ov01_02337B68 #ifdef JAPAN _0233DA10: .word 0x00003507 #else _0233DA10: .word 0x000038C9 + OV05_0233D450_OFFSET #endif _0233DA14: .word 0x000037ED + OV05_0233D450_OFFSET _0233DA18: .word 0x000037EE + OV05_0233D450_OFFSET _0233DA1C: .word 0x00005004 #ifdef JAPAN _0233DA20: .word 0x000004CC _0233F2A4: .word 0x000004CD _0233DA24: .word 0x000004CA #else _0233DA20: .word 0x0000023B _0233DA24: .word 0x00000239 #endif _0233DA28: .word 0x000037EF + OV05_0233D450_OFFSET arm_func_end ov05_0233D450 arm_func_start ov05_0233DA2C ov05_0233DA2C: ; 0x0233DA2C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov r8, r0 add r5, r8, #4 bl ov05_0233CAA8 cmp r0, #1 bne _0233DB14 mov r0, r5 mov r1, #0x14c bl ov01_02337B3C ldrb r1, [r8, #3] cmp r0, r1 movne r0, #3 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} ldrb r0, [r8] cmp r0, #0x10 movne r0, #2 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} ldr r0, [r8, #0x14c] cmp r0, #0 beq _0233DA84 cmp r0, #4 bls _0233DA8C _0233DA84: mov r0, #6 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0233DA8C: mov r6, #0 add r4, r5, #0x42 mov sb, #0x4c b _0233DB00 _0233DA9C: mul sl, r6, sb add r7, r5, sl ldrsh r0, [r7, #0x20] bl IsMonsterIllegalForMissions cmp r0, #0 bne _0233DAF4 ldrsh r0, [r7, #0x20] bl sub_02054F18 cmp r0, #0 bne _0233DAF4 add r0, r4, sl bl IsMovesetValid cmp r0, #0 beq _0233DAF4 ldrb r0, [r7, #0x1c] cmp r0, #1 blo _0233DAF4 cmp r0, #0x64 bhi _0233DAF4 ldrb r0, [r7, #0x3c] cmp r0, #0xb blo _0233DAFC _0233DAF4: mov r0, #6 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0233DAFC: add r6, r6, #1 _0233DB00: ldr r0, [r8, #0x14c] cmp r6, r0 blo _0233DA9C mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _0233DB14: mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} arm_func_end ov05_0233DA2C arm_func_start ov05_0233DB1C ov05_0233DB1C: ; 0x0233DB1C stmdb sp!, {r3, lr} ldr r0, _0233DB98 ; =0x0000188C mov r1, #8 bl MemAlloc ldr r2, _0233DB9C ; =ov05_0233FCA8 ldr r1, _0233DB98 ; =0x0000188C str r0, [r2] bl MemZero mov r0, #0 ldr r2, _0233DB9C ; =ov05_0233FCA8 sub ip, r0, #2 ldr r1, [r2] sub r3, r0, #1 str r0, [r1] ldr lr, [r2] add r1, lr, #0xc1 bic r1, r1, #0x1f str r1, [lr, #0x2c4] ldr r1, [r2] add r1, r1, #0x1000 strb ip, [r1, #0x7dc] ldr r1, [r2] add r1, r1, #0x1000 str r3, [r1, #0x7d8] ldr r1, [r2] add r1, r1, #0x1000 strb r0, [r1, #0x880] ldr r1, [r2] add r1, r1, #0x1000 str r0, [r1, #0x888] ldmia sp!, {r3, pc} .align 2, 0 _0233DB98: .word 0x0000188C _0233DB9C: .word ov05_0233FCA8 arm_func_end ov05_0233DB1C arm_func_start ov05_0233DBA0 ov05_0233DBA0: ; 0x0233DBA0 stmdb sp!, {r3, lr} ldr r0, _0233DBD8 ; =ov05_0233FCA8 ldr r0, [r0] cmp r0, #0 ldmeqia sp!, {r3, pc} mov r0, #1 bl ov00_022BCBAC ldr r0, _0233DBD8 ; =ov05_0233FCA8 ldr r0, [r0] bl MemFree ldr r0, _0233DBD8 ; =ov05_0233FCA8 mov r1, #0 str r1, [r0] ldmia sp!, {r3, pc} .align 2, 0 _0233DBD8: .word ov05_0233FCA8 arm_func_end ov05_0233DBA0 arm_func_start ov05_0233DBDC ov05_0233DBDC: ; 0x0233DBDC stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x348 ldr r1, _0233EB00 ; =ov05_0233FCA8 ldr r0, _0233EB04 ; =0x00003023 ldr r4, [r1] ldr r1, [r4] cmp r1, r0 bgt _0233DD20 bge _0233E888 ldr r2, _0233EB08 ; =0x00002001 cmp r1, r2 bgt _0233DC74 bge _0233E2E4 sub r0, r2, #0x1000 cmp r1, r0 bgt _0233DC54 bge _0233E18C cmp r1, #2 bgt _0233DC48 cmp r1, #0 blt _0233F854 beq _0233DE0C cmp r1, #1 beq _0233DE44 cmp r1, #2 beq _0233DE60 b _0233F854 _0233DC48: cmp r1, #0x1000 beq _0233E09C b _0233F854 _0233DC54: ldr r0, _0233EB0C ; =0x00001002 cmp r1, r0 bgt _0233DC68 beq _0233E1C0 b _0233F854 _0233DC68: cmp r1, #0x2000 beq _0233E218 b _0233F854 _0233DC74: sub r2, r0, #0x12 cmp r1, r2 bgt _0233DCF0 sub r0, r0, #0x21 subs r0, r1, r0 addpl pc, pc, r0, lsl #2 b _0233DCD0 _0233DC90: ; jump table b _0233E424 ; case 0 b _0233E4EC ; case 1 b _0233E64C ; case 2 b _0233F854 ; case 3 b _0233F13C ; case 4 b _0233F248 ; case 5 b _0233F854 ; case 6 b _0233F854 ; case 7 b _0233F854 ; case 8 b _0233F854 ; case 9 b _0233F854 ; case 10 b _0233F854 ; case 11 b _0233F854 ; case 12 b _0233F224 ; case 13 b _0233EEB8 ; case 14 b _0233EFC0 ; case 15 _0233DCD0: cmp r1, #0x3000 bgt _0233DCE0 beq _0233E364 b _0233F854 _0233DCE0: ldr r0, _0233EB10 ; =0x00003001 cmp r1, r0 beq _0233E37C b _0233F854 _0233DCF0: sub r2, r0, #2 cmp r1, r2 bgt _0233DD10 bge _0233E7A4 sub r0, r0, #3 cmp r1, r0 beq _0233E6B8 b _0233F854 _0233DD10: sub r0, r0, #1 cmp r1, r0 beq _0233E7F4 b _0233F854 _0233DD20: ldr r3, _0233EB14 ; =0x00004002 cmp r1, r3 bgt _0233DDB4 bge _0233F4A4 add r2, r0, #5 cmp r1, r2 bgt _0233DD94 add r2, r0, #3 cmp r1, r2 blt _0233DD68 beq _0233EBB4 add r2, r0, #4 cmp r1, r2 beq _0233ED24 add r0, r0, #5 cmp r1, r0 beq _0233EE0C b _0233F854 _0233DD68: add r2, r0, #1 cmp r1, r2 bgt _0233DD84 add r0, r0, #1 cmp r1, r0 beq _0233E9A4 b _0233F854 _0233DD84: add r0, r0, #2 cmp r1, r0 beq _0233EA78 b _0233F854 _0233DD94: cmp r1, #0x4000 bgt _0233DDA4 beq _0233F40C b _0233F854 _0233DDA4: sub r0, r3, #1 cmp r1, r0 beq _0233F440 b _0233F854 _0233DDB4: cmp r1, #0x9000 bgt _0233DDE0 bge _0233F760 cmp r1, #0x8000 bgt _0233DDD0 beq _0233F508 b _0233F854 _0233DDD0: add r0, r3, #0x4000 cmp r1, r0 beq _0233F534 b _0233F854 _0233DDE0: ldr r0, _0233EB18 ; =0x00009011 cmp r1, r0 bgt _0233DE00 bge _0233F7E8 sub r0, r0, #1 cmp r1, r0 beq _0233F7D4 b _0233F854 _0233DE00: cmp r1, #0xf000 beq _0233F74C b _0233F854 _0233DE0C: bl sub_0204A1CC bl ov00_022BCA80 cmp r0, #3 ldrne r0, _0233EB00 ; =ov05_0233FCA8 movne r1, #2 ldrne r0, [r0] strne r1, [r0] bne _0233F854 bl ov01_02339888 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #1 ldr r0, [r0] str r1, [r0] b _0233F854 _0233DE44: bl ov01_023398A4 cmp r0, #0 ldrne r0, _0233EB00 ; =ov05_0233FCA8 movne r1, #2 ldrne r0, [r0] strne r1, [r0] b _0233F854 _0233DE60: bl ov05_0233CAA8 cmp r0, #1 bne _0233DEF0 bl ov05_0233F93C bl ov00_022BD338 cmp r0, #0 beq _0233DE88 bl ov00_022BCCF4 cmp r0, #0 bne _0233DE98 _0233DE88: ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #3 ldr r0, [r0] strb r1, [r0, #0x9c] _0233DE98: mov r0, #4 bl ov01_0233767C ldr r2, _0233EB1C ; =ov05_0233FC18 ldr r1, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r2, r0, lsl #3] ldr r0, [r1] ldr r3, _0233EB20 ; =ov05_0233FC14 str r2, [r0, #4] mov r0, #0 ldr r2, _0233EB24 ; =0x000037F0 str r3, [sp] str r2, [sp, #4] ldr r3, [r1] ldr r2, _0233EB28 ; =0x00000233 mov r1, r0 add r3, r3, #4 bl ov05_0233CADC ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x1000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233DEF0: bl ov05_0233CAA8 cmp r0, #0 bne _0233F854 bl ov00_022BCCF4 cmp r0, #0 beq _0233E018 bl sub_020590C0 cmp r1, #0 cmpeq r0, #2 bls _0233E018 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1000 ldrb r0, [r0, #0x880] cmp r0, #0 bne _0233E018 bl sub_020590C0 mov r4, r0 add r0, sp, #0x2f8 mov r5, r1 bl InitPreprocessorArgs bl ov05_0233F93C ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r3, #0xc ldr r2, [r1] mov r0, r4 str r3, [r2, #4] ldr r2, _0233EB2C ; =0x00002710 mov r1, r5 mov r3, #0 bl _ull_mod str r0, [sp, #0x324] ldr r2, _0233EB2C ; =0x00002710 mov r0, r4 mov r1, r5 mov r3, #0 bl _ll_udiv ldr r2, _0233EB2C ; =0x00002710 mov r3, #0 bl _ull_mod str r0, [sp, #0x320] ldr r2, _0233EB30 ; =0x05F5E100 mov r1, r5 mov r0, r4 mov r3, #0 bl _ll_udiv ldr r2, _0233EB2C ; =0x00002710 mov r3, #0 bl _ull_mod str r0, [sp, #0x31c] mov r0, #5 bl ov01_0233767C ldr r2, _0233EB34 ; =ov05_0233FB80 ldr r1, _0233EB00 ; =ov05_0233FCA8 ldr r3, [r2, r0, lsl #3] ldr r2, [r1] ldr r0, _0233EB38 ; =ov05_0233FB7C str r3, [r2, #4] str r0, [sp] ldr r2, _0233EB3C ; =0x00003801 add r0, sp, #0x2f8 str r2, [sp, #4] str r0, [sp, #8] ldr r1, [r1] mov r0, #0 add r3, r1, #4 mov r1, r0 mov r2, #0x33 bl ov05_0233CB08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x2000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E018: bl ov05_0233F93C bl ov00_022BD338 cmp r0, #0 beq _0233E034 bl ov00_022BCCF4 cmp r0, #0 bne _0233E044 _0233E034: ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #3 ldr r0, [r0] strb r1, [r0, #0x9c] _0233E044: mov r0, #6 bl ov01_0233767C ldr r2, _0233EB40 ; =ov05_0233FBF8 ldr r1, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r2, r0, lsl #3] ldr r0, [r1] ldr r3, _0233EB44 ; =ov05_0233FBF4 str r2, [r0, #4] mov r0, #0 ldr r2, _0233EB48 ; =0x00003802 str r3, [sp] str r2, [sp, #4] ldr r3, [r1] ldr r2, _0233EB28 ; =0x00000233 mov r1, r0 add r3, r3, #4 bl ov05_0233CADC ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB08 ; =0x00002001 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E09C: add r0, r4, #0x1000 mov r1, #0 str r1, [r0, #0x888] bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #4 bl ov01_0233768C cmp r4, #6 bne _0233E0EC ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r3, #0 ldr r2, [r0] mov r1, #0x3000 str r3, [r2, #0x2cc] ldr r0, [r0] str r1, [r0] b _0233F854 _0233E0EC: cmp r4, #7 bne _0233E114 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r3, #1 ldr r2, [r0] mov r1, #0x3000 str r3, [r2, #0x2cc] ldr r0, [r0] str r1, [r0] b _0233F854 _0233E114: cmp r4, #8 bne _0233E13C ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r3, #2 ldr r2, [r0] mov r1, #0x3000 str r3, [r2, #0x2cc] ldr r0, [r0] str r1, [r0] b _0233F854 _0233E13C: cmp r4, #9 bne _0233E178 ldr r0, _0233EB00 ; =ov05_0233FCA8 mvn r3, #0 ldr r2, [r0] ldr r1, _0233EB4C ; =0xD4A51000 str r3, [r2, #0x2cc] ldr r2, [r0] mov r0, #0xe8 str r1, [r2, #0x2d0] str r0, [r2, #0x2d4] rsb r0, r3, #0x1000 str r0, [r2] bl sub_02046D20 b _0233F854 _0233E178: sub r0, r4, #0xc cmp r0, #1 bhi _0233F854 mov r0, #1 b _0233F858 _0233E18C: ldr r1, [r4, #0x2d0] ldr r2, [r4, #0x2d4] mov r0, #2 bl ov01_0233580C ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r3, _0233EB0C ; =0x00001002 ldr r2, [r0] mov r1, #0 str r3, [r2] ldr r0, [r0] add r0, r0, #0x1000 str r1, [r0, #0x888] b _0233F854 _0233E1C0: bl ov01_02336014 cmp r0, #2 bne _0233E1F8 bl ov01_023370AC ldr r2, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r2] str r0, [r2, #0x2d0] str r1, [r2, #0x2d4] bl ov01_02335FA8 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x3000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E1F8: cmp r0, #1 bne _0233F854 bl ov01_02335FA8 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #2 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E218: bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #5 bl ov01_0233768C cmp r4, #0xb bne _0233E2D0 bl ov05_0233F93C bl ov00_022BD338 cmp r0, #0 beq _0233E258 bl ov00_022BCCF4 cmp r0, #0 bne _0233E268 _0233E258: ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #3 ldr r0, [r0] strb r1, [r0, #0x9c] _0233E268: mov r0, #6 bl ov01_0233767C ldr r2, _0233EB40 ; =ov05_0233FBF8 ldr r1, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r2, r0, lsl #3] ldr r0, [r1] ldr r3, _0233EB44 ; =ov05_0233FBF4 str r2, [r0, #4] mov r0, #0 ldr r2, _0233EB48 ; =0x00003802 str r3, [sp] str r2, [sp, #4] ldr r3, [r1] ldr r2, _0233EB28 ; =0x00000233 mov r1, r0 add r3, r3, #4 bl ov05_0233CADC ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r3, #1 ldr r0, [r1] add r2, r3, #0x2000 add r0, r0, #0x1000 strb r3, [r0, #0x880] ldr r0, [r1] str r2, [r0] b _0233F854 _0233E2D0: sub r0, r4, #0xc cmp r0, #1 bhi _0233F854 mov r0, #1 b _0233F858 _0233E2E4: bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #6 bl ov01_0233768C cmp r4, #6 bne _0233E328 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r3, #1 ldr r2, [r0] mov r1, #0x3000 strb r3, [r2, #0x2c8] ldr r0, [r0] str r1, [r0] b _0233F854 _0233E328: cmp r4, #0xa bne _0233E350 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r3, #0 ldr r2, [r0] mov r1, #0x3000 strb r3, [r2, #0x2c8] ldr r0, [r0] str r1, [r0] b _0233F854 _0233E350: sub r0, r4, #0xc cmp r0, #1 bhi _0233F854 mov r0, #1 b _0233F858 _0233E364: bl ov01_02338A24 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB10 ; =0x00003001 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E37C: bl ov01_02338EC4 cmp r0, #1 beq _0233E3F4 cmp r0, #4 beq _0233E39C cmp r0, #8 beq _0233E40C b _0233F854 _0233E39C: bl ov05_0233CAA8 cmp r0, #1 bne _0233E3C8 ldr r1, _0233EB50 ; =0x000037F6 mov r0, #0 bl ov05_0233CB68 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB54 ; =0x00003002 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E3C8: bl ov05_0233CAA8 cmp r0, #0 bne _0233F854 ldr r1, _0233EB58 ; =0x00003806 mov r0, #0 bl ov05_0233CB68 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB54 ; =0x00003002 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E3F4: bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #2 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E40C: bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x9000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E424: bl ov05_0233CB84 mov r4, r0 bl ov01_02338EC4 cmp r0, #5 bne _0233E454 bl sub_02046D20 bl ov01_02338C34 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233E454: cmp r4, #0xd bne _0233F854 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] ldrb r0, [r0, #0x2c8] cmp r0, #0 beq _0233E4A8 bl ov00_022BD338 cmp r0, #0 beq _0233E488 bl ov00_022BCCF4 cmp r0, #0 bne _0233E4A8 _0233E488: mov r0, #0x14 mov r1, #6 bl ov01_023398B0 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233E4A8: bl sub_0205BD78 ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r2, r0 ldr r0, [r1] mov r1, #1 ldr r0, [r0, #0x2c4] bl ov01_0232C5C8 ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r0, #0 ldr r1, [r1] ldr r1, [r1, #0x2c4] bl ov01_02338C4C ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB60 ; =0x00003003 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E4EC: bl ov01_02338EC4 cmp r0, #4 bne _0233E628 bl ov05_0233CAA8 cmp r0, #0 bne _0233E568 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] ldrb r1, [r0, #0x2c8] ldr r0, [r0, #0x2c4] bl ov01_0232DA1C cmp r0, #0 beq _0233E548 ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r0, #9 ldr r1, [r1] ldr r1, [r1, #0x2c4] bl ov01_02338C4C ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB64 ; =0x00003004 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E548: mov r0, #2 mov r1, #6 bl ov01_023398B0 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233E568: bl ov05_0233CAA8 cmp r0, #1 bne _0233F854 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r0] ldr r3, [r2, #0x2cc] cmp r3, #0 bge _0233E5C0 ldr r0, [r2, #0x2c4] ldr r1, [r2, #0x2d0] ldr r2, [r2, #0x2d4] bl ov01_0232DE74 ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r0, #0xb ldr r1, [r1] ldr r1, [r1, #0x2c4] bl ov01_02338C4C ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB68 ; =0x00003010 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E5C0: cmp r3, #2 movne r1, #0 movne r2, #8 bne _0233E5E0 bl sub_02050CD0 mov r2, r0 mov r1, r2 mov r3, #1 _0233E5E0: mov r0, #0x10 str r0, [sp] ldr r0, _0233EB00 ; =ov05_0233FCA8 str r3, [sp, #4] ldr r0, [r0] mov r3, #0 ldr r0, [r0, #0x2c4] bl ov01_0232DBAC ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r0, #0xa ldr r1, [r1] ldr r1, [r1, #0x2c4] bl ov01_02338C4C ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB6C ; =0x00003020 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E628: cmp r0, #8 cmpne r0, #6 bne _0233F854 bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x9000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E64C: bl ov01_02338EC4 cmp r0, #4 bne _0233E694 mov r0, #0 bl ov01_02338E1C bl ov01_0232DB94 ldr r2, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r2] str r0, [r2, #0x2d0] str r1, [r2, #0x2d4] mov r0, #1 mov r1, #0 bl ov01_02338C28 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB70 ; =0x00003007 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E694: cmp r0, #8 cmpne r0, #6 bne _0233F854 bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x9000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E6B8: bl ov01_02338EC4 cmp r0, #4 bne _0233E780 mov r0, #0 bl ov01_02338E1C mov r4, r0 bl ov01_0232DCCC ldr r2, _0233EB00 ; =ov05_0233FCA8 ldr r1, [r2] add r1, r1, #0x1000 str r0, [r1, #0x7d4] ldr r2, [r2] add r0, r2, #0x1000 ldr r0, [r0, #0x7d4] cmp r0, #0 bne _0233E718 mov r0, #1 mov r1, #0 bl ov01_02338C28 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB70 ; =0x00003007 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E718: add r1, r2, #0x350 mov r0, r4 add r2, r2, #0x2d0 mov r3, #0x10 bl ov01_0232DD00 add r0, sp, #0x2a8 bl InitPreprocessorArgs ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB74 ; =ov05_0233FC44 ldr r2, [r0] add r0, sp, #0x1a8 ldr r2, [r2, #0x2cc] mov r2, r2, lsl #1 ldrh r1, [r1, r2] bl GetStringFromFileVeneer add r3, sp, #0x1a8 ldr r1, _0233EB78 ; =0x000037F9 add r2, sp, #0x2a8 mov r0, #0x1c str r3, [sp, #0x2e0] bl ov05_02046BE8 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB7C ; =0x00003021 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E780: cmp r0, #8 cmpne r0, #6 bne _0233F854 bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x9000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E7A4: bl ov01_02338EC4 mov r4, r0 bl ov05_0233CB84 cmp r4, #5 bne _0233E7D4 bl sub_02046D20 bl ov01_02338C34 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233E7D4: cmp r0, #0xd bne _0233F854 bl sub_02046D20 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB80 ; =0x00003022 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E7F4: add r0, r4, #0x1700 ldrsb r0, [r0, #0xdc] mvn r1, #1 cmp r0, r1 bne _0233E874 add r0, r4, #0x1000 ldr r0, [r0, #0x7d8] add r1, r4, #0x1000 cmp r0, #0 movlt r0, #0 str r0, [r1, #0x7e0] mov r3, #0x10 ldr r2, _0233EB84 ; =0x000037FA str r3, [r1, #0x7ec] add r0, r4, #0x1700 strh r2, [r0, #0xe8] str r3, [r1, #0x7ec] mov r0, #0xd str r0, [r1, #0x7e4] ldr r5, [r1, #0x7d4] add r2, r4, #0x7e0 str r5, [sp] mov r5, #8 ldr r0, _0233EB88 ; =ov05_0233FC4C ldr r1, _0233EB8C ; =0x00441C33 ldr r3, _0233EB90 ; =ov05_0233F9C4 add r2, r2, #0x1000 str r5, [sp, #4] bl CreateAdvancedMenu add r1, r4, #0x1000 strb r0, [r1, #0x7dc] b _0233E878 _0233E874: bl ResumeAdvancedMenu _0233E878: ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB04 ; =0x00003023 ldr r0, [r0] str r1, [r0] _0233E888: ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1700 ldrsb r0, [r0, #0xdc] bl GetAdvancedMenuCurrentOption ldr r1, _0233EB00 ; =ov05_0233FCA8 ldr r1, [r1] add r1, r1, #0x1000 str r0, [r1, #0x7d8] bl ov01_02338EC4 cmp r0, #5 bne _0233E8D4 bl ov05_0233F980 bl ov01_02338C34 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233E8D4: ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1700 ldrsb r0, [r0, #0xdc] bl IsAdvancedMenuActive2 cmp r0, #0 bne _0233F854 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1700 ldrsb r0, [r0, #0xdc] bl GetAdvancedMenuResult mov r4, r0 bl ov05_0233F980 cmp r4, #0 bge _0233E948 mov r0, #7 bl ov01_0233767C str r0, [sp] mov r0, #0 ldr r2, _0233EB38 ; =ov05_0233FB7C ldr r3, _0233EB94 ; =0x000037FC mov r1, r0 bl ov05_0233CAC8 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB98 ; =0x00003028 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E948: ldr r3, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB9C ; =ov05_0233FC5C ldr r0, [r3] ldr r2, _0233EBA0 ; =ov05_0233FA74 add r0, r0, #0x1000 str r4, [r0, #0x7d8] ldr r0, [r3] add r0, r0, #0x78 add r0, r0, #0x1800 bl sub_0204707C mov r0, #8 bl ov01_0233767C str r0, [sp] mov r0, #0 ldr r2, _0233EB38 ; =ov05_0233FB7C ldr r3, _0233EBA4 ; =0x000037FB mov r1, r0 bl ov05_0233CAC8 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EBA8 ; =0x00003024 ldr r0, [r0] str r1, [r0] b _0233F854 _0233E9A4: bl ov01_02338EC4 mov r5, r0 bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #8 bl ov01_0233768C cmp r5, #5 bne _0233EA04 bl sub_02046BB4 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x78 add r0, r0, #0x1800 bl sub_02047150 bl sub_02046D20 bl ov01_02338C34 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233EA04: cmp r4, #0xb bne _0233EA40 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x78 add r0, r0, #0x1800 bl sub_02047150 ldr r1, _0233EB50 ; =0x000037F6 mov r0, #0 bl ov05_0233CB68 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EBAC ; =0x00003025 ldr r0, [r0] str r1, [r0] b _0233F854 _0233EA40: sub r0, r4, #0xc cmp r0, #1 bhi _0233F854 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x78 add r0, r0, #0x1800 bl sub_02047150 bl sub_02046D20 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB80 ; =0x00003022 ldr r0, [r0] str r1, [r0] b _0233F854 _0233EA78: bl ov01_02338EC4 mov r4, r0 bl ov05_0233CB84 cmp r4, #5 bne _0233EAAC bl sub_02046BB4 bl sub_02046D20 bl ov01_02338C34 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233EAAC: cmp r0, #0xd bne _0233F854 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r0] add r0, r2, #0x1000 ldr r1, [r0, #0x7d8] ldr r0, [r2, #0x2c4] add r2, r2, r1, lsl #3 ldr r1, [r2, #0x2d0] ldr r2, [r2, #0x2d4] bl ov01_0232E038 ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r0, #0xc ldr r1, [r1] ldr r1, [r1, #0x2c4] bl ov01_02338C4C ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EBB0 ; =0x00003026 ldr r0, [r0] str r1, [r0] b _0233F854 .align 2, 0 #if defined(EUROPE) #define OV05_0233DBA0_OFFSET 2 #elif defined(JAPAN) #define OV05_0233DBA0_OFFSET 0x164 #else #define OV05_0233DBA0_OFFSET 0 #endif _0233EB00: .word ov05_0233FCA8 _0233EB04: .word 0x00003023 _0233EB08: .word 0x00002001 _0233EB0C: .word 0x00001002 _0233EB10: .word 0x00003001 _0233EB14: .word 0x00004002 _0233EB18: .word 0x00009011 _0233EB1C: .word ov05_0233FC18 _0233EB20: .word ov05_0233FC14 _0233EB24: .word 0x000037F0 + OV05_0233DBA0_OFFSET _0233EB28: .word 0x00000233 _0233EB2C: .word 0x00002710 _0233EB30: .word 0x05F5E100 _0233EB34: .word ov05_0233FB80 _0233EB38: .word ov05_0233FB7C _0233EB3C: .word 0x00003801 + OV05_0233DBA0_OFFSET _0233EB40: .word ov05_0233FBF8 _0233EB44: .word ov05_0233FBF4 _0233EB48: .word 0x00003802 + OV05_0233DBA0_OFFSET _0233EB4C: .word 0xD4A51000 _0233EB50: .word 0x000037F6 + OV05_0233DBA0_OFFSET _0233EB54: .word 0x00003002 _0233EB58: .word 0x00003806 + OV05_0233DBA0_OFFSET _0233EB5C: .word 0x0000300F _0233EB60: .word 0x00003003 _0233EB64: .word 0x00003004 _0233EB68: .word 0x00003010 _0233EB6C: .word 0x00003020 _0233EB70: .word 0x00003007 _0233EB74: .word ov05_0233FC44 _0233EB78: .word 0x000037F9 + OV05_0233DBA0_OFFSET _0233EB7C: .word 0x00003021 _0233EB80: .word 0x00003022 _0233EB84: .word 0x000037FA + OV05_0233DBA0_OFFSET _0233EB88: .word ov05_0233FC4C _0233EB8C: .word 0x00441C33 _0233EB90: .word ov05_0233F9C4 _0233EB94: .word 0x000037FC + OV05_0233DBA0_OFFSET _0233EB98: .word 0x00003028 _0233EB9C: .word ov05_0233FC5C _0233EBA0: .word ov05_0233FA74 _0233EBA4: .word 0x000037FB + OV05_0233DBA0_OFFSET _0233EBA8: .word 0x00003024 _0233EBAC: .word 0x00003025 _0233EBB0: .word 0x00003026 _0233EBB4: bl ov01_02338EC4 cmp r0, #4 bne _0233ED00 mov r0, #0 bl ov01_02338E1C ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r2, #0x148 ldr r3, [r1] mov r4, r0 add r1, r3, #0x1000 ldr r1, [r1, #0x7d8] add r3, r3, #0x350 mla r5, r1, r2, r3 mov r7, #0 bl ov01_0232E06C cmp r0, #0 beq _0233EC04 mov r0, r4 mov r1, r5 bl ov01_0232E0A4 _0233EC04: mov r8, #0 mov r6, r8 add r4, r5, #0x42 mov fp, #0x4c _0233EC14: mul sb, r6, fp add sl, r5, sb ldrh r0, [sl, #0x18] tst r0, #1 movne r0, #1 moveq r0, #0 tst r0, #0xff beq _0233EC8C ldrsh r0, [sl, #0x20] add r8, r8, #1 bl IsMonsterIllegalForMissions cmp r0, #0 bne _0233EC88 ldrsh r0, [sl, #0x20] bl sub_02054F18 cmp r0, #0 bne _0233EC88 add r0, r4, sb bl IsMovesetValid cmp r0, #0 beq _0233EC88 ldrb r0, [sl, #0x1c] cmp r0, #1 blo _0233EC88 cmp r0, #0x64 bhi _0233EC88 ldrb r0, [sl, #0x3c] cmp r0, #0xb blo _0233EC8C _0233EC88: mov r7, #1 _0233EC8C: add r6, r6, #1 cmp r6, #4 blt _0233EC14 cmp r8, #0 moveq r7, #1 cmp r7, #0 bne _0233ECE0 mov r0, r5 bl sub_02058FCC ldr r1, _0233F860 ; =0x000037FD mov r0, #0x1c bl ov05_0233CB68 ldr r1, _0233EB00 ; =ov05_0233FCA8 ldr r3, _0233F864 ; =0x00002A30 ldr r0, [r1] ldr r2, _0233F868 ; =0x00003027 add r0, r0, #0x1000 str r3, [r0, #0x884] ldr r0, [r1] str r2, [r0] b _0233F854 _0233ECE0: mov r0, #2 mov r1, #6 bl ov01_023398B0 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233ED00: cmp r0, #8 cmpne r0, #6 bne _0233F854 bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x9000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233ED24: bl ov01_02339988 bl ov01_02338EC4 mov r4, r0 bl ov05_0233CB84 mov r5, r0 add r1, sp, #0xe mov r0, #0 bl GetHeldButtons bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _0233ED6C add r0, sp, #0x34 bl GetReleasedStylus add r0, sp, #0x34 mov r1, #1 mov r2, #0 bl sub_02006C8C _0233ED6C: ldrh r1, [sp, #0xe] cmp r1, #0 cmpeq r0, #0 ldrne r0, _0233EB00 ; =ov05_0233FCA8 ldrne r1, _0233F864 ; =0x00002A30 ldrne r0, [r0] addne r0, r0, #0x1000 strne r1, [r0, #0x884] ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1000 ldr r1, [r0, #0x884] cmp r1, #0 subgt r1, r1, #1 strgt r1, [r0, #0x884] cmp r4, #5 bne _0233EDCC bl sub_02046D20 bl ov01_02338C34 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233EDCC: cmp r5, #0xd beq _0233EDEC ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1000 ldr r0, [r0, #0x884] cmp r0, #0 bgt _0233F854 _0233EDEC: mov r0, #1 mov r1, #0 bl ov01_02338C28 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB70 ; =0x00003007 ldr r0, [r0] str r1, [r0] b _0233F854 _0233EE0C: bl ov01_02338EC4 mov r5, r0 bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #7 bl ov01_0233768C cmp r5, #5 bne _0233EE58 bl sub_02046BB4 bl sub_02046D20 bl ov01_02338C34 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233EE58: cmp r4, #0xb bne _0233EE94 ldr r0, _0233EB00 ; =ov05_0233FCA8 mvn r3, #0 ldr r1, [r0] mov r0, #1 add r2, r1, #0x1000 mov r1, #0 str r3, [r2, #0x7d8] bl ov01_02338C28 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB70 ; =0x00003007 ldr r0, [r0] str r1, [r0] b _0233F854 _0233EE94: sub r0, r4, #0xc cmp r0, #1 bhi _0233F854 bl sub_02046D20 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB80 ; =0x00003022 ldr r0, [r0] str r1, [r0] b _0233F854 _0233EEB8: bl ov01_02338EC4 cmp r0, #4 bne _0233EF9C mov r0, #0 bl ov01_02338E1C mov r5, r0 bl ov01_0232DEA8 mov r4, r0 mov r0, r5 bl ov01_0232DEE0 cmp r4, #0 bne _0233EF40 mov r4, #0 ldr r3, _0233EB00 ; =ov05_0233FCA8 mov r1, r4 mov r0, #0x4c _0233EEF8: ldr r2, [r3] mla r2, r4, r0, r2 add r2, r2, #0x300 add r4, r4, #1 strh r1, [r2, #0x70] cmp r4, #4 blt _0233EEF8 ldr r2, _0233EB00 ; =ov05_0233FCA8 mov r0, #1 ldr r2, [r2] add r2, r2, #0x1000 str r0, [r2, #0x7d0] bl ov01_02338C28 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB70 ; =0x00003007 ldr r0, [r0] str r1, [r0] b _0233F854 _0233EF40: ldr r1, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r1] strb r0, [r2, #0x2c8] ldr r1, [r1] mov r0, r5 add r1, r1, #0x350 bl ov01_0232DF18 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r0] ldr r0, [r2, #0x2c4] ldr r1, [r2, #0x2d0] ldr r2, [r2, #0x2d4] bl ov01_0232E038 ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r0, #0xc ldr r1, [r1] ldr r1, [r1, #0x2c4] bl ov01_02338C4C ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233F86C ; =0x00003011 ldr r0, [r0] str r1, [r0] b _0233F854 _0233EF9C: cmp r0, #8 cmpne r0, #6 bne _0233F854 bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x9000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233EFC0: bl ov01_02338EC4 cmp r0, #4 bne _0233F118 mov r0, #0 bl ov01_02338E1C mov r4, r0 mov r5, #0 bl ov01_0232E06C cmp r0, #0 beq _0233F0AC ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r0, r4 ldr r1, [r1] mov r3, r5 add r8, r1, #0x350 add r2, r1, #0x1000 mov r1, r8 str r3, [r2, #0x7d0] bl ov01_0232E0A4 mov r7, r5 mov r6, r7 add r4, r8, #0x42 mov fp, #0x4c _0233F01C: mul sb, r6, fp add sl, r8, sb ldrh r0, [sl, #0x18] tst r0, #1 movne r0, #1 moveq r0, #0 tst r0, #0xff beq _0233F094 ldrsh r0, [sl, #0x20] add r7, r7, #1 bl IsMonsterIllegalForMissions cmp r0, #0 bne _0233F090 ldrsh r0, [sl, #0x20] bl sub_02054F18 cmp r0, #0 bne _0233F090 add r0, r4, sb bl IsMovesetValid cmp r0, #0 beq _0233F090 ldrb r0, [sl, #0x1c] cmp r0, #1 blo _0233F090 cmp r0, #0x64 bhi _0233F090 ldrb r0, [sl, #0x3c] cmp r0, #0xb blo _0233F094 _0233F090: mov r5, #1 _0233F094: add r6, r6, #1 cmp r6, #4 blt _0233F01C cmp r7, #0 moveq r5, #1 b _0233F0D0 _0233F0AC: ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, [r0] ldrb r0, [r1, #0x2c8] cmp r0, #0 add r0, r1, #0x1000 movne r1, #2 strne r1, [r0, #0x7d0] moveq r1, #3 streq r1, [r0, #0x7d0] _0233F0D0: cmp r5, #0 bne _0233F0F8 mov r0, #1 mov r1, #0 bl ov01_02338C28 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB70 ; =0x00003007 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F0F8: mov r0, #2 mov r1, #6 bl ov01_023398B0 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233F118: cmp r0, #8 cmpne r0, #6 bne _0233F854 bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x9000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F13C: bl ov01_02339988 bl ov01_02338EC4 mov r4, r0 bl ov05_0233CB84 mov r5, r0 add r1, sp, #0xc mov r0, #0 bl GetHeldButtons bl IsTouchScreenNotOff cmp r0, #0 moveq r0, #0 beq _0233F184 add r0, sp, #0x10 bl GetReleasedStylus add r0, sp, #0x10 mov r1, #1 mov r2, #0 bl sub_02006C8C _0233F184: ldrh r1, [sp, #0xc] cmp r1, #0 cmpeq r0, #0 ldrne r0, _0233EB00 ; =ov05_0233FCA8 ldrne r1, _0233F864 ; =0x00002A30 ldrne r0, [r0] addne r0, r0, #0x1000 strne r1, [r0, #0x884] ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1000 ldr r1, [r0, #0x884] cmp r1, #0 subgt r1, r1, #1 strgt r1, [r0, #0x884] cmp r4, #5 bne _0233F1E4 bl sub_02046D20 bl ov01_02338C34 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB5C ; =0x0000300F ldr r0, [r0] str r1, [r0] b _0233F854 _0233F1E4: cmp r5, #0xd beq _0233F204 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1000 ldr r0, [r0, #0x884] cmp r0, #0 bgt _0233F854 _0233F204: mov r0, #1 mov r1, #0 bl ov01_02338C28 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB70 ; =0x00003007 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F224: bl ov01_02338EC4 cmp r0, #0 beq _0233F854 bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x9000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F248: bl ov01_02338EC4 cmp r0, #6 bne _0233F3EC bl ov01_02338B08 bl ov05_0233CAA8 cmp r0, #1 bne _0233F3B8 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r2, [r0] ldr r0, [r2, #0x2cc] cmp r0, #0 add r0, r2, #0x1000 bge _0233F35C ldr r0, [r0, #0x7d0] cmp r0, #3 addls pc, pc, r0, lsl #2 b _0233F854 _0233F28C: ; jump table b _0233F29C ; case 0 b _0233F2F4 ; case 1 b _0233F328 ; case 2 b _0233F2F4 ; case 3 _0233F29C: add r0, r2, #0x350 bl sub_02058FCC ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233F870 ; =0x000037FF ldr r0, [r0] mov r3, #0 add r2, r0, #0x1000 mov r0, #0x1c str r3, [r2, #0x7d8] bl ov05_0233CB68 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB9C ; =ov05_0233FC5C ldr r0, [r0] ldr r2, _0233EBA0 ; =ov05_0233FA74 add r0, r0, #0x78 add r0, r0, #0x1800 bl sub_0204707C ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x4000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F2F4: mov r0, #9 bl ov01_0233767C str r0, [sp] mov r0, #0 ldr r2, _0233F874 ; =ov05_0233FB4C ldr r3, _0233F878 ; =0x000037F7 mov r1, r0 bl ov05_0233CAC8 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233F87C ; =0x00004001 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F328: mov r0, #9 bl ov01_0233767C str r0, [sp] mov r0, #0 ldr r2, _0233F874 ; =ov05_0233FB4C ldr r3, _0233F880 ; =0x000037F8 mov r1, r0 bl ov05_0233CAC8 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233F87C ; =0x00004001 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F35C: ldr r1, [r0, #0x7d4] cmp r1, #0 bne _0233F39C mov r0, #0xa bl ov01_0233767C str r0, [sp] mov r0, #0 ldr r2, _0233F874 ; =ov05_0233FB4C #ifdef EUROPE mov r1, r0 mov r3, #0x3800 #else ldr r3, _0233F884 ; =0x000037FE mov r1, r0 #endif bl ov05_0233CAC8 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB14 ; =0x00004002 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F39C: ldr r0, [r0, #0x7d8] cmp r0, #0 movlt r0, #0x9000 strlt r0, [r2] movge r0, #0x8000 strge r0, [r2] b _0233F854 _0233F3B8: bl ov05_0233CAA8 cmp r0, #0 bne _0233F854 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, [r0] ldr r0, [r1, #0x2d0] ldr r1, [r1, #0x2d4] bl sub_020590DC ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x8000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F3EC: cmp r0, #8 bne _0233F854 bl ov01_02338B08 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x9000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F40C: bl ov05_0233CB84 cmp r0, #0xd bne _0233F854 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x78 add r0, r0, #0x1800 bl sub_02047150 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x8000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F440: bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #9 bl ov01_0233768C cmp r4, #0xb bne _0233F488 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r3, #0x9000 ldr r2, [r0] mov r1, #2 str r3, [r2] ldr r0, [r0] add r0, r0, #0x1000 str r1, [r0, #0x888] b _0233F854 _0233F488: sub r0, r4, #0xc cmp r0, #1 ldrls r0, _0233EB00 ; =ov05_0233FCA8 movls r1, #0x9000 ldrls r0, [r0] strls r1, [r0] b _0233F854 _0233F4A4: bl ov05_0233CB34 mov r4, r0 bl ov05_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #0xa bl ov01_0233768C cmp r4, #0xb bne _0233F4EC ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r3, #0x9000 ldr r2, [r0] mov r1, #1 str r3, [r2] ldr r0, [r0] add r0, r0, #0x1000 str r1, [r0, #0x888] b _0233F854 _0233F4EC: sub r0, r4, #0xc cmp r0, #1 ldrls r0, _0233EB00 ; =ov05_0233FCA8 movls r1, #0x9000 ldrls r0, [r0] strls r1, [r0] b _0233F854 _0233F508: mov r0, #0 bl ov00_022BD264 ldr r1, _0233EB00 ; =ov05_0233FCA8 mov r3, #0 ldr r0, [r1] ldr r2, _0233F888 ; =0x00008002 add r0, r0, #0x1000 str r3, [r0, #0x87c] ldr r0, [r1] str r2, [r0] b _0233F854 _0233F534: add r0, r4, #0x1000 ldr r0, [r0, #0x87c] cmp r0, #4 addls pc, pc, r0, lsl #2 b _0233F62C _0233F548: ; jump table b _0233F55C ; case 0 b _0233F578 ; case 1 b _0233F5A8 ; case 2 b _0233F608 ; case 3 b _0233F61C ; case 4 _0233F55C: bl ov00_022BD780 ldr r1, _0233F88C ; =0x0000023B mov r0, #0 bl ov05_0233CB68 add r0, r4, #0x1000 mov r1, #1 str r1, [r0, #0x87c] _0233F578: bl ov05_0233CB84 cmp r0, #0xd bne _0233F62C mov r0, #0xe0 mov r1, #0x88 mov r2, #1 bl sub_02029F88 add r0, r4, #0x1000 mov r1, #2 str r1, [r0, #0x87c] bl sub_02003B94 b _0233F62C _0233F5A8: mov r0, #3 bl NoteSaveBase mov r5, r0 bl sub_02003BC8 bl sub_02029FBC cmp r5, #0 bne _0233F5E0 #ifdef JAPAN ldr r1, _02341114 ; =0x000004CD mov r0, #0x1c #else mov r0, #0x1c mov r1, #0x23c #endif bl ov05_0233CB68 add r0, r4, #0x1000 mov r1, #3 str r1, [r0, #0x87c] b _0233F62C _0233F5E0: cmp r5, #1 moveq r0, #3 beq _0233F630 ldr r1, _0233F890 ; =0x00000239 mov r0, #0x1c bl ov05_0233CB68 add r0, r4, #0x1000 mov r1, #4 str r1, [r0, #0x87c] b _0233F62C _0233F608: bl ov05_0233CB84 cmp r0, #0xd bne _0233F62C mov r0, #1 b _0233F630 _0233F61C: bl ov05_0233CB84 cmp r0, #0xd moveq r0, #2 beq _0233F630 _0233F62C: mov r0, #0 _0233F630: cmp r0, #1 bne _0233F730 bl ov05_0233CAA8 cmp r0, #1 bne _0233F664 #if defined(EUROPE) ldr r1, _02340010 ; =0x00003802 mov r0, #0x1c #elif defined(JAPAN) mov r0, #0x1c rsb r1, r0, #0x3980 #else mov r0, #0x1c mov r1, #0x3800 #endif bl ov05_0233CB68 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0xf000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F664: ldr r1, _0233EB00 ; =ov05_0233FCA8 add r0, sp, #0x158 ldr r1, [r1] ldr r5, [r1, #0x2d0] ldr r4, [r1, #0x2d4] bl InitPreprocessorArgs ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] ldrb r0, [r0, #0x2c8] cmp r0, #0 ldrne r0, _0233F894 ; =0x00003803 ldreq r0, _0233F898 ; =0x00003804 mov r1, r0, lsl #0x10 add r0, sp, #0x58 mov r1, r1, lsr #0x10 bl GetStringFromFileVeneer ldr r2, _0233EB2C ; =0x00002710 mov r0, r5 mov r1, r4 mov r3, #0 bl _ull_mod str r0, [sp, #0x184] ldr r2, _0233EB2C ; =0x00002710 mov r0, r5 mov r1, r4 mov r3, #0 bl _ll_udiv ldr r2, _0233EB2C ; =0x00002710 mov r3, #0 bl _ull_mod str r0, [sp, #0x180] ldr r2, _0233EB30 ; =0x05F5E100 mov r1, r4 mov r0, r5 mov r3, #0 bl _ll_udiv ldr r2, _0233EB2C ; =0x00002710 mov r3, #0 bl _ull_mod add r1, sp, #0x58 str r1, [sp, #0x190] str r0, [sp, #0x17c] ldr r1, _0233F89C ; =0x00003807 mov r0, #0x1c add r2, sp, #0x158 bl ov05_02046BE8 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0xf000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F730: cmp r0, #3 moveq r0, #3 beq _0233F858 cmp r0, #2 bne _0233F854 mov r0, #1 b _0233F858 _0233F74C: bl ov05_0233CB84 cmp r0, #0xd bne _0233F854 mov r0, #2 b _0233F858 _0233F760: bl ov00_022BD274 cmp r0, #0 ldrne r0, _0233EB00 ; =ov05_0233FCA8 ldrne r1, _0233F8A0 ; =0x00009010 ldrne r0, [r0] strne r1, [r0] bne _0233F854 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1000 ldr r0, [r0, #0x888] cmp r0, #1 bne _0233F7AC bl ov05_0233F8A8 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x1000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F7AC: cmp r0, #2 bne _0233F7CC bl sub_02046D20 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233F8A4 ; =0x00001001 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F7CC: mov r0, #1 b _0233F858 _0233F7D4: bl ov01_0233769C ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233EB18 ; =0x00009011 ldr r0, [r0] str r1, [r0] _0233F7E8: bl ov01_02337718 cmp r0, #1 cmpne r0, #3 bne _0233F854 bl ov01_023376DC ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r0, [r0] add r0, r0, #0x1000 ldr r0, [r0, #0x888] cmp r0, #1 bne _0233F82C bl ov05_0233F8A8 ldr r0, _0233EB00 ; =ov05_0233FCA8 mov r1, #0x1000 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F82C: cmp r0, #2 bne _0233F84C bl sub_02046D20 ldr r0, _0233EB00 ; =ov05_0233FCA8 ldr r1, _0233F8A4 ; =0x00001001 ldr r0, [r0] str r1, [r0] b _0233F854 _0233F84C: mov r0, #1 b _0233F858 _0233F854: mov r0, #0 _0233F858: add sp, sp, #0x348 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 #if defined(EUROPE) #define OV05_0233DBDC_OFFSET 2 #elif defined(JAPAN) #define OV05_0233DBDC_OFFSET 0x164 #else #define OV05_0233DBDC_OFFSET 0 #endif _0233F860: .word 0x000037FD + OV05_0233DBDC_OFFSET _0233F864: .word 0x00002A30 _0233F868: .word 0x00003027 _0233F86C: .word 0x00003011 _0233F870: .word 0x000037FF + OV05_0233DBDC_OFFSET _0233F874: .word ov05_0233FB4C _0233F878: .word 0x000037F7 + OV05_0233DBDC_OFFSET _0233F87C: .word 0x00004001 _0233F880: .word 0x000037F8 + OV05_0233DBDC_OFFSET #ifndef EUROPE _0233F884: .word 0x000037FE + OV05_0233DBDC_OFFSET #endif _0233F888: .word 0x00008002 #ifdef JAPAN _0233F88C: .word 0x000004CC _02341114: .word 0x000004CD _0233F890: .word 0x000004CA #else _0233F88C: .word 0x0000023B _0233F890: .word 0x00000239 #endif #ifdef EUROPE _02340010: .word 0x00003802 #endif _0233F894: .word 0x00003803 + OV05_0233DBDC_OFFSET _0233F898: .word 0x00003804 + OV05_0233DBDC_OFFSET _0233F89C: .word 0x00003807 + OV05_0233DBDC_OFFSET _0233F8A0: .word 0x00009010 _0233F8A4: .word 0x00001001 arm_func_end ov05_0233DBDC arm_func_start ov05_0233F8A8 ov05_0233F8A8: ; 0x0233F8A8 stmdb sp!, {r3, lr} sub sp, sp, #8 bl ov05_0233F93C bl ov00_022BD338 cmp r0, #0 beq _0233F8CC bl ov00_022BCCF4 cmp r0, #0 bne _0233F8DC _0233F8CC: ldr r0, _0233F928 ; =ov05_0233FCA8 mov r1, #3 ldr r0, [r0] strb r1, [r0, #0x9c] _0233F8DC: mov r0, #4 bl ov01_0233767C ldr r2, _0233F92C ; =ov05_0233FC18 ldr r1, _0233F928 ; =ov05_0233FCA8 ldr r2, [r2, r0, lsl #3] ldr r0, [r1] ldr r3, _0233F930 ; =ov05_0233FC14 str r2, [r0, #4] mov r0, #0 ldr r2, _0233F934 ; =0x000037F0 str r3, [sp] str r2, [sp, #4] ldr r3, [r1] ldr r2, _0233F938 ; =0x00000233 mov r1, r0 add r3, r3, #4 bl ov05_0233CADC add sp, sp, #8 ldmia sp!, {r3, pc} .align 2, 0 _0233F928: .word ov05_0233FCA8 _0233F92C: .word ov05_0233FC18 _0233F930: .word ov05_0233FC14 #if defined(EUROPE) _0233F934: .word 0x000037F2 #elif defined(JAPAN) _0233F934: .word 0x00003954 #else _0233F934: .word 0x000037F0 #endif _0233F938: .word 0x00000233 arm_func_end ov05_0233F8A8 arm_func_start ov05_0233F93C ov05_0233F93C: ; 0x0233F93C stmdb sp!, {r3, lr} ldr r0, _0233F97C ; =ov05_0233FCA8 mov r1, #0x98 ldr r0, [r0] add r0, r0, #4 bl MemZero ldr r0, _0233F97C ; =ov05_0233FCA8 mov r1, #6 ldr r0, [r0] add r0, r0, #0x9c bl MemZero ldr r0, _0233F97C ; =ov05_0233FCA8 ldr r1, [r0] add r0, r1, #0x9c str r0, [r1, #0x64] ldmia sp!, {r3, pc} .align 2, 0 _0233F97C: .word ov05_0233FCA8 arm_func_end ov05_0233F93C arm_func_start ov05_0233F980 ov05_0233F980: ; 0x0233F980 stmdb sp!, {r4, lr} ldr r0, _0233F9C0 ; =ov05_0233FCA8 mvn r1, #1 ldr r4, [r0] add r0, r4, #0x1700 ldrsb r0, [r0, #0xdc] cmp r0, r1 ldmeqia sp!, {r4, pc} bl sub_0202836C add r0, r4, #0x1700 ldrsb r0, [r0, #0xdc] bl CloseAdvancedMenu add r0, r4, #0x1000 mvn r1, #1 strb r1, [r0, #0x7dc] ldmia sp!, {r4, pc} .align 2, 0 _0233F9C0: .word ov05_0233FCA8 arm_func_end ov05_0233F980 arm_func_start ov05_0233F9C4 ov05_0233F9C4: ; 0x0233F9C4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x94 ldr r2, _0233FA68 ; =ov05_0233FCA8 mov r6, r0 add r0, sp, #0x44 mov r7, r1 ldr r4, [r2] bl InitPreprocessorArgs mov r0, #0x148 mul r5, r7, r0 bl GetLanguageType add r1, r4, r5 add r1, r1, #0x300 ldrsb r1, [r1, #0x50] cmp r1, r0 bne _0233FA20 add r0, r4, #0x52 add r1, r0, #0x300 add r0, sp, #4 add r1, r1, r5 mov r2, #0x14 bl StrncpySimpleNoPadSafe b _0233FA2C _0233FA20: ldr r1, _0233FA6C ; =0x00000235 add r0, sp, #4 bl GetStringFromFileVeneer _0233FA2C: add r1, sp, #4 add r0, r4, r5 str r1, [sp, #0x7c] ldrb r0, [r0, #0x351] ldr r2, _0233FA70 ; =ov05_0233FC6C add r4, sp, #0x44 str r0, [sp, #0x54] mov r0, r6 mov r1, #0x100 mov r3, #0 str r4, [sp] bl PreprocessString mov r0, r6 add sp, sp, #0x94 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _0233FA68: .word ov05_0233FCA8 #ifdef JAPAN _0233FA6C: .word 0x000004C6 #else _0233FA6C: .word 0x00000235 #endif _0233FA70: .word ov05_0233FC6C arm_func_end ov05_0233F9C4 arm_func_start ov05_0233FA74 ov05_0233FA74: ; 0x0233FA74 stmdb sp!, {r3, r4, r5, r6, lr} sub sp, sp, #0x194 ldr r1, _0233FB40 ; =ov05_0233FCA8 mov r6, r0 ldr r4, [r1] add r0, sp, #0x144 bl InitPreprocessorArgs add r0, r4, #0x1000 ldr r1, [r0, #0x7d8] mov r0, #0x148 mul r5, r1, r0 bl GetLanguageType add r1, r4, r5 add r1, r1, #0x300 ldrsb r1, [r1, #0x50] cmp r1, r0 bne _0233FAD4 add r0, r4, #0x52 add r1, r0, #0x300 add r0, sp, #4 add r1, r1, r5 mov r2, #0x14 bl StrncpySimpleNoPadSafe b _0233FAE0 _0233FAD4: ldr r1, _0233FB44 ; =0x00000235 add r0, sp, #4 bl GetStringFromFileVeneer _0233FAE0: add r1, sp, #4 add r0, r4, #0x1000 str r1, [sp, #0x17c] ldr r1, [r0, #0x7d8] mov r0, #0x148 mla r0, r1, r0, r4 ldrb r1, [r0, #0x351] ldr r2, _0233FB48 ; =ov05_0233FC6C add r4, sp, #0x144 str r1, [sp, #0x154] add r0, sp, #0x44 mov r1, #0x100 mov r3, #0 str r4, [sp] bl PreprocessString add r3, sp, #0x44 mov r0, r6 mov r1, #4 mov r2, #2 bl DrawTextInWindow mov r0, r6 bl UpdateWindow add sp, sp, #0x194 ldmia sp!, {r3, r4, r5, r6, pc} .align 2, 0 _0233FB40: .word ov05_0233FCA8 #ifdef JAPAN _0233FB44: .word 0x000004C6 #else _0233FB44: .word 0x00000235 #endif _0233FB48: .word ov05_0233FC6C arm_func_end ov05_0233FA74 ; 0x0233FB4C .rodata .global ov05_0233FB4C ov05_0233FB4C: #if defined(EUROPE) #define OV05_DATA_OFFSET 2 #elif defined(JAPAN) #define OV05_DATA_OFFSET 0x164 #else #define OV05_DATA_OFFSET 0 #endif .word 0x37DB + OV05_DATA_OFFSET .byte 0x0B, 0x00, 0x00, 0x00 .word 0x37DD + OV05_DATA_OFFSET .byte 0x0D, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov05_0233FB64 ov05_0233FB64: .word 0x37DB + OV05_DATA_OFFSET .global ov05_0233FB68 ov05_0233FB68: .byte 0x0B, 0x00, 0x00, 0x00 .word 0x37DC + OV05_DATA_OFFSET .byte 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov05_0233FB7C ov05_0233FB7C: .word 0x37DB + OV05_DATA_OFFSET .global ov05_0233FB80 ov05_0233FB80: .byte 0x0B, 0x00, 0x00, 0x00 .word 0x37DC + OV05_DATA_OFFSET .byte 0x0C, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov05_0233FB94 ov05_0233FB94: .word 0x37E7 + OV05_DATA_OFFSET .byte 0x03, 0x00, 0x00, 0x00 .word 0x37E8 + OV05_DATA_OFFSET .byte 0x04, 0x00, 0x00, 0x00 .word 0x37E0 + OV05_DATA_OFFSET .byte 0x0D, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov05_0233FBB4 ov05_0233FBB4: .word 0x37EA + OV05_DATA_OFFSET .byte 0x03, 0x00, 0x00, 0x00 .word 0x37EB + OV05_DATA_OFFSET .byte 0x04, 0x00, 0x00, 0x00 .word 0x37E0 + OV05_DATA_OFFSET .byte 0x0D, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov05_0233FBD4 ov05_0233FBD4: .word 0x37DE + OV05_DATA_OFFSET .global ov05_0233FBD8 ov05_0233FBD8: .byte 0x01, 0x00, 0x00, 0x00 .word 0x37DF + OV05_DATA_OFFSET .byte 0x02, 0x00, 0x00, 0x00 .word 0x37E0 + OV05_DATA_OFFSET .byte 0x0D, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov05_0233FBF4 ov05_0233FBF4: .word 0x3803 + OV05_DATA_OFFSET .global ov05_0233FBF8 ov05_0233FBF8: .byte 0x06, 0x00, 0x00, 0x00 .word 0x3804 + OV05_DATA_OFFSET .byte 0x0A, 0x00, 0x00, 0x00 .word 0x3805 + OV05_DATA_OFFSET .byte 0x0D, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov05_0233FC14 ov05_0233FC14: .word 0x37F1 + OV05_DATA_OFFSET .global ov05_0233FC18 ov05_0233FC18: .byte 0x06, 0x00, 0x00, 0x00 .word 0x37F2 + OV05_DATA_OFFSET .byte 0x07, 0x00, 0x00, 0x00 .word 0x37F3 + OV05_DATA_OFFSET .byte 0x08, 0x00, 0x00, 0x00 .word 0x37F4 + OV05_DATA_OFFSET .byte 0x09, 0x00, 0x00, 0x00 .word 0x37F5 + OV05_DATA_OFFSET .byte 0x0D, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov05_0233FC44 ov05_0233FC44: .hword 0x37F1 + OV05_DATA_OFFSET, 0x37F2 + OV05_DATA_OFFSET, 0x37F3 + OV05_DATA_OFFSET, 0x37F3 + OV05_DATA_OFFSET .global ov05_0233FC4C ov05_0233FC4C: .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x02, 0x18, 0x11, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global ov05_0233FC5C ov05_0233FC5C: .byte 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x18, 0x02, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global ov05_0233FC6C ov05_0233FC6C: .byte 0x5B, 0x43, 0x53, 0x3A, 0x58, 0x5D, 0x5B, 0x73, 0x74, 0x72, 0x69, 0x6E, 0x67, 0x3A, 0x30, 0x5D .byte 0x5B, 0x43, 0x52, 0x5D, 0x5B, 0x43, 0x4C, 0x55, 0x4D, 0x5F, 0x53, 0x45, 0x54, 0x3A, 0x38, 0x38 .byte 0x5D, 0x5B, 0x72, 0x61, 0x6E, 0x6B, 0x3A, 0x30, 0x5D, 0x00, 0x00, 0x00 .data .global ov05_0233FCA0 ov05_0233FCA0: .byte 0x00, 0x00, 0x00, 0x00 .global ov05_0233FCA4 ov05_0233FCA4: .byte 0x00, 0x00, 0x00, 0x00 .global ov05_0233FCA8 ov05_0233FCA8: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .bss .global ov05_0233FCC0 ov05_0233FCC0: .space 0xC .global ov05_0233FCCC ov05_0233FCCC: .space 0x14