.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 arm_func_start MOD13_02211EA4 MOD13_02211EA4: ; 0x02211EA4 stmdb sp!, {lr} sub sp, sp, #4 strh r1, [sp] add r2, sp, #0 mov r1, #0xd bl MOD13_022130E8 add sp, sp, #4 ldmia sp!, {lr} bx lr arm_func_start MOD13_02211EC8 MOD13_02211EC8: ; 0x02211EC8 cmp r0, #1 blo _02211EDC cmp r0, #0xf movls r0, #1 bxls lr _02211EDC: mov r0, #0 bx lr arm_func_start MOD13_02211EE4 MOD13_02211EE4: ; 0x02211EE4 cmp r1, r0 movls r1, r0 mov r0, r1 bx lr arm_func_start MOD13_02211EF4 MOD13_02211EF4: ; 0x02211EF4 ldr r1, _02211F6C ; =0x02240A40 mov r2, #1 mov r2, r2, lsl r0 ldr r1, [r1] ands r1, r1, r2 bxeq lr ldr r2, _02211F70 ; =0x02240AFC ldr r1, _02211F74 ; =0x000005D4 ldr r2, [r2] mla r3, r0, r1, r2 add r0, r3, #0x1000 ldrb r0, [r0, #0xd52] cmp r0, #0 bxeq lr add r0, r3, #0x1d00 ldrh r1, [r0, #0x4c] cmp r1, #0 bxeq lr ldrh r2, [r0, #0x48] ldrh ip, [r0, #0x4a] cmp ip, r2 bhi _02211F60 add r1, ip, #2 cmp r2, r1 addle r1, r2, #1 strleh r1, [r0, #0x48] bxle lr _02211F60: add r0, r3, #0x1d00 strh ip, [r0, #0x48] bx lr .align 2, 0 _02211F6C: .word MOD13_02240A40 _02211F70: .word MOD13_02240AFC _02211F74: .word 0x000005D4 arm_func_start MOD13_02211F78 MOD13_02211F78: ; 0x02211F78 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc add r1, sp, #0 mov r0, #0 mov r2, #0xa bl MIi_CpuClear16 mov ip, #1 ldr r0, _022120FC ; =0x02240AFC mov r4, ip ldr r3, [r0] mov r5, ip mov r0, ip mov r1, ip mov r2, ip _02211FB0: sub lr, ip, #1 add lr, r3, lr, lsl #2 add lr, lr, #0x1000 ldr lr, [lr, #0x4e8] cmp lr, #0xb addls pc, pc, lr, lsl #2 b _02212048 _02211FCC: ; jump table b _02212048 ; case 0 b _02212048 ; case 1 b _02211FFC ; case 2 b _02212048 ; case 3 b _0221201C ; case 4 b _0221200C ; case 5 b _02212048 ; case 6 b _02212048 ; case 7 b _0221202C ; case 8 b _02212048 ; case 9 b _02212048 ; case 10 b _0221203C ; case 11 _02211FFC: ldrh lr, [sp] orr lr, lr, r2, lsl ip strh lr, [sp] b _02212048 _0221200C: ldrh lr, [sp, #2] orr lr, lr, r1, lsl ip strh lr, [sp, #2] b _02212048 _0221201C: ldrh lr, [sp, #4] orr lr, lr, r0, lsl ip strh lr, [sp, #4] b _02212048 _0221202C: ldrh lr, [sp, #6] orr lr, lr, r5, lsl ip strh lr, [sp, #6] b _02212048 _0221203C: ldrh lr, [sp, #8] orr lr, lr, r4, lsl ip strh lr, [sp, #8] _02212048: add ip, ip, #1 mov ip, ip, lsl #0x10 mov ip, ip, lsr #0x10 cmp ip, #0xf bls _02211FB0 ldrh r1, [sp, #6] cmp r1, #0 beq _02212074 mov r0, #5 bl MOD13_02212614 b _022120D4 _02212074: ldrh r1, [sp] cmp r1, #0 beq _0221208C mov r0, #1 bl MOD13_02212614 b _022120D4 _0221208C: ldrh r1, [sp, #8] cmp r1, #0 beq _022120A4 mov r0, #6 bl MOD13_02212614 b _022120D4 _022120A4: ldrh r1, [sp, #4] cmp r1, #0 beq _022120BC mov r0, #2 bl MOD13_02212614 b _022120D4 _022120BC: ldrh r0, [sp, #2] cmp r0, #0 beq _022120D0 bl MOD13_02212464 b _022120D4 _022120D0: bl MOD13_02212104 _022120D4: cmp r0, #0x15 addne sp, sp, #0xc ldmneia sp!, {r4, r5, lr} bxne lr ldr r1, _02212100 ; =0x0000FFFF mov r0, #0 bl MOD13_02212614 add sp, sp, #0xc ldmia sp!, {r4, r5, lr} bx lr .align 2, 0 _022120FC: .word MOD13_02240AFC _02212100: .word 0x0000FFFF arm_func_start MOD13_02212104 MOD13_02212104: ; 0x02212104 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x1c ldr r5, _022123B0 ; =0x02240AFC ldr r0, [r5] add r0, r0, #0x1000 ldrb r0, [r0, #0x524] cmp r0, #0 addeq sp, sp, #0x1c moveq r0, #0x15 ldmeqia sp!, {r4, r5, r6, r7, lr} bxeq lr ldr r4, _022123B4 ; =0x000005D4 mov r1, #0 _02212138: ldr r0, [r5] add r3, r0, #0x1000 ldrb r0, [r3, #0x525] add r0, r0, #1 mov r2, r0, lsr #0x1f rsb r0, r2, r0, lsl #28 add r0, r2, r0, ror #28 strb r0, [r3, #0x525] ldr r2, [r5] add r0, r2, #0x1000 ldrb r0, [r0, #0x525] mla r3, r0, r4, r2 add r2, r3, #0x1000 ldrb r2, [r2, #0xd52] cmp r2, #0 beq _02212188 add r2, r3, #0x1d00 ldrh r2, [r2, #0x4c] cmp r2, #0 bne _02212198 _02212188: add r1, r1, #1 and r1, r1, #0xff cmp r1, #0x10 blo _02212138 _02212198: cmp r1, #0x10 addeq sp, sp, #0x1c moveq r0, #0x15 ldmeqia sp!, {r4, r5, r6, r7, lr} bxeq lr bl MOD13_02211EF4 ldr r0, _022123B0 ; =0x02240AFC ldr r1, _022123B4 ; =0x000005D4 ldr r6, [r0] ldr r2, _022123B8 ; =0x00001D2C add r0, r6, #0x1000 ldrb r0, [r0, #0x525] ldr r3, _022123BC ; =0x00001788 add r4, r6, r2 mul r5, r0, r1 add r0, r6, r5 add r0, r0, #0x1d00 ldrh r2, [r0, #0x48] add r3, r6, r3 add r0, sp, #8 add r1, r4, r5 add r3, r3, r5 bl MOD13_02213558 cmp r0, #0 addeq sp, sp, #0x1c moveq r0, #0x15 ldmeqia sp!, {r4, r5, r6, r7, lr} bxeq lr ldr r0, _022123B0 ; =0x02240AFC mov r2, #4 ldr r1, [r0] strb r2, [sp] add r2, r1, #0x1000 ldrb r4, [r2, #0x525] ldr r3, _022123B4 ; =0x000005D4 add r0, sp, #0 strh r4, [sp, #2] ldrb r4, [r2, #0x525] mla r2, r4, r3, r1 add r2, r2, #0x1d00 ldrh r2, [r2, #0x48] strh r2, [sp, #4] bl MOD13_022171AC ldr r1, _022123B0 ; =0x02240AFC ldr r4, _022123B4 ; =0x000005D4 ldr r5, [r1] ldrb r1, [sp, #0x14] add r2, r5, #0x1000 ldrb r2, [r2, #0x525] ldr r6, [sp, #0x10] ldr r3, [sp, #0xc] mla r5, r2, r4, r5 add r2, r5, r1, lsl #2 add r4, r5, #0x1000 add r2, r2, #0x1000 ldr r5, [r4, #0xd58] ldr r2, [r2, #0xd2c] ldr r1, [r5, r1, lsl #2] sub r2, r6, r2 add r7, r2, r1 ldr r6, [r4, #0xd54] mov r2, r0 mov r0, r6 mov r1, r7 bl MOD13_02216A68 cmp r0, #0 bne _02212378 ldr r1, _022123B0 ; =0x02240AFC ldr r0, _022123C0 ; =0x00007CE0 ldr r1, [r1] add r5, r1, r0 mov r0, r5 bl MOD13_02216D78 cmp r0, #0 bne _02212368 ldr r0, [r6] cmp r0, #0 subne r0, r0, #1 strne r0, [r6] bne _02212368 add lr, r6, #0x30 mov r4, #0 mov ip, r4 mov r3, lr _022122E8: add r0, lr, ip, lsl #4 ldr r0, [r0, #0xc] mov r2, ip, lsl #4 cmp r0, #2 bne _02212318 cmp r4, #0 beq _02212314 ldr r1, [r4] ldr r0, [lr, r2] cmp r1, r0 bls _02212318 _02212314: mov r4, r3 _02212318: add ip, ip, #1 cmp ip, #4 add r3, r3, #0x10 blt _022122E8 cmp r4, #0 bne _02212334 bl OS_Terminate _02212334: mov r0, #2 str r0, [r6] mov r0, #1 str r0, [r4, #0xc] bic r0, r7, #0x1f str r0, [r4] str r4, [r5, #0x10] ldr r1, _022123C4 ; =MOD13_022123C8 mov r0, r5 mov r2, #0 mov r3, #4 str r6, [r5, #0x14] bl MOD13_02216BE8 _02212368: add sp, sp, #0x1c mov r0, #0x15 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _02212378: ldr r0, _022123B0 ; =0x02240AFC ldr r4, [sp, #0xc] ldr r2, [r0] ldr r1, _022123B4 ; =0x000005D4 add r0, r2, #0x1000 ldrb r3, [r0, #0x525] add r0, r4, #6 mla r1, r3, r1, r2 add r1, r1, #0x1d00 ldrh r1, [r1, #0x4c] bl MOD13_022141E8 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, lr} bx lr .align 2, 0 _022123B0: .word MOD13_02240AFC _022123B4: .word 0x000005D4 _022123B8: .word 0x00001D2C _022123BC: .word 0x00001788 _022123C0: .word 0x00007CE0 _022123C4: .word MOD13_022123C8 arm_func_start MOD13_022123C8 MOD13_022123C8: ; 0x022123C8 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x4c ldr r5, [r0, #0x14] ldr r4, [r0, #0x10] add r0, sp, #4 bl FS_InitFile ldr r1, [r5, #0x14] add r0, r5, #0x10 ldr r5, [r4] bl FS_FindArchive mvn r1, #0 str r1, [sp] ldr r2, [r4, #4] mov r1, r0 add r3, r5, r2 add r0, sp, #4 mov r2, r5 bl FS_OpenFileDirect cmp r0, #0 beq _02212440 ldr r1, [r4, #8] ldr r2, [r4, #4] add r0, sp, #4 bl FS_ReadFile ldr r1, [r4, #4] cmp r1, r0 moveq r0, #2 streq r0, [r4, #0xc] add r0, sp, #4 bl FS_CloseFile _02212440: ldr r0, [r4, #0xc] cmp r0, #2 movne r0, #0 strne r0, [r4] movne r0, #2 strne r0, [r4, #0xc] add sp, sp, #0x4c ldmia sp!, {r4, r5, lr} bx lr arm_func_start MOD13_02212464 MOD13_02212464: ; 0x02212464 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x1c mov r4, #0 add r0, sp, #6 mov r1, r4 mov r2, #0x10 mvn r5, #0 bl MI_CpuFill8 ldr r1, _02212604 ; =0x02240AFC mov r0, #1 ldr r1, [r1] add ip, sp, #6 _02212494: sub r3, r0, #1 add r2, r1, r3, lsl #2 add r2, r2, #0x1000 ldr r2, [r2, #0x4e8] cmp r2, #5 bne _022124C4 add r2, r1, r3 add r2, r2, #0x1500 ldrsb r3, [r2, #0x26] ldrb r2, [ip, r3] add r2, r2, #1 strb r2, [ip, r3] _022124C4: add r0, r0, #1 mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 cmp r0, #0xf bls _02212494 ldr r2, _02212608 ; =0x0223F780 mov r0, #0 ldrb r3, [r2] add lr, sp, #6 ldr ip, _0221260C ; =0x000005D4 _022124EC: add r2, r3, #1 mov r3, r2, lsr #0x1f rsb r2, r3, r2, lsl #28 add r2, r3, r2, ror #28 and r3, r2, #0xff mla r2, r3, ip, r1 add r2, r2, #0x1000 ldrb r2, [r2, #0xd52] cmp r2, #0 beq _02212528 ldrb r2, [lr, r3] cmp r2, #0 movne r0, r3, lsl #0x18 movne r5, r0, asr #0x18 bne _02212538 _02212528: add r0, r0, #1 and r0, r0, #0xff cmp r0, #0x10 blo _022124EC _02212538: mvn r0, #0 cmp r5, r0 addeq sp, sp, #0x1c moveq r0, #0x15 ldmeqia sp!, {r4, r5, lr} bxeq lr ldr r2, _02212608 ; =0x0223F780 mov r0, #1 strb r5, [r2] mov r3, r0 _02212560: sub ip, r0, #1 add r2, r1, ip, lsl #2 add r2, r2, #0x1000 ldr r2, [r2, #0x4e8] cmp r2, #5 bne _02212594 add r2, r1, ip add r2, r2, #0x1500 ldrsb r2, [r2, #0x26] cmp r5, r2 orreq r2, r4, r3, lsl r0 moveq r2, r2, lsl #0x10 moveq r4, r2, lsr #0x10 _02212594: add r0, r0, #1 mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 cmp r0, #0xf bls _02212560 mov r2, #3 add r0, sp, #0 strb r2, [sp] strh r5, [sp, #2] bl MOD13_022171AC movs r1, r0 beq _022125E4 ldr r2, _02212604 ; =0x02240AFC ldr r0, _02212610 ; =0x00001788 ldr r3, [r2] ldr r2, _0221260C ; =0x000005D4 add r0, r3, r0 mla r0, r5, r2, r0 mov r2, #0xe4 bl MI_CpuCopy8 _022125E4: ldr r0, _02212604 ; =0x02240AFC mov r1, r4 ldr r2, [r0] mov r0, #0xea bl MOD13_022141E8 add sp, sp, #0x1c ldmia sp!, {r4, r5, lr} bx lr .align 2, 0 _02212604: .word MOD13_02240AFC _02212608: .word MOD13_0223F780 _0221260C: .word 0x000005D4 _02212610: .word 0x00001788 arm_func_start MOD13_02212614 MOD13_02212614: ; 0x02212614 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r2, _02212654 ; =0x02240AFC mov r4, r1 ldr r1, [r2] strb r0, [sp] add r0, sp, #0 bl MOD13_022171AC ldr r0, _02212654 ; =0x02240AFC mov r1, r4 ldr r2, [r0] mov r0, #6 bl MOD13_022141E8 add sp, sp, #8 ldmia sp!, {r4, lr} bx lr .align 2, 0 _02212654: .word MOD13_02240AFC arm_func_start MOD13_02212658 MOD13_02212658: ; 0x02212658 stmdb sp!, {r4, r5, r6, lr} mov r4, r0 mov r6, #0 ldr r2, _02212700 ; =0x02240AFC mov r3, r6 ldr r1, _02212704 ; =0x000005D4 _02212670: ldr r0, [r2] mla r5, r6, r1, r0 add r0, r5, #0x1000 ldrb r0, [r0, #0xd52] cmp r0, #0 addne r0, r5, #0x1d00 strneh r3, [r0, #0x4a] add r0, r6, #1 mov r0, r0, lsl #0x10 mov r6, r0, lsr #0x10 cmp r6, #0x10 blo _02212670 ldr r0, _02212708 ; =0x02240A40 mov r1, #0 str r1, [r0] mov r6, #1 ldr r5, _0221270C ; =0x0000FFFF _022126B4: mov r0, r4 mov r1, r6 bl WM_ReadMPData cmp r0, #0 beq _022126E4 ldrh r1, [r0] cmp r1, r5 beq _022126E4 cmp r1, #0 beq _022126E4 mov r1, r6 bl MOD13_02212710 _022126E4: add r0, r6, #1 mov r0, r0, lsl #0x10 mov r6, r0, lsr #0x10 cmp r6, #0xf bls _022126B4 ldmia sp!, {r4, r5, r6, lr} bx lr .align 2, 0 _02212700: .word MOD13_02240AFC _02212704: .word 0x000005D4 _02212708: .word MOD13_02240A40 _0221270C: .word 0x0000FFFF arm_func_start MOD13_02212710 MOD13_02212710: ; 0x02212710 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x38 movs r7, r1 addeq sp, sp, #0x38 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr cmp r7, #0xf addhi sp, sp, #0x38 ldmhiia sp!, {r4, r5, r6, r7, r8, lr} bxhi lr add r1, sp, #0 mov r2, r7 add r0, r0, #0xa bl MOD13_02217070 ldr r3, _02212C14 ; =0x02240AFC ldrb r8, [sp] ldr r2, [r3] sub r4, r7, #1 add r1, r2, r4, lsl #2 add r1, r1, #0x1000 ldr r6, [r1, #0x4e8] mov r5, r0 cmp r8, #0xb addls pc, pc, r8, lsl #2 b _02212C08 _02212774: ; jump table b _02212C08 ; case 0 b _02212C08 ; case 1 b _02212C08 ; case 2 b _02212C08 ; case 3 b _02212C08 ; case 4 b _02212C08 ; case 5 b _02212C08 ; case 6 b _022127A4 ; case 7 b _02212A30 ; case 8 b _02212AEC ; case 9 b _02212B68 ; case 10 b _02212C08 ; case 11 _022127A4: cmp r6, #2 bne _02212848 cmp r5, #0 addeq sp, sp, #0x38 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr add r1, sp, #0x14 mov r2, #0x1d bl MI_CpuCopy8 ldr r3, _02212C14 ; =0x02240AFC mov r0, r4 ldr r1, [r3] ldr r2, [sp, #0x14] add r1, r1, r0, lsl #2 add r1, r1, #0x1000 str r2, [r1, #0x4a8] ldr r1, [r3] mov r2, #0x16 add r1, r1, r0, lsl #1 mul r8, r0, r2 ldrh ip, [sp, #0x2e] add r1, r1, #0x1400 add r0, sp, #0x18 strh ip, [r1, #0x8a] ldr r1, [r3] add r1, r1, #0x1340 add r1, r1, r8 bl MI_CpuCopy8 ldr r0, _02212C14 ; =0x02240AFC and r1, r7, #0xff ldr r0, [r0] and r2, r1, #0xf add ip, r0, #0x1340 ldrb r3, [ip, r8] mov r0, r7 mov r1, #0xa bic r3, r3, #0xf0 orr r2, r3, r2, lsl #4 strb r2, [ip, r8] add r2, sp, #0x18 bl MOD13_02213124 _02212848: cmp r6, #0xa addne sp, sp, #0x38 ldmneia sp!, {r4, r5, r6, r7, r8, lr} bxne lr ldrb r8, [r5, #0x1c] mov r2, #0 cmp r8, #0x10 bhs _022128A4 ldr r0, _02212C14 ; =0x02240AFC ldr r1, _02212C18 ; =0x000005D4 ldr r0, [r0] mla r6, r8, r1, r0 add r1, r6, #0x1000 ldrb r3, [r1, #0xd52] cmp r3, #0 beq _022128A4 add r3, r0, r4, lsl #2 ldr r1, [r1, #0xd40] add r3, r3, #0x1000 ldr r5, [r3, #0x4a8] ldr r3, [r1, #0x14] cmp r5, r3 beq _022128C0 _022128A4: ldr r0, _02212C14 ; =0x02240AFC mov r1, #4 ldr r0, [r0] add r0, r0, r4, lsl #1 add r0, r0, #0x1700 strh r1, [r0, #0x54] b _02212924 _022128C0: add r3, r6, #0x1d00 ldrh r6, [r3, #0x4e] mov ip, r2 mov r5, #1 _022128D0: mov r3, r5, lsl ip ands r3, r3, r6 add r3, ip, #1 addne r2, r2, #1 and ip, r3, #0xff andne r2, r2, #0xff cmp ip, #0x10 blo _022128D0 ldrb r1, [r1, #0x18] cmp r2, r1 blo _02212924 add r1, r0, r4, lsl #1 add r3, r1, #0x1700 mov r2, #0 mov r0, r7 mov r1, #0xb strh r2, [r3, #0x54] bl MOD13_02213124 add sp, sp, #0x38 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02212924: ldr r3, _02212C14 ; =0x02240AFC ldr r2, [r3] add r0, r2, r4, lsl #1 add r4, r0, #0x1700 ldrh r0, [r4, #0x54] cmp r0, #3 beq _02212954 cmp r0, #4 beq _02212A10 add sp, sp, #0x38 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02212954: add r0, r2, #0x1500 mov r1, #1 ldrh r0, [r0, #0x36] mov r6, r1, lsl r7 ands r0, r0, r6 addne sp, sp, #0x38 ldmneia sp!, {r4, r5, r6, r7, r8, lr} bxne lr add r0, r2, #0x1000 ldrb r2, [r0, #0x535] ldr r1, _02212C18 ; =0x000005D4 sub r5, r7, #1 add r2, r2, #1 strb r2, [r0, #0x535] ldr r0, [r3] mul r4, r8, r1 add r1, r0, #0x1500 ldrh ip, [r1, #0x36] mov r0, r7 mov r2, #0 orr r7, ip, r6 strh r7, [r1, #0x36] ldr r7, [r3] mov r1, #5 add r7, r7, r5 add r7, r7, #0x1000 strb r8, [r7, #0x526] ldr r7, [r3] add r7, r7, r4 add r7, r7, #0x1d00 ldrh r8, [r7, #0x4e] orr r8, r8, r6 strh r8, [r7, #0x4e] ldr r7, [r3] add r4, r7, r4 add r4, r4, #0x1d00 ldrh r7, [r4, #0x50] orr r6, r7, r6 strh r6, [r4, #0x50] ldr r3, [r3] add r3, r3, r5, lsl #1 add r3, r3, #0x1700 strh r2, [r3, #0x54] bl MOD13_02213124 add sp, sp, #0x38 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02212A10: mov r2, #0 mov r0, r7 mov r1, #4 strh r2, [r4, #0x54] bl MOD13_02213124 add sp, sp, #0x38 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02212A30: cmp r6, #5 bne _02212A54 mov r0, r7 mov r1, #0xe mov r2, #0 bl MOD13_02213124 add sp, sp, #0x38 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02212A54: cmp r6, #0xe addne sp, sp, #0x38 ldmneia sp!, {r4, r5, r6, r7, r8, lr} bxne lr add r0, r2, r4, lsl #1 add r0, r0, #0x1700 ldrh r0, [r0, #0x54] mov r5, r4, lsl #1 cmp r0, #2 addne sp, sp, #0x38 ldmneia sp!, {r4, r5, r6, r7, r8, lr} bxne lr add r0, r2, r4 add r0, r0, #0x1000 ldrb r1, [r0, #0x526] ldr r0, _02212C18 ; =0x000005D4 mov r6, #1 mul r4, r1, r0 add r0, r2, r4 add r1, r0, #0x1d00 ldrh r8, [r1, #0x4c] mov r2, #0 mov r0, r7 orr r6, r8, r6, lsl r7 strh r6, [r1, #0x4c] ldr r6, [r3] mov r1, #6 add r4, r6, r4 add r4, r4, #0x1d00 strh r2, [r4, #0x48] ldr r3, [r3] add r3, r3, r5 add r3, r3, #0x1700 strh r2, [r3, #0x54] bl MOD13_02213124 add sp, sp, #0x38 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02212AEC: cmp r6, #6 addne sp, sp, #0x38 ldmneia sp!, {r4, r5, r6, r7, r8, lr} bxne lr add r0, r2, r4 add r0, r0, #0x1000 ldrb r5, [r0, #0x526] cmp r5, #0xff addeq sp, sp, #0x38 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr ldr r0, _02212C18 ; =0x000005D4 ldrh r1, [sp, #2] mul r4, r5, r0 add r0, r2, r4 add r0, r0, #0x1d00 ldrh r0, [r0, #0x4a] bl MOD13_02211EE4 ldr r1, _02212C14 ; =0x02240AFC ldr r2, _02212C1C ; =0x02240A40 ldr r1, [r1] mov r3, #1 add r1, r1, r4 add r1, r1, #0x1d00 strh r0, [r1, #0x4a] ldr r0, [r2] add sp, sp, #0x38 orr r0, r0, r3, lsl r5 str r0, [r2] ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02212B68: cmp r6, #6 bne _02212BC8 add r0, r2, r4 add r0, r0, #0x1000 ldrb r3, [r0, #0x526] cmp r3, #0xff addeq sp, sp, #0x38 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr ldr r0, _02212C18 ; =0x000005D4 mov r1, #1 mla r0, r3, r0, r2 add r3, r0, #0x1d00 ldrh r2, [r3, #0x4c] mvn r0, r1, lsl r7 and r4, r2, r0 mov r0, r7 mov r1, #7 mov r2, #0 strh r4, [r3, #0x4c] bl MOD13_02213124 add sp, sp, #0x38 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02212BC8: cmp r6, #7 addne sp, sp, #0x38 ldmneia sp!, {r4, r5, r6, r7, r8, lr} bxne lr add r0, r2, r4, lsl #1 add r3, r0, #0x1700 ldrh r0, [r3, #0x54] cmp r0, #5 addne sp, sp, #0x38 ldmneia sp!, {r4, r5, r6, r7, r8, lr} bxne lr mov r2, #0 mov r0, r7 mov r1, #8 strh r2, [r3, #0x54] bl MOD13_02213124 _02212C08: add sp, sp, #0x38 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr .align 2, 0 _02212C14: .word MOD13_02240AFC _02212C18: .word 0x000005D4 _02212C1C: .word MOD13_02240A40 arm_func_start MOD13_02212C20 MOD13_02212C20: ; 0x02212C20 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov r6, r0 mov r4, r1 cmp r6, #0x19 bgt _02212C84 cmp r6, #0x19 bge _02212ECC cmp r6, #0x11 bgt _02212C78 cmp r6, #0x11 bge _02213084 cmp r6, #3 bgt _02213084 cmp r6, #0 blt _02213084 cmp r6, #0 beq _02212CC0 cmp r6, #1 beq _02212CE4 cmp r6, #3 beq _02212EC0 b _02213084 _02212C78: cmp r6, #0x15 beq _02212CAC b _02213084 _02212C84: cmp r6, #0xff bgt _02212CA0 cmp r6, #0xff bge _02212F70 cmp r6, #0x1c beq _02212ED4 b _02213084 _02212CA0: cmp r6, #0x100 beq _02212FE0 b _02213084 _02212CAC: mov r2, r4 mov r0, #0 mov r1, #1 bl MOD13_02213124 b _02213084 _02212CC0: ldrh r0, [r4, #0x10] cmp r0, #0 beq _02213084 cmp r0, #0x10 bhs _02213084 mov r2, r4 mov r1, #2 bl MOD13_02213124 b _02213084 _02212CE4: ldrh r0, [r4, #0x10] cmp r0, #0 beq _02213084 cmp r0, #0x10 bhs _02213084 ldr r2, _022130D8 ; =0x02240AFC sub r0, r0, #1 ldr r3, [r2] mov r1, #0 add r0, r3, r0, lsl #1 add r0, r0, #0x1400 strh r1, [r0, #0x8a] ldrh r3, [r4, #0x10] ldr r5, [r2] ldr r0, _022130DC ; =0x000014A8 sub r2, r3, #1 add r0, r5, r0 add r0, r0, r2, lsl #2 mov r2, #4 bl MI_CpuFill8 ldr r0, _022130D8 ; =0x02240AFC ldrh r1, [r4, #0x10] ldr r0, [r0] mov r2, #0x16 add r0, r0, #0x1340 sub r1, r1, #1 mla r0, r1, r2, r0 mov r1, #0 bl MI_CpuFill8 ldrh r0, [r4, #0x10] bl MOD13_02217234 ldrh r1, [r4, #0x10] ldr r0, _022130D8 ; =0x02240AFC mov r3, #0 ldr r2, [r0] sub r1, r1, #1 add r1, r2, r1, lsl #1 add r1, r1, #0x1700 strh r3, [r1, #0x54] ldrh r8, [r4, #0x10] ldr r5, [r0] mvn r1, #0 sub r7, r8, #1 add r2, r5, r7 add r2, r2, #0x1500 ldrsb r3, [r2, #0x26] cmp r3, r1 beq _02212E0C ldr r2, _022130E0 ; =0x000005D4 and r3, r3, #0xff mul r2, r3, r2 add r3, r5, r2 add sb, r3, #0x1d00 mov r5, #1 ldrh sl, [sb, #0x4e] mvn r3, r5, lsl r8 and sl, sl, r3 strh sl, [sb, #0x4e] ldr sb, [r0] add sb, sb, r2 add sb, sb, #0x1d00 ldrh sl, [sb, #0x50] orr r5, sl, r5, lsl r8 strh r5, [sb, #0x50] ldr r5, [r0] add r5, r5, r7 add r5, r5, #0x1000 strb r1, [r5, #0x526] ldr r0, [r0] add r0, r0, r2 add r0, r0, #0x1d00 ldrh r1, [r0, #0x4c] and r1, r1, r3 strh r1, [r0, #0x4c] _02212E0C: ldr r1, _022130D8 ; =0x02240AFC ldrh r2, [r4, #0x10] ldr r7, [r1] mov r3, #1 add r0, r7, #0x1500 ldrh r5, [r0, #0x36] mov r0, r3, lsl r2 ands r0, r5, r0 beq _02212E5C add r0, r7, #0x1000 ldrb r2, [r0, #0x535] sub r2, r2, #1 strb r2, [r0, #0x535] ldr r0, [r1] ldrh r1, [r4, #0x10] add r0, r0, #0x1500 ldrh r2, [r0, #0x36] mvn r1, r3, lsl r1 and r1, r2, r1 strh r1, [r0, #0x36] _02212E5C: ldrh r0, [r4, #0x10] ldr r1, _022130D8 ; =0x02240AFC ldr r2, [r1] sub r1, r0, #1 add r1, r2, r1, lsl #2 add r1, r1, #0x1000 ldr r1, [r1, #0x4e8] cmp r1, #8 bne _02212E8C mov r1, #9 mov r2, #0 bl MOD13_02213124 _02212E8C: ldrh r0, [r4, #0x10] mov r2, r4 mov r1, #3 bl MOD13_02213124 ldrh r1, [r4, #0x10] ldr r0, _022130D8 ; =0x02240AFC mov r3, #0 ldr r2, [r0] sub r0, r1, #1 add r0, r2, r0, lsl #2 add r0, r0, #0x1000 str r3, [r0, #0x4e8] b _02213084 _02212EC0: mov r0, r4 bl MOD13_02212658 b _02213084 _02212ECC: bl MOD13_02211F78 b _02213084 _02212ED4: mov r5, #0 ldr sb, _022130D8 ; =0x02240AFC ldr r7, _022130E4 ; =0x0000186C ldr r8, _022130E0 ; =0x000005D4 mov sl, r5 _02212EE8: mul r4, r5, r8 ldr r1, [sb] add r2, r1, r4 add r0, r2, #0x1000 ldrb r0, [r0, #0xd52] cmp r0, #0 beq _02212F38 add r0, r2, #0x1d00 ldrh r3, [r0, #0x50] cmp r3, #0 beq _02212F38 ldrh r2, [r0, #0x4e] add r0, r1, r7 add r0, r0, r4 add r1, r1, #0x1340 bl MOD13_022148D4 ldr r0, [sb] add r0, r0, r4 add r0, r0, #0x1d00 strh sl, [r0, #0x50] _02212F38: add r0, r5, #1 and r5, r0, #0xff cmp r5, #0x10 blo _02212EE8 bl MOD13_02214BF4 mov r5, r0 bl MOD13_02214BE0 mov r4, r0 bl MOD13_02214B80 mov r2, r0 mov r0, r5 mov r1, r4 bl MOD13_02214768 b _02213084 _02212F70: ldrh r0, [r4, #2] cmp r0, #0xf addls pc, pc, r0, lsl #2 b _02212FD0 _02212F80: ; jump table b _02212FD0 ; case 0 b _02212FC0 ; case 1 b _02212FD0 ; case 2 b _02212FD0 ; case 3 b _02212FC0 ; case 4 b _02212FC0 ; case 5 b _02212FC0 ; case 6 b _02212FD0 ; case 7 b _02212FC0 ; case 8 b _02212FC0 ; case 9 b _02212FD0 ; case 10 b _02212FD0 ; case 11 b _02212FD0 ; case 12 b _02212FD0 ; case 13 b _02212FD0 ; case 14 b _02212FD0 ; case 15 _02212FC0: mov r0, #0 mov r1, #9 bl MOD13_02211EA4 b _02213084 _02212FD0: mov r0, #0 mov r1, #8 bl MOD13_02211EA4 b _02213084 _02212FE0: ldrh r0, [r4] cmp r0, #0x1d addls pc, pc, r0, lsl #2 b _02213078 _02212FF0: ; jump table b _02213068 ; case 0 b _02213078 ; case 1 b _02213078 ; case 2 b _02213078 ; case 3 b _02213078 ; case 4 b _02213078 ; case 5 b _02213078 ; case 6 b _02213068 ; case 7 b _02213068 ; case 8 b _02213078 ; case 9 b _02213078 ; case 10 b _02213078 ; case 11 b _02213078 ; case 12 b _02213068 ; case 13 b _02213068 ; case 14 b _02213068 ; case 15 b _02213078 ; case 16 b _02213068 ; case 17 b _02213068 ; case 18 b _02213078 ; case 19 b _02213078 ; case 20 b _02213068 ; case 21 b _02213078 ; case 22 b _02213078 ; case 23 b _02213078 ; case 24 b _02213068 ; case 25 b _02213078 ; case 26 b _02213078 ; case 27 b _02213078 ; case 28 b _02213068 ; case 29 _02213068: mov r0, #0 mov r1, #9 bl MOD13_02211EA4 b _02213084 _02213078: mov r0, #0 mov r1, #8 bl MOD13_02211EA4 _02213084: cmp r6, #0x11 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, lr} bxne lr ldr r1, _022130D8 ; =0x02240AFC mov r0, #0 ldr r1, [r1] mov r2, #0x7d00 add r3, r1, #0x1000 ldr r4, [r3, #0x4e4] bl MIi_CpuClearFast ldr r1, _022130D8 ; =0x02240AFC mov r0, #0 str r0, [r1] cmp r4, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, lr} bxeq lr mov r2, r0 mov r1, #0xc blx r4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr} bx lr .align 2, 0 _022130D8: .word MOD13_02240AFC _022130DC: .word 0x000014A8 _022130E0: .word 0x000005D4 _022130E4: .word 0x0000186C arm_func_start MOD13_022130E8 MOD13_022130E8: ; 0x022130E8 stmdb sp!, {lr} sub sp, sp, #4 ldr r3, _02213120 ; =0x02240AFC ldr r3, [r3] add r3, r3, #0x1000 ldr r3, [r3, #0x4e4] cmp r3, #0 addeq sp, sp, #4 ldmeqia sp!, {lr} bxeq lr blx r3 add sp, sp, #4 ldmia sp!, {lr} bx lr .align 2, 0 _02213120: .word MOD13_02240AFC arm_func_start MOD13_02213124 MOD13_02213124: ; 0x02213124 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r2 bl MOD13_02211EC8 cmp r0, #0 beq _02213158 ldr r0, _02213170 ; =0x02240AFC sub r1, r6, #1 ldr r0, [r0] add r0, r0, r1, lsl #2 add r0, r0, #0x1000 str r5, [r0, #0x4e8] _02213158: mov r0, r6 mov r1, r5 mov r2, r4 bl MOD13_022130E8 ldmia sp!, {r4, r5, r6, lr} bx lr .align 2, 0 _02213170: .word MOD13_02240AFC arm_func_start MOD13_02213174 MOD13_02213174: ; 0x02213174 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r1 mov r7, r0 bl OS_DisableInterrupts mov r4, r0 cmp r5, #3 addls pc, pc, r5, lsl #2 b _022131D8 _02213198: ; jump table b _022131A8 ; case 0 b _022131B4 ; case 1 b _022131C0 ; case 2 b _022131CC ; case 3 _022131A8: mov r5, #0xa mov r6, #4 b _022131F0 _022131B4: mov r5, #0xa mov r6, #3 b _022131F0 _022131C0: mov r5, #0xe mov r6, #2 b _022131F0 _022131CC: mov r5, #7 mov r6, #5 b _022131F0 _022131D8: mov r0, r4 bl OS_RestoreInterrupts add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _022131F0: ldr r0, _0221326C ; =0x02240AFC ldr r0, [r0] cmp r0, #0 beq _02213254 mov r0, r7 bl MOD13_02211EC8 cmp r0, #0 beq _02213254 ldr r0, _0221326C ; =0x02240AFC sub r2, r7, #1 ldr r1, [r0] add r0, r1, r2, lsl #2 add r0, r0, #0x1000 ldr r0, [r0, #0x4e8] cmp r5, r0 bne _02213254 add r0, r1, r2, lsl #1 add r1, r0, #0x1700 mov r0, r4 strh r6, [r1, #0x54] bl OS_RestoreInterrupts add sp, sp, #4 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _02213254: mov r0, r4 bl OS_RestoreInterrupts mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr .align 2, 0 _0221326C: .word MOD13_02240AFC arm_func_start MOD13_02213270 MOD13_02213270: ; 0x02213270 stmdb sp!, {r4, lr} ldr r1, _022132C8 ; =0x02240AFC mov r4, r0 ldr r1, [r1] cmp r1, #0 beq _022132BC bl MOD13_02211EC8 cmp r0, #0 beq _022132BC ldr r0, _022132C8 ; =0x02240AFC sub r1, r4, #1 ldr r0, [r0] add r0, r0, r1, lsl #2 add r0, r0, #0x1000 ldr r0, [r0, #0x4e8] cmp r0, #7 moveq r0, #1 ldmeqia sp!, {r4, lr} bxeq lr _022132BC: mov r0, #0 ldmia sp!, {r4, lr} bx lr .align 2, 0 _022132C8: .word MOD13_02240AFC arm_func_start MOD13_022132CC MOD13_022132CC: ; 0x022132CC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 bl OS_DisableInterrupts ldr r1, _02213360 ; =0x02240AFC mov r4, r0 ldr r0, [r1] cmp r0, #0 beq _02213348 mov r0, r5 bl MOD13_02211EC8 cmp r0, #0 beq _02213348 ldr r0, _02213360 ; =0x02240AFC sub r3, r5, #1 ldr ip, [r0] ldr r1, _02213364 ; =0x00001772 add r0, ip, #0x1340 mov r2, #0x16 mla r0, r3, r2, r0 add r1, ip, r1 bl MI_CpuCopy8 mov r0, r4 bl OS_RestoreInterrupts ldr r1, _02213360 ; =0x02240AFC ldr r0, _02213364 ; =0x00001772 ldr r1, [r1] add sp, sp, #4 add r0, r1, r0 ldmia sp!, {r4, r5, lr} bx lr _02213348: mov r0, r4 bl OS_RestoreInterrupts mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr .align 2, 0 _02213360: .word MOD13_02240AFC _02213364: .word 0x00001772 arm_func_start MOD13_02213368 MOD13_02213368: ; 0x02213368 stmdb sp!, {r4, lr} mov r4, r0 bl OS_DisableInterrupts ldr r1, _02213390 ; =0x02240AFC ldr r1, [r1] add r1, r1, #0x1000 str r4, [r1, #0x4e4] bl OS_RestoreInterrupts ldmia sp!, {r4, lr} bx lr .align 2, 0 _02213390: .word MOD13_02240AFC arm_func_start MOD13_02213394 MOD13_02213394: ; 0x02213394 stmdb sp!, {lr} sub sp, sp, #4 ldr r3, _02213498 ; =0x0223C420 ldr r3, [r3, r0, lsl #2] cmp r3, #0 beq _022133BC cmp r3, #1 beq _022133CC cmp r3, #2 bne _02213478 _022133BC: bl MOD13_022134A8 add sp, sp, #4 ldmia sp!, {lr} bx lr _022133CC: cmp r1, #0x2000000 blo _02213444 ldr r0, _0221349C ; =0x023FE800 cmp r1, r0 bhs _02213444 cmp r1, #0x2300000 add r1, r1, r2 bhs _02213400 cmp r1, #0x2300000 addhi sp, sp, #4 movhi r0, #0 ldmhiia sp!, {lr} bxhi lr _02213400: cmp r1, #0x2300000 addls sp, sp, #4 movls r0, #1 ldmlsia sp!, {lr} bxls lr ldr r0, _0221349C ; =0x023FE800 cmp r1, r0 bhs _02213434 cmp r2, #0x40000 addls sp, sp, #4 movls r0, #1 ldmlsia sp!, {lr} bxls lr _02213434: add sp, sp, #4 mov r0, #0 ldmia sp!, {lr} bx lr _02213444: ldr r0, _022134A0 ; =0x037F8000 cmp r1, r0 blo _02213488 ldr r0, _022134A4 ; =0x0380F000 cmp r1, r0 bhs _02213488 add r1, r1, r2 cmp r1, r0 movls r0, #1 add sp, sp, #4 movhi r0, #0 ldmia sp!, {lr} bx lr _02213478: add sp, sp, #4 mov r0, #0 ldmia sp!, {lr} bx lr _02213488: mov r0, #0 add sp, sp, #4 ldmia sp!, {lr} bx lr .align 2, 0 _02213498: .word MOD13_0223C420 _0221349C: .word 0x023FE800 _022134A0: .word 0x037F8000 _022134A4: .word 0x0380F000 arm_func_start MOD13_022134A8 MOD13_022134A8: ; 0x022134A8 ldr r3, _0221354C ; =0x0223C420 ldr r0, [r3, r0, lsl #2] cmp r0, #0 beq _022134EC cmp r0, #1 beq _02213508 cmp r0, #2 bne _0221353C ldr r0, _02213550 ; =0x027FFE00 cmp r1, r0 blo _02213544 ldr r0, _02213554 ; =0x027FFF60 add r1, r1, r2 cmp r1, r0 bhi _02213544 mov r0, #1 bx lr _022134EC: cmp r1, #0x2000000 blo _02213544 add r0, r1, r2 cmp r0, #0x22c0000 bhi _02213544 mov r0, #1 bx lr _02213508: cmp r1, #0x22c0000 blo _02213520 add r0, r1, r2 cmp r0, #0x2300000 movls r0, #1 bxls lr _02213520: cmp r1, #0x2000000 blo _02213544 add r0, r1, r2 cmp r0, #0x2300000 bhi _02213544 mov r0, #1 bx lr _0221353C: mov r0, #0 bx lr _02213544: mov r0, #0 bx lr .align 2, 0 _0221354C: .word MOD13_0223C420 _02213550: .word 0x027FFE00 _02213554: .word 0x027FFF60 arm_func_start MOD13_02213558 MOD13_02213558: ; 0x02213558 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldrh r4, [r1, #0x12] cmp r2, r4 addhs sp, sp, #4 movhs r0, #0 ldmhsia sp!, {r4, r5, lr} bxhs lr mov ip, #2 _0221357C: add r4, r1, ip, lsl #1 ldrh r4, [r4, #0xc] cmp r2, r4 bhs _0221359C sub r4, ip, #1 mov ip, r4, lsl #0x18 movs ip, ip, asr #0x18 bpl _0221357C _0221359C: cmp ip, #0 addlt sp, sp, #4 movlt r0, #0 ldmltia sp!, {r4, r5, lr} bxlt lr ldr r4, _02213628 ; =0x02240AFC add r5, r1, ip, lsl #1 ldr lr, [r4] ldrh r5, [r5, #0xc] add lr, lr, #0x1000 ldr lr, [lr, #0x318] sub r5, r2, r5 mul r2, r5, lr add r3, r3, #0xc add r5, r3, ip, lsl #4 ldr r3, [r5, #8] sub r3, r3, r2 str r3, [r0, #4] ldr r3, [r4] ldr r4, [r0, #4] add r3, r3, #0x1000 ldr r3, [r3, #0x318] cmp r4, r3 strhi r3, [r0, #4] ldr r1, [r1, ip, lsl #2] add r1, r2, r1 str r1, [r0, #8] ldr r1, [r5] add r1, r2, r1 str r1, [r0] strb ip, [r0, #0xc] mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr .align 2, 0 _02213628: .word MOD13_02240AFC arm_func_start MOD13_0221362C MOD13_0221362C: ; 0x0221362C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov r5, r0 add r4, r5, #0xc cmp r1, #0 mov r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, lr} bxeq lr mov r2, r0 _0221364C: str r0, [r5, r2, lsl #2] add r3, r1, r2, lsl #4 add r2, r2, #1 ldr r3, [r3, #0x14] and r2, r2, #0xff cmp r2, #3 add r0, r0, r3 blo _0221364C mov r8, #0 strh r8, [r4] ldr r6, _02213704 ; =0x02240AFC add r7, r1, #0xc _0221367C: ldr r0, [r6] add sl, r7, r8, lsl #4 add r0, r0, #0x1000 ldr r1, [r0, #0x318] ldr sb, [sl, #8] add r0, sb, r1 sub r0, r0, #1 bl _u32_div_f mov r1, r8, lsl #1 ldrh r3, [r4, r1] mov r2, r0, lsl #0x10 ldr r1, [sl, #4] add r2, r3, r2, lsr #16 mov r3, r2, lsl #0x10 mov r2, sb mov r0, r8 mov sb, r3, lsr #0x10 bl MOD13_02213394 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, lr} bxeq lr cmp r8, #2 addlo r0, r8, #1 movlo r0, r0, lsl #1 strloh sb, [r4, r0] add r0, r8, #1 and r8, r0, #0xff strhsh sb, [r5, #0x12] cmp r8, #3 blo _0221367C mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr} bx lr .align 2, 0 _02213704: .word MOD13_02240AFC arm_func_start MOD13_02213708 MOD13_02213708: ; 0x02213708 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r1, [r1] mov r7, r2 mov r6, r3 cmp r1, #0 beq _02213740 cmp r1, #1 beq _022137A4 cmp r1, #2 beq _02213880 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _02213740: ldr r2, [r0, #0x28] add r3, r0, #0x28 cmp r2, #0x2000000 blo _02213794 cmp r2, #0x22c0000 bhs _02213794 ldr r1, [r3, #4] add r0, r2, r1 cmp r0, #0x22c0000 bhi _02213794 str r1, [r7, #8] ldr r0, [r3] add sp, sp, #4 str r0, [r7, #4] ldr r0, [r7, #4] str r0, [r7] ldr r0, [r7, #0xc] bic r0, r0, #1 str r0, [r7, #0xc] ldmia sp!, {r4, r5, r6, r7, lr} bx lr _02213794: bl OS_Terminate add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _022137A4: add r4, r0, #0x38 ldr r2, [r0, #0x38] ldr r1, [r4, #4] mov ip, #0 mov r5, ip cmp r2, #0x2000000 add r3, r2, r1 blo _022137F4 ldr r0, _022138B0 ; =0x023FE800 cmp r2, r0 bhs _022137F4 cmp r3, #0x2300000 bls _02213820 cmp r3, r0 bhs _022137EC cmp r1, #0x40000 movls r5, #1 bls _02213820 _022137EC: mov ip, #1 b _02213820 _022137F4: ldr r0, _022138B4 ; =0x037F8000 cmp r2, r0 blo _0221381C ldr r0, _022138B8 ; =0x0380F000 cmp r2, r0 bhs _0221381C cmp r3, r0 movls r5, #1 movhi ip, #1 b _02213820 _0221381C: mov ip, #1 _02213820: cmp ip, #1 bne _0221382C bl OS_Terminate _0221382C: ldr r0, [r4, #4] cmp r5, #0 str r0, [r7, #8] ldr r0, [r4] str r0, [r7, #4] ldreq r0, [r7, #4] streq r0, [r7] beq _02213864 ldr r0, [r6] str r0, [r7] ldr r1, [r6] ldr r0, [r7, #8] add r0, r1, r0 str r0, [r6] _02213864: ldr r0, [r7, #0xc] add sp, sp, #4 bic r0, r0, #1 orr r0, r0, #1 str r0, [r7, #0xc] ldmia sp!, {r4, r5, r6, r7, lr} bx lr _02213880: mov r1, #0x160 ldr r0, _022138BC ; =0x027FFE00 str r1, [r7, #8] str r0, [r7, #4] ldr r0, [r7, #4] str r0, [r7] ldr r0, [r7, #0xc] bic r0, r0, #1 str r0, [r7, #0xc] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr .align 2, 0 _022138B0: .word 0x023FE800 _022138B4: .word 0x037F8000 _022138B8: .word 0x0380F000 _022138BC: .word 0x027FFE00 arm_func_start MOD13_022138C0 MOD13_022138C0: ; 0x022138C0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #8 mov r2, #0x22c0000 mov r5, r1 str r2, [sp] mov r6, r0 ldr r0, [r5, #0x24] ldr r4, _02213940 ; =0x0223C420 str r0, [r6] ldr r0, [r5, #0x34] add r8, r5, #0x160 str r0, [r6, #4] add sl, r6, #0xc mov sb, #0 add r7, sp, #0 _022138FC: mov r0, r5 mov r1, r4 mov r2, sl mov r3, r7 bl MOD13_02213708 add sb, sb, #1 cmp sb, #3 add sl, sl, #0x10 add r4, r4, #4 blt _022138FC mov r0, r8 add r1, r6, #0x3c mov r2, #0x88 bl MI_CpuCopy8 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr} bx lr .align 2, 0 _02213940: .word MOD13_0223C420 arm_func_start MOD13_02213944 MOD13_02213944: ; 0x02213944 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov sb, r0 mov r8, r1 mov r6, #0xff bl OS_DisableInterrupts mov r5, r0 bl MOD13_02214B60 cmp r0, #0 bne _02213984 mov r0, r5 bl OS_RestoreInterrupts add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr _02213984: ldr r0, _02213BFC ; =0x02240AFC ldr r0, [r0] add r1, r0, #0x1000 ldrb r1, [r1, #0x524] add r1, r1, #1 cmp r1, #0x10 ble _022139B8 mov r0, r5 bl OS_RestoreInterrupts add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr _022139B8: ldr r1, _02213C00 ; =0x000005D4 mov r4, #0 _022139C0: mla r2, r4, r1, r0 add r2, r2, #0x1000 ldr r3, [r2, #0xd40] cmp r3, sb bne _022139EC mov r0, r5 bl OS_RestoreInterrupts add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr _022139EC: ldrb r2, [r2, #0xd52] cmp r2, #0 moveq r6, r4 beq _02213A0C add r2, r4, #1 and r4, r2, #0xff cmp r4, #0x10 blo _022139C0 _02213A0C: cmp r4, #0x10 bne _02213A2C mov r0, r5 bl OS_RestoreInterrupts add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr _02213A2C: ldr r1, _02213C00 ; =0x000005D4 ldr r2, _02213BFC ; =0x02240AFC mul r4, r6, r1 add r0, r0, r4 add r0, r0, #0x1000 str sb, [r0, #0xd40] ldr r2, [r2] ldr r0, _02213C04 ; =0x00001788 mov r1, r8 add r0, r2, r0 add r7, r0, r4 mov r0, r7 bl MOD13_022138C0 add r0, sb, #0x1c add r1, r7, #0xc4 mov r2, #0x20 bl MI_CpuCopy8 ldr r1, _02213BFC ; =0x02240AFC ldr r0, _02213C08 ; =0x00001D2C ldr r2, [r1] mov r1, r7 add r0, r2, r0 add r0, r0, r4 bl MOD13_0221362C cmp r0, #0 bne _02213AAC mov r0, r5 bl OS_RestoreInterrupts add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr _02213AAC: ldr r1, _02213BFC ; =0x02240AFC ldr r0, _02213C0C ; =0x0000186C ldr r2, [r1] mov r1, sb add r0, r2, r0 add r0, r0, r4 add r2, r2, #0x1300 bl MOD13_02214A0C ldr r2, _02213BFC ; =0x02240AFC ldr r1, _02213C0C ; =0x0000186C ldr r0, [r2] add r0, r0, r4 add r0, r0, #0x1000 strb r6, [r0, #0xd21] ldr r0, [r2] add r0, r0, r1 add r0, r0, r4 bl MOD13_02214868 ldr r0, _02213C10 ; =0x02240A44 ldr r1, _02213BFC ; =0x02240AFC ldrb r7, [r0] ldr r3, [r1] mov r2, #1 add r6, r7, #1 add r3, r3, r4 strb r6, [r0] add r0, r3, #0x1000 strb r7, [r0, #0xd1f] ldr r0, [r1] add r3, r8, #0x1e8 add r0, r0, r4 add r0, r0, #0x1d00 strh r2, [r0, #0x4e] ldr r0, [r1] add r2, r8, #0x258 add r0, r0, r4 add r0, r0, #0x1000 str r8, [r0, #0xd44] ldr r0, [r1] add r0, r0, r4 add r0, r0, #0x1000 str r3, [r0, #0xd54] ldr r0, [r1] add r0, r0, r4 add r0, r0, #0x1000 str r2, [r0, #0xd58] ldr r0, [r1] add r0, r0, r4 add r0, r0, #0x1000 ldr r0, [r0, #0xd54] ldr r0, [r0, #0x6c] cmp r0, #0 beq _02213BB8 bl MOD13_02216DA4 cmp r0, #0 bne _02213BB8 ldr r1, _02213BFC ; =0x02240AFC ldr r0, _02213C14 ; =0x00007CE0 ldr r1, [r1] add r0, r1, r0 bl MOD13_02216D90 ldr r1, _02213BFC ; =0x02240AFC ldr r0, _02213C18 ; =0x000074E0 ldr r2, [r1] mov r1, #0x800 add r0, r2, r0 bl MOD13_02216DC0 _02213BB8: ldr r2, _02213BFC ; =0x02240AFC mov r3, #1 ldr r1, [r2] mov r0, r5 add r1, r1, r4 add r1, r1, #0x1000 strb r3, [r1, #0xd52] ldr r1, [r2] add r1, r1, #0x1000 ldrb r2, [r1, #0x524] add r2, r2, #1 strb r2, [r1, #0x524] bl OS_RestoreInterrupts mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr .align 2, 0 _02213BFC: .word MOD13_02240AFC _02213C00: .word 0x000005D4 _02213C04: .word 0x00001788 _02213C08: .word 0x00001D2C _02213C0C: .word 0x0000186C _02213C10: .word MOD13_02240A44 _02213C14: .word 0x00007CE0 _02213C18: .word 0x000074E0 arm_func_start MOD13_02213C1C MOD13_02213C1C: ; 0x02213C1C stmdb sp!, {lr} sub sp, sp, #4 mov lr, r1 ldr ip, [r0] ldr r1, [r0, #0xc] cmp lr, #0x4000 movlo lr, #0x4000 cmp r2, #0x8000 movhi r2, #0x8000 cmp lr, ip add r1, ip, r1 movlo lr, ip cmp r2, r1 movhi r2, r1 cmp lr, r2 addhs sp, sp, #4 ldmhsia sp!, {lr} bxhs lr cmp r3, #0 beq _02213C8C ldr r0, [r0, #8] sub r2, r2, lr add r0, r0, lr mov r1, #0 bl MI_CpuFill8 add sp, sp, #4 ldmia sp!, {lr} bx lr _02213C8C: ldr r3, [r0, #4] ldr r1, [r0, #8] add r0, r3, lr add r1, r1, lr sub r2, r2, lr bl MI_CpuCopy8 add sp, sp, #4 ldmia sp!, {lr} bx lr arm_func_start MOD13_02213CB0 MOD13_02213CB0: ; 0x02213CB0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x6c str r2, [sp, #4] cmp r2, #0x164 mov r2, #0 mov sl, r0 mov sb, r1 str r2, [sp, #8] blo _022140F4 ldr r8, [sp, #4] mov r7, sb str r2, [sp, #0xc] mov r6, r2 mov r5, r2 cmp sl, #0 add r7, r7, #0x160 sub r8, r8, #0x160 beq _02213D24 ldr r4, [sl, #0x2c] ldr r3, [sl, #0x24] mov r2, #0x160 sub fp, r4, r3 bl FS_ReadFile cmp r0, #0x160 ldr r4, [sb, #0x80] movlt r8, r5 cmp r4, #0 moveq r4, #0x1000000 b _02213D9C _02213D24: ldr r0, _02214104 ; =0x027FFE00 mov r1, #1 ldr r4, [r0, #0x80] add r0, sp, #0x20 cmp r4, #0 moveq r4, #0x1000000 str r1, [sp, #0xc] bl FS_InitFile ldr r0, _02214108 ; =0x0223F788 mov r1, #3 bl FS_FindArchive mov r1, r0 mvn r0, #0 str r0, [sp] add r0, sp, #0x20 mov r2, #0 add r3, r4, #0x88 bl FS_OpenFileDirect ldr r2, [sp, #0x4c] ldr r1, [sp, #0x44] ldr r0, _02214104 ; =0x027FFE00 sub fp, r2, r1 mov r1, sb mov r2, #0x160 add sl, sp, #0x20 bl MI_CpuCopy8 ldr r1, [sb, #0x60] ldr r0, _0221410C ; =0x00406000 orr r0, r1, r0 str r0, [sb, #0x60] _02213D9C: cmp r8, #0x88 movlo r8, #0 blo _02213DD0 mov r0, sl add r1, fp, r4 mov r2, #0 bl FS_SeekFile mov r0, sl mov r1, r7 mov r2, #0x88 bl FS_ReadFile add r7, r7, #0x88 sub r8, r8, #0x88 _02213DD0: cmp r8, #0x70 blo _02213E40 mov r0, r7 mov r6, r7 bl MOD13_02216B80 add r7, r7, #0x70 sub r8, r8, #0x70 mov r0, #3 str r0, [sp] mov r0, r6 mov r1, #0 mov r2, #0x160 mov r3, sb bl MOD13_02216B0C ldr r0, [sl, #8] mov r4, #0 b _02213E18 _02213E14: add r4, r4, #1 _02213E18: cmp r4, #3 bge _02213E2C ldrsb r1, [r0, r4] cmp r1, #0 bne _02213E14 _02213E2C: mov r2, r4 add r1, r6, #0x10 bl MI_CpuCopy8 str r4, [r6, #0x14] b _02213E44 _02213E40: mov r8, #0 _02213E44: cmp r8, #0x10 movlo r8, #0 blo _02213E8C mov r0, #0 str r0, [r7] ldr r0, [sl, #0x24] ldr r1, [sb, #0x20] add r0, fp, r0 add r0, r1, r0 str r0, [r7, #4] ldr r0, [sl, #0x24] ldr r1, [sb, #0x30] add r0, fp, r0 add r0, r1, r0 mov r5, r7 str r0, [r7, #8] add r7, r7, #0x10 sub r8, r8, #0x10 _02213E8C: ldr r1, [sb, #0x2c] ldr r0, [sb, #0x3c] add r0, r1, r0 cmp r8, r0 blo _02213F38 ldr r4, [sl, #0x24] ldr r1, [r5, #4] mov r0, sl sub r1, r1, r4 mov r2, #0 bl FS_SeekFile ldr r2, [sb, #0x2c] mov r0, sl mov r1, r7 bl FS_ReadFile mov r0, #3 str r0, [sp] ldr r1, [r5, #4] ldr r2, [sb, #0x2c] mov r0, r6 mov r3, r7 bl MOD13_02216B0C ldr r1, [sb, #0x2c] mov r0, sl add r7, r7, r1 ldr r1, [r5, #8] mov r2, #0 sub r1, r1, r4 bl FS_SeekFile ldr r2, [sb, #0x3c] mov r0, sl mov r1, r7 bl FS_ReadFile mov r0, #3 str r0, [sp] ldr r1, [r5, #8] ldr r2, [sb, #0x3c] mov r3, r7 mov r0, r6 bl MOD13_02216B0C mov r0, #1 str r0, [sp, #8] b _0221400C _02213F38: cmp r8, #0xcc00 blo _0221400C ldr r4, [sl, #0x24] ldr r5, [r5, #4] mov r0, sl sub r1, r5, r4 mov r2, #0 bl FS_SeekFile mov r0, sl mov r1, r7 mov r2, #0x4400 bl FS_ReadFile mov r0, #3 str r0, [sp] mov r0, r6 mov r1, r5 mov r2, #0x4400 mov r3, r7 bl MOD13_02216B0C add r1, r5, #0x4400 mov r0, sl sub r1, r1, r4 mov r2, #0 bl FS_SeekFile mov r0, sl add r1, r7, #0x4400 mov r2, #0x4400 bl FS_ReadFile mov r0, #2 str r0, [sp] mov r0, r6 add r1, r5, #0x4400 mov r2, #0x4400 add r3, r7, #0x4400 bl MOD13_02216B0C add r1, r5, #0x8800 mov r0, sl sub r1, r1, r4 mov r2, #0 bl FS_SeekFile mov r0, sl add r1, r7, #0x8800 mov r2, #0x4400 bl FS_ReadFile mov r0, #2 str r0, [sp] add r1, r5, #0x8800 add r3, r7, #0x8800 mov r0, r6 mov r2, #0x4400 bl MOD13_02216B0C mov r0, #1 str r0, [sp, #8] _0221400C: mov r0, sl mov r1, fp mov r2, #0 bl FS_SeekFile ldr r0, [sp, #0xc] cmp r0, #0 beq _022140DC add r0, sp, #0x20 bl FS_CloseFile ldr r0, [sp, #8] cmp r0, #0 beq _022140DC ldr r1, [sb, #0x20] ldr r0, _02214110 ; =0x0223F784 str r1, [sp, #0x10] ldr r2, [sb, #0x28] ldr r1, [sb, #0x20] ldr r4, [r0] sub r0, r2, r1 str r0, [sp, #0x14] ldr r2, [r6, #0x48] ldr r1, [sb, #0x20] add r0, sp, #0x10 sub r1, r2, r1 str r1, [sp, #0x18] ldr r1, [sp, #4] mov r2, #0x8000 str r1, [sp, #0x1c] mov r1, #0x4000 mov r3, #1 bl MOD13_02213C1C ldr r0, [r4, #4] cmp r0, #0 beq _022140C4 add r7, sp, #0x10 mov r5, #0 _0221409C: ldr r1, [r4] ldr r2, [r4, #4] mov r0, r7 mov r3, r5 add r2, r1, r2 bl MOD13_02213C1C add r4, r4, #8 ldr r0, [r4, #4] cmp r0, #0 bne _0221409C _022140C4: ldr r1, [sb, #0x28] ldr r2, _02214114 ; =_start_AutoloadDoneCallback ldr r3, [r6, #0x48] ldr r0, _02214118 ; =0xE12FFF1E sub r1, r2, r1 str r0, [r3, r1] _022140DC: ldr r0, [sp, #8] cmp r0, #0 beq _022140F4 ldr r1, [sp, #4] mov r0, sb bl DC_FlushRange _022140F4: ldr r0, [sp, #8] add sp, sp, #0x6c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} bx lr .align 2, 0 _02214104: .word 0x027FFE00 _02214108: .word MOD13_0223F788 _0221410C: .word 0x00406000 _02214110: .word MOD13_0223F784 _02214114: .word _start_AutoloadDoneCallback _02214118: .word 0xE12FFF1E arm_func_start MOD13_0221411C MOD13_0221411C: ; 0x0221411C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x64 mov r6, #0 movs r7, r0 mov r5, r6 beq _02214168 ldr ip, [r7, #0x2c] ldr r3, [r7, #0x24] add r1, sp, #0 mov r2, #0x60 sub r4, ip, r3 bl FS_ReadFile cmp r0, #0x60 mov r0, r7 mov r1, r4 mov r2, #0 addhs r6, sp, #0 bl FS_SeekFile b _0221416C _02214168: ldr r6, _0221419C ; =0x027FFE00 _0221416C: cmp r6, #0 beq _0221418C ldr r1, [r6, #0x2c] ldr r0, [r6, #0x3c] add r1, r1, #0x268 add r5, r1, r0 cmp r5, #0x10000 movlo r5, #0x10000 _0221418C: mov r0, r5 add sp, sp, #0x64 ldmia sp!, {r4, r5, r6, r7, lr} bx lr .align 2, 0 _0221419C: .word 0x027FFE00 arm_func_start MOD13_022141A0 MOD13_022141A0: ; 0x022141A0 mov r2, r1, asr #1 cmp r2, #0 mov r3, #0 ble _022141C4 _022141B0: ldrh r1, [r0], #2 sub r2, r2, #1 cmp r2, #0 add r3, r3, r1 bgt _022141B0 _022141C4: ldr r0, _022141E4 ; =0x0000FFFF and r1, r3, r0 add r1, r1, r3, lsr #16 add r1, r1, r1, lsr #16 eor r0, r1, r0 mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 bx lr .align 2, 0 _022141E4: .word 0x0000FFFF arm_func_start MOD13_022141E8 MOD13_022141E8: ; 0x022141E8 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r4, r2 add r2, r6, #0x1f mov r5, r1 mov r0, r4 bic r1, r2, #0x1f bl DC_FlushRange bl DC_WaitWriteBufferEmpty mov r0, r4 mov r1, r6 mov r2, r5 bl MOD13_02214C08 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start MOD13_02214224 MOD13_02214224: ; 0x02214224 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x14 ldr r3, _022144AC ; =0x02240A50 str r0, [sp, #8] ldr r0, [r3, #4] ldrb r3, [r3, #0xe] ldrb r0, [r0, #0x4b4] str r1, [sp, #0xc] str r2, [sp, #0x10] cmp r3, r0 beq _02214254 bl MOD13_022144C8 _02214254: ldr r3, _022144B0 ; =0x02240A80 ldr r1, _022144AC ; =0x02240A50 ldrb r2, [r3, #4] ldr r0, [r1, #4] ldrb r5, [r1, #0x11] bic r2, r2, #3 orr r2, r2, #2 strb r2, [r3, #4] ldrb r4, [r0, #0x4b3] ldrb r2, [r1, #0xe] ldrb r7, [r3, #4] strb r4, [r3, #5] strb r2, [r3, #6] ldr r4, [r0, #0x4b8] ldr r2, _022144B4 ; =0x02240A48 str r4, [r3] ldrb r6, [r0, #0x4b5] add r4, r5, #1 bic r7, r7, #0xfc and r6, r6, #0x3f orr r6, r7, r6, lsl #2 strb r6, [r3, #4] strb r4, [r1, #0x11] strb r5, [r3, #7] ldrb r4, [r0, #0x358] add r1, r0, #0x300 ldr r2, [r2] strb r4, [r3, #0xa] ldrh r4, [r1, #0x5a] cmp r2, #0 strh r4, [r3, #0xc] ldrh r1, [r1, #0x5c] strh r1, [r3, #0xe] bne _022142F4 ldr r1, _022144B8 ; =0x02240A4C ldr r1, [r1] cmp r1, #0 beq _022142F4 ldr r0, [r0, #0x4b8] blx r1 _022142F4: ldr r0, _022144AC ; =0x02240A50 ldr r1, _022144B0 ; =0x02240A80 ldr r2, [r0, #4] mov r3, #0 _02214304: ldrb r0, [r2, #0x4a8] add r3, r3, #1 cmp r3, #8 strb r0, [r1, #0x68] add r2, r2, #1 add r1, r1, #1 blt _02214304 ldr r1, _022144BC ; =0x02240A90 mov r0, #0 mov r2, #0x58 bl MIi_CpuClear16 ldr r0, _022144AC ; =0x02240A50 mov sl, #0 ldr r1, [r0, #4] ldr sb, _022144BC ; =0x02240A90 add r0, r1, #0x400 add r1, r1, #0x300 ldrh r2, [r0, #0xb0] ldrh r0, [r1, #0x5a] mov r5, sl mov r8, sl eor r0, r2, r0 mov r0, r0, lsl #0x10 mov r7, r0, lsr #0x10 mov fp, #0x16 mov r4, #2 _0221436C: mov r6, r4, lsl r5 ands r0, r7, r6 beq _022143C0 ldr r0, _022144AC ; =0x02240A50 mov r1, sb ldr r2, [r0, #4] ldr r0, _022144C0 ; =0x0000035E add r0, r2, r0 add r0, r0, r8 mov r2, fp bl MIi_CpuCopy16 ldr r0, _022144AC ; =0x02240A50 add sl, sl, #1 ldr r0, [r0, #4] add sb, sb, #0x16 add r0, r0, #0x400 ldrh r1, [r0, #0xb0] cmp sl, #4 orr r1, r1, r6 strh r1, [r0, #0xb0] beq _022143D0 _022143C0: add r5, r5, #1 cmp r5, #0xf add r8, r8, #0x16 blt _0221436C _022143D0: cmp sl, #4 bhs _022143F0 mov r0, #0x16 mul r1, sl, r0 ldr r2, _022144BC ; =0x02240A90 ldrb r0, [r2, r1] bic r0, r0, #0xf0 strb r0, [r2, r1] _022143F0: ldr r2, _022144B0 ; =0x02240A80 mov r3, #0 ldr r0, _022144C4 ; =0x02240A88 mov r1, #0x68 strh r3, [r2, #8] bl MOD13_022141A0 ldr r2, _022144AC ; =0x02240A50 ldr r1, _022144B0 ; =0x02240A80 ldr r3, [r2, #4] strh r0, [r1, #8] add r0, r3, #0x400 add r1, r3, #0x300 ldrh r3, [r0, #0xb0] ldrh r0, [r1, #0x5a] ldr r1, _022144B0 ; =0x02240A80 cmp r3, r0 moveq r0, #1 streqb r0, [r2, #0xc] ldr r0, [sp, #0x10] ldr r3, [sp, #8] orr r2, r0, #3 ldr r0, [sp, #0xc] and r4, r2, #0xff str r0, [sp] mov r0, #0 mov r2, #0x70 str r4, [sp, #4] bl WM_SetGameInfo ldr r0, _022144B4 ; =0x02240A48 ldr r0, [r0] cmp r0, #1 addne sp, sp, #0x14 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} bxne lr ldr r0, _022144B8 ; =0x02240A4C ldr r1, [r0] cmp r1, #0 addeq sp, sp, #0x14 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} bxeq lr ldr r0, _022144AC ; =0x02240A50 ldr r0, [r0, #4] ldr r0, [r0, #0x4b8] blx r1 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} bx lr .align 2, 0 _022144AC: .word MOD13_02240A50 _022144B0: .word MOD13_02240A80 _022144B4: .word MOD13_02240A48 _022144B8: .word MOD13_02240A4C _022144BC: .word MOD13_02240A90 _022144C0: .word 0x0000035E _022144C4: .word MOD13_02240A88 arm_func_start MOD13_022144C8 MOD13_022144C8: ; 0x022144C8 ldr r1, _022144F4 ; =0x02240A50 mov r3, #1 ldr r0, [r1, #4] mov r2, #5 add r0, r0, #0x400 strh r3, [r0, #0xb0] ldr r0, [r1, #4] ldrb r0, [r0, #0x4b4] strb r0, [r1, #0xe] strb r2, [r1, #0xc] bx lr .align 2, 0 _022144F4: .word MOD13_02240A50 arm_func_start MOD13_022144F8 MOD13_022144F8: ; 0x022144F8 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 ldr r3, _02214660 ; =0x02240A50 mov r6, r0 ldr r0, [r3, #4] ldr r3, [r3, #8] add r7, r0, #0x358 add r0, r3, #0x62 cmp r0, r7 mov r5, r1 ldrls r0, _02214664 ; =0x02240A80 movls r1, #0x62 mov r4, r2 strlsb r1, [r0, #0xc] bls _02214558 ldr r0, _02214664 ; =0x02240A80 sub r1, r7, r3 strb r1, [r0, #0xc] ldrb r2, [r0, #0xc] ldr r1, _02214668 ; =0x02240A8E mov r0, #0 add r1, r1, r2 rsb r2, r2, #0x62 bl MIi_CpuClear16 _02214558: ldr r0, _02214664 ; =0x02240A80 ldr r1, _02214660 ; =0x02240A50 ldrb r2, [r0, #0xc] ldr r0, [r1, #8] ldr r1, _02214668 ; =0x02240A8E bl MIi_CpuCopy16 ldr r3, _02214660 ; =0x02240A50 ldr r2, _02214664 ; =0x02240A80 ldrb r8, [r3, #0xf] ldrb r1, [r3, #0x10] ldrb r7, [r2, #4] strb r8, [r2, #0xa] ldr r0, [r3, #4] strb r1, [r2, #0xb] ldrb r1, [r0, #0x4b2] bic r7, r7, #3 ldrb r8, [r3, #0xe] and r1, r1, #3 orr r1, r7, r1 strb r1, [r2, #4] ldrb ip, [r0, #0x4b3] ldrb r1, [r2, #4] ldrb r7, [r3, #0x11] strb ip, [r2, #5] strb r8, [r2, #6] ldr r8, [r0, #0x4b8] bic r1, r1, #0xfc str r8, [r2] ldrb r0, [r0, #0x4b5] add lr, r7, #1 mov ip, #0 and r0, r0, #0x3f orr r8, r1, r0, lsl #2 ldr r0, _0221466C ; =0x02240A88 mov r1, #0x68 strb r8, [r2, #4] strb lr, [r3, #0x11] strb r7, [r2, #7] strh ip, [r2, #8] bl MOD13_022141A0 ldr r1, _02214660 ; =0x02240A50 ldr r2, _02214664 ; =0x02240A80 ldrb ip, [r1, #0xf] strh r0, [r2, #8] ldrb r3, [r1, #0x10] add r0, ip, #1 strb r0, [r1, #0xf] ldrb r0, [r1, #0xf] mov r2, #0x70 cmp r0, r3 ldrlo r0, [r1, #8] mov r3, r6 addlo r0, r0, #0x62 strlo r0, [r1, #8] movhs r0, #4 strhsb r0, [r1, #0xc] orr r0, r4, #3 and r4, r0, #0xff str r5, [sp] ldr r1, _02214664 ; =0x02240A80 mov r0, #0 str r4, [sp, #4] bl WM_SetGameInfo add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr .align 2, 0 _02214660: .word MOD13_02240A50 _02214664: .word MOD13_02240A80 _02214668: .word MOD13_02240A8E _0221466C: .word MOD13_02240A88 arm_func_start MOD13_02214670 MOD13_02214670: ; 0x02214670 ldr r0, _022146B8 ; =0x02240A50 ldrb r1, [r0, #0xc] cmp r1, #2 bxne lr ldr r2, [r0, #4] ldrb r1, [r2, #0x4b2] cmp r1, #0 moveq r1, #9 streqb r1, [r0, #0x10] streq r2, [r0, #8] addne r1, r2, #0x220 movne r2, #4 strne r1, [r0, #8] strneb r2, [r0, #0x10] ldr r0, _022146B8 ; =0x02240A50 mov r1, #3 strb r1, [r0, #0xc] bx lr .align 2, 0 _022146B8: .word MOD13_02240A50 arm_func_start MOD13_022146BC MOD13_022146BC: ; 0x022146BC stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r0, _02214760 ; =0x02240A50 ldr r1, [r0] cmp r1, #0 bne _02214710 bl MOD13_02214BF4 mov r4, r0 bl MOD13_02214BE0 str r0, [sp] mov ip, #8 ldr r1, _02214764 ; =0x02240A80 mov r3, r4 mov r0, #0 mov r2, #0x70 str ip, [sp, #4] bl WM_SetGameInfo add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, lr} bx lr _02214710: ldr r0, [r0, #4] cmp r0, #0 beq _0221472C ldr r0, [r0, #0x4bc] cmp r0, #0 beq _0221472C mov r1, r0 _0221472C: ldr r0, _02214760 ; =0x02240A50 str r1, [r0, #4] bl MOD13_02214810 ldr r1, _02214760 ; =0x02240A50 mov r2, #2 ldr r3, [r1, #4] mov r0, #1 ldrb r3, [r3, #0x4b4] strb r3, [r1, #0xe] strb r2, [r1, #0xc] add sp, sp, #8 ldmia sp!, {r4, lr} bx lr .align 2, 0 _02214760: .word MOD13_02240A50 _02214764: .word MOD13_02240A80 arm_func_start MOD13_02214768 MOD13_02214768: ; 0x02214768 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 mov r5, r2 ldr r4, _0221480C ; =0x02240A50 _02214780: ldrb r0, [r4, #0xc] cmp r0, #6 addls pc, pc, r0, lsl #2 b _02214780 _02214790: ; jump table b _022147AC ; case 0 b _022147AC ; case 1 b _022147C4 ; case 2 b _022147CC ; case 3 b _022147E8 ; case 4 b _022147F0 ; case 5 b _02214780 ; case 6 _022147AC: bl MOD13_022146BC cmp r0, #0 bne _02214780 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _022147C4: bl MOD13_02214670 b _02214780 _022147CC: mov r0, r7 mov r1, r6 mov r2, r5 bl MOD13_022144F8 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _022147E8: bl MOD13_022144C8 b _02214780 _022147F0: mov r0, r7 mov r1, r6 mov r2, r5 bl MOD13_02214224 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr .align 2, 0 _0221480C: .word MOD13_02240A50 arm_func_start MOD13_02214810 MOD13_02214810: ; 0x02214810 ldr r0, _02214830 ; =0x02240A50 mov r1, #0 strb r1, [r0, #0xd] strb r1, [r0, #0xe] strb r1, [r0, #0xf] strb r1, [r0, #0x10] strb r1, [r0, #0x11] bx lr .align 2, 0 _02214830: .word MOD13_02240A50 arm_func_start MOD13_02214834 MOD13_02214834: ; 0x02214834 ldr r1, _0221485C ; =0x02240A50 mov r3, #0 ldr r0, _02214860 ; =0x02240A4C mov r2, #1 ldr ip, _02214864 ; =MOD13_02214810 str r3, [r1] str r3, [r1, #4] strb r2, [r1, #0xc] str r3, [r0] bx ip .align 2, 0 _0221485C: .word MOD13_02240A50 _02214860: .word MOD13_02240A4C _02214864: .word MOD13_02214810 arm_func_start MOD13_02214868 MOD13_02214868: ; 0x02214868 ldr r1, _022148A8 ; =0x02240A50 ldr r2, [r1] cmp r2, #0 streq r0, [r1] beq _0221489C ldr r1, [r2, #0x4bc] cmp r1, #0 beq _02214898 _02214888: mov r2, r1 ldr r1, [r1, #0x4bc] cmp r1, #0 bne _02214888 _02214898: str r0, [r2, #0x4bc] _0221489C: mov r1, #0 str r1, [r0, #0x4bc] bx lr .align 2, 0 _022148A8: .word MOD13_02240A50 arm_func_start MOD13_022148AC MOD13_022148AC: ; 0x022148AC ldrh r1, [r0], #2 mov r2, #0 cmp r1, #0 beq _022148CC _022148BC: ldrh r1, [r0], #2 add r2, r2, #1 cmp r1, #0 bne _022148BC _022148CC: mov r0, r2 bx lr arm_func_start MOD13_022148D4 MOD13_022148D4: ; 0x022148D4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r4, _02214950 ; =0x0000035E mov r6, r0 mov r5, r2 mov r0, r1 ldr r2, _02214954 ; =0x0000014A add r1, r6, r4 mov r4, r3 mov r7, #1 bl MIi_CpuCopy16 mov r2, #0 mov r1, #2 _02214908: mov r0, r1, lsl r2 ands r0, r5, r0 addne r0, r7, #1 add r2, r2, #1 andne r7, r0, #0xff cmp r2, #0xf blt _02214908 strb r7, [r6, #0x358] orr r1, r5, #1 add r0, r6, #0x300 strh r1, [r0, #0x5a] strh r4, [r0, #0x5c] ldrb r0, [r6, #0x4b4] add r0, r0, #1 strb r0, [r6, #0x4b4] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr .align 2, 0 _02214950: .word 0x0000035E _02214954: .word 0x0000014A arm_func_start MOD13_02214958 MOD13_02214958: ; 0x02214958 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x48 cmp r2, #0 movne r4, #0x200 moveq r4, #0x20 mov r6, r0 mov r5, r1 cmp r2, #0 addne r5, r5, #0x20 cmp r6, #0 addeq sp, sp, #0x48 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, lr} bxeq lr add r0, sp, #0 bl FS_InitFile add r0, sp, #0 mov r1, r6 bl FS_OpenFile cmp r0, #0 addeq sp, sp, #0x48 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, lr} bxeq lr ldr r1, [sp, #0x28] ldr r0, [sp, #0x24] sub r0, r1, r0 cmp r4, r0 beq _022149E4 add r0, sp, #0 bl FS_CloseFile add sp, sp, #0x48 mov r0, #0 ldmia sp!, {r4, r5, r6, lr} bx lr _022149E4: add r0, sp, #0 mov r1, r5 mov r2, r4 bl FS_ReadFile add r0, sp, #0 bl FS_CloseFile mov r0, #1 add sp, sp, #0x48 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start MOD13_02214A0C MOD13_02214A0C: ; 0x02214A0C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r0 mov r5, r1 mov r4, r2 mov r1, r6 mov r0, #0 mov r2, #0x4c0 bl MIi_CpuClear16 mov r0, #0 strb r0, [r6, #0x4b2] ldr r0, [r5, #0xc] mov r1, r6 mov r2, #1 bl MOD13_02214958 cmp r0, #0 moveq r7, #1 ldr r0, [r5, #0x10] mov r1, r6 mov r2, #0 movne r7, #0 bl MOD13_02214958 cmp r0, #0 moveq r0, #1 movne r0, #0 orrs r0, r7, r0 beq _02214A90 mov r3, #1 mov r1, r6 mov r0, #0 mov r2, #0x220 strb r3, [r6, #0x4b2] bl MIi_CpuClearFast _02214A90: ldr r0, [r5, #0x14] cmp r4, #0 str r0, [r6, #0x4b8] beq _02214AB0 mov r0, r4 add r1, r6, #0x220 mov r2, #0x16 bl MIi_CpuCopy16 _02214AB0: ldrb r0, [r5, #0x18] strb r0, [r6, #0x236] ldr r0, [r5, #4] bl MOD13_022148AC mov r2, r0, lsl #0x11 ldr r0, [r5, #4] add r1, r6, #0x238 mov r2, r2, lsr #0x10 bl MIi_CpuCopy16 ldr r0, [r5, #8] add r1, r6, #0x298 mov r2, #0xc0 bl MIi_CpuCopy16 mov r1, #1 strb r1, [r6, #0x358] add r0, r6, #0x300 strh r1, [r0, #0x5a] add r0, r6, #0x400 strh r1, [r0, #0xb0] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr arm_func_start MOD13_02214B08 MOD13_02214B08: ; 0x02214B08 stmdb sp!, {lr} sub sp, sp, #4 cmp r1, #2 addeq sp, sp, #4 ldmeqia sp!, {lr} bxeq lr cmp r1, #0 addeq sp, sp, #4 ldmeqia sp!, {lr} bxeq lr ldr r2, _02214B5C ; =0x02240AF8 strh r0, [sp] ldr r0, [r2] strh r1, [sp, #2] ldr r2, [r0, #0x51c] add r1, sp, #0 mov r0, #0xff blx r2 add sp, sp, #4 ldmia sp!, {lr} bx lr .align 2, 0 _02214B5C: .word MOD13_02240AF8 arm_func_start MOD13_02214B60 MOD13_02214B60: ; 0x02214B60 ldr r0, _02214B7C ; =0x02240AF8 ldr r0, [r0] ldrb r0, [r0, #0x50d] cmp r0, #1 moveq r0, #1 movne r0, #0 bx lr .align 2, 0 _02214B7C: .word MOD13_02240AF8 arm_func_start MOD13_02214B80 MOD13_02214B80: ; 0x02214B80 ldr r0, _02214BDC ; =0x02240AF8 ldr r1, [r0] ldrh r0, [r1, #0x12] cmp r0, #0 ldrh r0, [r1, #0xe] movne r2, #2 moveq r2, #0 cmp r0, #0 movne r3, #1 ldrh r0, [r1, #0x14] moveq r3, #0 cmp r0, #0 movne ip, #4 ldrh r0, [r1, #0x16] moveq ip, #0 cmp r0, #0 movne r1, #8 orr r0, r3, r2 moveq r1, #0 orr r0, ip, r0 orr r0, r1, r0 and r0, r0, #0xff bx lr .align 2, 0 _02214BDC: .word MOD13_02240AF8 arm_func_start MOD13_02214BE0 MOD13_02214BE0: ; 0x02214BE0 ldr r0, _02214BF0 ; =0x02240AF8 ldr r0, [r0] ldrh r0, [r0, #0xc] bx lr .align 2, 0 _02214BF0: .word MOD13_02240AF8 arm_func_start MOD13_02214BF4 MOD13_02214BF4: ; 0x02214BF4 ldr r0, _02214C04 ; =0x02240AF8 ldr r0, [r0] ldr r0, [r0, #8] bx lr .align 2, 0 _02214C04: .word MOD13_02240AF8 arm_func_start MOD13_02214C08 MOD13_02214C08: ; 0x02214C08 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr ip, _02214D04 ; =0x02240AF8 mov r3, r1, lsl #0x10 ldr r5, [ip] mov ip, r2, lsl #0x10 add lr, r5, #0x500 ldrh r4, [lr, #0x28] mov r1, r0 mov r2, r3, lsr #0x10 cmp r4, #0 mov r4, ip, lsr #0x10 beq _02214C48 ldrh r0, [lr, #0x26] cmp r0, #1 bne _02214C58 _02214C48: add sp, sp, #4 mov r0, #1 ldmia sp!, {r4, r5, lr} bx lr _02214C58: ldrh r0, [lr, #0x24] cmp r0, #1 beq _02214C70 cmp r0, #2 beq _02214CBC b _02214CF4 _02214C70: ldrh r0, [lr, #0x2c] cmp r0, #0 moveq r0, #0x3e8 movne r0, #0 mov r3, r0, lsl #0x10 str r4, [sp] ldr r0, [r5, #0x508] mov r3, r3, lsr #0x10 bl MOD13_02214D0C cmp r0, #2 ldreq r1, _02214D04 ; =0x02240AF8 moveq r2, #1 ldreq r1, [r1] add sp, sp, #4 streqb r2, [r1, #0x50c] cmp r0, #2 moveq r0, #0 ldmia sp!, {r4, r5, lr} bx lr _02214CBC: ldr r0, _02214D08 ; =MOD13_02215724 mov r3, #0 str r4, [sp] bl MOD13_02214D0C cmp r0, #2 ldreq r1, _02214D04 ; =0x02240AF8 moveq r2, #1 ldreq r1, [r1] add sp, sp, #4 streqb r2, [r1, #0x50c] cmp r0, #2 moveq r0, #0 ldmia sp!, {r4, r5, lr} bx lr _02214CF4: mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr .align 2, 0 _02214D04: .word MOD13_02240AF8 _02214D08: .word MOD13_02215724 arm_func_start MOD13_02214D0C MOD13_02214D0C: ; 0x02214D0C stmdb sp!, {r4, lr} sub sp, sp, #0x10 ldrh r4, [sp, #0x18] mov r3, r2 mov r2, r1 str r4, [sp] mov r4, #1 str r4, [sp, #4] mov r4, #3 mov r1, #0 str r4, [sp, #8] bl WM_SetMPDataToPortEx mov r4, r0 mov r1, r4 mov r0, #0xf bl MOD13_02214B08 mov r0, r4 add sp, sp, #0x10 ldmia sp!, {r4, lr} bx lr arm_func_start MOD13_02214D5C MOD13_02214D5C: ; 0x02214D5C ldr r1, _02214D68 ; =0x02240B00 strh r0, [r1, #6] bx lr .align 2, 0 _02214D68: .word MOD13_02240B00 arm_func_start MOD13_02214D6C MOD13_02214D6C: ; 0x02214D6C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r0 ldr r0, _02214F08 ; =MOD13_02216098 mov r1, r5 bl WM_Disconnect cmp r5, #0 addeq sp, sp, #4 ldmeqia sp!, {r4, r5, r6, r7, lr} bxeq lr cmp r5, #0x10 addhs sp, sp, #4 ldmhsia sp!, {r4, r5, r6, r7, lr} bxhs lr ldr r2, _02214F0C ; =0x02240AFC sub r4, r5, #1 ldr r0, [r2] mov r1, #0 add r0, r0, r4, lsl #1 add r0, r0, #0x1400 strh r1, [r0, #0x8a] ldr r3, [r2] ldr r0, _02214F10 ; =0x000014A8 mov r2, #4 add r0, r3, r0 add r0, r0, r4, lsl #2 bl MI_CpuFill8 ldr r0, _02214F0C ; =0x02240AFC mov r2, #0x16 ldr r0, [r0] mov r1, #0 add r0, r0, #0x1340 mla r0, r4, r2, r0 bl MI_CpuFill8 mov r0, r5 bl MOD13_02217234 ldr lr, _02214F0C ; =0x02240AFC mov r2, #0 ldr r1, [lr] mvn r0, #0 add r1, r1, r4, lsl #1 add r1, r1, #0x1700 strh r2, [r1, #0x54] ldr r3, [lr] add r1, r3, r4 add r1, r1, #0x1500 ldrsb r2, [r1, #0x26] cmp r2, r0 beq _02214E9C ldr r1, _02214F14 ; =0x000005D4 and r2, r2, #0xff mul r1, r2, r1 add r2, r3, r1 add ip, r2, #0x1d00 mov r3, #1 ldrh r6, [ip, #0x4e] mvn r2, r3, lsl r5 and r6, r6, r2 strh r6, [ip, #0x4e] ldr r7, [lr] mov r6, r4 add r7, r7, r1 add ip, r7, #0x1d00 ldrh r7, [ip, #0x50] orr r3, r7, r3, lsl r5 strh r3, [ip, #0x50] ldr r3, [lr] add r3, r3, r6 add r3, r3, #0x1000 strb r0, [r3, #0x526] ldr r0, [lr] add r0, r0, r1 add r0, r0, #0x1d00 ldrh r1, [r0, #0x4c] and r1, r1, r2 strh r1, [r0, #0x4c] _02214E9C: ldr r1, _02214F0C ; =0x02240AFC mov r0, #1 ldr r2, [r1] mov r5, r0, lsl r5 add r0, r2, #0x1500 ldrh r0, [r0, #0x36] ands r0, r0, r5 beq _02214EE4 add r0, r2, #0x1000 ldrb r3, [r0, #0x535] mvn r2, r5 sub r3, r3, #1 strb r3, [r0, #0x535] ldr r0, [r1] add r0, r0, #0x1500 ldrh r1, [r0, #0x36] and r1, r1, r2 strh r1, [r0, #0x36] _02214EE4: ldr r0, _02214F0C ; =0x02240AFC mov r1, #0 ldr r0, [r0] add r0, r0, r4, lsl #2 add r0, r0, #0x1000 str r1, [r0, #0x4e8] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr .align 2, 0 _02214F08: .word MOD13_02216098 _02214F0C: .word MOD13_02240AFC _02214F10: .word 0x000014A8 _02214F14: .word 0x000005D4 arm_func_start MOD13_02214F18 MOD13_02214F18: ; 0x02214F18 stmdb sp!, {r4, lr} bl OS_DisableInterrupts ldr r1, _02214F54 ; =0x02240AFC mov r4, r0 ldr r0, [r1] add r0, r0, #0x1000 ldr r0, [r0, #0x320] cmp r0, #0 bne _02214F40 bl OS_Terminate _02214F40: bl MOD13_02214F58 mov r0, r4 bl OS_RestoreInterrupts ldmia sp!, {r4, lr} bx lr .align 2, 0 _02214F54: .word MOD13_02240AFC arm_func_start MOD13_02214F58 MOD13_02214F58: ; 0x02214F58 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, #1 bl OS_DisableInterrupts ldr r1, _02214FD8 ; =0x02240AF8 mov r4, r0 ldr r2, [r1] add r0, r2, #0x500 ldrh r0, [r0, #0x26] cmp r0, #0 bne _02214FC0 mov r0, #0 str r0, [r2, #0x5e4] ldr r0, [r1] mov r1, r5 add r0, r0, #0x500 strh r1, [r0, #0x26] bl MOD13_02216DA4 cmp r0, #0 beq _02214FB8 ldr r0, _02214FDC ; =MOD13_02214FE0 bl MOD13_02216B94 mov r5, #0 b _02214FC0 _02214FB8: bl MOD13_02214FEC mov r5, r0 _02214FC0: mov r0, r4 bl OS_RestoreInterrupts mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr .align 2, 0 _02214FD8: .word MOD13_02240AF8 _02214FDC: .word MOD13_02214FE0 arm_func_start MOD13_02214FE0 MOD13_02214FE0: ; 0x02214FE0 ldr ip, _02214FE8 ; =MOD13_02214FEC bx ip .align 2, 0 _02214FE8: .word MOD13_02214FEC arm_func_start MOD13_02214FEC MOD13_02214FEC: ; 0x02214FEC stmdb sp!, {r4, lr} ldr r0, _02215024 ; =0x02240AF8 ldr r0, [r0] ldr r0, [r0, #0x508] bl WM_Reset mov r4, r0 mov r1, r4 mov r0, #1 bl MOD13_02214B08 cmp r4, #2 moveq r4, #0 mov r0, r4 ldmia sp!, {r4, lr} bx lr .align 2, 0 _02215024: .word MOD13_02240AF8 arm_func_start MOD13_02215028 MOD13_02215028: ; 0x02215028 ldr r1, _02215044 ; =0x02240AFC ldr ip, _02215048 ; =MOD13_0221504C ldr r1, [r1] mov r2, #1 add r1, r1, #0x1000 str r2, [r1, #0x320] bx ip .align 2, 0 _02215044: .word MOD13_02240AFC _02215048: .word MOD13_0221504C arm_func_start MOD13_0221504C MOD13_0221504C: ; 0x0221504C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 bl OS_DisableInterrupts ldr r1, _02215234 ; =0x02240AF8 ldr r2, _02215238 ; =0x02240AFC ldr r3, [r1] ldr r1, _0221523C ; =0x00007D1F strh r4, [r3, #0x32] ldr r3, [r2] ldr r2, _02215240 ; =0x02240AF4 add r1, r3, r1 bic r1, r1, #0x1f mov r4, r0 str r1, [r2] add r0, r3, #0x1000 ldr r5, [r0, #0x4e4] ldr r2, _02215244 ; =0x000069C0 add r1, r3, #0x1340 mov r0, #0 bl MIi_CpuClear16 mov r0, r5 bl MOD13_02213368 ldr r1, _02215234 ; =0x02240AF8 ldr r0, _02215238 ; =0x02240AFC ldr r3, [r1] ldr r2, [r0] add r0, r3, #0x500 ldrh r3, [r0] add r0, r2, #0x1000 sub r2, r3, #6 str r2, [r0, #0x318] ldr r0, [r1] add r0, r0, #0x500 ldrh r0, [r0, #2] bl MOD13_022172A0 ldr r1, _02215238 ; =0x02240AFC ldr r0, _02215248 ; =0x00001538 ldr r1, [r1] add r0, r1, r0 bl MOD13_02217280 mov r5, #0 ldr r2, _02215238 ; =0x02240AFC mov r0, r5 mvn r3, #0 _02215100: ldr r1, [r2] add r1, r1, r5, lsl #2 add r1, r1, #0x1000 str r0, [r1, #0x4e8] ldr r1, [r2] add r1, r1, r5 add r1, r1, #0x1000 add r5, r5, #1 strb r3, [r1, #0x526] cmp r5, #0xf blt _02215100 ldr r1, [r2] ldr r3, _0221524C ; =0x00001788 add r1, r1, #0x1000 strb r0, [r1, #0x524] ldr r1, [r2] ldr r2, _02215250 ; =0x00005D40 add r1, r1, r3 bl MIi_CpuClear16 ldr r1, _02215238 ; =0x02240AFC ldr r0, _02215254 ; =0x00001754 ldr r2, [r1] mov r1, #0 add r0, r2, r0 mov r2, #0x1e bl MI_CpuFill8 ldr r2, _02215234 ; =0x02240AF8 mov r3, #1 ldr r0, [r2] ldr r1, _02215258 ; =MOD13_02212C20 add r0, r0, #0x500 strh r3, [r0, #0x24] ldr r0, [r2] ldr r3, _0221525C ; =MOD13_02216098 str r1, [r0, #0x51c] ldr r0, [r2] mov r1, #0xf str r3, [r0, #0x508] ldr r3, [r2] add r0, r3, #0x500 ldrh r0, [r0] strh r0, [r3, #0x34] ldr r0, [r2] ldrh r3, [r0, #0x34] add r0, r0, #0x500 add r3, r3, #0x23 bic r3, r3, #0x1f strh r3, [r0, #0x18] ldr r3, [r2] add r0, r3, #0x500 ldrh r0, [r0, #2] strh r0, [r3, #0x36] ldr r0, [r2] ldrh r2, [r0, #0x36] add r0, r0, #0x500 add r2, r2, #0xe mul r1, r2, r1 add r1, r1, #0x29 bic r1, r1, #0x1f mov r1, r1, lsl #1 strh r1, [r0, #0x1a] bl MOD13_02214834 bl MOD13_02215260 mov r5, r0 mov r0, r4 bl OS_RestoreInterrupts mov r0, #0xf mov r1, #1 bl PXI_IsCallbackReady ldr r1, _02215238 ; =0x02240AFC ldr r1, [r1] add r1, r1, #0x7000 str r0, [r1, #0x4c8] mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr .align 2, 0 _02215234: .word MOD13_02240AF8 _02215238: .word MOD13_02240AFC _0221523C: .word 0x00007D1F _02215240: .word MOD13_02240AF4 _02215244: .word 0x000069C0 _02215248: .word 0x00001538 _0221524C: .word 0x00001788 _02215250: .word 0x00005D40 _02215254: .word 0x00001754 _02215258: .word MOD13_02212C20 _0221525C: .word MOD13_02216098 arm_func_start MOD13_02215260 MOD13_02215260: ; 0x02215260 stmdb sp!, {r4, r5, r6, lr} ldr r2, _02215350 ; =0x02240AF8 mov r3, #0 ldr r1, [r2] mov r0, #0xa add r1, r1, #0x500 strh r3, [r1, #0x28] ldr r1, [r2] add r1, r1, #0x500 strh r3, [r1, #0x2a] ldr r1, [r2] add r1, r1, #0x500 strh r3, [r1, #0x26] ldr r1, [r2] add r1, r1, #0x500 strh r3, [r1, #0x48] bl MOD13_02214D5C ldr r0, _02215354 ; =0x02240AFC ldr r0, [r0] add r0, r0, #0x1000 ldr r0, [r0, #0x320] cmp r0, #0 bne _02215320 ldr r6, _02215358 ; =0x02240AF4 ldr r5, _02215350 ; =0x02240AF8 ldr r4, _0221535C ; =0x02240AF0 _022152C8: ldr r1, [r5] ldrh r2, [r4] ldr r0, [r6] ldr r1, [r1, #0x508] bl WM_Initialize cmp r0, #4 beq _022152C8 cmp r0, #2 movne r0, #8 ldmneia sp!, {r4, r5, r6, lr} bxne lr ldr r0, _02215350 ; =0x02240AF8 ldr r0, [r0] ldr r0, [r0, #0x508] bl WM_SetIndCallback ldr r0, _02215350 ; =0x02240AF8 mov r2, #1 ldr r1, [r0] mov r0, #0 strb r2, [r1, #0x50d] ldmia sp!, {r4, r5, r6, lr} bx lr _02215320: ldr r0, _02215350 ; =0x02240AF8 ldr r0, [r0] ldr r0, [r0, #0x508] bl WM_SetIndCallback ldr r0, _02215350 ; =0x02240AF8 mov r1, #1 ldr r0, [r0] strb r1, [r0, #0x50d] bl MOD13_02216910 mov r0, #0 ldmia sp!, {r4, r5, r6, lr} bx lr .align 2, 0 _02215350: .word MOD13_02240AF8 _02215354: .word MOD13_02240AFC _02215358: .word MOD13_02240AF4 _0221535C: .word MOD13_02240AF0 arm_func_start MOD13_02215360 MOD13_02215360: ; 0x02215360 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 mov r4, r1 bl OS_DisableInterrupts ldr r1, _02215400 ; =0x02240AF8 mov r6, r0 ldr r1, [r1] ldrb r1, [r1, #0x50d] cmp r1, #0 beq _02215398 bl OS_RestoreInterrupts mov r0, #0 ldmia sp!, {r4, r5, r6, lr} bx lr _02215398: mov r0, r5 mov r2, r4 mov r1, #8 bl MOD13_02215404 cmp r0, #0 bne _022153C4 mov r0, r6 bl OS_RestoreInterrupts mov r0, #0 ldmia sp!, {r4, r5, r6, lr} bx lr _022153C4: ldr r2, _02215400 ; =0x02240AF8 mov r0, r6 ldr r1, [r2] mov r3, #8 strh r4, [r1, #0x10] ldr r1, [r2] add r1, r1, #0x500 strh r5, [r1] ldr r1, [r2] add r1, r1, #0x500 strh r3, [r1, #2] bl OS_RestoreInterrupts mov r0, #1 ldmia sp!, {r4, r5, r6, lr} bx lr .align 2, 0 _02215400: .word MOD13_02240AF8 arm_func_start MOD13_02215404 MOD13_02215404: ; 0x02215404 ldr r3, _02215468 ; =0x000001FE cmp r0, r3 bhi _02215418 cmp r0, #0xe4 bhs _02215420 _02215418: mov r0, #0 bx lr _02215420: cmp r1, #0x10 bhi _02215430 cmp r1, #8 bhs _02215438 _02215430: mov r0, #0 bx lr _02215438: add r1, r1, #0x20 mov r3, r1, lsl #2 ldr r1, _0221546C ; =0x0000014A add r0, r0, #0x26 add r1, r1, r0, lsl #2 add r0, r3, #0x70 mla r1, r2, r0, r1 ldr r0, _02215470 ; =0x000015E0 cmp r1, r0 movlt r0, #1 movge r0, #0 bx lr .align 2, 0 _02215468: .word 0x000001FE _0221546C: .word 0x0000014A _02215470: .word 0x000015E0 arm_func_start MOD13_02215474 MOD13_02215474: ; 0x02215474 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 ldr r4, _0221567C ; =0x02240AFC mov sb, r1 ldr r1, [r4] mov r8, r2 mov r7, r3 cmp r1, #0 beq _022154B4 add r1, r1, #0x1300 ldrh r1, [r1, #0x16] cmp r1, #0 addne sp, sp, #4 movne r0, #2 ldmneia sp!, {r4, r5, r6, r7, r8, sb, lr} bxne lr _022154B4: add r1, r0, #0x1f ldr r0, _02215680 ; =0x00001E1F bic r6, r1, #0x1f add r0, r6, r0 cmp r7, #0x10000 bic r5, r0, #0x1f bne _022154D8 bl WM_GetNextTgid mov r7, r0 _022154D8: bl OS_DisableInterrupts ldr ip, _02215684 ; =0x02240AF8 ldr r3, _0221567C ; =0x02240AFC mov r4, r0 ldr r1, [sp, #0x20] ldr r0, _02215688 ; =0x02240AF0 ldr r2, _0221568C ; =0x0000FFFF strh r1, [r0] ldr r0, _02215690 ; =0x0223F798 ldr r1, _02215694 ; =0x0223F78C strh r2, [r0] mov r2, #5 ldr r0, _02215698 ; =0x0223F790 strh r2, [r1] mov r2, #0x28 ldr r1, _0221569C ; =0x0223F794 strh r2, [r0] ldr r0, _022156A0 ; =0x0223F7A0 strh r2, [r1] mov r2, #1 mov r1, r6 str r2, [r0] mov r0, #0 mov r2, #0x1e00 str r6, [ip] str r5, [r3] bl MIi_CpuClear32 mov r1, r5 mov r0, #0 mov r2, #0x1340 bl MIi_CpuClear16 ldrb r0, [sb, #1] add r1, r6, #0x530 mov r2, #0 cmp r0, #0 ble _02215584 _02215568: add r0, sb, r2, lsl #1 ldrh r0, [r0, #2] add r2, r2, #1 strh r0, [r1], #2 ldrb r0, [sb, #1] cmp r2, r0 blt _02215568 _02215584: ldr r0, _022156A4 ; =0x00000538 mov r3, #0 add ip, r6, r0 ldr r0, _022156A8 ; =0x0223F79C _02215594: ldr r2, [r0] ldrh r1, [r2] cmp r1, #0 beq _022155C0 add r1, r2, #2 str r1, [r0] ldrh r1, [r2] add r3, r3, #1 cmp r3, #0x10 strh r1, [ip], #2 blt _02215594 _022155C0: mov r0, sb add r1, r5, #0x1300 mov r2, #0x16 bl MI_CpuCopy8 ldrb r0, [sb, #1] mov r2, #0 cmp r0, #0xa addlo r0, r5, r0, lsl #1 addlo r0, r0, #0x1300 movlo r1, #0 strloh r1, [r0, #2] add r0, r6, #0x500 mov r1, #0x100 strh r1, [r0] mov r1, #8 strh r1, [r0, #2] strh r2, [r0, #0x18] strh r2, [r0, #0x1a] mov r1, #1 strh r1, [r0, #0x2c] add r0, r5, #0x400 str r0, [r6, #0x504] strh r2, [r6, #0xe] strh r2, [r6, #0x12] strh r1, [r6, #0x16] strh r2, [r6, #0x14] str r8, [r6, #8] strh r7, [r6, #0xc] bl MOD13_022156AC add r0, r0, #0xc8 strh r0, [r6, #0x18] mov r0, #0xf strh r0, [r6, #0x10] mov r3, #0 strb r3, [r6, #0x50c] strb r3, [r6, #0x50d] add r1, r5, #0x1300 mov r2, #1 strh r2, [r1, #0x16] add r1, r5, #0x1000 mov r0, r4 str r3, [r1, #0x31c] bl OS_RestoreInterrupts mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr .align 2, 0 _0221567C: .word MOD13_02240AFC _02215680: .word 0x00001E1F _02215684: .word MOD13_02240AF8 _02215688: .word MOD13_02240AF0 _0221568C: .word 0x0000FFFF _02215690: .word MOD13_0223F798 _02215694: .word MOD13_0223F78C _02215698: .word MOD13_0223F790 _0221569C: .word MOD13_0223F794 _022156A0: .word MOD13_0223F7A0 _022156A4: .word 0x00000538 _022156A8: .word MOD13_0223F79C arm_func_start MOD13_022156AC MOD13_022156AC: ; 0x022156AC stmdb sp!, {lr} sub sp, sp, #0xc add r0, sp, #0 bl OS_GetMacAddress mov r2, #0 add r1, sp, #0 mov r3, r2 _022156C8: ldrb r0, [r1] add r2, r2, #1 cmp r2, #6 add r3, r3, r0 add r1, r1, #1 blt _022156C8 ldr r1, _02215718 ; =0x027FFC3C mov r0, #7 ldr r2, [r1] ldr r1, _0221571C ; =0xCCCCCCCD add r2, r3, r2 mul r3, r2, r0 umull r1, r0, r3, r1 ldr r2, _02215720 ; =0x00000014 mov r0, r0, lsr #4 umull r0, r1, r2, r0 sub r0, r3, r0 add sp, sp, #0xc ldmia sp!, {lr} bx lr .align 2, 0 _02215718: .word 0x027FFC3C _0221571C: .word 0xCCCCCCCD _02215720: .word 0x00000014 arm_func_start MOD13_02215724 MOD13_02215724: ; 0x02215724 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x20 mov r6, r0 ldrh r0, [r6] ldr r1, _02215F98 ; =0x02240AF8 cmp r0, #0x1d ldr r5, [r1] bgt _022157B0 cmp r0, #0x1d bge _02215838 cmp r0, #0x15 addls pc, pc, r0, lsl #2 b _02215F7C _02215758: ; jump table b _022157BC ; case 0 b _02215E4C ; case 1 b _02215EB8 ; case 2 b _02215F7C ; case 3 b _02215F7C ; case 4 b _02215F7C ; case 5 b _02215F7C ; case 6 b _02215F7C ; case 7 b _02215F7C ; case 8 b _02215F7C ; case 9 b _022158DC ; case 10 b _02215B64 ; case 11 b _02215BBC ; case 12 b _02215F7C ; case 13 b _02215D54 ; case 14 b _02215DDC ; case 15 b _02215F7C ; case 16 b _02215F7C ; case 17 b _02215F7C ; case 18 b _02215F7C ; case 19 b _02215F7C ; case 20 b _02215F20 ; case 21 _022157B0: cmp r0, #0x80 beq _02215F50 b _02215F7C _022157BC: ldrh r0, [r6, #2] cmp r0, #0 beq _022157E4 ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _022157E4: ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x15 blx r2 ldr r0, _02215F9C ; =0x0223F794 ldr r1, _02215FA0 ; =0x0223F798 ldrh r3, [r0] ldr r2, _02215FA4 ; =0x0223F790 ldr r0, _02215FA8 ; =0x0223F78C str r3, [sp] ldrh r3, [r0] ldrh r1, [r1] ldrh r2, [r2] ldr r0, _02215FAC ; =MOD13_02215724 bl WM_SetLifeTime mov r1, r0 mov r0, #0x1d bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215838: ldrh r0, [r6, #2] cmp r0, #0 beq _02215860 ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215860: ldr r0, _02215FB0 ; =0x02240B00 add r2, r5, #0x440 ldrh r1, [r0, #4] str r2, [r0] mov r2, #1 cmp r1, #0 moveq r1, #1 streqh r1, [r0, #4] ldr r0, _02215FB0 ; =0x02240B00 ldrh r1, [r0, #6] cmp r1, #0 moveq r1, #0xc8 streqh r1, [r0, #6] ldr r1, _02215FB0 ; =0x02240B00 mov r0, #0xff strb r0, [r1, #8] strb r0, [r1, #9] strb r0, [r1, #0xa] strb r0, [r1, #0xb] strb r0, [r1, #0xc] strb r0, [r1, #0xd] str r2, [r5, #0x5e4] ldr r0, _02215FAC ; =MOD13_02215724 str r2, [r5, #0x5e8] bl WM_StartScan mov r1, r0 mov r0, #0xa bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _022158DC: ldrh r0, [r6, #2] cmp r0, #0 beq _02215904 ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215904: ldrh r0, [r6, #8] cmp r0, #3 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr cmp r0, #4 beq _02215AE0 cmp r0, #5 bne _02215B48 add r0, r5, #0x500 ldrh r0, [r0, #0xe0] add r3, r5, #0x600 mov r4, #0 cmp r0, #0 ble _02215A18 ldrb r1, [r6, #0xa] mov r2, r3 _02215948: ldrb r7, [r2, #0xca] cmp r1, r7 bne _02215A08 ldrb r8, [r6, #0xb] ldrb r7, [r2, #0xcb] cmp r8, r7 bne _02215A08 ldrb r8, [r6, #0xc] ldrb r7, [r2, #0xcc] cmp r8, r7 bne _02215A08 ldrb r8, [r6, #0xd] ldrb r7, [r2, #0xcd] cmp r8, r7 bne _02215A08 ldrb r8, [r6, #0xe] ldrb r7, [r2, #0xce] cmp r8, r7 bne _02215A08 ldrb r8, [r6, #0xf] ldrb r7, [r2, #0xcf] cmp r8, r7 bne _02215A08 mov r0, #0x180 mul r7, r4, r0 add r0, r3, r7 ldrh r1, [r6, #0x36] add r8, r6, #0x38 add lr, r0, #0xf8 strh r1, [r0, #0xf6] mov ip, #8 _022159C4: ldmia r8!, {r0, r1, r2, r3} stmia lr!, {r0, r1, r2, r3} subs ip, ip, #1 bne _022159C4 add r0, r5, #0x600 add r7, r0, r7 mov r0, r7 mov r1, #0xc0 bl DC_InvalidateRange ldr r0, _02215FB4 ; =0x02240AF0 mov r2, r7 ldrh r0, [r0] add r1, r5, #0x440 mov r3, #0xc0 bl MI_DmaCopy16 str r4, [r5, #0x5ec] b _02215A78 _02215A08: add r4, r4, #1 cmp r4, r0 add r2, r2, #0x180 blt _02215948 _02215A18: cmp r4, #0x10 bge _02215A78 mov r0, #0x180 mul r7, r4, r0 add r1, r3, r7 mov r0, r6 add ip, r4, #1 add r3, r5, #0x500 add r1, r1, #0xc0 mov r2, #0xb8 strh ip, [r3, #0xe0] bl MIi_CpuCopy16 add r0, r5, #0x600 add r7, r0, r7 mov r0, r7 mov r1, #0xc0 bl DC_InvalidateRange ldr r0, _02215FB4 ; =0x02240AF0 mov r2, r7 ldrh r0, [r0] add r1, r5, #0x440 mov r3, #0xc0 bl MI_DmaCopy16 str r4, [r5, #0x5ec] _02215A78: ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #4 blx r2 ldr r0, [r5, #0x5e4] cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr ldr r0, [r5, #0x5e8] cmp r0, #0 beq _02215ABC ldr r0, _02215FB0 ; =0x02240B00 bl MOD13_022169EC cmp r0, #0 bne _02215ABC bl MOD13_02214F58 _02215ABC: ldr r0, _02215FAC ; =MOD13_02215724 ldr r1, _02215FB0 ; =0x02240B00 bl WM_StartScan mov r1, r0 mov r0, #0xa bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215AE0: ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #5 blx r2 ldr r0, [r5, #0x5e4] cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr ldr r0, [r5, #0x5e8] cmp r0, #0 beq _02215B24 ldr r0, _02215FB0 ; =0x02240B00 bl MOD13_022169EC cmp r0, #0 bne _02215B24 bl MOD13_02214F58 _02215B24: ldr r0, _02215FAC ; =MOD13_02215724 ldr r1, _02215FB0 ; =0x02240B00 bl WM_StartScan mov r1, r0 mov r0, #0xa bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215B48: ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215B64: ldrh r0, [r6, #2] cmp r0, #0 beq _02215B8C ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215B8C: mov r2, #0 str r2, [sp] ldr r1, [r5, #0x520] ldr r0, _02215FAC ; =MOD13_02215724 mov r3, #1 bl WM_StartConnectEx mov r1, r0 mov r0, #0xc bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215BBC: ldrh r0, [r6, #2] cmp r0, #0 beq _02215BF0 add r0, r5, #0x500 mov r1, #0 strh r1, [r0, #0xe0] ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0xb blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215BF0: ldrh r0, [r6, #8] cmp r0, #9 bgt _02215C20 cmp r0, #6 blt _02215D38 cmp r0, #6 beq _02215C34 cmp r0, #7 beq _02215C54 cmp r0, #9 beq _02215D0C b _02215D38 _02215C20: cmp r0, #0x1a addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr b _02215D38 _02215C34: add r0, r5, #0x500 mov r1, #0 strh r1, [r0, #0x2a] mov r1, #1 strh r1, [r0, #0x28] add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215C54: ldrh r2, [r6, #0xa] add r0, r5, #0x500 mov r1, r6 strh r2, [r0, #0xe2] ldr r2, [r5, #0x51c] mov r0, #6 blx r2 ldr r1, _02215FB8 ; =MOD13_02215FC0 add r3, r5, #0x500 mov r0, #1 mov r2, #0 strh r0, [r3, #0x2a] bl WM_SetPortCallback cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, r7, r8, lr} bxne lr add r0, r5, #0x500 ldrh r0, [r0, #0x2c] add r1, r5, #0x500 ldrh r2, [r1, #0x18] cmp r0, #0 moveq r0, #1 movne r0, #0 mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 str r2, [sp] str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] str r0, [sp, #0x18] ldrh r2, [r1, #0x1a] ldr r1, [r5, #0x504] ldr r0, _02215FAC ; =MOD13_02215724 add r3, r5, #0x40 bl WM_StartMPEx mov r1, r0 mov r0, #0xe bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215D0C: ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0xa blx r2 add r0, r5, #0x500 mov r1, #0 strh r1, [r0, #0x2a] strh r1, [r0, #0x28] add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215D38: ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215D54: ldrh r0, [r6, #4] cmp r0, #0xa beq _02215D84 cmp r0, #0xc addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr cmp r0, #0xd addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr b _02215DC0 _02215D84: add r0, r5, #0x500 mov r1, #1 strh r1, [r0, #0x28] bl MOD13_02216984 cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr ldr r2, [r5, #0x51c] mov r0, #0x19 mov r1, #0 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215DC0: ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215DDC: mov r0, #0 strb r0, [r5, #0x50c] ldrh r0, [r6, #2] cmp r0, #0 bne _02215E04 ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #8 blx r2 b _02215E30 _02215E04: cmp r0, #9 bne _02215E20 ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x29 blx r2 b _02215E30 _02215E20: ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x12 blx r2 _02215E30: ldr r2, [r5, #0x51c] mov r0, #0x19 mov r1, #0 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215E4C: ldrh r0, [r6, #2] cmp r0, #0 beq _02215E80 add r0, r5, #0x500 mov r1, #0 strh r1, [r0, #0x26] ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215E80: add r0, r5, #0x500 mov r2, #0 strh r2, [r0, #0x2a] ldr r1, [r1] ldr r0, _02215FAC ; =MOD13_02215724 add r1, r1, #0x500 strh r2, [r1, #0x28] bl WM_End mov r1, r0 mov r0, #2 bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215EB8: ldrh r0, [r6, #2] cmp r0, #0 beq _02215EEC add r0, r5, #0x500 mov r1, #0 strh r1, [r0, #0x26] ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215EEC: mov r2, #0 ldr r0, _02215FBC ; =0x02240AFC strb r2, [r5, #0x50d] ldr r0, [r0] mov r1, r6 add r0, r0, #0x1300 strh r2, [r0, #0x16] ldr r2, [r5, #0x51c] mov r0, #0x11 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215F20: bl MOD13_02216984 cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr ldr r2, [r5, #0x51c] mov r0, #0x19 mov r1, #0 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215F50: ldrh r0, [r6, #4] cmp r0, #0x16 beq _02215F6C add sp, sp, #0x20 cmp r0, #0x17 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215F6C: bl OS_Terminate add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _02215F7C: ldr r2, [r5, #0x51c] mov r1, r6 mov r0, #0x100 blx r2 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr .align 2, 0 _02215F98: .word MOD13_02240AF8 _02215F9C: .word MOD13_0223F794 _02215FA0: .word MOD13_0223F798 _02215FA4: .word MOD13_0223F790 _02215FA8: .word MOD13_0223F78C _02215FAC: .word MOD13_02215724 _02215FB0: .word MOD13_02240B00 _02215FB4: .word MOD13_02240AF0 _02215FB8: .word MOD13_02215FC0 _02215FBC: .word MOD13_02240AFC arm_func_start MOD13_02215FC0 MOD13_02215FC0: ; 0x02215FC0 stmdb sp!, {lr} sub sp, sp, #4 mov r1, r0 ldrh r0, [r1, #2] cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {lr} bxne lr ldrh r0, [r1, #4] cmp r0, #0x15 bgt _02216034 cmp r0, #0x15 bge _02216074 cmp r0, #9 addgt sp, sp, #4 ldmgtia sp!, {lr} bxgt lr cmp r0, #7 addlt sp, sp, #4 ldmltia sp!, {lr} bxlt lr cmp r0, #7 addeq sp, sp, #4 ldmeqia sp!, {lr} bxeq lr add sp, sp, #4 cmp r0, #9 ldmia sp!, {lr} bx lr _02216034: cmp r0, #0x1a addgt sp, sp, #4 ldmgtia sp!, {lr} bxgt lr cmp r0, #0x19 addlt sp, sp, #4 ldmltia sp!, {lr} bxlt lr cmp r0, #0x19 addeq sp, sp, #4 ldmeqia sp!, {lr} bxeq lr add sp, sp, #4 cmp r0, #0x1a ldmia sp!, {lr} bx lr _02216074: ldr r2, _02216094 ; =0x02240AF8 mov r0, #9 ldr r2, [r2] ldr r2, [r2, #0x51c] blx r2 add sp, sp, #4 ldmia sp!, {lr} bx lr .align 2, 0 _02216094: .word MOD13_02240AF8 arm_func_start MOD13_02216098 MOD13_02216098: ; 0x02216098 stmdb sp!, {r4, lr} sub sp, sp, #0x20 mov r4, r0 ldrh r0, [r4] cmp r0, #0x19 bgt _02216104 cmp r0, #0x19 bge _022161F8 cmp r0, #0xf addls pc, pc, r0, lsl #2 b _022168D8 _022160C4: ; jump table b _02216124 ; case 0 b _02216694 ; case 1 b _02216744 ; case 2 b _022168D8 ; case 3 b _022168D8 ; case 4 b _022168D8 ; case 5 b _022168D8 ; case 6 b _022161BC ; case 7 b _02216250 ; case 8 b _022168D8 ; case 9 b _022168D8 ; case 10 b _022168D8 ; case 11 b _022168D8 ; case 12 b _022167C4 ; case 13 b _022164E0 ; case 14 b _02216584 ; case 15 _02216104: cmp r0, #0x1d bgt _02216118 cmp r0, #0x1d beq _02216164 b _022168D8 _02216118: cmp r0, #0x80 beq _02216804 b _022168D8 _02216124: ldrh r0, [r4, #2] cmp r0, #0 beq _02216154 ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x100 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216154: bl MOD13_02216910 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216164: ldrh r0, [r4, #2] cmp r0, #0 beq _02216194 ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x100 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216194: ldr r1, _022168FC ; =0x02240AF8 ldr r0, _02216900 ; =MOD13_02216098 ldr r1, [r1] bl WM_SetParentParameter mov r1, r0 mov r0, #7 bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _022161BC: ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x15 ldr r2, [r2, #0x51c] blx r2 ldr r0, _02216900 ; =MOD13_02216098 mov r1, #1 bl WM_SetBeaconIndication mov r1, r0 mov r0, #0x19 bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _022161F8: ldrh r0, [r4, #2] cmp r0, #0 beq _02216228 ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x100 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216228: ldr r1, _02216904 ; =0x0223F7A0 ldr r0, _02216900 ; =MOD13_02216098 ldr r1, [r1] bl WMi_StartParentEx mov r1, r0 mov r0, #8 bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216250: ldrh r0, [r4, #2] cmp r0, #0 beq _02216280 ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x100 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216280: ldrh r0, [r4, #8] cmp r0, #7 bgt _022162B8 cmp r0, #7 bge _0221630C cmp r0, #2 bgt _022164BC cmp r0, #0 blt _022164BC cmp r0, #0 beq _022162E0 cmp r0, #2 beq _02216480 b _022164BC _022162B8: cmp r0, #9 bgt _022162CC cmp r0, #9 beq _02216440 b _022164BC _022162CC: cmp r0, #0x1a addeq sp, sp, #0x20 ldmeqia sp!, {r4, lr} bxeq lr b _022164BC _022162E0: ldr r1, _022168FC ; =0x02240AF8 mov r2, #0 ldr r0, [r1] add sp, sp, #0x20 add r0, r0, #0x500 strh r2, [r0, #0x2a] ldr r0, [r1] add r0, r0, #0x500 strh r2, [r0, #0x28] ldmia sp!, {r4, lr} bx lr _0221630C: ldr r2, _022168FC ; =0x02240AF8 ldr r0, [r2] add r0, r0, #0x500 ldrh r1, [r0, #0x26] cmp r1, #1 addeq sp, sp, #0x20 ldmeqia sp!, {r4, lr} bxeq lr ldrh lr, [r0, #0x2a] ldrh r3, [r4, #0x10] mov ip, #1 mov r1, r4 orr r3, lr, ip, lsl r3 strh r3, [r0, #0x2a] ldr r2, [r2] mov r0, #0 ldr r2, [r2, #0x51c] blx r2 ldr r1, _022168FC ; =0x02240AF8 ldr r0, [r1] add r0, r0, #0x500 ldrh r0, [r0, #0x28] cmp r0, #0 bne _02216408 ldr r0, _02216908 ; =0x02240AFC ldr r0, [r0] add r0, r0, #0x1000 ldr r2, [r0, #0x31c] cmp r2, #0 bne _02216408 mov r2, #1 str r2, [r0, #0x31c] ldr r0, [r1] ldr r1, _022168FC ; =0x02240AF8 add r0, r0, #0x500 ldrh r0, [r0, #0x2c] ldr ip, [r1] mov r1, #1 cmp r0, #0 movne r2, #0 mov r0, r2, lsl #0x10 mov r3, r0, lsr #0x10 add r0, ip, #0x500 ldrh r4, [r0, #0x18] mov r2, #0 str r4, [sp] str r3, [sp, #4] str r2, [sp, #8] str r2, [sp, #0xc] str r2, [sp, #0x10] str r1, [sp, #0x14] str r1, [sp, #0x18] ldrh r2, [r0, #0x1a] ldr r1, [ip, #0x504] ldr r0, _02216900 ; =MOD13_02216098 add r3, ip, #0x40 bl WM_StartMPEx mov r1, r0 mov r0, #0xe bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216408: bl MOD13_02216984 cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, lr} bxeq lr ldr r1, _022168FC ; =0x02240AF8 mov r0, #0x19 ldr r2, [r1] mov r1, #0 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216440: ldr r2, _022168FC ; =0x02240AF8 ldrh r3, [r4, #0x10] ldr r1, [r2] mov r0, #1 add r1, r1, #0x500 ldrh ip, [r1, #0x2a] mvn r3, r0, lsl r3 and r3, ip, r3 strh r3, [r1, #0x2a] ldr r2, [r2] mov r1, r4 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216480: ldr r0, _022168FC ; =0x02240AF8 ldr r1, [r0] add r0, r1, #0x500 ldrh r0, [r0, #0x26] cmp r0, #1 addeq sp, sp, #0x20 ldmeqia sp!, {r4, lr} bxeq lr ldr r2, [r1, #0x51c] mov r1, r4 mov r0, #0x1c blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _022164BC: ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x100 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _022164E0: ldr r0, _02216908 ; =0x02240AFC mov r1, #0 ldr r0, [r0] add r0, r0, #0x1000 str r1, [r0, #0x31c] ldrh r0, [r4, #4] cmp r0, #0xa beq _0221650C cmp r0, #0xb beq _0221653C b _02216560 _0221650C: ldr r3, _022168FC ; =0x02240AF8 mov r4, #1 ldr r2, [r3] mov r0, #0x19 add r2, r2, #0x500 strh r4, [r2, #0x28] ldr r2, [r3] ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _0221653C: ldr r0, _022168FC ; =0x02240AF8 ldr r1, [r4, #8] ldr r2, [r0] mov r0, #3 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216560: ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x100 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216584: ldr r0, _02216908 ; =0x02240AFC ldr r1, [r0] add r0, r1, #0x7000 ldr r0, [r0, #0x4c8] cmp r0, #0 beq _022165E0 mov r3, #0 mov r2, r3 _022165A4: add r0, r1, r2, lsl #2 add r0, r0, #0x1000 ldr r0, [r0, #0x4e8] cmp r0, #0 beq _022165C4 add r3, r3, #1 cmp r3, #2 bhs _022165D0 _022165C4: add r2, r2, #1 cmp r2, #0xf blo _022165A4 _022165D0: cmp r3, #1 bne _022165E0 ldr r0, _0221690C ; =0x000032C8 bl OS_SpinWait _022165E0: ldr r0, _022168FC ; =0x02240AF8 mov r2, #0 ldr r1, [r0] strb r2, [r1, #0x50c] ldrh r1, [r4, #2] cmp r1, #0 bne _02216634 ldr r0, [r0] mov r1, r4 ldr r2, [r0, #0x51c] mov r0, #2 blx r2 ldr r1, _022168FC ; =0x02240AF8 mov r0, #0x19 ldr r2, [r1] mov r1, #0 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216634: cmp r1, #0xa bne _0221665C ldr r0, [r0] mov r1, r4 ldr r2, [r0, #0x51c] mov r0, #0x2a blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _0221665C: ldr r0, [r0] mov r1, r4 ldr r2, [r0, #0x51c] mov r0, #0x13 blx r2 ldr r1, _022168FC ; =0x02240AF8 mov r0, #0x19 ldr r2, [r1] mov r1, #0 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216694: ldr r0, _02216908 ; =0x02240AFC ldr r0, [r0] add r0, r0, #0x1000 ldr r0, [r0, #0x320] cmp r0, #0 bne _0221672C ldrh r0, [r4, #2] cmp r0, #0 beq _022166EC ldr r2, _022168FC ; =0x02240AF8 mov r3, #0 ldr r0, [r2] mov r1, r4 add r0, r0, #0x500 strh r3, [r0, #0x26] ldr r2, [r2] mov r0, #0x100 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _022166EC: ldr r2, _022168FC ; =0x02240AF8 mov r3, #0 ldr r1, [r2] ldr r0, _02216900 ; =MOD13_02216098 add r1, r1, #0x500 strh r3, [r1, #0x2a] ldr r1, [r2] add r1, r1, #0x500 strh r3, [r1, #0x28] bl WM_End mov r1, r0 mov r0, #2 bl MOD13_02214B08 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _0221672C: mov r1, #0 mov r2, r1 mov r0, #1 bl WM_SetPortCallback mov r0, #0 bl WM_SetIndCallback _02216744: ldrh r0, [r4, #2] cmp r0, #0 beq _02216784 ldr r2, _022168FC ; =0x02240AF8 mov r3, #0 ldr r0, [r2] mov r1, r4 add r0, r0, #0x500 strh r3, [r0, #0x26] ldr r2, [r2] mov r0, #0x100 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216784: ldr r2, _022168FC ; =0x02240AF8 mov r3, #0 ldr r1, [r2] ldr r0, _02216908 ; =0x02240AFC strb r3, [r1, #0x50d] ldr r0, [r0] mov r1, r4 add r0, r0, #0x1300 strh r3, [r0, #0x16] ldr r2, [r2] mov r0, #0x11 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _022167C4: ldrh r0, [r4, #2] cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, lr} bxne lr ldr r0, _022168FC ; =0x02240AF8 ldrh r1, [r4, #0xa] ldr r0, [r0] add sp, sp, #0x20 add r0, r0, #0x500 ldrh r2, [r0, #0x2a] mvn r1, r1 and r1, r2, r1 strh r1, [r0, #0x2a] ldmia sp!, {r4, lr} bx lr _02216804: ldrh r0, [r4, #4] sub r0, r0, #0x10 cmp r0, #7 addls pc, pc, r0, lsl #2 b _022168F0 _02216818: ; jump table b _02216838 ; case 0 b _0221685C ; case 1 b _02216880 ; case 2 b _022168A4 ; case 3 b _022168F0 ; case 4 b _022168F0 ; case 5 b _022168C8 ; case 6 b _022168F0 ; case 7 _02216838: ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x1d ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _0221685C: ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x1f ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _02216880: ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x20 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _022168A4: ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x21 ldr r2, [r2, #0x51c] blx r2 add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _022168C8: bl OS_Terminate add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr _022168D8: ldr r0, _022168FC ; =0x02240AF8 mov r1, r4 ldr r2, [r0] mov r0, #0x100 ldr r2, [r2, #0x51c] blx r2 _022168F0: add sp, sp, #0x20 ldmia sp!, {r4, lr} bx lr .align 2, 0 _022168FC: .word MOD13_02240AF8 _02216900: .word MOD13_02216098 _02216904: .word MOD13_0223F7A0 _02216908: .word MOD13_02240AFC _0221690C: .word 0x000032C8 arm_func_start MOD13_02216910 MOD13_02216910: ; 0x02216910 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02216970 ; =MOD13_02216098 bl WM_SetIndCallback mov r1, r0 mov r0, #0x80 bl MOD13_02214B08 ldr r0, _02216974 ; =0x0223F794 ldr r1, _02216978 ; =0x0223F798 ldrh r3, [r0] ldr r2, _0221697C ; =0x0223F790 ldr r0, _02216980 ; =0x0223F78C str r3, [sp] ldrh r1, [r1] ldrh r2, [r2] ldrh r3, [r0] ldr r0, _02216970 ; =MOD13_02216098 bl WM_SetLifeTime mov r1, r0 mov r0, #0x1d bl MOD13_02214B08 add sp, sp, #4 ldmia sp!, {lr} bx lr .align 2, 0 _02216970: .word MOD13_02216098 _02216974: .word MOD13_0223F794 _02216978: .word MOD13_0223F798 _0221697C: .word MOD13_0223F790 _02216980: .word MOD13_0223F78C arm_func_start MOD13_02216984 MOD13_02216984: ; 0x02216984 ldr r1, _022169E8 ; =0x02240AF8 mov r0, #0 ldr r2, [r1] mov ip, r0 add r1, r2, #0x500 ldrh r1, [r1, #0x28] mov r3, r0 cmp r1, #1 bne _022169B4 ldrb r1, [r2, #0x50c] cmp r1, #0 moveq r3, #1 _022169B4: cmp r3, #0 beq _022169CC add r1, r2, #0x500 ldrh r1, [r1, #0x26] cmp r1, #0 moveq ip, #1 _022169CC: cmp ip, #0 bxeq lr add r1, r2, #0x500 ldrh r1, [r1, #0x2a] cmp r1, #0 movne r0, #1 bx lr .align 2, 0 _022169E8: .word MOD13_02240AF8 arm_func_start MOD13_022169EC MOD13_022169EC: ; 0x022169EC stmdb sp!, {r4, lr} mov r4, r0 bl WM_GetAllowedChannel cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, lr} bxeq lr ldrh r3, [r4, #4] mov ip, #0 mov lr, r3 mov r2, #1 _02216A18: sub r1, lr, #1 mov r1, r2, lsl r1 ands r1, r0, r1 beq _02216A34 cmp r3, lr strneh lr, [r4, #4] bne _02216A5C _02216A34: add r1, ip, #1 mov r1, r1, lsl #0x10 cmp lr, #0x10 mov ip, r1, lsr #0x10 moveq r1, r2 addne r1, lr, #1 mov r1, r1, lsl #0x10 cmp ip, #0x10 mov lr, r1, lsr #0x10 blo _02216A18 _02216A5C: mov r0, #1 ldmia sp!, {r4, lr} bx lr arm_func_start MOD13_02216A68 MOD13_02216A68: ; 0x02216A68 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov sb, r0 mov r8, r1 mov r7, r2 mov r6, r3 mov r5, #0 bl OS_DisableInterrupts add r2, sb, #0x30 add r1, sb, #0x70 mov r4, r0 cmp r2, r1 bhs _02216AF4 _02216A9C: ldr r0, [r2, #0xc] cmp r0, #2 blo _02216AE8 ldr r0, [r2] subs r0, r8, r0 bmi _02216AE8 ldr r3, [r2, #4] add ip, r0, r6 cmp ip, r3 bhi _02216AE8 ldr r3, [r2, #8] mov r1, r7 mov r2, r6 add r0, r3, r0 bl MI_CpuCopy8 mov r0, #0 str r0, [sb] mov r5, #1 b _02216AF4 _02216AE8: add r2, r2, #0x10 cmp r2, r1 blo _02216A9C _02216AF4: mov r0, r4 bl OS_RestoreInterrupts mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr arm_func_start MOD13_02216B0C MOD13_02216B0C: ; 0x02216B0C stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov r4, r0 mov sb, r1 mov r8, r2 mov r7, r3 bl OS_DisableInterrupts mov r6, r0 add r5, r4, #0x30 add r4, r4, #0x70 _02216B34: cmp r5, r4 blo _02216B40 bl OS_Terminate _02216B40: ldr r0, [r5, #0xc] cmp r0, #0 bne _02216B64 str sb, [r5] str r8, [r5, #4] ldr r0, [sp, #0x20] str r7, [r5, #8] str r0, [r5, #0xc] b _02216B6C _02216B64: add r5, r5, #0x10 b _02216B34 _02216B6C: mov r0, r6 bl OS_RestoreInterrupts add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr arm_func_start MOD13_02216B80 MOD13_02216B80: ; 0x02216B80 ldr ip, _02216B90 ; =MI_CpuFill8 mov r1, #0 mov r2, #0x70 bx ip .align 2, 0 _02216B90: .word MI_CpuFill8 arm_func_start MOD13_02216B94 MOD13_02216B94: ; 0x02216B94 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 bl OS_DisableInterrupts mov r4, r0 bl MOD13_02216DA4 cmp r0, #0 beq _02216BD0 ldr r0, _02216BE4 ; =0x02240B20 mov r1, #0 ldr r0, [r0] mov r2, r5 mov r3, r1 add r0, r0, #0xc4 bl MOD13_02216BE8 _02216BD0: mov r0, r4 bl OS_RestoreInterrupts add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr .align 2, 0 _02216BE4: .word MOD13_02240B20 arm_func_start MOD13_02216BE8 MOD13_02216BE8: ; 0x02216BE8 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 ldr r4, _02216D74 ; =0x02240B20 mov sb, r0 mov r8, r1 mov r7, r2 mov r6, r3 ldr r5, [r4] bl MOD13_02216DA4 cmp r0, #0 bne _02216C18 bl OS_Terminate _02216C18: ldr r0, [sb, #4] mov r0, r0, lsl #0x1f movs r0, r0, lsr #0x1f beq _02216C2C bl OS_Terminate _02216C2C: cmp r6, #0x1f bls _02216C78 mov r0, r5 bl OS_GetThreadPriority cmp r6, #0x20 bne _02216C54 cmp r0, #0 subne r6, r0, #1 moveq r6, #0 b _02216C78 _02216C54: cmp r6, #0x21 bne _02216C6C cmp r0, #0x1f addlo r6, r0, #1 movhs r6, #0x1f b _02216C78 _02216C6C: cmp r6, #0x22 moveq r6, r0 movne r6, #0x1f _02216C78: bl OS_DisableInterrupts ldr r2, [sb, #4] bic r1, r6, #0x80000000 bic r2, r2, #1 orr r2, r2, #1 str r2, [sb, #4] ldr r2, [sb, #4] mov r4, r0 and r0, r2, #1 orr r0, r0, r1, lsl #1 str r0, [sb, #4] str r8, [sb, #8] str r7, [sb, #0xc] ldr r0, [r5, #0xc0] cmp r0, #0 bne _02216CDC add r0, r5, #0xc4 cmp sb, r0 ldreq r0, _02216D74 ; =0x02240B20 moveq r1, #0 streq r1, [r0] mov r0, r5 str sb, [r5, #0xc0] bl OS_WakeupThreadDirect b _02216D60 _02216CDC: add r0, r5, #0xc4 cmp sb, r0 ldr r2, [r5, #0xc0] bne _02216D1C ldr r0, [r2] cmp r0, #0 beq _02216D08 _02216CF8: mov r2, r0 ldr r0, [r0] cmp r0, #0 bne _02216CF8 _02216D08: ldr r0, _02216D74 ; =0x02240B20 str sb, [r2] mov r1, #0 str r1, [r0] b _02216D60 _02216D1C: ldr r0, [r2, #4] mov r0, r0, lsr #1 cmp r0, r6 bls _02216D3C str sb, [r5, #0xc0] str r2, [sb] b _02216D60 _02216D38: mov r2, r1 _02216D3C: ldr r1, [r2] cmp r1, #0 beq _02216D58 ldr r0, [r1, #4] mov r0, r0, lsr #1 cmp r0, r6 bls _02216D38 _02216D58: str r1, [sb] str sb, [r2] _02216D60: mov r0, r4 bl OS_RestoreInterrupts add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr .align 2, 0 _02216D74: .word MOD13_02240B20 arm_func_start MOD13_02216D78 MOD13_02216D78: ; 0x02216D78 ldr r0, [r0, #4] mov r0, r0, lsl #0x1f movs r0, r0, lsr #0x1f movne r0, #1 moveq r0, #0 bx lr arm_func_start MOD13_02216D90 MOD13_02216D90: ; 0x02216D90 ldr ip, _02216DA0 ; =MI_CpuFill8 mov r1, #0 mov r2, #0x20 bx ip .align 2, 0 _02216DA0: .word MI_CpuFill8 arm_func_start MOD13_02216DA4 MOD13_02216DA4: ; 0x02216DA4 ldr r0, _02216DBC ; =0x02240B20 ldr r0, [r0] cmp r0, #0 movne r0, #1 moveq r0, #0 bx lr .align 2, 0 _02216DBC: .word MOD13_02240B20 arm_func_start MOD13_02216DC0 MOD13_02216DC0: ; 0x02216DC0 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r5, r0 mov r6, r1 bl OS_DisableInterrupts ldr r1, _02216E40 ; =0x02240B20 mov r4, r0 ldr r0, [r1] cmp r0, #0 bne _02216E2C add r0, r5, #0xc4 str r5, [r1] bl MOD13_02216D90 sub r0, r6, #0xe4 mov lr, #0 str lr, [r5, #0xc0] bic ip, r0, #3 add r3, r5, #0xe4 str ip, [sp] ldr r1, _02216E44 ; =MOD13_02216E48 mov r0, r5 mov r2, r5 add r3, r3, ip str lr, [sp, #4] bl OS_CreateThread mov r0, r5 bl OS_WakeupThreadDirect _02216E2C: mov r0, r4 bl OS_RestoreInterrupts add sp, sp, #8 ldmia sp!, {r4, r5, r6, lr} bx lr .align 2, 0 _02216E40: .word MOD13_02240B20 _02216E44: .word MOD13_02216E48 arm_func_start MOD13_02216E48 MOD13_02216E48: ; 0x02216E48 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov r8, r0 add sb, r8, #0xc4 mov r4, #0 _02216E5C: bl OS_DisableInterrupts ldr r1, [r8, #0xc0] mov r5, r0 cmp r1, #0 bne _02216E90 _02216E70: mov r0, r8 mov r1, r4 bl OS_SetThreadPriority mov r0, r4 bl OS_SleepThread ldr r0, [r8, #0xc0] cmp r0, #0 beq _02216E70 _02216E90: ldr r7, [r8, #0xc0] ldr r1, [r8, #0xc0] mov r0, r8 ldr r1, [r1] str r1, [r8, #0xc0] ldr r1, [r7, #4] mov r1, r1, lsr #1 bl OS_SetThreadPriority mov r0, r5 bl OS_RestoreInterrupts ldr r1, [r7, #8] cmp r1, #0 beq _02216ECC mov r0, r7 blx r1 _02216ECC: bl OS_DisableInterrupts mov r6, r0 mov r0, r8 ldr r5, [r7, #0xc] bl OS_GetThreadPriority ldr r1, [r8, #0xc0] cmp r1, #0 moveq r1, r4 beq _02216F0C ldr r1, [r8, #0xc0] ldr r1, [r1, #4] cmp r0, r1, lsr #1 ldrlo r1, [r8, #0xc0] ldrlo r1, [r1, #4] movlo r1, r1, lsr #1 movhs r1, r0 _02216F0C: cmp r1, r0 beq _02216F1C mov r0, r8 bl OS_SetThreadPriority _02216F1C: str r4, [r7] ldr r0, [r7, #4] cmp r5, #0 bic r0, r0, #1 str r0, [r7, #4] beq _02216F3C mov r0, r7 blx r5 _02216F3C: cmp r7, sb beq _02216F50 mov r0, r6 bl OS_RestoreInterrupts b _02216E5C _02216F50: bl OS_ExitThread add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, lr} bx lr arm_func_start MOD13_02216F60 MOD13_02216F60: ; 0x02216F60 ldr r1, _02216FB8 ; =0x02240B28 mov ip, #0 ldr r2, [r1, #4] cmp r2, #0 ble _02216FB0 ldr r1, _02216FBC ; =0x02240B24 sub r0, r0, #1 ldr r1, [r1] add r0, r1, r0, lsl #2 ldr r3, [r0, #0x1e0] mov r1, #1 _02216F8C: mov r0, r1, lsl ip ands r0, r0, r3 moveq r0, #0 bxeq lr add r0, ip, #1 mov r0, r0, lsl #0x10 mov ip, r0, lsr #0x10 cmp ip, r2 blt _02216F8C _02216FB0: mov r0, #1 bx lr .align 2, 0 _02216FB8: .word MOD13_02240B28 _02216FBC: .word MOD13_02240B24 arm_func_start MOD13_02216FC0 MOD13_02216FC0: ; 0x02216FC0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r2, _02217068 ; =0x02240B24 mov r7, r1 ldr r3, [r2] cmp r3, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, lr} bxeq lr ldr r1, _0221706C ; =0x02240B28 ldrb r4, [r0, #2] ldr r2, [r1, #4] cmp r4, r2 addgt sp, sp, #4 movgt r0, #0 ldmgtia sp!, {r4, r5, r6, r7, lr} bxgt lr sub r6, r7, #1 ldr r2, [r1] add r1, r3, r6, lsl #5 mla r1, r4, r2, r1 add r0, r0, #3 mov r5, r6, lsl #5 bl MI_CpuCopy8 ldr r0, _02217068 ; =0x02240B24 mov r1, #1 ldr r2, [r0] mov r0, r7 add r3, r2, #0x1e0 ldr r2, [r3, r6, lsl #2] orr r1, r2, r1, lsl r4 str r1, [r3, r6, lsl #2] bl MOD13_02216F60 cmp r0, #0 ldrne r0, _02217068 ; =0x02240B24 ldrne r0, [r0] addne r0, r0, r5 moveq r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr .align 2, 0 _02217068: .word MOD13_02240B24 _0221706C: .word MOD13_02240B28 arm_func_start MOD13_02217070 MOD13_02217070: ; 0x02217070 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldrb r0, [r6] mov r5, r1 mov r4, r2 strb r0, [r5] ldrb r0, [r5] cmp r0, #7 beq _022170A8 cmp r0, #8 beq _02217114 cmp r0, #9 beq _02217140 b _0221718C _022170A8: mov r0, r4 bl MOD13_02216F60 cmp r0, #0 ldrne r0, _022171A4 ; =0x02240B24 subne r1, r4, #1 ldrne r0, [r0] addne r0, r0, r1, lsl #5 ldmneia sp!, {r4, r5, r6, lr} bxne lr ldrb r1, [r6, #1] ldr r0, _022171A8 ; =0x02240B28 strb r1, [r5, #2] ldrb r2, [r5, #2] ldr r1, [r0, #4] cmp r2, r1 movgt r0, #0 ldmgtia sp!, {r4, r5, r6, lr} bxgt lr ldr r2, [r0] add r0, r6, #2 add r1, r5, #3 bl MI_CpuCopy8 mov r0, r5 mov r1, r4 bl MOD13_02216FC0 mov r4, r0 b _02217198 _02217114: ldrb r0, [r6, #1] add r4, r6, #3 and r0, r0, #0xff strh r0, [r5, #2] ldrb r0, [r6, #2] ldrh r1, [r5, #2] mov r0, r0, lsl #8 and r0, r0, #0xff00 orr r0, r1, r0 strh r0, [r5, #2] b _02217198 _02217140: ldrb r0, [r6, #1] add r4, r6, #3 ldr r1, _022171A8 ; =0x02240B28 and r0, r0, #0xff strh r0, [r5, #2] ldrb r2, [r6, #2] ldrh r3, [r5, #2] mov r0, r4 mov r2, r2, lsl #8 and r2, r2, #0xff00 orr r2, r3, r2 strh r2, [r5, #2] ldr r2, [r1] add r1, r5, #4 bl MI_CpuCopy8 ldr r0, _022171A8 ; =0x02240B28 ldr r0, [r0] add r4, r4, r0 b _02217198 _0221718C: mov r0, #0 ldmia sp!, {r4, r5, r6, lr} bx lr _02217198: mov r0, r4 ldmia sp!, {r4, r5, r6, lr} bx lr .align 2, 0 _022171A4: .word MOD13_02240B24 _022171A8: .word MOD13_02240B28 arm_func_start MOD13_022171AC MOD13_022171AC: ; 0x022171AC ldrb r3, [r0] mov r2, r1 add r2, r2, #1 strb r3, [r1] ldrb r1, [r0] cmp r1, #6 addls pc, pc, r1, lsl #2 b _02217224 _022171CC: ; jump table b _02217224 ; case 0 b _0221722C ; case 1 b _0221722C ; case 2 b _0221722C ; case 3 b _022171E8 ; case 4 b _0221722C ; case 5 b _0221722C ; case 6 _022171E8: ldrh r3, [r0, #2] add r1, r2, #3 strb r3, [r2] ldrh r3, [r0, #2] and r3, r3, #0xff00 mov r3, r3, asr #8 strb r3, [r2, #1] ldrh r3, [r0, #4] strb r3, [r2, #2] ldrh r0, [r0, #4] add r2, r2, #4 and r0, r0, #0xff00 mov r0, r0, asr #8 strb r0, [r1] b _0221722C _02217224: mov r0, #0 bx lr _0221722C: mov r0, r2 bx lr arm_func_start MOD13_02217234 MOD13_02217234: ; 0x02217234 stmdb sp!, {r4, lr} ldr r1, _0221727C ; =0x02240B24 ldr r1, [r1] cmp r1, #0 ldmeqia sp!, {r4, lr} bxeq lr sub r4, r0, #1 add r0, r1, r4, lsl #5 mov r1, #0 mov r2, #0x1e bl MI_CpuFill8 ldr r0, _0221727C ; =0x02240B24 mov r1, #0 ldr r0, [r0] add r0, r0, r4, lsl #2 str r1, [r0, #0x1e0] ldmia sp!, {r4, lr} bx lr .align 2, 0 _0221727C: .word MOD13_02240B24 arm_func_start MOD13_02217280 MOD13_02217280: ; 0x02217280 ldr r3, _02217298 ; =0x02240B24 ldr ip, _0221729C ; =MI_CpuFill8 mov r1, #0 mov r2, #0x21c str r0, [r3] bx ip .align 2, 0 _02217298: .word MOD13_02240B24 _0221729C: .word MI_CpuFill8 arm_func_start MOD13_022172A0 MOD13_022172A0: ; 0x022172A0 stmdb sp!, {lr} sub sp, sp, #4 ldr r2, _022172D8 ; =0x02240B28 sub r1, r0, #2 mov r0, #0x1e str r1, [r2] bl _s32_div_f ldr r1, _022172D8 ; =0x02240B28 mov r2, #0x1e str r0, [r1, #4] str r2, [r1, #8] add sp, sp, #4 ldmia sp!, {lr} bx lr .align 2, 0 _022172D8: .word MOD13_02240B28 .rodata .global MOD13_0223C420 MOD13_0223C420: ; 0x0223C420 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .global MOD13_0223C42C MOD13_0223C42C: ; 0x0223C42C .byte 0x00, 0x40, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .data .global MOD13_0223F780 MOD13_0223F780: ; 0x0223F780 .byte 0xFF, 0x00, 0x00, 0x00 .global MOD13_0223F784 MOD13_0223F784: ; 0x0223F784 .word MOD13_0223C42C .global MOD13_0223F788 MOD13_0223F788: ; 0x0223F788 .byte 0x72, 0x6F, 0x6D, 0x00 .global MOD13_0223F78C MOD13_0223F78C: ; 0x0223F78C .byte 0x05, 0x00, 0x00, 0x00 .global MOD13_0223F790 MOD13_0223F790: ; 0x0223F790 .byte 0x28, 0x00, 0x00, 0x00 .global MOD13_0223F794 MOD13_0223F794: ; 0x0223F794 .byte 0x28, 0x00, 0x00, 0x00 .global MOD13_0223F798 MOD13_0223F798: ; 0x0223F798 .byte 0xFF, 0xFF, 0x00, 0x00 .global MOD13_0223F79C MOD13_0223F79C: ; 0x0223F79C .word MOD13_0223F7A4 .global MOD13_0223F7A0 MOD13_0223F7A0: ; 0x0223F7A0 .byte 0x01, 0x00, 0x00, 0x00 .global MOD13_0223F7A4 MOD13_0223F7A4: ; 0x0223F7A4 .byte 0x6D, 0x00, 0x75, 0x00, 0x6C, 0x00, 0x74, 0x00, 0x69, 0x00, 0x62, 0x00 .byte 0x6F, 0x00, 0x6F, 0x00, 0x74, 0x00, 0x00, 0x00 .bss .global MOD13_02240A40 MOD13_02240A40: ; 0x02240A40 .space 0x4 .global MOD13_02240A44 MOD13_02240A44: ; 0x02240A44 .space 0x4 .global MOD13_02240A48 MOD13_02240A48: ; 0x02240A48 .space 0x4 .global MOD13_02240A4C MOD13_02240A4C: ; 0x02240A4C .space 0x4 .global MOD13_02240A50 MOD13_02240A50: ; 0x02240A50 .space 0x30 .global MOD13_02240A80 MOD13_02240A80: ; 0x02240A80 .space 0x8 .global MOD13_02240A88 MOD13_02240A88: ; 0x02240A88 .space 0x6 .global MOD13_02240A8E MOD13_02240A8E: ; 0x02240A8E .space 0x2 .global MOD13_02240A90 MOD13_02240A90: ; 0x02240A90 .space 0x60 .global MOD13_02240AF0 MOD13_02240AF0: ; 0x02240AF0 .space 0x4 .global MOD13_02240AF4 MOD13_02240AF4: ; 0x02240AF4 .space 0x4 .global MOD13_02240AF8 MOD13_02240AF8: ; 0x02240AF8 .space 0x4 .global MOD13_02240AFC MOD13_02240AFC: ; 0x02240AFC .space 0x4 .global MOD13_02240B00 MOD13_02240B00: ; 0x02240B00 .space 0x20 .global MOD13_02240B20 MOD13_02240B20: ; 0x02240B20 .space 0x4 .global MOD13_02240B24 MOD13_02240B24: ; 0x02240B24 .space 0x4 .global MOD13_02240B28 MOD13_02240B28: ; 0x02240B28 .space 0xC