.include "asm/macros.inc" .include "overlay_04.inc" .text arm_func_start ov04_0233CA80 ov04_0233CA80: ; 0x0233CA80 ldr ip, _0233CA90 ; =MemZero ldr r0, _0233CA94 ; =ov04_0233F660 mov r1, #0x10 bx ip .align 2, 0 _0233CA90: .word MemZero _0233CA94: .word ov04_0233F660 arm_func_end ov04_0233CA80 arm_func_start ov04_0233CA98 ov04_0233CA98: ; 0x0233CA98 ldr r1, _0233CAA4 ; =ov04_0233F660 str r0, [r1] bx lr .align 2, 0 _0233CAA4: .word ov04_0233F660 arm_func_end ov04_0233CA98 arm_func_start ov04_0233CAA8 ov04_0233CAA8: ; 0x0233CAA8 ldr r0, _0233CAB4 ; =ov04_0233F660 ldr r0, [r0] bx lr .align 2, 0 _0233CAB4: .word ov04_0233F660 arm_func_end ov04_0233CAA8 arm_func_start ov04_0233CAB8 ov04_0233CAB8: ; 0x0233CAB8 ldr r1, _0233CAC4 ; =ov04_0233F660 str r0, [r1, #4] bx lr .align 2, 0 _0233CAC4: .word ov04_0233F660 arm_func_end ov04_0233CAB8 arm_func_start ov04_0233CAC8 ov04_0233CAC8: ; 0x0233CAC8 ldr r0, _0233CAD4 ; =ov04_0233F660 ldr r0, [r0, #4] bx lr .align 2, 0 _0233CAD4: .word ov04_0233F660 arm_func_end ov04_0233CAC8 arm_func_start ov04_0233CAD8 ov04_0233CAD8: ; 0x0233CAD8 ldr r1, _0233CAE4 ; =ov04_0233F660 strb r0, [r1, #0xc] bx lr .align 2, 0 _0233CAE4: .word ov04_0233F660 arm_func_end ov04_0233CAD8 arm_func_start ov04_0233CAE8 ov04_0233CAE8: ; 0x0233CAE8 ldr r0, _0233CAF4 ; =ov04_0233F660 ldrb r0, [r0, #0xc] bx lr .align 2, 0 _0233CAF4: .word ov04_0233F660 arm_func_end ov04_0233CAE8 arm_func_start ov04_0233CAF8 ov04_0233CAF8: ; 0x0233CAF8 stmdb sp!, {lr} sub sp, sp, #0xc ldr ip, [sp, #0x10] ldrh lr, [sp, #0x14] str ip, [sp] mov ip, #0 arm_func_end ov04_0233CAF8 arm_func_start ov04_0233CB10 ov04_0233CB10: ; 0x0233CB10 str lr, [sp, #4] str ip, [sp, #8] bl sub_02046A20 add sp, sp, #0xc ldmia sp!, {pc} arm_func_end ov04_0233CB10 arm_func_start ov04_0233CB24 ov04_0233CB24: ; 0x0233CB24 stmdb sp!, {lr} sub sp, sp, #0xc ldr ip, [sp, #0x10] ldrh lr, [sp, #0x14] str ip, [sp] ldr ip, [sp, #0x18] arm_func_end ov04_0233CB24 arm_func_start ov04_0233CB3C ov04_0233CB3C: ; 0x0233CB3C str lr, [sp, #4] str ip, [sp, #8] bl sub_02046A20 add sp, sp, #0xc ldmia sp!, {pc} arm_func_end ov04_0233CB3C arm_func_start ov04_0233CB50 ov04_0233CB50: ; 0x0233CB50 stmdb sp!, {r3, lr} bl sub_02046B04 mvn r1, #1 cmp r0, r1 moveq r0, #8 ldmeqia sp!, {r3, pc} add r1, r1, #1 cmp r0, r1 moveq r0, #0 ldmia sp!, {r3, pc} arm_func_end ov04_0233CB50 arm_func_start ov04_02046BA0 ov04_02046BA0: ; 0x0233CB78 ldr ip, _0233CB80 ; =sub_02046BA0 bx ip .align 2, 0 _0233CB80: .word sub_02046BA0 arm_func_end ov04_02046BA0 arm_func_start ov04_0233CB84 ov04_0233CB84: ; 0x0233CB84 ldr ip, _0233CB90 ; =sub_02046BE8 mov r2, #0 bx ip .align 2, 0 _0233CB90: .word sub_02046BE8 arm_func_end ov04_0233CB84 arm_func_start ov04_02046BE8 ov04_02046BE8: ; 0x0233CB94 ldr ip, _0233CB9C ; =sub_02046BE8 bx ip .align 2, 0 _0233CB9C: .word sub_02046BE8 arm_func_end ov04_02046BE8 arm_func_start ov04_0233CBA0 ov04_0233CBA0: ; 0x0233CBA0 stmdb sp!, {r3, lr} bl sub_02046C78 cmp r0, #0 movne r0, #8 moveq r0, #0 ldmia sp!, {r3, pc} arm_func_end ov04_0233CBA0 arm_func_start ov04_0233CBB8 ov04_0233CBB8: ; 0x0233CBB8 stmdb sp!, {r3, lr} mov r0, #0xb8 mov r1, #8 bl MemAlloc ldr r2, _0233CC44 ; =ov04_0233F670 mov r1, #0xb8 str r0, [r2] bl MemZero mov r2, #0 ldr r0, _0233CC44 ; =ov04_0233F670 mov ip, r2 _0233CBE4: ldr r1, [r0] add r1, r1, r2 add r2, r2, #1 strb ip, [r1, #0x14] cmp r2, #3 blt _0233CBE4 ldr r0, _0233CC44 ; =ov04_0233F670 mov r1, #0x10 ldr r3, [r0] add r2, r3, #0x14 str r2, [r3, #0x78] ldr r2, [r0] str ip, [r2, #0x10] ldr r0, [r0] bl MemZero ldr r0, _0233CC44 ; =ov04_0233F670 mov r1, #0 str r1, [r0, #4] bl sub_02046D20 ldr r0, _0233CC48 ; =ov04_0233F640 mov r1, #0 str r1, [r0] mov r0, #1 ldmia sp!, {r3, pc} .align 2, 0 _0233CC44: .word ov04_0233F670 _0233CC48: .word ov04_0233F640 arm_func_end ov04_0233CBB8 arm_func_start ov04_0233CC4C ov04_0233CC4C: ; 0x0233CC4C stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r0, _0233D154 ; =ov04_0233F670 ldr r0, [r0] ldr r1, [r0, #0x10] cmp r1, #0x2000 bgt _0233CCC4 bge _0233CFE0 cmp r1, #0x1000 bgt _0233CCA0 bge _0233CE28 cmp r1, #2 bgt _0233D148 cmp r1, #0 blt _0233D148 beq _0233CD04 cmp r1, #1 beq _0233CD8C cmp r1, #2 beq _0233CE0C b _0233D148 _0233CCA0: ldr r0, _0233D158 ; =0x00001001 cmp r1, r0 bgt _0233CCB4 beq _0233CED8 b _0233D148 _0233CCB4: add r0, r0, #1 cmp r1, r0 beq _0233CFC4 b _0233D148 _0233CCC4: ldr r0, _0233D15C ; =0x00002002 cmp r1, r0 bgt _0233CCE4 bge _0233D064 sub r0, r0, #1 cmp r1, r0 beq _0233D000 b _0233D148 _0233CCE4: cmp r1, #0x3000 bgt _0233CCF4 beq _0233D0CC b _0233D148 _0233CCF4: ldr r0, _0233D160 ; =0x00003001 cmp r1, r0 beq _0233D0EC b _0233D148 _0233CD04: bl ov01_0232E94C cmp r0, #0 bne _0233D148 bl ov01_0232F3F4 bl ov04_0233CA80 mov r3, #0 ldr r1, _0233D154 ; =ov04_0233F670 mov r0, r3 _0233CD24: ldr r2, [r1] add r2, r2, r3 add r3, r3, #1 strb r0, [r2, #0x14] cmp r3, #3 blt _0233CD24 bl ov01_02337648 ldr r2, _0233D164 ; =ov04_0233F5BC ldr r1, _0233D154 ; =ov04_0233F670 ldr r2, [r2, r0, lsl #3] ldr r0, [r1] ldr r3, _0233D168 ; =ov04_0233F5B8 str r2, [r0, #0x18] mov r0, #0 ldr r2, _0233D16C ; =0x000037B9 str r3, [sp] str r2, [sp, #4] ldr r3, [r1] ldr r2, _0233D170 ; =0x00000233 mov r1, r0 add r3, r3, #0x18 bl ov04_0233CAF8 ldr r0, _0233D154 ; =ov04_0233F670 mov r1, #1 ldr r0, [r0] str r1, [r0, #0x10] _0233CD8C: bl ov04_0233CB50 mov r4, r0 bl ov04_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #0 bl ov01_02337658 cmp r4, #1 bne _0233CDCC mov r0, #1 bl ov04_0233CAB8 ldr r0, _0233D154 ; =ov04_0233F670 mov r1, #0x1000 ldr r0, [r0] str r1, [r0, #0x10] arm_func_end ov04_0233CC4C arm_func_start ov04_0233CDC8 ov04_0233CDC8: ; 0x0233CDC8 b _0233D148 _0233CDCC: cmp r4, #2 bne _0233CDF0 mov r0, #0 arm_func_end ov04_0233CDC8 arm_func_start ov04_0233CDD8 ov04_0233CDD8: ; 0x0233CDD8 bl ov04_0233CAB8 ldr r0, _0233D154 ; =ov04_0233F670 mov r1, #0x1000 arm_func_end ov04_0233CDD8 arm_func_start ov04_0233CDE4 ov04_0233CDE4: ; 0x0233CDE4 ldr r0, [r0] str r1, [r0, #0x10] b _0233D148 _0233CDF0: sub r0, r4, #7 cmp r0, #1 ldrls r0, _0233D154 ; =ov04_0233F670 movls r1, #2 ldrls r0, [r0] strls r1, [r0, #0x10] b _0233D148 _0233CE0C: bl ov01_0232E94C cmp r0, #0 bne _0233D148 mov r0, #0x11 bl ov01_023310B8 mov r0, #3 b _0233D14C _0233CE28: bl ov04_0233CAC8 cmp r0, #0 ldreq r0, _0233D174 ; =0x000037BE ldrne r0, _0233D178 ; =0x000037BD mov r0, r0, lsl #0x10 mov r4, r0, lsr #0x10 bl ov04_0233CAC8 cmp r0, #1 moveq r0, #1 movne r0, #0 and r0, r0, #0xff bl sub_0204316C bl sub_02043320 cmp r0, #0 ldrne r0, _0233D154 ; =ov04_0233F670 movne r1, #3 ldreq r0, _0233D154 ; =ov04_0233F670 moveq r1, #0 ldr r0, [r0] strb r1, [r0, #0x14] mov r0, #1 bl ov01_02337648 ldr r2, _0233D17C ; =ov04_0233F59C ldr r1, _0233D154 ; =ov04_0233F670 ldr r2, [r2, r0, lsl #3] ldr r1, [r1] mov r0, #0 str r2, [r1, #0x18] bl ov04_0233CAD8 ldr r1, _0233D180 ; =ov04_0233F598 mov r0, #0 str r1, [sp] ldr r1, _0233D154 ; =ov04_0233F670 str r4, [sp, #4] ldr r3, [r1] ldr r2, _0233D170 ; =0x00000233 mov r1, r0 add r3, r3, #0x18 bl ov04_0233CAF8 ldr r0, _0233D154 ; =ov04_0233F670 ldr r1, _0233D158 ; =0x00001001 ldr r0, [r0] str r1, [r0, #0x10] b _0233D148 _0233CED8: bl ov04_0233CB50 mov r4, r0 bl ov04_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #1 bl ov01_02337658 cmp r4, #3 bne _0233CF18 mov r0, #0 bl ov04_0233CA98 ldr r0, _0233D154 ; =ov04_0233F670 mov r1, #0x3000 ldr r0, [r0] str r1, [r0, #0x10] b _0233D148 _0233CF18: cmp r4, #4 bne _0233CFA8 bl ov04_0233CAC8 cmp r0, #1 moveq r0, #6 beq _0233CF48 bl ov04_0233CAC8 cmp r0, #1 moveq r0, #1 movne r0, #0 and r0, r0, #0xff bl sub_0204316C _0233CF48: bl sub_02043380 cmp r0, #0 beq _0233CF74 ldr r1, _0233D184 ; =0x000037BF mov r0, #0x1c bl ov04_0233CB84 ldr r0, _0233D154 ; =ov04_0233F670 ldr r1, _0233D188 ; =0x00001002 ldr r0, [r0] str r1, [r0, #0x10] b _0233D148 _0233CF74: mov r0, #1 bl ov04_0233CA98 bl ov04_0233CAC8 cmp r0, #0 ldreq r0, _0233D154 ; =ov04_0233F670 moveq r1, #0x2000 ldreq r0, [r0] streq r1, [r0, #0x10] ldrne r0, _0233D154 ; =ov04_0233F670 movne r1, #0x3000 ldrne r0, [r0] strne r1, [r0, #0x10] b _0233D148 _0233CFA8: sub r0, r4, #7 cmp r0, #1 ldrls r0, _0233D154 ; =ov04_0233F670 movls r1, #0 ldrls r0, [r0] strls r1, [r0, #0x10] b _0233D148 _0233CFC4: bl ov04_0233CBA0 cmp r0, #8 ldreq r0, _0233D154 ; =ov04_0233F670 moveq r1, #2 ldreq r0, [r0] streq r1, [r0, #0x10] b _0233D148 _0233CFE0: ldr r1, _0233D18C ; =0x000037D6 mov r0, #0x1c bl ov04_0233CB84 ldr r0, _0233D154 ; =ov04_0233F670 ldr r1, _0233D190 ; =0x00002001 ldr r0, [r0] str r1, [r0, #0x10] b _0233D148 _0233D000: bl ov04_0233CBA0 cmp r0, #8 bne _0233D148 mov r0, #2 bl ov01_02337648 ldr r2, _0233D194 ; =ov04_0233F584 ldr r1, _0233D154 ; =ov04_0233F670 ldr r2, [r2, r0, lsl #3] ldr r0, [r1] ldr r3, _0233D198 ; =ov04_0233F580 str r2, [r0, #0x18] mov r0, #0 ldr r2, _0233D19C ; =0x000037D7 str r3, [sp] str r2, [sp, #4] ldr r2, [r1] mov r1, r0 add r3, r2, #0x18 mov r2, #0x33 bl ov04_0233CAF8 ldr r0, _0233D154 ; =ov04_0233F670 ldr r1, _0233D15C ; =0x00002002 ldr r0, [r0] str r1, [r0, #0x10] b _0233D148 _0233D064: bl ov04_0233CB50 mov r4, r0 bl ov04_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #2 bl ov01_02337658 cmp r4, #6 bne _0233D0A4 mov r0, #1 bl ov04_0233CAD8 ldr r0, _0233D154 ; =ov04_0233F670 mov r1, #0x3000 ldr r0, [r0] str r1, [r0, #0x10] b _0233D148 _0233D0A4: sub r0, r4, #7 cmp r0, #1 bhi _0233D148 mov r0, #0 bl ov04_0233CAD8 ldr r0, _0233D154 ; =ov04_0233F670 mov r1, #0x3000 ldr r0, [r0] str r1, [r0, #0x10] b _0233D148 _0233D0CC: bl ov01_0232E94C cmp r0, #0 bne _0233D148 bl ov04_0233D1D8 ldr r0, _0233D154 ; =ov04_0233F670 ldr r1, _0233D160 ; =0x00003001 ldr r0, [r0] str r1, [r0, #0x10] _0233D0EC: bl sub_02003BFC bl ov04_0233D2F8 cmp r0, #1 bne _0233D114 bl ov04_0233D2B4 ldr r0, _0233D154 ; =ov04_0233F670 mov r1, #0x1000 ldr r0, [r0] str r1, [r0, #0x10] b _0233D148 _0233D114: cmp r0, #2 bne _0233D130 bl ov04_0233D2B4 mov r0, #0x11 bl ov01_023310B8 mov r0, #3 b _0233D14C _0233D130: cmp r0, #3 bne _0233D148 bl ov04_0233D2B4 bl sub_0204A018 mov r0, #3 b _0233D14C _0233D148: mov r0, #1 _0233D14C: add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 _0233D154: .word ov04_0233F670 _0233D158: .word 0x00001001 _0233D15C: .word 0x00002002 _0233D160: .word 0x00003001 _0233D164: .word ov04_0233F5BC _0233D168: .word ov04_0233F5B8 _0233D16C: .word 0x000037B9 _0233D170: .word 0x00000233 _0233D174: .word 0x000037BE _0233D178: .word 0x000037BD _0233D17C: .word ov04_0233F59C _0233D180: .word ov04_0233F598 _0233D184: .word 0x000037BF _0233D188: .word 0x00001002 _0233D18C: .word 0x000037D6 _0233D190: .word 0x00002001 _0233D194: .word ov04_0233F584 _0233D198: .word ov04_0233F580 _0233D19C: .word 0x000037D7 arm_func_end ov04_0233CDE4 arm_func_start ov04_0233D1A0 ov04_0233D1A0: ; 0x0233D1A0 stmdb sp!, {r3, lr} ldr r0, _0233D1D4 ; =ov04_0233F670 ldr r0, [r0] cmp r0, #0 ldmeqia sp!, {r3, pc} bl sub_02046D20 ldr r0, _0233D1D4 ; =ov04_0233F670 ldr r0, [r0] bl MemFree ldr r0, _0233D1D4 ; =ov04_0233F670 mov r1, #0 str r1, [r0] ldmia sp!, {r3, pc} .align 2, 0 _0233D1D4: .word ov04_0233F670 arm_func_end ov04_0233D1A0 arm_func_start ov04_0233D1D8 ov04_0233D1D8: ; 0x0233D1D8 stmdb sp!, {r3, lr} sub sp, sp, #8 bl sub_02044094 bl sub_020440DC bl sub_02043218 ldr r0, _0233D2A4 ; =0x00001D28 mov r1, #8 bl MemAlloc ldr r2, _0233D2A8 ; =ov04_0233F644 ldr r1, _0233D2A4 ; =0x00001D28 str r0, [r2] bl MemZero ldr r0, _0233D2A8 ; =ov04_0233F644 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, #0x37 bic r0, r0, #0x1f str r0, [r1, #0x14] bl ov04_0233CAC8 cmp r0, #1 ldr r3, _0233D2A8 ; =ov04_0233F644 moveq r2, #1 ldr r1, [r3] movne r2, #0 add r1, r1, #0x1000 strb r2, [r1, #0x928] ldr r2, [r3] mov ip, #0 add r2, r2, #0x1000 strb ip, [r2, #0xd24] ldr r3, [r3] ldr r1, _0233D2AC ; =ov04_0233F624 add r3, r3, #0x1000 ldr r2, _0233D2B0 ; =0x0000030F add r0, sp, #0 strb ip, [r3, #0x92d] bl LoadFileFromRom ldr r0, _0233D2A8 ; =ov04_0233F644 ldr r2, [sp] ldr r0, [r0] ldr r1, [sp, #4] add r0, r0, #0x1000 str r2, [r0, #0xd1c] str r1, [r0, #0xd20] add sp, sp, #8 ldmia sp!, {r3, pc} .align 2, 0 _0233D2A4: .word 0x00001D28 _0233D2A8: .word ov04_0233F644 _0233D2AC: .word ov04_0233F624 _0233D2B0: .word 0x0000030F arm_func_end ov04_0233D1D8 arm_func_start ov04_0233D2B4 ov04_0233D2B4: ; 0x0233D2B4 stmdb sp!, {r3, lr} ldr r0, _0233D2F4 ; =ov04_0233F644 ldr r0, [r0] cmp r0, #0 ldmeqia sp!, {r3, pc} add r0, r0, #0x11c add r0, r0, #0x1c00 bl UnloadFile ldr r0, _0233D2F4 ; =ov04_0233F644 ldr r0, [r0] bl MemFree ldr r0, _0233D2F4 ; =ov04_0233F644 mov r1, #0 str r1, [r0] bl sub_020440B8 ldmia sp!, {r3, pc} .align 2, 0 _0233D2F4: .word ov04_0233F644 arm_func_end ov04_0233D2B4 arm_func_start ov04_0233D2F8 ov04_0233D2F8: ; 0x0233D2F8 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xa4 sub sp, sp, #0x400 ldr r0, _0233E25C ; =ov04_0233F644 ldr r2, _0233E260 ; =0x00002020 ldr r4, [r0] ldr r0, [r4] cmp r0, r2 bgt _0233D414 bge _0233E9D4 sub r1, r2, #0x1f cmp r0, r1 bgt _0233D3B0 bge _0233DFC8 ldr r2, _0233E264 ; =0x00001001 cmp r0, r2 bgt _0233D370 bge _0233D820 cmp r0, #2 bgt _0233D364 cmp r0, #0 blt _0233EEB4 beq _0233D4FC cmp r0, #1 cmpne r0, #2 beq _0233D7F0 b _0233EEB4 _0233D364: cmp r0, #0x1000 beq _0233D804 b _0233EEB4 _0233D370: add r1, r2, #6 cmp r0, r1 bgt _0233D3A4 add r1, r2, #1 subs r1, r0, r1 addpl pc, pc, r1, lsl #2 b _0233EEB4 _0233D38C: ; jump table b _0233D874 ; case 0 b _0233DAC4 ; case 1 b _0233DCCC ; case 2 b _0233DD54 ; case 3 b _0233DDA8 ; case 4 b _0233DDC4 ; case 5 _0233D3A4: cmp r0, #0x2000 beq _0233DDF4 b _0233EEB4 _0233D3B0: sub r1, r2, #0xd cmp r0, r1 bgt _0233D3E4 bge _0233E560 sub r1, r2, #0xf cmp r0, r1 bgt _0233D3D4 beq _0233E23C b _0233EEB4 _0233D3D4: sub r1, r2, #0xe cmp r0, r1 beq _0233E43C b _0233EEB4 _0233D3E4: sub r1, r2, #0xb cmp r0, r1 bgt _0233D404 bge _0233E74C sub r1, r2, #0xc cmp r0, r1 beq _0233E670 b _0233EEB4 _0233D404: sub r1, r2, #0xa cmp r0, r1 beq _0233E774 b _0233EEB4 _0233D414: ldr r2, _0233E268 ; =0x00005001 cmp r0, r2 bgt _0233D47C bge _0233ECB4 ldr r1, _0233E26C ; =0x00003002 cmp r0, r1 bgt _0233D454 bge _0233EB98 cmp r0, #0x3000 bgt _0233D444 beq _0233EA00 b _0233EEB4 _0233D444: sub r1, r1, #1 cmp r0, r1 beq _0233EB20 b _0233EEB4 _0233D454: cmp r0, #0x4000 bgt _0233D470 bge _0233EBD8 add r1, r1, #1 cmp r0, r1 beq _0233EBAC b _0233EEB4 _0233D470: cmp r0, #0x5000 beq _0233EBEC b _0233EEB4 _0233D47C: add r1, r2, #3 cmp r0, r1 bgt _0233D4B0 bge _0233ED70 add r1, r2, #1 cmp r0, r1 bgt _0233D4A0 beq _0233ED0C b _0233EEB4 _0233D4A0: add r1, r2, #2 cmp r0, r1 beq _0233ED28 b _0233EEB4 _0233D4B0: add r1, r2, #5 cmp r0, r1 bgt _0233D4D0 bge _0233EDB0 add r1, r2, #4 cmp r0, r1 beq _0233ED90 b _0233EEB4 _0233D4D0: add r1, r2, #7 cmp r0, r1 bgt _0233EEB4 add r1, r2, #6 cmp r0, r1 blt _0233EEB4 beq _0233EDD4 add r1, r2, #7 cmp r0, r1 beq _0233EE90 b _0233EEB4 _0233D4FC: bl ov04_0233CAC8 cmp r0, #0 bne _0233D648 bl ov04_0233CAA8 cmp r0, #1 bne _0233D5AC ldr r0, _0233E25C ; =ov04_0233F644 ldr r1, [r0] cmp r1, #0 movne r0, #1 strne r0, [r1, #4] add r0, r4, #0x58 mov r1, #0x1e bl MemZero add r0, r4, #0x3ec add r0, r0, #0x1400 mov r1, #0x18 bl MemZero add r0, r4, #0x3ec add r1, r4, #0x1000 mov r3, #0x18 str r3, [r1, #0x838] add r0, r0, #0x1400 str r0, [r1, #0x83c] mov r0, #0x1e str r0, [r1, #0x840] add r0, r4, #0x58 str r0, [r1, #0x844] mov r3, #0 ldr r0, _0233E270 ; =ov04_0233EF8C strb r3, [r1, #0x84c] str r0, [r1, #0x848] mov r0, #1 strb r0, [r1, #0x850] add r2, r4, #0x7f0 add r0, r2, #0x1000 strb r3, [r1, #0x851] bl GetTeamNameCheck ldr r1, _0233E274 ; =0x000037C1 mov r0, #0x1c bl ov04_0233CB84 mov r0, #1 str r0, [r4] b _0233EEB4 _0233D5AC: bl ov04_0233CAA8 cmp r0, #0 bne _0233EEB4 ldr r0, _0233E25C ; =ov04_0233F644 ldr r1, [r0] cmp r1, #0 movne r0, #0 strne r0, [r1, #4] add r0, r4, #0x58 mov r1, #0x1e bl MemZero add r0, r4, #0x3ec add r0, r0, #0x1400 mov r1, #0x18 bl MemZero add r0, r4, #0x3ec add r1, r4, #0x1000 mov r2, #0x1e str r2, [r1, #0x838] add r2, r4, #0x58 str r2, [r1, #0x83c] mov r2, #0x18 str r2, [r1, #0x840] add r0, r0, #0x1400 str r0, [r1, #0x844] mov r2, #0 ldr r0, _0233E278 ; =ov01_02337B68 strb r2, [r1, #0x84c] str r0, [r1, #0x848] strb r2, [r1, #0x850] add r0, r4, #0x5c strb r2, [r1, #0x851] bl GetTeamNameCheck ldr r1, _0233E27C ; =0x000037C2 mov r0, #0x1c bl ov04_0233CB84 mov r0, #0x1000 str r0, [r4] b _0233EEB4 _0233D648: bl ov04_0233CAA8 cmp r0, #1 bne _0233D734 ldr r0, _0233E25C ; =ov04_0233F644 ldr r1, [r0] cmp r1, #0 movne r0, #1 strne r0, [r1, #4] ldr r1, _0233E280 ; =0x00001776 add r0, r4, #0x76 bl MemZero add r0, r4, #4 add r0, r0, #0x1800 mov r1, #0x1a bl MemZero add r0, r4, #0x3ec add r6, r0, #0x1400 add r1, r4, #4 add r0, r4, #0x7f0 add r2, r4, #0x1000 mov r7, #0x18 str r7, [r2, #0x820] str r6, [r2, #0x824] mov r3, #0x1a str r3, [r2, #0x828] add r1, r1, #0x1800 str r1, [r2, #0x82c] mov r5, #1 ldr r1, _0233E284 ; =ov04_0233F0A8 strb r5, [r2, #0x834] str r1, [r2, #0x830] str r7, [r2, #0x838] ldr r1, _0233E280 ; =0x00001776 str r6, [r2, #0x83c] str r1, [r2, #0x840] add r1, r4, #0x76 str r1, [r2, #0x844] mov r3, #0 ldr r1, _0233E288 ; =ov04_0233F0E0 strb r3, [r2, #0x84c] str r1, [r2, #0x848] strb r5, [r2, #0x850] add r0, r0, #0x1000 strb r3, [r2, #0x851] bl GetTeamNameCheck add r0, sp, #0xec bl InitPreprocessorArgs bl sub_0200FD48 mov r5, r0 bl sub_0200FD78 sub r0, r5, r0 str r0, [sp, #0x110] mov r0, #0x1c mov r1, #0x37c0 add r2, sp, #0xec bl ov04_02046BE8 mov r0, #2 str r0, [r4] b _0233EEB4 _0233D734: bl ov04_0233CAA8 cmp r0, #0 bne _0233EEB4 ldr r0, _0233E25C ; =ov04_0233F644 ldr r1, [r0] cmp r1, #0 movne r0, #0 strne r0, [r1, #4] add r0, r4, #0x3ec add r0, r0, #0x1400 mov r1, #0x18 bl MemZero add r0, r4, #4 add r1, r4, #0x3ec add r5, r1, #0x1400 add r2, r4, #0x1000 mov r3, #0x1a str r3, [r2, #0x820] add r0, r0, #0x1800 str r0, [r2, #0x824] mov r6, #0x18 str r6, [r2, #0x828] add r0, r4, #8 str r5, [r2, #0x82c] mov r1, #1 strb r1, [r2, #0x834] ldr r3, _0233E278 ; =ov01_02337B68 ldr r1, _0233E280 ; =0x00001776 str r3, [r2, #0x830] str r1, [r2, #0x838] add r1, r4, #0x76 str r1, [r2, #0x83c] str r6, [r2, #0x840] str r5, [r2, #0x844] mov r1, #0 strb r1, [r2, #0x84c] str r3, [r2, #0x848] strb r1, [r2, #0x850] add r0, r0, #0x1800 strb r1, [r2, #0x851] bl GetTeamNameCheck ldr r1, _0233E27C ; =0x000037C2 mov r0, #0x1c bl ov04_0233CB84 mov r0, #0x1000 str r0, [r4] b _0233EEB4 _0233D7F0: bl ov04_0233CBA0 cmp r0, #8 moveq r0, #0x2000 streq r0, [r4] b _0233EEB4 _0233D804: bl ov04_0233CBA0 cmp r0, #8 bne _0233EEB4 bl sub_02046D20 ldr r0, _0233E264 ; =0x00001001 str r0, [r4] b _0233EEB4 _0233D820: bl ov04_0233CAC8 cmp r0, #0 movne r5, #6 bne _0233D848 ldr r0, _0233E25C ; =ov04_0233F644 ldr r0, [r0] add r0, r0, #0x1000 ldrb r0, [r0, #0x928] bl sub_0204316C mov r5, r0 _0233D848: ldr r0, _0233E28C ; =ov01_0233C1DC ldrsh r0, [r0] bl sub_0204322C mov r0, r5 mov r1, #0 mov r2, #8 bl sub_02042CF0 ldr r1, _0233E290 ; =0x00001002 strb r0, [r4, #8] str r1, [r4] b _0233EEB4 _0233D874: bl sub_02043468 mov r5, r0 bl sub_02043400 cmp r0, #0 bne _0233DA6C mvn r0, #0 cmp r5, r0 bne _0233D8A8 bl sub_0204317C mvn r0, #1 strb r0, [r4, #8] mov r0, #1 b _0233EEB8 _0233D8A8: bl sub_020434FC mov r6, r0 mov r0, r5 bl sub_02043254 ldr r1, _0233E28C ; =ov01_0233C1DC cmp r6, #1 strh r0, [r1] ble _0233D9A4 add r0, r4, #0x84 add r0, r0, #0x1800 mov r1, #0x98 str r5, [r4, #0xc] bl MemZero mov r1, #0 mov r5, r1 _0233D8E4: add r0, r4, r1 add r0, r0, #0x1000 add r1, r1, #1 strb r5, [r0, #0x91c] cmp r1, #5 blt _0233D8E4 add r0, r4, #0x11c add r7, r0, #0x1800 add r6, r4, #0x1000 str r7, [r6, #0x8e4] mov r0, #3 strb r0, [r7, #1] b _0233D954 _0233D918: mov r0, r5, lsl #0x10 mov r0, r0, asr #0x10 bl sub_02043568 tst r0, #1 beq _0233D950 mov r0, r5 bl sub_0204329C bl sub_02010044 ldrb r1, [r6, #0x928] bl CanSendItem cmp r0, #0 moveq r0, #3 streqb r0, [r7] beq _0233D95C _0233D950: add r5, r5, #1 _0233D954: cmp r5, #0x3e8 blt _0233D918 _0233D95C: mov r0, #3 bl ov01_02337648 arm_func_end ov04_0233D2F8 arm_func_start ov04_0233D964 ov04_0233D964: ; 0x0233D964 ldr r1, _0233E294 ; =ov04_0233F5DC add r3, r4, #0x84 ldr r2, [r1, r0, lsl #3] add r0, r4, #0x1000 ldr r1, _0233E298 ; =ov04_0233F5D8 str r2, [r0, #0x884] ldr r0, _0233E29C ; =ov04_0233F604 ldr r2, _0233E2A0 ; =0x00000233 str r1, [sp] mov r1, #0 add r3, r3, #0x1800 str r1, [sp, #4] bl ov04_0233CAF8 ldr r0, _0233E2A4 ; =0x00001003 str r0, [r4] b _0233EEB4 _0233D9A4: cmp r6, #1 bne _0233D9B4 bl sub_0204352C b _0233D9B8 _0233D9B4: bl sub_02043468 _0233D9B8: mov r5, r0 add r0, r4, #0x84 add r0, r0, #0x1800 mov r1, #0x98 str r5, [r4, #0xc] bl MemZero mov r2, #0 mov r1, r2 _0233D9D8: add r0, r4, r2 add r0, r0, #0x1000 add r2, r2, #1 strb r1, [r0, #0x91c] cmp r2, #5 blt _0233D9D8 add r0, r4, #0x11c mov r2, r5, lsl #0x10 add r5, r0, #0x1800 add r1, r4, #0x1000 mov r0, r2, asr #0x10 str r5, [r1, #0x8e4] bl sub_02010044 add r1, r4, #0x1000 ldrb r1, [r1, #0x928] bl CanSendItem cmp r0, #0 moveq r0, #3 streqb r0, [r5] mov r0, #3 bl ov01_02337648 ldr r1, _0233E294 ; =ov04_0233F5DC add r3, r4, #0x84 ldr r2, [r1, r0, lsl #3] add r0, r4, #0x1000 str r2, [r0, #0x884] ldr r1, _0233E298 ; =ov04_0233F5D8 ldr r0, _0233E29C ; =ov04_0233F604 str r1, [sp] mov r1, #0 ldr r2, _0233E2A0 ; =0x00000233 add r3, r3, #0x1800 str r1, [sp, #4] bl ov04_0233CAF8 ldr r0, _0233E2A4 ; =0x00001003 str r0, [r4] b _0233EEB4 _0233DA6C: bl sub_02043434 cmp r0, #0 beq _0233EEB4 add r1, sp, #0x10 mov r0, #0 bl GetPressedButtons ldrh r0, [sp, #0x10] tst r0, #8 beq _0233EEB4 mov r0, #0 bl sub_02017CCC mov r0, r5 bl sub_02043254 ldr r1, _0233E28C ; =ov01_0233C1DC strh r0, [r1] str r5, [r4, #0xc] bl sub_0204317C mvn r1, #1 ldr r0, _0233E2A8 ; =0x00001004 strb r1, [r4, #8] str r0, [r4] b _0233EEB4 _0233DAC4: bl ov04_0233CB50 mov r5, r0 bl ov04_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #3 bl ov01_02337658 cmp r5, #3 bne _0233DC88 bl sub_020434FC mov r3, #0 ldr r5, [r4, #0xc] mov r2, r3 b _0233DB0C _0233DAFC: add r1, r4, r3 add r1, r1, #0x1000 strb r2, [r1, #0x92e] add r3, r3, #1 _0233DB0C: cmp r3, r0 blt _0233DAFC add r1, r4, #0x1000 mov r8, #0 str r8, [r1, #0xd18] cmp r0, #0 ble _0233DBD4 add r0, r4, #0x118 mov sb, r8 add r5, r0, #0x1c00 add r7, r4, #0x7c mov r6, #1 mov fp, #6 _0233DB40: mov r0, sb, lsl #0x10 mov r0, r0, asr #0x10 bl sub_02043568 tst r0, #1 beq _0233DBB0 mul sl, r8, fp mov r0, sb, lsl #0x10 mov r0, r0, asr #0x10 add r1, r7, sl bl sub_0200FFF4 cmp r0, #0 beq _0233DBB0 mov r0, sb, lsl #0x10 mov r0, r0, asr #0x10 bl sub_020101A0 add r0, r4, sl ldrsh r0, [r0, #0x80] cmp r0, #0xb4 bne _0233DBAC add r0, r7, sl bl ov04_0233F4B0 add r0, r4, r8 add r0, r0, #0x1000 strb r6, [r0, #0x92e] ldr r0, [r5] add r0, r0, #1 str r0, [r5] _0233DBAC: add r8, r8, #1 _0233DBB0: add sb, sb, #1 cmp sb, #0x3e8 blt _0233DB40 bl sub_0201007C strh r8, [r4, #0x7a] ldrh r1, [r4, #0x7a] add r0, r4, #0x1800 strh r1, [r0, #0x1c] b _0233DC70 _0233DBD4: bl ov04_0233CAC8 cmp r0, #0 mov r0, r5, lsl #0x10 mov r0, r0, asr #0x10 bne _0233DC20 add r1, r4, #0x70 bl sub_0200FFF4 ldrsh r0, [r4, #0x74] cmp r0, #0xb4 bne _0233DC64 add r0, r4, #0x70 bl ov04_0233F4B0 add r0, r4, #0x1000 mov r1, #1 strb r1, [r0, #0x92e] ldr r1, [r0, #0xd18] add r1, r1, #1 str r1, [r0, #0xd18] b _0233DC64 _0233DC20: add r1, r4, #0x7c bl sub_0200FFF4 mov r1, #1 strh r1, [r4, #0x7a] add r0, r4, #0x1800 strh r1, [r0, #0x1c] ldrsh r0, [r4, #0x80] cmp r0, #0xb4 bne _0233DC64 add r0, r4, #0x7c bl ov04_0233F4B0 add r0, r4, #0x1000 mov r1, #1 strb r1, [r0, #0x92e] ldr r1, [r0, #0xd18] add r1, r1, #1 str r1, [r0, #0xd18] _0233DC64: mov r0, r5, lsl #0x10 mov r0, r0, asr #0x10 bl sub_02010154 _0233DC70: bl sub_0204317C mvn r1, #1 ldr r0, _0233E2AC ; =0x00001006 strb r1, [r4, #8] str r0, [r4] b _0233EEB4 _0233DC88: cmp r5, #5 bne _0233DCA8 bl sub_0204317C mvn r1, #1 ldr r0, _0233E2A8 ; =0x00001004 strb r1, [r4, #8] str r0, [r4] b _0233EEB4 _0233DCA8: sub r0, r5, #7 cmp r0, #1 bhi _0233EEB4 bl sub_020433C0 mvn r1, #0 ldr r0, _0233E290 ; =0x00001002 str r1, [r4, #0xc] str r0, [r4] b _0233EEB4 _0233DCCC: ldrsb r1, [r4, #8] mvn r0, #1 cmp r1, r0 bne _0233DD48 ldr r0, [r4, #0xc] add r1, sp, #0x12 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 bl sub_0200FFAC add r0, sp, #0x9c bl InitPreprocessorArgs ldrsh r2, [sp, #0x12] ldrh r1, [sp, #0x14] add r5, sp, #0x9c add r0, r2, #0xd1 add r0, r0, #0x2900 mov r0, r0, lsl #0x10 str r2, [sp, #0xac] str r1, [sp, #0xc0] str r5, [sp] mov r0, r0, lsr #0x10 str r0, [sp, #4] ldr r0, _0233E2B0 ; =ov04_0233F614 ldr r1, _0233E2B4 ; =0x00001013 ldr r3, _0233E2B8 ; =0x000008E4 mov r2, #0 str r5, [sp, #8] bl sub_0202E3CC ldr r1, _0233E25C ; =ov04_0233F644 ldr r1, [r1] strb r0, [r1, #8] _0233DD48: ldr r0, _0233E2BC ; =0x00001005 str r0, [r4] b _0233EEB4 _0233DD54: ldrsb r0, [r4, #8] bl sub_0202E6E4 cmp r0, #0 bne _0233EEB4 ldr r0, _0233E25C ; =ov04_0233F644 mvn r1, #1 ldr r0, [r0] ldrsb r0, [r0, #8] cmp r0, r1 beq _0233DD90 bl sub_0202E6C8 ldr r0, _0233E25C ; =ov04_0233F644 mvn r1, #1 ldr r0, [r0] strb r1, [r0, #8] _0233DD90: mvn r0, #0 str r0, [r4, #0xc] bl sub_02046D20 ldr r0, _0233E264 ; =0x00001001 str r0, [r4] b _0233EEB4 _0233DDA8: mov r0, #0 bl ov04_0233F294 ldr r0, _0233E25C ; =ov04_0233F644 ldr r1, _0233E2C0 ; =0x00001007 ldr r0, [r0] str r1, [r0] b _0233EEB4 _0233DDC4: bl ov04_0233F2BC cmp r0, #1 moveq r0, #0x2000 streq r0, [r4] beq _0233EEB4 cmp r0, #3 moveq r0, #3 beq _0233EEB8 cmp r0, #2 bne _0233EEB4 mov r0, #2 b _0233EEB8 _0233DDF4: bl ov04_0233CAC8 cmp r0, #0 bne _0233DED4 ldr r2, [r4, #0x14] mov r0, #5 strb r0, [r2] mov r1, #1 strb r1, [r2, #1] mov r1, #0xf add r0, r4, #0x3ec strb r1, [r4, #0x58] add r1, r4, #0x1000 mov r2, #0x11 strb r2, [r1, #0x7ec] add r5, r0, #0x1400 bl GetLanguageType strb r0, [r5, #2] ldrsb r2, [r5, #2] add r0, r4, #0x5c mov r1, #0x1a strb r2, [r4, #0x5a] bl ov01_02337B3C strb r0, [r4, #0x5b] add r0, r5, #4 mov r1, #0x14 bl ov01_02337B3C add r1, r4, #0x38 strb r0, [r5, #3] add r0, r1, #0x1800 mov r1, #1 str r0, [sp, #0x7c] str r1, [sp, #0x78] ldr r1, [r4, #4] add r0, r4, #0x1000 str r1, [sp, #0x88] ldrb r1, [r0, #0x850] mov r0, #0x20 strb r1, [sp, #0x8c] ldr r1, [r4, #0x14] str r1, [sp, #0x90] strh r0, [sp, #0x94] bl ov04_0233CAA8 cmp r0, #1 moveq r0, #1 movne r0, #0 mov r2, #0 strb r0, [sp, #0x96] str r2, [sp, #0x98] add r0, r4, #0x1900 strh r2, [r0, #0x2a] add r0, r4, #0x1000 strb r2, [r0, #0x92c] ldr r1, _0233E2C4 ; =0x00002001 strb r2, [r0, #0x92d] str r1, [r4] b _0233DFB0 _0233DED4: ldr r1, [r4, #0x14] mov r0, #8 strb r0, [r1] mov r0, #0 strb r0, [r1, #1] mov r2, #0x13 strb r2, [r4, #0x76] add r1, r4, #0x3ec add r0, r4, #4 add r2, r4, #0x1000 mov r3, #0x14 strb r3, [r2, #0x804] mov r3, #0x11 strb r3, [r2, #0x7ec] add r6, r1, #0x1400 add r5, r0, #0x1800 bl GetLanguageType strb r0, [r6, #2] ldrsb r2, [r6, #2] ldr r1, _0233E2C8 ; =0x00001772 add r0, r4, #0x7a strb r2, [r5, #2] strb r2, [r4, #0x78] bl ov01_02337B3C strb r0, [r4, #0x79] add r0, r5, #4 mov r1, #0x16 bl ov01_02337B3C strb r0, [r5, #3] add r0, r6, #4 mov r1, #0x14 bl ov01_02337B3C add r1, r4, #0x820 add r2, r4, #0x38 strb r0, [r6, #3] add r0, r2, #0x1800 mov r2, #2 add r1, r1, #0x1000 str r2, [sp, #0x78] str r0, [sp, #0x80] str r1, [sp, #0x7c] ldr r1, [r4, #4] add r0, r4, #0x1000 str r1, [sp, #0x88] ldrb r0, [r0, #0x850] mov r2, #0x20 mov r1, #1 strb r0, [sp, #0x8c] ldr r3, [r4, #0x14] ldr r0, _0233E2CC ; =0x00002011 str r3, [sp, #0x90] strh r2, [sp, #0x94] strb r1, [sp, #0x96] str r1, [sp, #0x98] str r0, [r4] _0233DFB0: add r0, sp, #0x78 add r1, r4, #0x1000 mov r2, #0 strb r2, [r1, #0x853] bl ov01_02337BA0 b _0233EEB4 _0233DFC8: bl ov01_02337E0C movs r5, r0 beq _0233EEB4 add r0, sp, #0x400 add r1, r4, #0x3ec add r0, r0, #0x54 add r7, r1, #0x1400 bl InitPreprocessorArgs cmp r5, #0xe addls pc, pc, r5, lsl #2 b _0233EEB4 _0233DFF4: ; jump table b _0233EEB4 ; case 0 b _0233E1B4 ; case 1 b _0233EEB4 ; case 2 b _0233EEB4 ; case 3 b _0233E030 ; case 4 b _0233E1B4 ; case 5 b _0233E1B4 ; case 6 b _0233E1B4 ; case 7 b _0233E1B4 ; case 8 b _0233E1B4 ; case 9 b _0233E1B4 ; case 10 b _0233E1B4 ; case 11 b _0233E1B4 ; case 12 b _0233E1B4 ; case 13 b _0233E1B4 ; case 14 _0233E030: mov r0, #0x100 mov r1, #0xf bl MemAlloc mov r5, r0 mov r0, #0x100 mov r1, #0xf bl MemAlloc mov r6, r0 bl ov04_0233CAA8 cmp r0, #0 bne _0233E114 bl ov04_0233F534 add r0, r4, #0x1000 ldrb r0, [r0, #0x92e] cmp r0, #0 beq _0233E084 add r0, sp, #0x1c mov r1, #0xb4 mov r2, #0 bl InitStandardItem b _0233E09C _0233E084: ldrh r0, [r4, #0x70] strh r0, [sp, #0x1c] ldrh r0, [r4, #0x72] strh r0, [sp, #0x1e] ldrh r0, [r4, #0x74] strh r0, [sp, #0x20] _0233E09C: bl ov01_02337C54 bl GetLanguageType ldrsb r1, [r7, #2] cmp r1, r0 bne _0233E0C4 mov r0, r5 add r1, r7, #4 mov r2, #0x14 bl StrncpySimpleNoPadSafe b _0233E0D0 _0233E0C4: ldr r1, _0233E2D0 ; =0x000038C9 mov r0, r5 bl GetStringFromFileVeneer _0233E0D0: ldr r2, _0233E2D4 ; =ov04_0233F5F8 mov r7, #0 add r1, sp, #0x1c mov r0, r6 mov r3, #1 str r7, [sp] bl sub_0200D310 add r2, sp, #0x400 ldr r1, _0233E2D8 ; =0x000037CC add r2, r2, #0x54 mov r0, #0x1c str r5, [sp, #0x48c] str r6, [sp, #0x490] bl ov04_02046BE8 mov r0, #0x4000 str r0, [r4] b _0233E1A0 _0233E114: bl ov04_0233CAA8 cmp r0, #1 bne _0233E1A0 bl GetLanguageType ldrsb r1, [r4, #0x5a] cmp r1, r0 bne _0233E144 mov r0, r5 add r1, r4, #0x5c mov r2, #0x14 bl StrncpySimpleNoPadSafe b _0233E150 _0233E144: ldr r1, _0233E2D0 ; =0x000038C9 mov r0, r5 bl GetStringFromFileVeneer _0233E150: mov r1, #0 str r1, [sp] ldr r2, _0233E2D4 ; =ov04_0233F5F8 mov r0, r6 add r1, r4, #0x70 mov r3, #1 bl sub_0200D310 add r2, sp, #0x400 str r5, [sp, #0x48c] str r6, [sp, #0x490] add r0, r4, #0x1000 mov r3, #1 strb r3, [r0, #0x851] mov r0, #0 ldr r1, _0233E2DC ; =0x000037CE add r2, r2, #0x54 str r0, [r4, #0x10] bl ov04_02046BE8 mov r0, #0x5000 str r0, [r4] _0233E1A0: mov r0, r5 bl MemFree mov r0, r6 bl MemFree b _0233EEB4 _0233E1B4: bl ov01_02337C54 bl ov04_0233CAA8 cmp r0, #0 moveq r0, #0x3000 streq r0, [r4] beq _0233EEB4 add r0, r4, #0x1900 ldrh r0, [r0, #0x2a] cmp r0, #0 beq _0233E234 add r0, sp, #0x400 add r0, r0, #4 bl InitPreprocessorArgs add r0, r4, #0x1900 ldrh r1, [r0, #0x2a] add r0, r4, #0x1000 str r1, [sp, #0x428] ldrb r1, [r0, #0x92c] cmp r1, #0 ldrne r1, _0233E2E0 ; =0x000037D3 bne _0233E218 ldrb r0, [r0, #0x92d] cmp r0, #0 ldrne r1, _0233E2E4 ; =0x000037D2 ldreq r1, _0233E2E8 ; =0x000037D1 _0233E218: add r2, sp, #0x400 add r2, r2, #4 mov r0, #0x1c bl ov04_02046BE8 ldr r0, _0233E2EC ; =0x00005008 str r0, [r4] b _0233EEB4 _0233E234: mov r0, #1 b _0233EEB8 _0233E23C: add r0, r4, #0x1000 ldrb r0, [r0, #0x850] cmp r0, #0 mov r0, #1 bne _0233E2FC ldr r1, _0233E2F0 ; =ov04_0233EF28 bl ov01_0232B5D0 b _0233E304 .align 2, 0 _0233E25C: .word ov04_0233F644 _0233E260: .word 0x00002020 _0233E264: .word 0x00001001 _0233E268: .word 0x00005001 _0233E26C: .word 0x00003002 _0233E270: .word ov04_0233EF8C _0233E274: .word 0x000037C1 _0233E278: .word ov01_02337B68 _0233E27C: .word 0x000037C2 _0233E280: .word 0x00001776 _0233E284: .word ov04_0233F0A8 _0233E288: .word ov04_0233F0E0 _0233E28C: .word ov01_0233C1DC _0233E290: .word 0x00001002 _0233E294: .word ov04_0233F5DC _0233E298: .word ov04_0233F5D8 _0233E29C: .word ov04_0233F604 _0233E2A0: .word 0x00000233 _0233E2A4: .word 0x00001003 _0233E2A8: .word 0x00001004 _0233E2AC: .word 0x00001006 _0233E2B0: .word ov04_0233F614 _0233E2B4: .word 0x00001013 _0233E2B8: .word 0x000008E4 _0233E2BC: .word 0x00001005 _0233E2C0: .word 0x00001007 _0233E2C4: .word 0x00002001 _0233E2C8: .word 0x00001772 _0233E2CC: .word 0x00002011 _0233E2D0: .word 0x000038C9 _0233E2D4: .word ov04_0233F5F8 _0233E2D8: .word 0x000037CC _0233E2DC: .word 0x000037CE _0233E2E0: .word 0x000037D3 _0233E2E4: .word 0x000037D2 _0233E2E8: .word 0x000037D1 _0233E2EC: .word 0x00005008 _0233E2F0: .word ov04_0233EF28 _0233E2F4: .word ov04_0233EF54 _0233E2F8: .word 0x00002012 _0233E2FC: ldr r1, _0233E2F4 ; =ov04_0233EF54 bl ov01_0232B5D0 _0233E304: bl ov01_02337E0C cmp r0, #0xf bne _0233E37C add r0, r4, #0x1000 ldrb r0, [r0, #0x850] cmp r0, #0 ldreq r0, _0233E2F8 ; =0x00002012 streq r0, [r4] beq _0233EEB4 add r0, sp, #0x3b4 bl InitPreprocessorArgs add r0, sp, #0x4c mov r1, #0x2a bl MemZero add r1, r4, #8 add r0, sp, #0x4c add r1, r1, #0x1800 mov r2, #0xa bl StrncpySimpleNoPadSafe add r3, sp, #0x4c ldr r1, _0233EEC4 ; =0x000037C9 add r2, sp, #0x3b4 mov r0, #0 str r3, [sp, #0x3ec] bl ov04_02046BE8 mov r0, #0 bl ov01_02337D00 ldr r0, _0233EEC8 ; =0x00002014 str r0, [r4] b _0233EEB4 _0233E37C: cmp r0, #0 beq _0233EEB4 cmp r0, #0xe addls pc, pc, r0, lsl #2 b _0233EEB4 _0233E390: ; jump table b _0233EEB4 ; case 0 b _0233E41C ; case 1 b _0233EEB4 ; case 2 b _0233EEB4 ; case 3 b _0233E3CC ; case 4 b _0233E41C ; case 5 b _0233E41C ; case 6 b _0233E41C ; case 7 b _0233E41C ; case 8 b _0233E41C ; case 9 b _0233E41C ; case 10 b _0233E41C ; case 11 b _0233E41C ; case 12 b _0233E41C ; case 13 b _0233E41C ; case 14 _0233E3CC: add r0, r4, #0x1000 ldrb r1, [r0, #0x852] cmp r1, #0 bne _0233E40C ldrb r0, [r0, #0x850] cmp r0, #0 mov r0, #0x1c beq _0233E3F8 ldr r1, _0233EECC ; =0x000037CB bl ov04_0233CB84 b _0233E400 _0233E3F8: ldr r1, _0233EED0 ; =0x000037CA bl ov04_0233CB84 _0233E400: ldr r0, _0233EED4 ; =0x00002015 str r0, [r4] b _0233EEB4 _0233E40C: bl ov01_02337DD0 ldr r0, _0233EED8 ; =0x00002016 str r0, [r4] b _0233EEB4 _0233E41C: bl ov01_02337C54 bl ov04_0233CAA8 cmp r0, #0 moveq r0, #0x3000 streq r0, [r4] beq _0233EEB4 mov r0, #1 b _0233EEB8 _0233E43C: bl ov01_02337C90 cmp r0, #0 bne _0233E4E4 add r0, r4, #0x1000 ldrb r0, [r0, #0x853] cmp r0, #0 beq _0233E4E4 add r0, sp, #0x364 bl InitPreprocessorArgs add r0, sp, #0x22 mov r1, #0x2a bl MemZero add r1, r4, #0x7f0 add r0, sp, #0x22 add r1, r1, #0x1000 mov r2, #0x14 bl StrncpySimpleNoPadSafe add r1, sp, #0x22 str r1, [sp, #0x39c] add r0, sp, #0x2cc mov r1, #0x98 bl MemZero mov r0, #4 bl ov01_02337648 ldr r2, _0233EEDC ; =ov04_0233F56C ldr r1, _0233EEE0 ; =ov04_0233F568 ldr r2, [r2, r0, lsl #3] ldr r0, _0233EEE4 ; =0x000037C6 str r2, [sp, #0x2cc] str r1, [sp] str r0, [sp, #4] add r1, sp, #0x364 mov r0, #0 str r1, [sp, #8] mov r1, r0 mov r2, #0x31 add r3, sp, #0x2cc bl ov04_0233CB24 mov r0, #0 bl ov01_02337D00 ldr r0, _0233EEE8 ; =0x00002013 str r0, [r4] _0233E4E4: bl ov01_02337E0C movs r5, r0 cmpne r5, #0xf beq _0233EEB4 bl ov01_02337C54 cmp r5, #0xf addls pc, pc, r5, lsl #2 b _0233EEB4 _0233E504: ; jump table b _0233EEB4 ; case 0 b _0233E544 ; case 1 b _0233EEB4 ; case 2 b _0233EEB4 ; case 3 b _0233EEB4 ; case 4 b _0233E544 ; case 5 b _0233E544 ; case 6 b _0233E544 ; case 7 b _0233E544 ; case 8 b _0233E544 ; case 9 b _0233E544 ; case 10 b _0233E544 ; case 11 b _0233E544 ; case 12 b _0233E544 ; case 13 b _0233E544 ; case 14 b _0233EEB4 ; case 15 _0233E544: bl ov04_0233CAA8 cmp r0, #0 moveq r0, #0x3000 streq r0, [r4] beq _0233EEB4 mov r0, #1 b _0233EEB8 _0233E560: bl ov01_02337C90 cmp r0, #0 bne _0233E5F4 bl ov04_0233CB50 mov r5, r0 bl ov04_02046BA0 mov r0, r0, lsl #0x18 mov r1, r0, asr #0x18 mov r0, #4 bl ov01_02337658 cmp r5, #3 bne _0233E5BC mov r0, #1 add r2, sp, #0xe mov r1, r0 strb r0, [sp, #0xe] add r3, r4, #0x1000 strb r0, [r3, #0x852] bl ov01_0232B540 bl ov01_02337CAC ldr r0, _0233E2CC ; =0x00002011 str r0, [r4] b _0233E5F4 _0233E5BC: sub r0, r5, #7 cmp r0, #1 bhi _0233E5F4 mov r5, #0 mov r0, #1 add r2, sp, #0xd mov r1, r0 strb r5, [sp, #0xd] add r3, r4, #0x1000 strb r5, [r3, #0x852] bl ov01_0232B540 bl ov01_02337CAC ldr r0, _0233E2CC ; =0x00002011 str r0, [r4] _0233E5F4: bl ov01_02337E0C movs r5, r0 cmpne r5, #0xf beq _0233EEB4 bl ov01_02337C54 cmp r5, #0xf addls pc, pc, r5, lsl #2 b _0233EEB4 _0233E614: ; jump table b _0233EEB4 ; case 0 b _0233E654 ; case 1 b _0233EEB4 ; case 2 b _0233EEB4 ; case 3 b _0233EEB4 ; case 4 b _0233E654 ; case 5 b _0233E654 ; case 6 b _0233E654 ; case 7 b _0233E654 ; case 8 b _0233E654 ; case 9 b _0233E654 ; case 10 b _0233E654 ; case 11 b _0233E654 ; case 12 b _0233E654 ; case 13 b _0233E654 ; case 14 b _0233EEB4 ; case 15 _0233E654: bl ov04_0233CAA8 cmp r0, #0 moveq r0, #0x3000 streq r0, [r4] beq _0233EEB4 mov r0, #1 b _0233EEB8 _0233E670: bl ov01_02337C90 cmp r0, #0 bne _0233E6D4 bl ov04_0233CBA0 cmp r0, #8 bne _0233E6D4 bl sub_0200FD48 mov r5, r0 bl sub_0200FD78 add r1, r4, #0x1800 ldrh r1, [r1, #0x1c] sub r0, r5, r0 add r2, sp, #0xc cmp r1, r0 movle r1, #0 strleb r1, [sp, #0xc] movgt r1, #1 strgtb r1, [sp, #0xc] add r0, r4, #0x1000 strb r1, [r0, #0x854] mov r0, #1 mov r1, r0 bl ov01_0232B540 cmp r0, #0 beq _0233EEB4 _0233E6D4: bl ov01_02337E0C movs r5, r0 cmpne r5, #0xf beq _0233EEB4 bl ov01_02337C54 cmp r5, #0xe addls pc, pc, r5, lsl #2 b _0233EEB4 _0233E6F4: ; jump table b _0233EEB4 ; case 0 b _0233E730 ; case 1 b _0233EEB4 ; case 2 b _0233EEB4 ; case 3 b _0233EEB4 ; case 4 b _0233E730 ; case 5 b _0233E730 ; case 6 b _0233E730 ; case 7 b _0233E730 ; case 8 b _0233E730 ; case 9 b _0233E730 ; case 10 b _0233E730 ; case 11 b _0233E730 ; case 12 b _0233E730 ; case 13 b _0233E730 ; case 14 _0233E730: bl ov04_0233CAA8 cmp r0, #0 moveq r0, #0x3000 streq r0, [r4] beq _0233EEB4 mov r0, #1 b _0233EEB8 _0233E74C: bl ov04_0233CBA0 cmp r0, #8 bne _0233EEB4 bl ov01_02337D30 add r0, r4, #0x1000 mov r2, #0 ldr r1, _0233E2CC ; =0x00002011 strb r2, [r0, #0x853] str r1, [r4] b _0233EEB4 _0233E774: bl ov01_02337E0C cmp r0, #0 beq _0233EEB4 bl ov01_02337C54 add r0, r4, #0x1000 ldrb r1, [r0, #0x854] cmp r1, #0 beq _0233E828 ldrb r0, [r0, #0x850] cmp r0, #0 beq _0233E7B0 ldr r1, _0233EEEC ; =0x000037D0 mov r0, #0x1c bl ov04_0233CB84 b _0233E81C _0233E7B0: add r0, sp, #0x27c bl InitPreprocessorArgs mov r0, #0x100 mov r1, #0xf bl MemAlloc mov r5, r0 bl GetLanguageType add r1, r4, #0x1700 ldrsb r1, [r1, #0xee] cmp r1, r0 bne _0233E7F4 add r1, r4, #0x7f0 mov r0, r5 add r1, r1, #0x1000 mov r2, #0x14 bl StrncpySimpleNoPadSafe b _0233E800 _0233E7F4: ldr r1, _0233E2D0 ; =0x000038C9 mov r0, r5 bl GetStringFromFileVeneer _0233E800: ldr r1, _0233EEF0 ; =0x000037D4 add r2, sp, #0x27c mov r0, #0x1c str r5, [sp, #0x2b4] bl ov04_02046BE8 mov r0, r5 bl MemFree _0233E81C: ldr r0, _0233E260 ; =0x00002020 str r0, [r4] b _0233EEB4 _0233E828: add r1, r4, #4 add r2, r4, #0x3ec add r0, sp, #0x22c add r7, r1, #0x1800 add r8, r2, #0x1400 bl InitPreprocessorArgs mov r0, #0x100 mov r1, #0xf bl MemAlloc mov r5, r0 mov r0, #0x100 mov r1, #0xf bl MemAlloc add r1, r4, #0x1000 ldrb r2, [r1, #0x850] mov r6, r0 cmp r2, #0 bne _0233E938 ldrb r0, [r1, #0x92e] cmp r0, #0 beq _0233E890 add r0, sp, #0x16 mov r1, #0xb4 mov r2, #0 bl InitStandardItem b _0233E8A8 _0233E890: ldrh r0, [r4, #0x7c] strh r0, [sp, #0x16] ldrh r0, [r4, #0x7e] strh r0, [sp, #0x18] ldrh r0, [r4, #0x80] strh r0, [sp, #0x1a] _0233E8A8: bl GetLanguageType ldrsb r1, [r8, #2] cmp r1, r0 bne _0233E8CC mov r0, r5 add r1, r8, #4 mov r2, #0x14 bl StrncpySimpleNoPadSafe b _0233E8D8 _0233E8CC: ldr r1, _0233E2D0 ; =0x000038C9 mov r0, r5 bl GetStringFromFileVeneer _0233E8D8: mov r3, #0 str r3, [sp] ldr r2, _0233E2D4 ; =ov04_0233F5F8 add r1, sp, #0x16 mov r0, r6 mov r3, #1 bl sub_0200D310 str r5, [sp, #0x264] str r6, [sp, #0x268] ldrh r0, [r4, #0x7a] add r2, sp, #0x22c str r0, [sp, #0x250] ldrh r0, [r4, #0x7a] cmp r0, #1 ldrhi r0, _0233EEF4 ; =0x000037CD ldrls r0, _0233E2D8 ; =0x000037CC mov r0, r0, lsl #0x10 mov r1, r0, lsr #0x10 mov r0, #0x1c bl ov04_02046BE8 bl ov04_0233F534 mov r0, #0x4000 str r0, [r4] b _0233E9C0 _0233E938: bl GetLanguageType ldrsb r1, [r7, #2] cmp r1, r0 bne _0233E95C mov r0, r5 add r1, r7, #4 mov r2, #0x14 bl StrncpySimpleNoPadSafe b _0233E968 _0233E95C: ldr r1, _0233E2D0 ; =0x000038C9 mov r0, r5 bl GetStringFromFileVeneer _0233E968: mov r1, #0 str r1, [sp] ldr r2, _0233E2D4 ; =ov04_0233F5F8 mov r0, r6 add r1, r4, #0x7c mov r3, #1 bl sub_0200D310 str r5, [sp, #0x264] str r6, [sp, #0x268] ldrh r0, [r4, #0x7a] add r2, sp, #0x22c str r0, [sp, #0x250] ldrh r0, [r4, #0x7a] cmp r0, #1 ldrhi r0, _0233EEF8 ; =0x000037CF ldrls r0, _0233E2DC ; =0x000037CE mov r0, r0, lsl #0x10 mov r1, r0, lsr #0x10 mov r0, #0x1c bl ov04_02046BE8 mov r0, #0x5000 str r0, [r4] _0233E9C0: mov r0, r5 bl MemFree mov r0, r6 bl MemFree b _0233EEB4 _0233E9D4: bl ov04_0233CBA0 cmp r0, #8 bne _0233EEB4 add r0, r4, #0x1000 ldrb r0, [r0, #0x850] cmp r0, #0 movne r0, #1 bne _0233EEB8 mov r0, #0x3000 str r0, [r4] b _0233EEB4 _0233EA00: mov r0, #0x100 mov r1, #0xf bl MemAlloc mov r8, r0 add r0, sp, #0x1dc bl InitPreprocessorArgs bl ov04_0233CAC8 cmp r0, #0 bne _0233EA78 add r0, r4, #0x1000 ldrb r0, [r0, #0x92e] cmp r0, #0 beq _0233EA44 add r0, r4, #0x70 mov r1, #0xb4 mov r2, #0 bl InitStandardItem _0233EA44: ldr r2, _0233E2D4 ; =ov04_0233F5F8 mov r5, #0 mov r0, r8 add r1, r4, #0x70 mov r3, #1 str r5, [sp] bl sub_0200D310 ldr r1, _0233EEFC ; =0x000038A6 add r2, sp, #0x1dc mov r0, #0x1c str r8, [sp, #0x214] bl ov04_02046BE8 b _0233EB0C _0233EA78: mov sb, #0 add r7, r4, #0x7c mov r6, #0xb4 mov r5, sb mov sl, #6 b _0233EAB8 _0233EA90: add r0, r4, sb add r0, r0, #0x1000 ldrb r0, [r0, #0x92e] cmp r0, #0 beq _0233EAB4 mla r0, sb, sl, r7 mov r1, r6 mov r2, r5 bl InitStandardItem _0233EAB4: add sb, sb, #1 _0233EAB8: ldrh r0, [r4, #0x7a] cmp sb, r0 blt _0233EA90 cmp r0, #1 bls _0233EADC ldr r1, _0233EF00 ; =0x000037D5 mov r0, #0x1c bl ov04_0233CB84 b _0233EB0C _0233EADC: ldr r2, _0233E2D4 ; =ov04_0233F5F8 mov r5, #0 mov r0, r8 add r1, r4, #0x7c mov r3, #1 str r5, [sp] bl sub_0200D310 ldr r1, _0233EEFC ; =0x000038A6 add r2, sp, #0x1dc mov r0, #0x1c str r8, [sp, #0x214] bl ov04_02046BE8 _0233EB0C: mov r0, r8 bl MemFree ldr r0, _0233EF04 ; =0x00003001 str r0, [r4] b _0233EEB4 _0233EB20: bl ov04_0233CBA0 cmp r0, #8 bne _0233EEB4 bl ov04_0233CAC8 cmp r0, #0 bne _0233EB50 add r0, r4, #0x70 bl sub_020103AC mov r0, #0 strh r0, [r4, #0x74] strh r0, [r4, #0x72] b _0233EB8C _0233EB50: mov r8, #0 add r7, r4, #0x7c mov r6, r8 mov r5, #6 b _0233EB80 _0233EB64: mul sb, r8, r5 add r0, r7, sb bl sub_020103AC add r0, r4, sb strh r6, [r0, #0x80] strh r6, [r0, #0x7e] add r8, r8, #1 _0233EB80: ldrh r0, [r4, #0x7a] cmp r8, r0 blt _0233EB64 _0233EB8C: ldr r0, _0233E26C ; =0x00003002 str r0, [r4] b _0233EEB4 _0233EB98: mov r0, #0 bl ov04_0233F294 ldr r0, _0233EF08 ; =0x00003003 str r0, [r4] b _0233EEB4 _0233EBAC: bl ov04_0233F2BC cmp r0, #1 moveq r0, #1 beq _0233EEB8 cmp r0, #3 moveq r0, #3 beq _0233EEB8 cmp r0, #2 bne _0233EEB4 mov r0, #2 b _0233EEB8 _0233EBD8: bl ov04_0233CBA0 cmp r0, #8 bne _0233EEB4 mov r0, #2 b _0233EEB8 _0233EBEC: bl ov04_0233CBA0 mov r5, r0 bl ov04_0233CAC8 cmp r0, #0 bne _0233EC44 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] cmp r0, #0xb4 ble _0233EEB4 bl ov04_0233CAE8 cmp r0, #0 beq _0233EC38 ldrsh r0, [r4, #0x74] bl sub_0200D8E4 cmp r0, #0 ldrne r0, _0233EF0C ; =0x00005003 strne r0, [r4] bne _0233EEB4 _0233EC38: ldr r0, _0233EF10 ; =0x00005005 str r0, [r4] b _0233EEB4 _0233EC44: cmp r5, #8 bne _0233EEB4 add r0, sp, #0x18c bl InitPreprocessorArgs ldrh r3, [r4, #0x7a] ldr r1, _0233E2E8 ; =0x000037D1 add r2, sp, #0x18c mov r0, #0x1c str r3, [sp, #0x1b0] bl ov04_02046BE8 mov r7, #0 add r6, r4, #0x7c mov r5, #6 b _0233EC88 _0233EC7C: mla r0, r7, r5, r6 bl sub_020103AC add r7, r7, #1 _0233EC88: ldrh r0, [r4, #0x7a] cmp r7, r0 blt _0233EC7C add r0, r4, #0x1000 mov r1, #1 strb r1, [r0, #0x851] mov r1, #0 ldr r0, _0233E2EC ; =0x00005008 str r1, [r4, #0x10] str r0, [r4] b _0233EEB4 _0233ECB4: add r0, r4, #0x58 add r0, r0, #0x1800 bl sub_0206351C add r3, r4, #0x1000 mov r0, #2 strb r0, [r3, #0x85a] ldrsh r2, [r4, #0x74] add r1, r4, #0x1800 add r0, r4, #0x58 strh r2, [r1, #0x6c] ldrh r5, [r4, #0x72] mov r2, #1 add r0, r0, #0x1800 strh r5, [r1, #0x6a] str r2, [r3, #0x864] mov r1, #0 mov r2, #0x10 str r1, [r3, #0x880] bl sub_0203D438 ldr r0, _0233EF14 ; =0x00005002 str r0, [r4] b _0233EEB4 _0233ED0C: bl sub_0203D538 cmp r0, #1 bne _0233EEB4 bl sub_0203EFD4 ldr r0, _0233EF18 ; =0x00005006 str r0, [r4] b _0233EEB4 _0233ED28: add r0, sp, #0x13c bl InitPreprocessorArgs ldrsh r0, [r4, #0x74] str r0, [sp, #0x14c] ldrsh r0, [r4, #0x74] bl sub_0200D8E4 strh r0, [r4, #0x74] ldrsh r3, [r4, #0x74] ldr r1, _0233EF1C ; =0x000037DA add r2, sp, #0x13c mov r0, #0 str r3, [sp, #0x150] bl ov04_02046BE8 ldr r1, _0233EF20 ; =0x00005004 mov r0, #0 str r1, [r4] str r0, [r4, #0x10] b _0233EEB4 _0233ED70: bl ov04_0233CBA0 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] cmp r0, #0xb4 ldrgt r0, _0233EF10 ; =0x00005005 strgt r0, [r4] b _0233EEB4 _0233ED90: add r0, r4, #0x70 bl sub_020103AC add r0, r4, #0x1900 ldrh r2, [r0, #0x2a] ldr r1, _0233EF18 ; =0x00005006 add r2, r2, #1 strh r2, [r0, #0x2a] str r1, [r4] _0233EDB0: bl ov04_0233CAC8 cmp r0, #0 moveq r0, #1 movne r0, #0 and r0, r0, #0xff bl ov04_0233F294 ldr r0, _0233EF24 ; =0x00005007 str r0, [r4] b _0233EEB4 _0233EDD4: bl ov04_0233F2BC cmp r0, #1 bne _0233EE74 bl ov04_0233CAC8 cmp r0, #0 bne _0233EE6C ldr r0, _0233E25C ; =ov04_0233F644 ldr r0, [r0] add r0, r0, #0x1000 ldrb r0, [r0, #0x928] bl sub_0204316C bl sub_02043380 cmp r0, #0 beq _0233EE28 bl ov01_02337DD0 mov r1, #1 add r0, r4, #0x1000 strb r1, [r0, #0x92c] add r0, r1, #0x2000 str r0, [r4] b _0233EEB4 _0233EE28: bl sub_02003B5C cmp r0, #0 beq _0233EE50 bl ov01_02337DD0 ldr r0, _0233E25C ; =ov04_0233F644 mov r1, #1 ldr r0, [r0] add r0, r0, #0x1000 strb r1, [r0, #0x92d] b _0233EE60 _0233EE50: bl ov01_02337D30 add r0, r4, #0x1000 mov r1, #0 strb r1, [r0, #0x853] _0233EE60: ldr r0, _0233E2C4 ; =0x00002001 str r0, [r4] b _0233EEB4 _0233EE6C: mov r0, #2 b _0233EEB8 _0233EE74: cmp r0, #3 moveq r0, #3 beq _0233EEB8 cmp r0, #2 bne _0233EEB4 mov r0, #2 b _0233EEB8 _0233EE90: bl ov04_0233CBA0 cmp r0, #8 bne _0233EEB4 bl ov04_0233CAC8 cmp r0, #0 moveq r0, #2 beq _0233EEB8 ldr r0, _0233EF18 ; =0x00005006 str r0, [r4] _0233EEB4: mov r0, #0 _0233EEB8: add sp, sp, #0xa4 add sp, sp, #0x400 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _0233EEC4: .word 0x000037C9 _0233EEC8: .word 0x00002014 _0233EECC: .word 0x000037CB _0233EED0: .word 0x000037CA _0233EED4: .word 0x00002015 _0233EED8: .word 0x00002016 _0233EEDC: .word ov04_0233F56C _0233EEE0: .word ov04_0233F568 _0233EEE4: .word 0x000037C6 _0233EEE8: .word 0x00002013 _0233EEEC: .word 0x000037D0 _0233EEF0: .word 0x000037D4 _0233EEF4: .word 0x000037CD _0233EEF8: .word 0x000037CF _0233EEFC: .word 0x000038A6 _0233EF00: .word 0x000037D5 _0233EF04: .word 0x00003001 _0233EF08: .word 0x00003003 _0233EF0C: .word 0x00005003 _0233EF10: .word 0x00005005 _0233EF14: .word 0x00005002 _0233EF18: .word 0x00005006 _0233EF1C: .word 0x000037DA _0233EF20: .word 0x00005004 _0233EF24: .word 0x00005007 arm_func_end ov04_0233D964 arm_func_start ov04_0233EF28 ov04_0233EF28: ; 0x0233EF28 ldr r2, _0233EF50 ; =ov04_0233F644 ldrb r3, [r1] ldr r0, [r2] mov r1, #1 add r0, r0, #0x1000 strb r3, [r0, #0x854] ldr r0, [r2] add r0, r0, #0x1000 strb r1, [r0, #0x853] bx lr .align 2, 0 _0233EF50: .word ov04_0233F644 arm_func_end ov04_0233EF28 arm_func_start ov04_0233EF54 ov04_0233EF54: ; 0x0233EF54 stmdb sp!, {r4, lr} mov r4, r1 bl ov01_02337CAC ldr r1, _0233EF84 ; =ov04_0233F644 ldrb r3, [r4] ldr r0, [r1] ldr r2, _0233EF88 ; =0x00002011 add r0, r0, #0x1000 strb r3, [r0, #0x852] ldr r0, [r1] str r2, [r0] ldmia sp!, {r4, pc} .align 2, 0 _0233EF84: .word ov04_0233F644 _0233EF88: .word 0x00002011 arm_func_end ov04_0233EF54 arm_func_start ov04_0233EF8C ov04_0233EF8C: ; 0x0233EF8C stmdb sp!, {r4, lr} mov r4, r0 bl ov04_0233CAA8 cmp r0, #1 bne _0233F0A0 add r0, r4, #4 mov r1, #0x1a bl ov01_02337B3C ldrb r1, [r4, #3] cmp r0, r1 movne r0, #3 ldmneia sp!, {r4, pc} ldrb r0, [r4] cmp r0, #0xf movne r0, #2 ldmneia sp!, {r4, pc} ldrsh r0, [r4, #0x1c] cmp r0, #0 beq _0233F098 ldrsh r0, [r4, #0x1c] bl IsItemValidVeneer cmp r0, #0 beq _0233EFFC ldrsh r0, [r4, #0x1c] mov r1, #0 bl CanSendItem cmp r0, #0 bne _0233F004 _0233EFFC: mov r0, #6 ldmia sp!, {r4, pc} _0233F004: ldrsh r0, [r4, #0x1c] bl GetItemCategory cmp r0, #0xc bgt _0233F034 bge _0233F06C cmp r0, #1 bgt _0233F098 cmp r0, #0 blt _0233F098 cmpne r0, #1 beq _0233F050 b _0233F098 _0233F034: cmp r0, #0xe bgt _0233F098 cmp r0, #0xd blt _0233F098 cmpne r0, #0xe beq _0233F06C b _0233F098 _0233F050: ldrh r0, [r4, #0x1a] cmp r0, #0 beq _0233F064 cmp r0, #0x64 blo _0233F098 _0233F064: mov r0, #6 ldmia sp!, {r4, pc} _0233F06C: ldrsh r0, [r4, #0x1a] bl IsItemValidVeneer cmp r0, #0 beq _0233F090 ldrsh r0, [r4, #0x1a] mov r1, #0 bl CanSendItem cmp r0, #0 bne _0233F098 _0233F090: mov r0, #6 ldmia sp!, {r4, pc} _0233F098: mov r0, #1 ldmia sp!, {r4, pc} _0233F0A0: mov r0, #0 ldmia sp!, {r4, pc} arm_func_end ov04_0233EF8C arm_func_start ov04_0233F0A8 ov04_0233F0A8: ; 0x0233F0A8 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #4 mov r1, #0x16 bl ov01_02337B3C ldrb r1, [r4] cmp r1, #0x14 movne r0, #2 ldmneia sp!, {r4, pc} ldrb r1, [r4, #3] cmp r0, r1 movne r0, #3 moveq r0, #1 ldmia sp!, {r4, pc} arm_func_end ov04_0233F0A8 arm_func_start ov04_0233F0E0 ov04_0233F0E0: ; 0x0233F0E0 stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} mov r5, r0 bl ov04_0233CAA8 cmp r0, #1 bne _0233F284 ldr r1, _0233F28C ; =0x00001772 add r0, r5, #4 bl ov01_02337B3C ldrb r1, [r5, #3] cmp r0, r1 movne r0, #3 ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} ldrb r0, [r5] cmp r0, #0x13 movne r0, #2 ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} ldrh r0, [r5, #4] cmp r0, #0x3e8 movhi r0, #6 ldmhiia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} ldr r0, _0233F290 ; =ov04_0233F644 ldr r0, [r0] add r0, r0, #0x1000 ldrb r1, [r0, #0x852] cmp r1, #0 beq _0233F154 ldrb r0, [r0, #0x854] cmp r0, #0 beq _0233F188 _0233F154: mov r3, #0 mov r2, r3 mov r0, #6 b _0233F170 _0233F164: mla r1, r3, r0, r5 strh r2, [r1, #0xa] add r3, r3, #1 _0233F170: ldrh r1, [r5, #4] cmp r3, r1 blt _0233F164 mov r0, #0 strh r0, [r5, #4] b _0233F27C _0233F188: mov r8, #1 mov r4, #0 mov r7, r8 mov r6, #6 b _0233F270 _0233F19C: mla sb, r4, r6, r5 ldrsh r0, [sb, #0xa] cmp r0, #0 beq _0233F26C ldrsh r0, [sb, #0xa] bl IsItemValidVeneer cmp r0, #0 beq _0233F1D0 ldrsh r0, [sb, #0xa] mov r1, r8 bl CanSendItem cmp r0, #0 bne _0233F1D8 _0233F1D0: mov r0, #6 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _0233F1D8: ldrsh r0, [sb, #0xa] bl GetItemCategory cmp r0, #0xc bgt _0233F208 bge _0233F240 cmp r0, #1 bgt _0233F26C cmp r0, #0 blt _0233F26C cmpne r0, #1 beq _0233F224 b _0233F26C _0233F208: cmp r0, #0xe bgt _0233F26C cmp r0, #0xd blt _0233F26C cmpne r0, #0xe beq _0233F240 b _0233F26C _0233F224: ldrh r0, [sb, #8] cmp r0, #0 beq _0233F238 cmp r0, #0x64 blo _0233F26C _0233F238: mov r0, #6 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _0233F240: ldrsh r0, [sb, #8] bl IsItemValidVeneer cmp r0, #0 beq _0233F264 ldrsh r0, [sb, #8] mov r1, r7 bl CanSendItem cmp r0, #0 bne _0233F26C _0233F264: mov r0, #6 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _0233F26C: add r4, r4, #1 _0233F270: ldrh r0, [r5, #4] cmp r4, r0 blt _0233F19C _0233F27C: mov r0, #1 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} _0233F284: mov r0, #0 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _0233F28C: .word 0x00001772 _0233F290: .word ov04_0233F644 arm_func_end ov04_0233F0E0 arm_func_start ov04_0233F294 ov04_0233F294: ; 0x0233F294 ldr r2, _0233F2B8 ; =ov04_0233F644 mov r3, #0 ldr r1, [r2] add r1, r1, #0x1000 strb r0, [r1, #0x921] ldr r0, [r2] add r0, r0, #0x1000 str r3, [r0, #0x924] bx lr .align 2, 0 _0233F2B8: .word ov04_0233F644 arm_func_end ov04_0233F294 arm_func_start ov04_0233F2BC ov04_0233F2BC: ; 0x0233F2BC stmdb sp!, {r3, r4, r5, lr} ldr r0, _0233F4A4 ; =ov04_0233F644 ldr r5, [r0] add r0, r5, #0x1000 ldr r0, [r0, #0x924] cmp r0, #4 addls pc, pc, r0, lsl #2 b _0233F49C _0233F2DC: ; jump table b _0233F2F0 ; case 0 b _0233F308 ; case 1 b _0233F360 ; case 2 b _0233F424 ; case 3 b _0233F460 ; case 4 _0233F2F0: ldr r1, _0233F4A8 ; =0x0000023B mov r0, #0 bl ov04_0233CB84 add r0, r5, #0x1000 mov r1, #1 str r1, [r0, #0x924] _0233F308: bl ov04_0233CBA0 cmp r0, #8 bne _0233F49C mov r0, #0xe0 mov r1, #0x88 mov r2, #1 bl sub_02029F88 bl sub_02003BEC ldr r2, _0233F4A4 ; =ov04_0233F644 ldr r1, [r2] add r1, r1, #0x1000 strb r0, [r1, #0xd24] ldr r0, [r2] add r0, r0, #0x1000 ldrb r0, [r0, #0xd24] cmp r0, #0 beq _0233F350 bl sub_02003B94 _0233F350: add r0, r5, #0x1000 mov r1, #2 str r1, [r0, #0x924] b _0233F49C _0233F360: mov r0, #3 bl NoteSaveBase ldr r1, _0233F4A4 ; =ov04_0233F644 mov r4, r0 ldr r0, [r1] add r0, r0, #0x1000 ldrb r0, [r0, #0xd24] cmp r0, #0 beq _0233F39C bl sub_02003BC8 ldr r0, _0233F4A4 ; =ov04_0233F644 mov r1, #0 ldr r0, [r0] add r0, r0, #0x1000 strb r1, [r0, #0xd24] _0233F39C: bl sub_02029FBC cmp r4, #0 bne _0233F3E0 mov r1, #0 str r1, [r5, #0x10] add r0, r5, #0x1000 ldrb r0, [r0, #0x921] cmp r0, #0 moveq r1, #0x1c mov r0, r1, lsl #0x10 mov r0, r0, lsr #0x10 mov r1, #0x23c bl ov04_0233CB84 add r0, r5, #0x1000 mov r1, #3 str r1, [r0, #0x924] b _0233F49C _0233F3E0: cmp r4, #1 moveq r0, #3 ldmeqia sp!, {r3, r4, r5, pc} mov r1, #0 str r1, [r5, #0x10] add r0, r5, #0x1000 ldrb r0, [r0, #0x921] cmp r0, #0 moveq r1, #0x1c mov r0, r1, lsl #0x10 ldr r1, _0233F4AC ; =0x00000239 mov r0, r0, lsr #0x10 bl ov04_0233CB84 add r0, r5, #0x1000 mov r1, #4 str r1, [r0, #0x924] b _0233F49C _0233F424: bl ov04_0233CBA0 add r1, r5, #0x1000 ldrb r1, [r1, #0x921] cmp r1, #0 cmpeq r0, #8 beq _0233F458 cmp r1, #0 beq _0233F49C ldr r0, [r5, #0x10] add r0, r0, #1 str r0, [r5, #0x10] cmp r0, #0xb4 ble _0233F49C _0233F458: mov r0, #1 ldmia sp!, {r3, r4, r5, pc} _0233F460: bl ov04_0233CBA0 add r1, r5, #0x1000 ldrb r1, [r1, #0x921] cmp r1, #0 cmpeq r0, #8 beq _0233F494 cmp r1, #0 beq _0233F49C ldr r0, [r5, #0x10] add r0, r0, #1 str r0, [r5, #0x10] cmp r0, #0xb4 ble _0233F49C _0233F494: mov r0, #2 ldmia sp!, {r3, r4, r5, pc} _0233F49C: mov r0, #0 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _0233F4A4: .word ov04_0233F644 _0233F4A8: .word 0x0000023B _0233F4AC: .word 0x00000239 arm_func_end ov04_0233F2BC arm_func_start ov04_0233F4B0 ov04_0233F4B0: ; 0x0233F4B0 stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr} ldr r5, _0233F530 ; =ov04_0233F644 mov r4, r0 mov r6, #0 mov r7, #0x400 _0233F4C4: ldr r1, [r5] mov r0, r7 add r1, r1, #0x1000 ldr r1, [r1, #0xd1c] add r8, r1, #2 ldrsh sb, [r1] bl RandInt b _0233F4F8 _0233F4E4: ldrsh r1, [r8] cmp r0, r1 blt _0233F500 add r8, r8, #4 sub sb, sb, #1 _0233F4F8: cmp sb, #1 bgt _0233F4E4 _0233F500: ldrsh r1, [r8, #2] mov r0, r4 mov r2, r6 bl InitStandardItem bl ov04_0233CAC8 cmp r0, #0 ldmneia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} ldrsh r0, [r4, #4] bl IsItemInTimeDarkness cmp r0, #0 beq _0233F4C4 ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _0233F530: .word ov04_0233F644 arm_func_end ov04_0233F4B0 arm_func_start ov04_0233F534 ov04_0233F534: ; 0x0233F534 stmdb sp!, {r3, r4, r5, lr} mov r5, #0 ldr r4, _0233F564 ; =ov04_0233F644 b _0233F54C _0233F544: bl IncrementNbSkyGiftsSent add r5, r5, #1 _0233F54C: ldr r0, [r4] add r0, r0, #0x1000 ldr r0, [r0, #0xd18] cmp r5, r0 blt _0233F544 ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _0233F564: .word ov04_0233F644 arm_func_end ov04_0233F534 ; 0x0233F568 .global ov04_0233F568 ov04_0233F568: .byte 0xC7, 0x37, 0x00, 0x00 .global ov04_0233F56C ov04_0233F56C: .byte 0x03, 0x00, 0x00, 0x00, 0xC8, 0x37, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov04_0233F580 ov04_0233F580: .byte 0xD8, 0x37, 0x00, 0x00 .global ov04_0233F584 ov04_0233F584: .byte 0x06, 0x00, 0x00, 0x00 .byte 0xD9, 0x37, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov04_0233F598 ov04_0233F598: .byte 0xBA, 0x37, 0x00, 0x00 .global ov04_0233F59C ov04_0233F59C: .byte 0x03, 0x00, 0x00, 0x00, 0xBB, 0x37, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 .byte 0xBC, 0x37, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov04_0233F5B8 ov04_0233F5B8: .byte 0xB6, 0x37, 0x00, 0x00 .global ov04_0233F5BC ov04_0233F5BC: .byte 0x01, 0x00, 0x00, 0x00, 0xB7, 0x37, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .byte 0xB8, 0x37, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov04_0233F5D8 ov04_0233F5D8: .byte 0xC3, 0x37, 0x00, 0x00 .global ov04_0233F5DC ov04_0233F5DC: .byte 0x03, 0x00, 0x00, 0x00, 0xC4, 0x37, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00 .byte 0xC5, 0x37, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF .global ov04_0233F5F8 ov04_0233F5F8: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .global ov04_0233F604 ov04_0233F604: .byte 0x00, 0x00, 0x00, 0x00 .byte 0x16, 0x02, 0x08, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global ov04_0233F614 ov04_0233F614: .byte 0x00, 0x00, 0x00, 0x00 .byte 0x02, 0x02, 0x18, 0x13, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global ov04_0233F624 ov04_0233F624: .byte 0x54, 0x41, 0x42, 0x4C .byte 0x45, 0x44, 0x41, 0x54, 0x2F, 0x69, 0x74, 0x65, 0x6D, 0x30, 0x30, 0x2E, 0x64, 0x61, 0x74, 0x00 .data .global ov04_0233F640 ov04_0233F640: .byte 0x00, 0x00, 0x00, 0x00 .global ov04_0233F644 ov04_0233F644: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .bss .global ov04_0233F660 ov04_0233F660: .space 0x10 .global ov04_0233F670 ov04_0233F670: .space 0x10