.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD54_021D74E0 MOD54_021D74E0: ; 0x021D74E0 push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r1, #0 ldr r1, [r5] add r6, r0, #0 cmp r1, #0 beq _021D74F6 cmp r1, #1 bne _021D74F4 b _021D761A _021D74F4: b _021D7628 _021D74F6: mov r0, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D7630 ; =0xFFFFE0FF and r1, r0 str r1, [r2] ldr r2, _021D7634 ; =0x04001000 ldr r1, [r2] and r0, r1 str r0, [r2] mov r2, #0x41 mov r0, #3 mov r1, #0x33 lsl r2, r2, #0xc bl FUN_0201681C ldr r1, _021D7638 ; =0x00004A60 add r0, r6, #0 mov r2, #0x33 bl FUN_02006268 ldr r2, _021D7638 ; =0x00004A60 mov r1, #0 add r4, r0, #0 bl Call_FillMemWithValue mov r0, #0x33 bl FUN_02016B94 str r0, [r4] add r0, r6, #0 bl FUN_0200628C str r0, [r4, #8] ldr r1, [r0] ldr r0, _021D763C ; =0x00004A38 str r1, [r4, r0] mov r0, #0x33 bl FUN_0200AA80 str r0, [r4, #0x24] ldr r2, _021D7640 ; =0x000001E2 mov r0, #0 mov r1, #0x1a mov r3, #0x33 bl FUN_0200A86C str r0, [r4, #0x28] mov r0, #4 mov r1, #8 bl FUN_0201669C bl MOD54_021D7874 ldr r0, [r4] bl MOD54_021D7894 mov r0, #0 bl FUN_0200E394 mov r0, #1 bl FUN_0200E394 mov r0, #0x10 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x33 str r0, [sp, #8] mov r0, #0 mov r1, #0x11 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 add r0, r4, #0 bl MOD54_021D7AA0 ldr r0, _021D7644 ; =MOD54_021D784C add r1, r4, #0 bl FUN_02015F10 add r0, r4, #0 bl MOD54_021D799C bl MOD54_021D7B8C add r0, r4, #0 bl MOD54_021D7BBC add r0, r4, #0 bl MOD54_021D7CAC add r0, r4, #0 add r1, r6, #0 bl MOD54_021D7DB4 mov r1, #0 mov r0, #0x34 add r2, r1, #0 bl FUN_0200433C add r0, r4, #0 bl FUN_02084098 bl FUN_020328E4 mov r0, #3 bl FUN_02032B6C bl FUN_02031190 cmp r0, #0 bne _021D75F4 mov r0, #2 bl FUN_02052B74 _021D75F4: bl FUN_02033E74 ldr r0, _021D763C ; =0x00004A38 mov r1, #0xed lsl r1, r1, #2 ldr r0, [r4, r0] add r1, r4, r1 bl MOD54_021D9570 ldr r0, _021D7648 ; =MOD54_021D77E8 add r1, r4, #0 mov r2, #5 bl FUN_0200CA60 str r0, [r4, #0x20] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7628 _021D761A: bl FUN_02006278 mov r0, #0 str r0, [r5] add sp, #0xc mov r0, #1 pop {r3, r4, r5, r6, pc} _021D7628: mov r0, #0 add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021D7630: .word 0xFFFFE0FF _021D7634: .word 0x04001000 _021D7638: .word 0x00004A60 _021D763C: .word 0x00004A38 _021D7640: .word 0x000001E2 _021D7644: .word MOD54_021D784C _021D7648: .word MOD54_021D77E8 thumb_func_end MOD54_021D74E0 thumb_func_start MOD54_021D764C MOD54_021D764C: ; 0x021D764C push {r3, r4, r5, lr} add r5, r1, #0 bl FUN_02006278 add r4, r0, #0 bl FUN_02031190 cmp r0, #0 bne _021D7672 ldr r0, _021D7730 ; =0x00004A50 ldr r0, [r4, r0] cmp r0, #0 beq _021D7672 bl FUN_0202CB8C ldr r1, _021D7730 ; =0x00004A50 ldr r2, [r4, r1] and r0, r2 str r0, [r4, r1] _021D7672: ldr r1, [r5] cmp r1, #3 bhi _021D7726 add r0, r1, r1 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D7684: ; jump table .short _021D768C - _021D7684 - 2 ; case 0 .short _021D76B4 - _021D7684 - 2 ; case 1 .short _021D7702 - _021D7684 - 2 ; case 2 .short _021D771A - _021D7684 - 2 ; case 3 _021D768C: bl FUN_0200E308 cmp r0, #0 beq _021D7726 mov r0, #1 str r0, [r5] bl FUN_02031190 cmp r0, #0 beq _021D7726 bl MOD54_021D8C08 cmp r0, #2 ble _021D7726 mov r1, #0 mov r0, #0x72 add r2, r1, #0 bl FUN_02030ADC b _021D7726 _021D76B4: mov r0, #0xd1 lsl r0, r0, #2 ldr r0, [r4, r0] lsl r2, r0, #2 ldr r0, _021D7734 ; =0x021D97E0 ldr r2, [r0, r2] cmp r2, #0 beq _021D76CA add r0, r4, #0 blx r2 str r0, [r5] _021D76CA: ldr r0, _021D7738 ; =0x00004A40 ldrb r0, [r4, r0] cmp r0, #0 bne _021D76E2 mov r0, #0xa6 lsl r0, r0, #2 ldr r2, _021D773C ; =0x00010300 add r0, r4, r0 mov r1, #0 add r3, r4, #0 bl MOD54_021D8AF8 _021D76E2: add r0, r4, #0 bl MOD54_021D8D50 bl FUN_02031190 cmp r0, #0 bne _021D7726 add r0, r4, #0 mov r1, #1 bl MOD54_021D8F94 ldr r1, [r5] cmp r1, #1 bne _021D7726 str r0, [r5] b _021D7726 _021D7702: mov r0, #0xd1 lsl r0, r0, #2 ldr r0, [r4, r0] lsl r2, r0, #2 ldr r0, _021D7734 ; =0x021D97E0 ldr r2, [r0, r2] cmp r2, #0 beq _021D7726 add r0, r4, #0 blx r2 str r0, [r5] b _021D7726 _021D771A: bl FUN_0200E308 cmp r0, #0 beq _021D7726 mov r0, #1 pop {r3, r4, r5, pc} _021D7726: ldr r0, [r4, #0x50] bl FUN_0201FDEC mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D7730: .word 0x00004A50 _021D7734: .word 0x021D97E0 _021D7738: .word 0x00004A40 _021D773C: .word 0x00010300 thumb_func_end MOD54_021D764C thumb_func_start MOD54_021D7740 MOD54_021D7740: ; 0x021D7740 push {r3, r4, r5, r6, r7, lr} str r0, [sp] bl FUN_02006278 add r6, r0, #0 ldr r0, [r6, #0x20] bl FUN_0200CAB4 mov r0, #0x6b lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009C0C mov r0, #0x1b lsl r0, r0, #4 ldr r0, [r6, r0] bl FUN_02009E04 mov r7, #0x5f mov r4, #0 add r5, r6, #0 lsl r7, r7, #2 _021D776C: ldr r0, [r5, r7] bl FUN_02008E2C add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D776C ldr r0, [r6, #0x50] bl FUN_0201FD58 bl FUN_02009FA0 bl FUN_0201D12C bl FUN_0201E08C add r0, r6, #0 bl MOD54_021D7EDC ldr r0, [r6] bl MOD54_021D7A6C mov r0, #2 bl FUN_02032B6C bl FUN_02031B50 ldr r0, [r6, #8] ldr r0, [r0, #4] bl FUN_02052F8C ldr r0, [r6, #0x28] bl FUN_0200A8B8 ldr r0, [r6, #0x24] bl FUN_0200AB18 add r0, r6, #0 bl MOD54_021D7A34 ldr r0, [sp] bl FUN_0200627C ldr r2, _021D77E4 ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2] mov r0, #0 bl FUN_02052B74 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 mov r0, #0x33 bl FUN_020168D0 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D77E4: .word 0x04000304 thumb_func_end MOD54_021D7740 thumb_func_start MOD54_021D77E8 MOD54_021D77E8: ; 0x021D77E8 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #0xc] add r1, #0xc cmp r0, #0 beq _021D7842 ldr r0, [r1, #4] ldr r3, [r1, #8] lsl r2, r0, #1 ldr r0, _021D7844 ; =0x021D968A ldrb r0, [r0, r2] cmp r3, r0 ble _021D7832 mov r0, #0 str r0, [r1, #8] ldr r2, [r1, #4] add r2, r2, #1 str r2, [r1, #4] lsl r3, r2, #1 ldr r2, _021D7848 ; =0x021D968B ldrb r2, [r2, r3] cmp r2, #0xff bne _021D7818 str r0, [r1, #4] _021D7818: ldr r0, [r1, #0x10] ldr r1, [r1, #4] ldr r0, [r0, #0xc] lsl r2, r1, #1 ldr r1, _021D7848 ; =0x021D968B ldrb r1, [r1, r2] mov r2, #0x20 lsl r1, r1, #5 add r0, r0, r1 mov r1, #0 bl GX_LoadOBJPltt b _021D7838 _021D7832: ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] _021D7838: mov r0, #0xe9 lsl r0, r0, #2 add r0, r4, r0 bl MOD54_021D8A90 _021D7842: pop {r4, pc} .align 2, 0 _021D7844: .word 0x021D968A _021D7848: .word 0x021D968B thumb_func_end MOD54_021D77E8 thumb_func_start MOD54_021D784C MOD54_021D784C: ; 0x021D784C push {r4, lr} add r4, r0, #0 bl FUN_0201C30C bl FUN_02009F80 add r0, r4, #0 bl FUN_0201AB60 ldr r3, _021D786C ; =0x027E0000 ldr r1, _021D7870 ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r4, pc} .align 2, 0 _021D786C: .word 0x027E0000 _021D7870: .word 0x00003FF8 thumb_func_end MOD54_021D784C thumb_func_start MOD54_021D7874 MOD54_021D7874: ; 0x021D7874 push {r4, lr} sub sp, #0x28 ldr r4, _021D7890 ; =0x021D9758 add r3, sp, #0 mov r2, #5 _021D787E: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D787E add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D7890: .word 0x021D9758 thumb_func_end MOD54_021D7874 thumb_func_start MOD54_021D7894 MOD54_021D7894: ; 0x021D7894 push {r4, r5, lr} sub sp, #0x9c ldr r5, _021D7984 ; =0x021D9694 add r3, sp, #0x8c add r4, r0, #0 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r5, _021D7988 ; =0x021D9720 add r3, sp, #0x70 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #4 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #4 bl FUN_02018744 ldr r5, _021D798C ; =0x021D973C add r3, sp, #0x54 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #5 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #5 bl FUN_02018744 ldr r5, _021D7990 ; =0x021D96CC add r3, sp, #0x38 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #6 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 ldr r5, _021D7994 ; =0x021D96E8 add r3, sp, #0x1c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #0 str r0, [r3] add r0, r4, #0 add r3, r1, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #0 bl FUN_02018744 ldr r5, _021D7998 ; =0x021D9704 add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] str r0, [r3] add r0, r4, #0 mov r1, #1 mov r3, #0 bl FUN_02016C18 mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x33 bl FUN_02017F18 mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x33 bl FUN_02017F18 add sp, #0x9c pop {r4, r5, pc} nop _021D7984: .word 0x021D9694 _021D7988: .word 0x021D9720 _021D798C: .word 0x021D973C _021D7990: .word 0x021D96CC _021D7994: .word 0x021D96E8 _021D7998: .word 0x021D9704 thumb_func_end MOD54_021D7894 thumb_func_start MOD54_021D799C MOD54_021D799C: ; 0x021D799C push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r6, #0 add r4, r7, #0 add r5, r7, #0 _021D79A6: mov r0, #8 mov r1, #0x33 bl FUN_020219F4 str r0, [r4, #0x2c] mov r0, #0xd9 mov r1, #0 lsl r0, r0, #2 str r1, [r5, r0] add r0, r0, #4 str r1, [r5, r0] mov r0, #0xe3 lsl r0, r0, #2 str r1, [r4, r0] add r6, r6, #1 add r4, r4, #4 add r5, #8 cmp r6, #5 blt _021D79A6 mov r0, #0xb4 mov r1, #0x33 bl FUN_020219F4 str r0, [r7, #0x44] mov r0, #0x28 mov r1, #0x33 bl FUN_020219F4 str r0, [r7, #0x48] mov r0, #0xd1 mov r1, #0 lsl r0, r0, #2 str r1, [r7, r0] ldr r0, [r7, #0x28] ldr r2, [r7, #0x48] mov r1, #0x11 bl FUN_0200A8E0 add r0, r7, #0 bl MOD54_021D8E64 mov r0, #0x33 bl FUN_02053708 mov r1, #0xea lsl r1, r1, #2 str r0, [r7, r1] mov r0, #0 str r0, [r7, #0xc] str r0, [r7, #0x14] add r2, r7, #0 str r0, [r7, #0x10] mov r0, #0x56 mov r1, #1 add r2, #0x1c mov r3, #0x33 bl FUN_02006C08 str r0, [r7, #0x18] mov r1, #0x32 ldr r0, _021D7A30 ; =0x00004A44 mov r2, #0 str r2, [r7, r0] lsl r1, r1, #4 str r2, [r7, r1] mov r1, #2 add r0, r0, #4 str r1, [r7, r0] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D7A30: .word 0x00004A44 thumb_func_end MOD54_021D799C thumb_func_start MOD54_021D7A34 MOD54_021D7A34: ; 0x021D7A34 push {r4, r5, r6, lr} add r6, r0, #0 bl MOD54_021D8F0C ldr r0, [r6, #0x18] bl FUN_02016A18 mov r0, #0xea lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02016A18 mov r4, #0 add r5, r6, #0 _021D7A50: ldr r0, [r5, #0x2c] bl FUN_02021A20 add r4, r4, #1 add r5, r5, #4 cmp r4, #5 blt _021D7A50 ldr r0, [r6, #0x48] bl FUN_02021A20 ldr r0, [r6, #0x44] bl FUN_02021A20 pop {r4, r5, r6, pc} thumb_func_end MOD54_021D7A34 thumb_func_start MOD54_021D7A6C MOD54_021D7A6C: ; 0x021D7A6C push {r4, lr} add r4, r0, #0 mov r1, #6 bl FUN_020178A0 add r0, r4, #0 mov r1, #5 bl FUN_020178A0 add r0, r4, #0 mov r1, #4 bl FUN_020178A0 add r0, r4, #0 mov r1, #1 bl FUN_020178A0 add r0, r4, #0 mov r1, #0 bl FUN_020178A0 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_end MOD54_021D7A6C thumb_func_start MOD54_021D7AA0 MOD54_021D7AA0: ; 0x021D7AA0 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #2 ldr r4, [r5] mov r1, #0 lsl r0, r0, #8 str r0, [sp] mov r0, #0x33 str r0, [sp, #4] mov r0, #0x56 add r2, r1, #0 add r3, r1, #0 bl FUN_02006930 mov r0, #0x20 str r0, [sp] mov r0, #0x33 str r0, [sp, #4] mov r0, #0xc add r1, r0, #0 mov r2, #4 mov r3, #0 bl FUN_02006930 mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 mov r2, #0x33 bl FUN_02002EEC mov r1, #0x1a mov r0, #4 lsl r1, r1, #4 mov r2, #0x33 bl FUN_02002EEC mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x33 str r0, [sp, #0xc] mov r0, #0xc mov r1, #0xa add r2, r4, #0 mov r3, #6 bl FUN_0200687C mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x33 str r0, [sp, #0xc] mov r0, #0xc mov r1, #0xb add r2, r4, #0 mov r3, #6 bl FUN_020068C8 mov r0, #0 str r0, [sp] mov r0, #2 lsl r0, r0, #0xc str r0, [sp, #4] mov r3, #1 str r3, [sp, #8] mov r0, #0x33 str r0, [sp, #0xc] mov r0, #0x56 mov r1, #2 add r2, r4, #0 bl FUN_0200687C mov r0, #0 str r0, [sp] mov r0, #6 lsl r0, r0, #8 str r0, [sp, #4] mov r3, #1 str r3, [sp, #8] mov r0, #0x33 str r0, [sp, #0xc] mov r0, #0x56 mov r1, #3 add r2, r4, #0 bl FUN_020068C8 ldr r0, [r5, #8] ldr r0, [r0, #8] bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0x33 str r0, [sp, #4] add r0, r4, #0 mov r1, #0 mov r2, #1 mov r3, #0xa bl FUN_0200CD68 mov r1, #0 str r1, [sp] mov r0, #0x33 str r0, [sp, #4] add r0, r4, #0 mov r2, #0x1f mov r3, #0xb bl FUN_0200CB00 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD54_021D7AA0 thumb_func_start MOD54_021D7B8C MOD54_021D7B8C: ; 0x021D7B8C push {r4, lr} sub sp, #0x10 ldr r4, _021D7BB8 ; =0x021D96A4 add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_0201D040 mov r0, #0x14 mov r1, #0x33 bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x10 pop {r4, pc} .align 2, 0 _021D7BB8: .word 0x021D96A4 thumb_func_end MOD54_021D7B8C thumb_func_start MOD54_021D7BBC MOD54_021D7BBC: ; 0x021D7BBC push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x7e str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x20 str r3, [sp, #0xc] mov r2, #0x33 str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC add r1, r6, #0 mov r0, #0x1e add r1, #0x54 mov r2, #0x33 bl FUN_02008C9C str r0, [r6, #0x50] add r0, r6, #0 mov r2, #1 add r0, #0x54 mov r1, #0 lsl r2, r2, #0x14 bl FUN_02008D24 mov r7, #0x5f mov r4, #0 add r5, r6, #0 lsl r7, r7, #2 _021D7C02: mov r0, #3 add r1, r4, #0 mov r2, #0x33 bl FUN_02008DEC str r0, [r5, r7] add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D7C02 mov r0, #2 str r0, [sp] mov r3, #1 str r3, [sp, #4] mov r0, #0x33 str r0, [sp, #8] mov r0, #0x5f lsl r0, r0, #2 ldr r0, [r6, r0] mov r1, #0x56 mov r2, #0xc bl FUN_02008F34 mov r1, #0x6b lsl r1, r1, #2 str r0, [r6, r1] mov r0, #2 str r0, [sp] mov r2, #1 str r2, [sp, #4] mov r0, #0xf str r0, [sp, #8] mov r0, #0x33 sub r1, #0x2c str r0, [sp, #0xc] ldr r0, [r6, r1] mov r1, #0x56 mov r3, #0 bl FUN_02008FEC mov r1, #0x1b lsl r1, r1, #4 str r0, [r6, r1] mov r0, #2 str r0, [sp] str r0, [sp, #4] mov r0, #0x33 sub r1, #0x2c str r0, [sp, #8] ldr r0, [r6, r1] mov r1, #0x56 mov r2, #0xd mov r3, #1 bl FUN_020090AC mov r1, #0x6d lsl r1, r1, #2 str r0, [r6, r1] mov r0, #2 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x33 sub r1, #0x2c str r0, [sp, #8] ldr r0, [r6, r1] mov r1, #0x56 mov r2, #0xe mov r3, #1 bl FUN_020090AC mov r1, #0x6e lsl r1, r1, #2 str r0, [r6, r1] sub r1, #0xc ldr r0, [r6, r1] bl FUN_02009A50 mov r0, #0x1b lsl r0, r0, #4 ldr r0, [r6, r0] bl FUN_02009CF0 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD54_021D7BBC thumb_func_start MOD54_021D7CAC MOD54_021D7CAC: ; 0x021D7CAC push {r4, r5, r6, r7, lr} sub sp, #0x5c mov r1, #2 add r5, r0, #0 str r1, [sp] sub r0, r1, #3 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 mov r3, #0x5f str r0, [sp, #0xc] mov r2, #1 lsl r3, r3, #2 str r2, [sp, #0x10] ldr r2, [r5, r3] str r2, [sp, #0x14] add r2, r3, #4 ldr r2, [r5, r2] str r2, [sp, #0x18] add r2, r3, #0 add r2, #8 ldr r2, [r5, r2] str r2, [sp, #0x1c] add r2, r3, #0 add r2, #0xc ldr r2, [r5, r2] add r3, #0x88 str r2, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] add r0, r5, r3 add r2, r1, #0 add r3, r1, #0 bl FUN_02008AA4 ldr r0, [r5, #0x50] mov r1, #0 str r0, [sp, #0x2c] mov r0, #0x81 lsl r0, r0, #2 add r0, r5, r0 str r0, [sp, #0x30] mov r0, #1 lsl r0, r0, #0xc str r1, [sp, #0x3c] str r0, [sp, #0x40] str r0, [sp, #0x44] str r0, [sp, #0x48] add r0, sp, #0x2c strh r1, [r0, #0x20] mov r0, #1 str r0, [sp, #0x50] str r0, [sp, #0x54] mov r0, #0x33 str r0, [sp, #0x58] lsl r0, r0, #0xe str r0, [sp, #0x34] mov r0, #0x15 lsl r0, r0, #0xe str r0, [sp, #0x38] add r0, sp, #0x2c bl FUN_0201FE94 mov r1, #0x8a lsl r1, r1, #2 str r0, [r5, r1] ldr r0, [r5, r1] mov r1, #1 bl FUN_020200BC mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r7, #0x8b ldr r4, _021D7DB0 ; =0x021D96B4 mov r6, #0 lsl r7, r7, #2 _021D7D4C: ldrh r0, [r4, #4] lsl r0, r0, #0xc str r0, [sp, #0x34] ldrh r0, [r4, #6] lsl r0, r0, #0xc str r0, [sp, #0x38] add r0, sp, #0x2c bl FUN_0201FE94 mov r1, #0x8b lsl r1, r1, #2 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200BC mov r0, #0x8b lsl r0, r0, #2 sub r1, r6, #1 lsl r1, r1, #1 ldr r0, [r5, r0] add r1, #0x1b bl FUN_02020130 ldr r0, [r5, r7] mov r1, #0 bl FUN_020200A0 add r6, r6, #1 add r4, r4, #4 add r5, r5, #4 cmp r6, #5 blt _021D7D4C mov r0, #6 lsl r0, r0, #0xe str r0, [sp, #0x34] mov r0, #0x1a lsl r0, r0, #0x10 str r0, [sp, #0x38] mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C add sp, #0x5c pop {r4, r5, r6, r7, pc} .align 2, 0 _021D7DB0: .word 0x021D96B4 thumb_func_end MOD54_021D7CAC thumb_func_start MOD54_021D7DB4 MOD54_021D7DB4: ; 0x021D7DB4 push {r3, r4, lr} sub sp, #0x14 add r4, r0, #0 mov r0, #0x14 str r0, [sp] mov r0, #6 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _021D7E90 ; =0x000001C3 mov r1, #0xbe str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r4] add r1, r4, r1 mov r2, #5 mov r3, #0x1a bl FUN_02019064 mov r0, #0xbe lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl FUN_02019620 mov r0, #0x13 str r0, [sp] mov r0, #0x1b str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x28 mov r1, #0xba str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r4] add r1, r4, r1 mov r2, #0 mov r3, #2 bl FUN_02019064 mov r0, #0xba lsl r0, r0, #2 add r0, r4, r0 mov r1, #0xf bl FUN_02019620 mov r0, #1 str r0, [sp] mov r0, #0x1a str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xf str r0, [sp, #0xc] mov r0, #0x94 mov r1, #0xc2 str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r4] add r1, r4, r1 mov r2, #0 mov r3, #3 bl FUN_02019064 mov r0, #0xc2 lsl r0, r0, #2 ldr r1, [r4, #0x48] add r0, r4, r0 mov r2, #0 bl MOD54_021D7E98 mov r0, #6 str r0, [sp] mov r0, #0x10 str r0, [sp, #4] mov r0, #0xb str r0, [sp, #8] mov r0, #0xf str r0, [sp, #0xc] mov r0, #0xc8 mov r1, #0xa6 str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r4] add r1, r4, r1 mov r2, #0 mov r3, #2 bl FUN_02019064 mov r0, #0xa6 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl FUN_02019620 mov r0, #0xa6 lsl r0, r0, #2 ldr r2, _021D7E94 ; =0x00010300 add r0, r4, r0 mov r1, #0 add r3, r4, #0 bl MOD54_021D8AF8 add sp, #0x14 pop {r3, r4, pc} .align 2, 0 _021D7E90: .word 0x000001C3 _021D7E94: .word 0x00010300 thumb_func_end MOD54_021D7DB4 thumb_func_start MOD54_021D7E98 MOD54_021D7E98: ; 0x021D7E98 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 add r4, r2, #0 mov r0, #1 mov r2, #0 add r7, r1, #0 bl FUN_02002E14 add r6, r0, #0 add r0, r5, #0 mov r1, #0 bl FUN_02019620 mov r1, #1 str r1, [sp] mov r0, #0x41 mov r3, #0xd0 str r4, [sp, #4] sub r4, r3, r6 lsl r0, r0, #0xa lsr r3, r4, #0x1f str r0, [sp, #8] mov r0, #0 add r3, r4, r3 str r0, [sp, #0xc] add r0, r5, #0 add r2, r7, #0 asr r3, r3, #1 bl FUN_0201BDE0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD54_021D7E98 thumb_func_start MOD54_021D7EDC MOD54_021D7EDC: ; 0x021D7EDC push {r4, lr} add r4, r0, #0 mov r0, #0xa6 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019178 mov r0, #0xc2 lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019178 mov r0, #0xbe lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019178 mov r0, #0xba lsl r0, r0, #2 add r0, r4, r0 bl FUN_02019178 pop {r4, pc} .align 2, 0 thumb_func_end MOD54_021D7EDC thumb_func_start MOD54_021D7F0C MOD54_021D7F0C: ; 0x021D7F0C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #0 mov r1, #1 bl FUN_020334E8 bl FUN_02031190 cmp r0, #0 bne _021D7F2E add r0, r5, #0 mov r1, #2 mov r2, #0 bl MOD54_021D8C90 b _021D7F38 _021D7F2E: add r0, r5, #0 mov r1, #8 mov r2, #0 bl MOD54_021D8C90 _021D7F38: add r0, r5, #0 mov r1, #3 bl MOD54_021D80BC add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD54_021D7F0C thumb_func_start MOD54_021D7F44 MOD54_021D7F44: ; 0x021D7F44 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD54_021D7F70 bl FUN_02031190 cmp r0, #0 bne _021D7F66 bl MOD54_021D8ADC cmp r0, #1 beq _021D7F6C add r0, r5, #0 bl MOD54_021D8C04 b _021D7F6C _021D7F66: add r0, r5, #0 bl MOD54_021D8C04 _021D7F6C: add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD54_021D7F44 thumb_func_start MOD54_021D7F70 MOD54_021D7F70: ; 0x021D7F70 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, _021D808C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #1 tst r0, r1 beq _021D7FD6 bl FUN_02031190 cmp r0, #0 bne _021D8086 bl MOD54_021D8C08 ldr r1, _021D8090 ; =0x00004A48 ldr r2, [r4, r1] cmp r2, r0 bne _021D7FCC add r1, #8 ldr r0, [r4, r1] cmp r0, #0 bne _021D7FCC mov r1, #1 add r0, sp, #0 strb r1, [r0, #2] add r0, r4, #0 mov r1, #3 mov r2, #0 bl MOD54_021D8C90 add r0, r4, #0 mov r1, #0x16 bl MOD54_021D80BC add r1, sp, #0 mov r0, #0x75 add r1, #2 mov r2, #1 bl FUN_02030ADC add r0, r4, #0 mov r1, #0 bl MOD54_021D8F40 add sp, #4 pop {r3, r4, pc} _021D7FCC: ldr r0, _021D8094 ; =0x000005F2 bl FUN_020054C8 add sp, #4 pop {r3, r4, pc} _021D7FD6: mov r0, #2 tst r0, r1 beq _021D805A bl FUN_02031190 cmp r0, #0 beq _021D800C ldr r0, _021D8098 ; =0x00004A3C ldr r0, [r4, r0] cmp r0, #0 bne _021D8002 add r0, r4, #0 mov r1, #4 mov r2, #0 bl MOD54_021D8C90 add r0, r4, #0 mov r1, #4 bl MOD54_021D80BC add sp, #4 pop {r3, r4, pc} _021D8002: ldr r0, _021D8094 ; =0x000005F2 bl FUN_020054C8 add sp, #4 pop {r3, r4, pc} _021D800C: bl FUN_02030F20 ldr r1, _021D8090 ; =0x00004A48 ldr r2, [r4, r1] cmp r2, r0 bne _021D8050 add r1, #8 ldr r0, [r4, r1] cmp r0, #0 bne _021D8050 mov r1, #1 add r0, sp, #0 strb r1, [r0, #1] add r0, r4, #0 mov r1, #4 mov r2, #0 bl MOD54_021D8C90 add r0, r4, #0 mov r1, #4 bl MOD54_021D80BC add r1, sp, #0 mov r0, #0x75 add r1, #1 mov r2, #1 bl FUN_02030ADC add r0, r4, #0 mov r1, #0 bl MOD54_021D8F40 add sp, #4 pop {r3, r4, pc} _021D8050: ldr r0, _021D8094 ; =0x000005F2 bl FUN_020054C8 add sp, #4 pop {r3, r4, pc} _021D805A: ldr r0, _021D809C ; =0x00004A4C ldr r0, [r4, r0] cmp r0, #0 bne _021D8086 bl FUN_02031190 cmp r0, #0 bne _021D8086 bl FUN_02030F20 ldr r1, _021D8090 ; =0x00004A48 ldr r1, [r4, r1] cmp r1, r0 bne _021D8086 mov r1, #0 add r0, sp, #0 strb r1, [r0] mov r0, #0x75 add r1, sp, #0 mov r2, #1 bl FUN_02030ADC _021D8086: add sp, #4 pop {r3, r4, pc} nop _021D808C: .word 0x021C48B8 _021D8090: .word 0x00004A48 _021D8094: .word 0x000005F2 _021D8098: .word 0x00004A3C _021D809C: .word 0x00004A4C thumb_func_end MOD54_021D7F70 thumb_func_start MOD54_021D80A0 MOD54_021D80A0: ; 0x021D80A0 bx lr .align 2, 0 thumb_func_end MOD54_021D80A0 thumb_func_start MOD54_021D80A4 MOD54_021D80A4: ; 0x021D80A4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 mov r1, #2 bl MOD54_021D80BC add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD54_021D80A4 thumb_func_start MOD54_021D80BC MOD54_021D80BC: ; 0x021D80BC mov r2, #0xd1 mov r3, #0x1e lsl r2, r2, #2 str r3, [r0, r2] add r2, r2, #4 str r1, [r0, r2] bx lr .align 2, 0 thumb_func_end MOD54_021D80BC thumb_func_start MOD54_021D80CC MOD54_021D80CC: ; 0x021D80CC push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x4c] add r4, r1, #0 bl MOD54_021D8D20 cmp r0, #0 beq _021D80E6 mov r0, #0xd2 lsl r0, r0, #2 ldr r1, [r5, r0] sub r0, r0, #4 str r1, [r5, r0] _021D80E6: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD54_021D80CC thumb_func_start MOD54_021D80F0 MOD54_021D80F0: ; 0x021D80F0 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_02031190 cmp r0, #0 bne _021D810C mov r0, #0 str r0, [sp] mov r0, #0x75 add r1, sp, #0 mov r2, #1 bl FUN_02030ADC _021D810C: mov r0, #0xd1 mov r1, #3 lsl r0, r0, #2 str r1, [r5, r0] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD54_021D80F0 thumb_func_start MOD54_021D8120 MOD54_021D8120: ; 0x021D8120 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x33 add r4, r1, #0 str r0, [sp] ldr r0, [r5] ldr r1, _021D814C ; =0x021D9678 mov r2, #0x1f mov r3, #0xb bl FUN_02002198 mov r1, #0x32 lsl r1, r1, #4 str r0, [r5, r1] mov r0, #5 add r1, #0x24 str r0, [r5, r1] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D814C: .word 0x021D9678 thumb_func_end MOD54_021D8120 thumb_func_start MOD54_021D8150 MOD54_021D8150: ; 0x021D8150 push {r4, r5, r6, lr} sub sp, #8 add r5, r0, #0 add r4, r1, #0 bl FUN_02031190 cmp r0, #0 beq _021D8184 ldr r0, _021D826C ; =0x00004A3C ldr r0, [r5, r0] cmp r0, #0 beq _021D81A8 ldr r0, _021D8270 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0xc3 tst r0, r1 beq _021D8178 ldr r0, _021D8274 ; =0x000005F2 bl FUN_020054C8 _021D8178: add r0, r5, #0 bl MOD54_021D80A0 add sp, #8 add r0, r4, #0 pop {r4, r5, r6, pc} _021D8184: ldr r0, _021D8278 ; =0x00004A50 ldr r0, [r5, r0] cmp r0, #0 beq _021D81A8 ldr r0, _021D8270 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0xc3 tst r0, r1 beq _021D819C ldr r0, _021D8274 ; =0x000005F2 bl FUN_020054C8 _021D819C: add r0, r5, #0 bl MOD54_021D80A0 add sp, #8 add r0, r4, #0 pop {r4, r5, r6, pc} _021D81A8: bl MOD54_021D8C08 add r6, r0, #0 bl FUN_02030F20 cmp r6, r0 beq _021D81C2 add r0, r5, #0 bl MOD54_021D80A0 add sp, #8 add r0, r4, #0 pop {r4, r5, r6, pc} _021D81C2: mov r0, #0x32 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x33 bl FUN_020021AC mov r1, #0 mvn r1, r1 cmp r0, r1 beq _021D825E sub r1, r1, #1 cmp r0, r1 bne _021D8204 bl FUN_02031190 cmp r0, #0 bne _021D81FA mov r0, #0 str r0, [sp, #4] mov r0, #0x75 add r1, sp, #4 mov r2, #1 bl FUN_02030ADC add r0, r5, #0 mov r1, #1 bl MOD54_021D8F40 _021D81FA: add r0, r5, #0 mov r1, #0 bl MOD54_021D80BC b _021D8256 _021D8204: bl FUN_02031190 cmp r0, #0 bne _021D8220 add r0, r5, #0 mov r1, #0xb bl MOD54_021D80BC add r0, r5, #0 mov r1, #0xe mov r2, #0 bl MOD54_021D8C90 b _021D8256 _021D8220: add r0, sp, #0 mov r1, #0 mov r2, #4 bl MI_CpuFill8 mov r1, #0 add r0, sp, #0 strb r1, [r0, #2] bl FUN_02031190 add r1, sp, #0 strb r0, [r1] ldr r0, _021D827C ; =0x00004A54 mov r1, #1 strb r1, [r5, r0] mov r1, #0 add r0, #0xa strh r1, [r5, r0] mov r0, #0xd1 mov r1, #6 lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0x70 add r1, sp, #0 mov r2, #4 bl FUN_02030ADC _021D8256: mov r0, #0x32 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] _021D825E: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 add sp, #8 pop {r4, r5, r6, pc} nop _021D826C: .word 0x00004A3C _021D8270: .word 0x021C48B8 _021D8274: .word 0x000005F2 _021D8278: .word 0x00004A50 _021D827C: .word 0x00004A54 thumb_func_end MOD54_021D8150 thumb_func_start MOD54_021D8280 MOD54_021D8280: ; 0x021D8280 push {r4, lr} add r4, r1, #0 ldr r1, _021D8294 ; =0x00004A5E mov r2, #0 strh r2, [r0, r1] bl MOD54_021D80A0 add r0, r4, #0 pop {r4, pc} nop _021D8294: .word 0x00004A5E thumb_func_end MOD54_021D8280 thumb_func_start MOD54_021D8298 MOD54_021D8298: ; 0x021D8298 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_02030F20 ldr r1, _021D8318 ; =0x00004A5C ldrh r1, [r5, r1] cmp r1, r0 bne _021D82B6 bl MOD54_021D8C08 ldr r1, _021D8318 ; =0x00004A5C ldrh r2, [r5, r1] cmp r2, r0 beq _021D82CE _021D82B6: ldr r0, _021D831C ; =0x00004A5E mov r1, #0 strh r1, [r5, r0] mov r0, #0xd1 mov r1, #8 lsl r0, r0, #2 str r1, [r5, r0] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} _021D82CE: add r0, r1, #2 ldrsh r0, [r5, r0] add r2, r0, #1 add r0, r1, #2 strh r2, [r5, r0] ldrsh r0, [r5, r0] cmp r0, #0x1e ble _021D830E add r0, sp, #0 mov r1, #0 mov r2, #4 bl MI_CpuFill8 mov r1, #1 add r0, sp, #0 strb r1, [r0, #2] bl FUN_02031190 add r1, sp, #0 strb r0, [r1] mov r0, #0x70 add r1, sp, #0 mov r2, #4 bl FUN_02030ADC ldr r0, _021D831C ; =0x00004A5E mov r1, #0 strh r1, [r5, r0] mov r0, #0xd1 mov r1, #9 lsl r0, r0, #2 str r1, [r5, r0] _021D830E: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D8318: .word 0x00004A5C _021D831C: .word 0x00004A5E thumb_func_end MOD54_021D8298 thumb_func_start MOD54_021D8320 MOD54_021D8320: ; 0x021D8320 push {r3, r4, r5, lr} ldr r2, _021D833C ; =0x00004A54 add r4, r1, #0 add r5, r0, #0 mov r1, #0 strb r1, [r5, r2] bl MOD54_021D80BC add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D833C: .word 0x00004A54 thumb_func_end MOD54_021D8320 thumb_func_start MOD54_021D8340 MOD54_021D8340: ; 0x021D8340 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x33 add r4, r1, #0 str r0, [sp] ldr r0, [r5] ldr r1, _021D836C ; =0x021D9678 mov r2, #0x1f mov r3, #0xb bl FUN_02002198 mov r1, #0x32 lsl r1, r1, #4 str r0, [r5, r1] mov r0, #0x17 add r1, #0x24 str r0, [r5, r1] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D836C: .word 0x021D9678 thumb_func_end MOD54_021D8340 thumb_func_start MOD54_021D8370 MOD54_021D8370: ; 0x021D8370 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD54_021D8C08 ldr r1, _021D8410 ; =0x00004A48 ldr r2, [r5, r1] cmp r2, r0 bne _021D838A add r1, #8 ldr r0, [r5, r1] cmp r0, #0 beq _021D83A4 _021D838A: ldr r0, _021D8414 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0xc3 tst r0, r1 beq _021D839A ldr r0, _021D8418 ; =0x000005F2 bl FUN_020054C8 _021D839A: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} _021D83A4: mov r0, #0x32 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x33 bl FUN_020021AC mov r1, #0 mvn r1, r1 cmp r0, r1 beq _021D8404 sub r1, r1, #1 cmp r0, r1 bne _021D83DE mov r0, #0 str r0, [sp] mov r0, #0x75 add r1, sp, #0 mov r2, #1 bl FUN_02030ADC add r0, r5, #0 mov r1, #1 bl MOD54_021D8F40 add r0, r5, #0 mov r1, #0 bl MOD54_021D80BC b _021D83FC _021D83DE: bl FUN_02031190 cmp r0, #0 bne _021D83F8 mov r0, #0xd1 mov r1, #0x18 lsl r0, r0, #2 str r1, [r5, r0] bl MOD54_021D8C08 ldr r1, _021D841C ; =0x00004A56 strb r0, [r5, r1] b _021D83FC _021D83F8: bl ErrorHandling _021D83FC: mov r0, #0x32 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] _021D8404: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D8410: .word 0x00004A48 _021D8414: .word 0x021C48B8 _021D8418: .word 0x000005F2 _021D841C: .word 0x00004A56 thumb_func_end MOD54_021D8370 thumb_func_start MOD54_021D8420 MOD54_021D8420: ; 0x021D8420 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D8448 ; =0x00004A57 add r4, r1, #0 ldrb r0, [r5, r0] cmp r0, #0 bne _021D8442 mov r1, #0 mov r0, #0x73 add r2, r1, #0 bl FUN_02030ADC cmp r0, #1 bne _021D8442 ldr r0, _021D8448 ; =0x00004A57 mov r1, #1 strb r1, [r5, r0] _021D8442: add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D8448: .word 0x00004A57 thumb_func_end MOD54_021D8420 thumb_func_start MOD54_021D844C MOD54_021D844C: ; 0x021D844C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] ldr r2, [r4, #0x48] mov r1, #0x12 bl FUN_0200A8E0 mov r0, #0xc2 lsl r0, r0, #2 ldr r1, [r4, #0x48] add r0, r4, r0 mov r2, #0 bl MOD54_021D7E98 mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0x25 bl FUN_02020130 mov r0, #1 str r0, [r4, #0xc] pop {r4, pc} .align 2, 0 thumb_func_end MOD54_021D844C thumb_func_start MOD54_021D847C MOD54_021D847C: ; 0x021D847C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_02031190 cmp r0, #0 bne _021D848E bl FUN_02030F20 _021D848E: bl FUN_02030F20 ldr r1, _021D84A8 ; =0x00004A34 ldr r1, [r5, r1] cmp r1, r0 bne _021D84A2 mov r0, #0xd1 mov r1, #0x1a lsl r0, r0, #2 str r1, [r5, r0] _021D84A2: add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D84A8: .word 0x00004A34 thumb_func_end MOD54_021D847C thumb_func_start MOD54_021D84AC MOD54_021D84AC: ; 0x021D84AC push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D84CC ; =0x00004A38 add r4, r1, #0 ldr r1, _021D84D0 ; =0x00000F74 ldr r0, [r5, r0] add r1, r5, r1 bl MOD54_021D95CC mov r0, #0xd1 mov r1, #0x1b lsl r0, r0, #2 str r1, [r5, r0] add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D84CC: .word 0x00004A38 _021D84D0: .word 0x00000F74 thumb_func_end MOD54_021D84AC thumb_func_start MOD54_021D84D4 MOD54_021D84D4: ; 0x021D84D4 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 ldr r0, _021D8514 ; =0x021C4918 mov r1, #1 strb r1, [r0, #8] mov r0, #0x33 bl FUN_020294F4 add r1, r0, #0 ldr r0, [r5, #8] mov r2, #4 ldr r0, [r0, #0x10] bl FUN_02028AD4 ldr r0, [r5, #8] mov r1, #0x14 ldr r0, [r0, #0xc] bl FUN_0202A170 mov r0, #0x3a lsl r0, r0, #4 add r0, r5, r0 bl FUN_020336C0 mov r0, #0xd1 mov r1, #0x1c lsl r0, r0, #2 str r1, [r5, r0] add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D8514: .word 0x021C4918 thumb_func_end MOD54_021D84D4 thumb_func_start MOD54_021D8518 MOD54_021D8518: ; 0x021D8518 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_02031190 cmp r0, #0 bne _021D852A bl FUN_02030F20 _021D852A: ldr r0, [r5, #8] mov r2, #0x3a lsl r2, r2, #4 ldr r0, [r0] mov r1, #2 add r2, r5, r2 bl FUN_020336C8 cmp r0, #0 beq _021D8576 ldr r0, _021D857C ; =0x00000658 mov r1, #8 bl FUN_020054F0 add r0, r5, #0 mov r1, #0xd mov r2, #0 bl MOD54_021D8C90 add r0, r5, #0 mov r1, #0x1d bl MOD54_021D80BC mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0 bl FUN_02020130 mov r1, #0 mov r0, #0x35 str r1, [r5, #0xc] lsl r0, r0, #4 str r1, [r5, r0] ldr r0, _021D8580 ; =0x021C4918 strb r1, [r0, #8] ldr r0, _021D8584 ; =0x00004A40 strb r1, [r5, r0] _021D8576: add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D857C: .word 0x00000658 _021D8580: .word 0x021C4918 _021D8584: .word 0x00004A40 thumb_func_end MOD54_021D8518 thumb_func_start MOD54_021D8588 MOD54_021D8588: ; 0x021D8588 push {r3, r4} mov r2, #0x35 lsl r2, r2, #4 ldr r4, [r0, r2] add r3, r4, #1 str r3, [r0, r2] cmp r4, #0x3c ble _021D859E mov r3, #0xf sub r2, #0xc str r3, [r0, r2] _021D859E: add r0, r1, #0 pop {r3, r4} bx lr thumb_func_end MOD54_021D8588 thumb_func_start MOD54_021D85A4 MOD54_021D85A4: ; 0x021D85A4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 mov r1, #5 mov r2, #0 bl MOD54_021D8C90 add r0, r5, #0 mov r1, #0xa bl MOD54_021D80BC add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD54_021D85A4 thumb_func_start MOD54_021D85C4 MOD54_021D85C4: ; 0x021D85C4 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0x35 lsl r0, r0, #4 add r4, r1, #0 ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] ldr r0, [r5, r0] cmp r0, #0x3c ble _021D85F4 mov r1, #0x10 str r1, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x33 str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r4, #3 _021D85F4: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 add sp, #0xc pop {r4, r5, pc} thumb_func_end MOD54_021D85C4 thumb_func_start MOD54_021D8600 MOD54_021D8600: ; 0x021D8600 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x33 add r4, r1, #0 str r0, [sp] ldr r0, [r5] ldr r1, _021D862C ; =0x021D9678 mov r2, #0x1f mov r3, #0xb bl FUN_02002198 mov r1, #0x32 lsl r1, r1, #4 str r0, [r5, r1] mov r0, #0xc add r1, #0x24 str r0, [r5, r1] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D862C: .word 0x021D9678 thumb_func_end MOD54_021D8600 thumb_func_start MOD54_021D8630 MOD54_021D8630: ; 0x021D8630 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD54_021D8C08 ldr r1, _021D86D0 ; =0x00004A48 ldr r2, [r5, r1] cmp r2, r0 bne _021D864A add r1, #8 ldr r0, [r5, r1] cmp r0, #0 beq _021D8664 _021D864A: ldr r0, _021D86D4 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0xc3 tst r0, r1 beq _021D865A ldr r0, _021D86D8 ; =0x000005F2 bl FUN_020054C8 _021D865A: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} _021D8664: mov r0, #0x32 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x33 bl FUN_020021AC mov r1, #0 mvn r1, r1 cmp r0, r1 beq _021D86C6 sub r1, r1, #1 cmp r0, r1 bne _021D869C mov r1, #0 mov r0, #0xd1 str r1, [sp] lsl r0, r0, #2 str r1, [r5, r0] mov r0, #0x75 add r1, sp, #0 mov r2, #1 bl FUN_02030ADC add r0, r5, #0 mov r1, #1 bl MOD54_021D8F40 b _021D86BE _021D869C: mov r0, #0xd1 mov r1, #0xd lsl r0, r0, #2 str r1, [r5, r0] mov r1, #0 mov r0, #0x71 add r2, r1, #0 bl FUN_02030ADC mov r0, #0 bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r5, #0x24] mov r1, #0 bl FUN_0200ABC0 _021D86BE: mov r0, #0x32 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] _021D86C6: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D86D0: .word 0x00004A48 _021D86D4: .word 0x021C48B8 _021D86D8: .word 0x000005F2 thumb_func_end MOD54_021D8630 thumb_func_start MOD54_021D86DC MOD54_021D86DC: ; 0x021D86DC push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_02031190 cmp r0, #0 bne _021D86F6 add r0, r5, #0 mov r1, #5 mov r2, #0 bl MOD54_021D8C90 b _021D8710 _021D86F6: mov r0, #0 bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r5, #0x24] mov r1, #0 bl FUN_0200ABC0 add r0, r5, #0 mov r1, #0x10 mov r2, #0 bl MOD54_021D8C90 _021D8710: add r0, r5, #0 mov r1, #0xe bl MOD54_021D80BC mov r0, #0x35 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD54_021D86DC thumb_func_start MOD54_021D872C MOD54_021D872C: ; 0x021D872C push {r4, lr} add r4, r1, #0 mov r1, #0x35 lsl r1, r1, #4 ldr r2, [r0, r1] add r2, r2, #1 str r2, [r0, r1] ldr r2, [r0, r1] cmp r2, #0x2d ble _021D8746 mov r2, #0xf sub r1, #0xc str r2, [r0, r1] _021D8746: bl MOD54_021D80A0 add r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD54_021D872C thumb_func_start MOD54_021D8750 MOD54_021D8750: ; 0x021D8750 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0xc9 add r4, r1, #0 bl FUN_02031588 mov r0, #0xd1 mov r1, #0x10 lsl r0, r0, #2 str r1, [r5, r0] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD54_021D8750 thumb_func_start MOD54_021D8770 MOD54_021D8770: ; 0x021D8770 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 mov r0, #0xc9 add r5, r1, #0 bl FUN_020315D8 cmp r0, #0 beq _021D87A2 mov r0, #0 add r1, r0, #0 bl FUN_020334E8 mov r1, #0x10 str r1, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x33 str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r5, #3 _021D87A2: add r0, r4, #0 bl MOD54_021D80A0 add r0, r5, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD54_021D8770 thumb_func_start MOD54_021D87B0 MOD54_021D87B0: ; 0x021D87B0 push {r3, r4, r5, lr} add r4, r1, #0 mov r1, #9 mov r2, #0 add r5, r0, #0 bl MOD54_021D8C90 mov r0, #0xd1 mov r1, #0x12 lsl r0, r0, #2 str r1, [r5, r0] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD54_021D87B0 thumb_func_start MOD54_021D87D0 MOD54_021D87D0: ; 0x021D87D0 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x4c] add r4, r1, #0 bl MOD54_021D8D20 cmp r0, #0 beq _021D87E8 mov r0, #0xd1 mov r1, #0xa lsl r0, r0, #2 str r1, [r5, r0] _021D87E8: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD54_021D87D0 thumb_func_start MOD54_021D87F4 MOD54_021D87F4: ; 0x021D87F4 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x4c] add r4, r1, #0 cmp r0, #0xff beq _021D8812 bl MOD54_021D8D20 cmp r0, #0 bne _021D8812 ldr r0, [r5, #0x4c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD7C _021D8812: add r0, r5, #0 mov r1, #0xf mov r2, #1 bl MOD54_021D8C90 mov r0, #0xd1 mov r1, #0x14 lsl r0, r0, #2 str r1, [r5, r0] bl FUN_02031190 cmp r0, #0 bne _021D8834 add r0, r5, #0 mov r1, #0 bl MOD54_021D8F40 _021D8834: bl FUN_02030F20 ldr r1, _021D8848 ; =0x00004A58 str r0, [r5, r1] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D8848: .word 0x00004A58 thumb_func_end MOD54_021D87F4 thumb_func_start MOD54_021D884C MOD54_021D884C: ; 0x021D884C push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D8884 ; =0x00004A58 add r4, r1, #0 ldr r0, [r5, r0] cmp r0, #0 beq _021D886A bl FUN_02030F20 ldr r1, _021D8884 ; =0x00004A58 ldr r2, [r5, r1] cmp r2, r0 beq _021D886A mov r0, #0 str r0, [r5, r1] _021D886A: mov r0, #0xd1 mov r1, #0x15 lsl r0, r0, #2 str r1, [r5, r0] mov r1, #0 add r0, #0xc str r1, [r5, r0] add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D8884: .word 0x00004A58 thumb_func_end MOD54_021D884C thumb_func_start MOD54_021D8888 MOD54_021D8888: ; 0x021D8888 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D88E0 ; =0x00004A58 add r4, r1, #0 ldr r0, [r5, r0] cmp r0, #0 beq _021D88A6 bl FUN_02030F20 ldr r1, _021D88E0 ; =0x00004A58 ldr r2, [r5, r1] cmp r2, r0 beq _021D88A6 mov r0, #0 str r0, [r5, r1] _021D88A6: mov r1, #0x35 lsl r1, r1, #4 ldr r0, [r5, r1] add r0, r0, #1 str r0, [r5, r1] ldr r0, [r5, r1] cmp r0, #0x3c ble _021D88D4 ldr r0, _021D88E0 ; =0x00004A58 ldr r0, [r5, r0] cmp r0, #0 bne _021D88D4 mov r0, #0 sub r1, #0xc str r0, [r5, r1] bl FUN_02031190 cmp r0, #0 bne _021D88D4 add r0, r5, #0 mov r1, #1 bl MOD54_021D8F40 _021D88D4: add r0, r5, #0 bl MOD54_021D80A0 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D88E0: .word 0x00004A58 thumb_func_end MOD54_021D8888 thumb_func_start MOD54_021D88E4 MOD54_021D88E4: ; 0x021D88E4 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 cmp r4, #0xd bgt _021D8906 bge _021D891A cmp r4, #8 bgt _021D89BE cmp r4, #2 blt _021D89BE beq _021D8914 cmp r4, #7 beq _021D89B8 cmp r4, #8 beq _021D89B8 pop {r4, r5, r6, pc} _021D8906: cmp r4, #0x13 bgt _021D890E beq _021D896C pop {r4, r5, r6, pc} _021D890E: cmp r4, #0x19 beq _021D8934 pop {r4, r5, r6, pc} _021D8914: bl MOD54_021D8D40 b _021D89B8 _021D891A: mov r0, #0x32 lsl r0, r0, #4 ldr r0, [r5, r0] cmp r0, #0 beq _021D89B8 mov r1, #0x33 bl FUN_020021EC mov r0, #0x32 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] b _021D89B8 _021D8934: ldr r0, [r5, #0x4c] bl MOD54_021D8D20 cmp r0, #0 bne _021D8948 ldr r0, [r5, #0x4c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD7C _021D8948: add r0, r5, #0 mov r1, #0xc mov r2, #0 bl MOD54_021D8C90 mov r0, #0x32 lsl r0, r0, #4 ldr r0, [r5, r0] cmp r0, #0 beq _021D89B8 mov r1, #0x33 bl FUN_020021EC mov r0, #0x32 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] b _021D89B8 _021D896C: ldr r0, _021D89C0 ; =0x00004A54 ldrb r0, [r5, r0] cmp r0, #1 beq _021D89BE add r0, r6, #0 bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r5, #0x24] mov r1, #0 bl FUN_0200ABC0 bl FUN_02031190 cmp r6, r0 beq _021D89BE mov r0, #0x32 lsl r0, r0, #4 ldr r0, [r5, r0] cmp r0, #0 beq _021D89A4 mov r1, #0x33 bl FUN_020021EC mov r0, #0x32 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] _021D89A4: bl FUN_02031190 cmp r0, #0 bne _021D89B8 ldr r1, _021D89C4 ; =0x00004A50 ldr r0, _021D89C8 ; =0x0000FFFF ldr r2, [r5, r1] eor r0, r6 and r0, r2 str r0, [r5, r1] _021D89B8: mov r0, #0xd1 lsl r0, r0, #2 str r4, [r5, r0] _021D89BE: pop {r4, r5, r6, pc} .align 2, 0 _021D89C0: .word 0x00004A54 _021D89C4: .word 0x00004A50 _021D89C8: .word 0x0000FFFF thumb_func_end MOD54_021D88E4 thumb_func_start MOD54_021D89CC MOD54_021D89CC: ; 0x021D89CC push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 mov r0, #0xd1 lsl r0, r0, #2 ldr r0, [r5, r0] add r4, r1, #0 add r6, r2, #0 cmp r0, #3 bne _021D8A6C cmp r4, #1 beq _021D89EA cmp r4, #0x13 beq _021D8A2E b _021D8A64 _021D89EA: add r0, r6, #0 bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r5, #0x24] mov r1, #0 bl FUN_0200ABC0 add r0, r5, #0 mov r1, #1 bl MOD54_021D8F40 mov r0, #0xd1 lsl r0, r0, #2 str r4, [r5, r0] bl FUN_02030F20 ldr r1, _021D8A84 ; =0x00004A48 str r0, [r5, r1] mov r0, #0 add r1, #8 str r0, [r5, r1] bl FUN_02031190 cmp r0, #0 bne _021D8A7E mov r2, #1 mov r0, #0x75 add r1, sp, #0 str r2, [sp] bl FUN_02030ADC add sp, #4 pop {r3, r4, r5, r6, pc} _021D8A2E: add r0, r6, #0 bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r5, #0x24] mov r1, #0 bl FUN_0200ABC0 bl FUN_02031190 cmp r6, r0 beq _021D8A7E bl FUN_02031190 cmp r0, #0 bne _021D8A5A ldr r1, _021D8A88 ; =0x00004A50 ldr r0, _021D8A8C ; =0x0000FFFF ldr r2, [r5, r1] eor r0, r6 and r0, r2 str r0, [r5, r1] _021D8A5A: mov r0, #0xd1 lsl r0, r0, #2 add sp, #4 str r4, [r5, r0] pop {r3, r4, r5, r6, pc} _021D8A64: bl ErrorHandling add sp, #4 pop {r3, r4, r5, r6, pc} _021D8A6C: cmp r4, #1 bne _021D8A7E ldr r0, _021D8A88 ; =0x00004A50 mov r1, #0 str r1, [r5, r0] bl FUN_02030F20 ldr r1, _021D8A84 ; =0x00004A48 str r0, [r5, r1] _021D8A7E: add sp, #4 pop {r3, r4, r5, r6, pc} nop _021D8A84: .word 0x00004A48 _021D8A88: .word 0x00004A50 _021D8A8C: .word 0x0000FFFF thumb_func_end MOD54_021D89CC thumb_func_start MOD54_021D8A90 MOD54_021D8A90: ; 0x021D8A90 push {r3, lr} ldrh r1, [r0] add r1, #0xa strh r1, [r0] ldrh r2, [r0] mov r1, #0x5a lsl r1, r1, #2 cmp r2, r1 bls _021D8AA6 mov r1, #0 strh r1, [r0] _021D8AA6: ldrh r0, [r0] bl FUN_0201B970 mov r1, #0xa add r2, r0, #0 mul r2, r1 asr r0, r2, #0xb lsr r0, r0, #0x14 add r0, r2, r0 asr r0, r0, #0xc add r0, #0xf lsl r2, r0, #5 mov r0, #0x1d orr r2, r0 add r0, sp, #0 strh r2, [r0] add r0, sp, #0 mov r2, #2 bl GX_LoadOBJPltt add r0, sp, #0 mov r1, #0x2a mov r2, #2 bl GX_LoadOBJPltt pop {r3, pc} .align 2, 0 thumb_func_end MOD54_021D8A90 thumb_func_start MOD54_021D8ADC MOD54_021D8ADC: ; 0x021D8ADC push {r3, r4, r5, lr} mov r5, #0 add r4, r5, #0 _021D8AE2: add r0, r4, #0 bl FUN_0202DFA4 cmp r0, #0 beq _021D8AEE add r5, r5, #1 _021D8AEE: add r4, r4, #1 cmp r4, #5 blt _021D8AE2 add r0, r5, #0 pop {r3, r4, r5, pc} thumb_func_end MOD54_021D8ADC thumb_func_start MOD54_021D8AF8 MOD54_021D8AF8: ; 0x021D8AF8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 str r3, [sp, #0x14] add r6, r0, #0 str r2, [sp, #0x10] bl FUN_02031190 str r0, [sp, #0x1c] ldr r0, [sp, #0x14] bl MOD54_021D8C2C cmp r0, #0 bne _021D8B18 add sp, #0x28 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D8B18: add r0, r6, #0 mov r1, #0 bl FUN_02019620 ldr r7, [sp, #0x14] mov r0, #0 str r0, [sp, #0x20] add r4, r7, #0 mov r5, #1 _021D8B2A: mov r0, #0xd9 lsl r0, r0, #2 ldr r0, [r7, r0] cmp r0, #0 beq _021D8BE4 bl FUN_020239C0 str r0, [sp, #0x24] mov r0, #0xd9 lsl r0, r0, #2 ldr r0, [r7, r0] ldr r1, [r4, #0x2c] bl FUN_02023990 mov r0, #2 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [sp, #0x14] ldr r2, [sp, #0x24] ldr r0, [r0, #0x24] mov r1, #0 mov r3, #5 bl FUN_0200AD38 ldr r0, [sp, #0x14] ldr r1, [sp, #0x14] ldr r0, [r0, #0x24] ldr r1, [r1, #0x28] mov r2, #1 mov r3, #0x33 bl FUN_0200A9C4 str r0, [sp, #0x18] ldr r1, [sp, #0x1c] ldr r0, [sp, #0x20] cmp r1, r0 str r5, [sp] bne _021D8BAC mov r0, #0xff str r0, [sp, #4] ldr r0, _021D8C00 ; =0x00020300 mov r1, #0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r2, [r4, #0x2c] add r0, r6, #0 mov r3, #5 bl FUN_0201BDE0 str r5, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D8C00 ; =0x00020300 ldr r2, [sp, #0x18] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] add r0, r6, #0 mov r1, #0 mov r3, #0x46 bl FUN_0201BDE0 b _021D8BDE _021D8BAC: mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0x10] mov r1, #0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r2, [r4, #0x2c] add r0, r6, #0 mov r3, #5 bl FUN_0201BDE0 str r5, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0x10] ldr r2, [sp, #0x18] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] add r0, r6, #0 mov r1, #0 mov r3, #0x46 bl FUN_0201BDE0 _021D8BDE: ldr r0, [sp, #0x18] bl FUN_02021A20 _021D8BE4: ldr r0, [sp, #0x20] add r7, #8 add r0, r0, #1 add r4, r4, #4 add r5, #0x12 str r0, [sp, #0x20] cmp r0, #5 blt _021D8B2A add r0, r6, #0 bl FUN_020191D0 mov r0, #1 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8C00: .word 0x00020300 thumb_func_end MOD54_021D8AF8 thumb_func_start MOD54_021D8C04 MOD54_021D8C04: ; 0x021D8C04 bx lr .align 2, 0 thumb_func_end MOD54_021D8C04 thumb_func_start MOD54_021D8C08 MOD54_021D8C08: ; 0x021D8C08 push {r3, r4, r5, lr} mov r5, #0 add r4, r5, #0 _021D8C0E: add r0, r4, #0 bl FUN_0202DFA4 cmp r0, #0 beq _021D8C1A add r5, r5, #1 _021D8C1A: add r4, r4, #1 cmp r4, #5 blt _021D8C0E add r0, r5, #0 pop {r3, r4, r5, pc} thumb_func_end MOD54_021D8C08 thumb_func_start MOD54_021D8C24 MOD54_021D8C24: ; 0x021D8C24 ldr r3, _021D8C28 ; =MOD54_021D8C08 bx r3 .align 2, 0 _021D8C28: .word MOD54_021D8C08 thumb_func_end MOD54_021D8C24 thumb_func_start MOD54_021D8C2C MOD54_021D8C2C: ; 0x021D8C2C push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r4, #0 mov r7, #0xd9 str r4, [sp] add r5, r6, #0 lsl r7, r7, #2 _021D8C3A: mov r0, #0xd9 lsl r0, r0, #2 ldr r1, [r5, r0] add r0, r0, #4 str r1, [r5, r0] add r0, r4, #0 bl FUN_0202DFA4 str r0, [r5, r7] add r4, r4, #1 add r5, #8 cmp r4, #5 blt _021D8C3A mov r7, #0xda mov r5, #0 add r4, r6, #0 mov r1, #1 mov r0, #3 lsl r7, r7, #2 _021D8C60: mov r2, #0xd9 lsl r2, r2, #2 ldr r3, [r6, r2] ldr r2, [r6, r7] cmp r2, r3 beq _021D8C80 str r1, [sp] cmp r3, #0 bne _021D8C7A mov r2, #0xe3 lsl r2, r2, #2 str r0, [r4, r2] b _021D8C80 _021D8C7A: mov r2, #0xe3 lsl r2, r2, #2 str r1, [r4, r2] _021D8C80: add r5, r5, #1 add r6, #8 add r4, r4, #4 cmp r5, #5 blt _021D8C60 ldr r0, [sp] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD54_021D8C2C thumb_func_start MOD54_021D8C90 MOD54_021D8C90: ; 0x021D8C90 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 add r7, r1, #0 mov r0, #0xb4 mov r1, #0x33 add r6, r2, #0 bl FUN_020219F4 add r4, r0, #0 ldr r0, [r5, #0x28] add r1, r7, #0 add r2, r4, #0 bl FUN_0200A8E0 ldr r0, [r5, #0x24] ldr r1, [r5, #0x44] add r2, r4, #0 bl FUN_0200B7B8 add r0, r4, #0 bl FUN_02021A20 mov r0, #0xba lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf bl FUN_02019620 mov r0, #0xba lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 mov r2, #1 mov r3, #0xa bl FUN_0200D0BC cmp r6, #0 bne _021D8D00 add r0, r5, #0 bl MOD54_021D8F3C mov r3, #0 str r3, [sp] str r0, [sp, #4] str r3, [sp, #8] mov r0, #0xba lsl r0, r0, #2 ldr r2, [r5, #0x44] add r0, r5, r0 mov r1, #1 bl FUN_0201BD84 add sp, #0xc str r0, [r5, #0x4c] pop {r4, r5, r6, r7, pc} _021D8D00: mov r3, #0 str r3, [sp] str r3, [sp, #4] str r3, [sp, #8] mov r0, #0xba lsl r0, r0, #2 ldr r2, [r5, #0x44] add r0, r5, r0 mov r1, #1 bl FUN_0201BD84 mov r0, #0xff str r0, [r5, #0x4c] add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD54_021D8C90 thumb_func_start MOD54_021D8D20 MOD54_021D8D20: ; 0x021D8D20 push {r3, lr} cmp r0, #0xff bne _021D8D2A mov r0, #1 pop {r3, pc} _021D8D2A: lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021D8D3A mov r0, #1 pop {r3, pc} _021D8D3A: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD54_021D8D20 thumb_func_start MOD54_021D8D40 MOD54_021D8D40: ; 0x021D8D40 mov r1, #0xba lsl r1, r1, #2 add r0, r0, r1 ldr r3, _021D8D4C ; =0x0200D0E1 mov r1, #0 bx r3 .align 2, 0 _021D8D4C: .word 0x0200D0E1 thumb_func_end MOD54_021D8D40 thumb_func_start MOD54_021D8D50 MOD54_021D8D50: ; 0x021D8D50 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 mov r0, #0x1b str r0, [sp, #4] mov r0, #0xcb lsl r0, r0, #2 add r0, r5, r0 str r0, [sp, #0x14] mov r0, #0xcf lsl r0, r0, #2 mov r4, #0 add r0, r5, r0 str r4, [sp, #8] add r6, r5, #0 mov r7, #0x1c str r0, [sp, #0x18] _021D8D72: mov r0, #0xe3 lsl r0, r0, #2 ldr r0, [r5, r0] cmp r0, #3 bhi _021D8E3E add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8D88: ; jump table .short _021D8E3E - _021D8D88 - 2 ; case 0 .short _021D8D90 - _021D8D88 - 2 ; case 1 .short _021D8E3E - _021D8D88 - 2 ; case 2 .short _021D8E06 - _021D8D88 - 2 ; case 3 _021D8D90: mov r0, #0xd9 lsl r0, r0, #2 ldr r0, [r6, r0] cmp r0, #0 bne _021D8D9E bl ErrorHandling _021D8D9E: mov r0, #0xd9 lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_020239CC str r0, [sp, #0xc] mov r0, #0xd9 lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02023A28 str r0, [sp, #0x10] bl FUN_02031190 cmp r4, r0 bne _021D8DD0 mov r0, #0x8b ldr r1, [sp, #0xc] lsl r0, r0, #2 lsl r1, r1, #1 ldr r0, [r5, r0] add r1, #0x26 bl FUN_02020130 b _021D8DEC _021D8DD0: ldr r0, [sp, #0xc] ldr r1, [sp, #0x18] str r0, [sp] ldr r0, [sp, #0x14] ldr r3, [sp, #0x10] add r2, r4, #0 bl MOD54_021D8EC8 mov r0, #0x8b lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [sp, #4] bl FUN_02020130 _021D8DEC: mov r0, #0x8b lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 mov r0, #0xe3 mov r1, #2 lsl r0, r0, #2 str r1, [r5, r0] mov r0, #1 str r0, [sp, #8] b _021D8E3E _021D8E06: bl FUN_02031190 cmp r4, r0 bne _021D8E2A mov r0, #0xd9 lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_020239CC add r1, r0, #0 mov r0, #0x8b lsl r0, r0, #2 lsl r1, r1, #1 ldr r0, [r5, r0] add r1, #0x27 bl FUN_02020130 b _021D8E36 _021D8E2A: mov r0, #0x8b lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r7, #0 bl FUN_02020130 _021D8E36: mov r0, #0xe3 mov r1, #0 lsl r0, r0, #2 str r1, [r5, r0] _021D8E3E: ldr r0, [sp, #4] add r4, r4, #1 add r0, r0, #2 add r5, r5, #4 add r6, #8 add r7, r7, #2 str r0, [sp, #4] cmp r4, #5 blt _021D8D72 ldr r0, [sp, #8] cmp r0, #0 beq _021D8E5C ldr r0, _021D8E60 ; =0x0000064F bl FUN_020054C8 _021D8E5C: add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 _021D8E60: .word 0x0000064F thumb_func_end MOD54_021D8D50 thumb_func_start MOD54_021D8E64 MOD54_021D8E64: ; 0x021D8E64 push {r3, r4, lr} sub sp, #4 mov r2, #0xcf add r4, r0, #0 lsl r2, r2, #2 mov r0, #0x68 mov r1, #8 add r2, r4, r2 mov r3, #0x33 bl FUN_02006C08 mov r2, #0xcd lsl r2, r2, #2 str r0, [r4, r2] add r2, #0xc mov r0, #0x56 mov r1, #7 add r2, r4, r2 mov r3, #0x33 bl FUN_02006C08 mov r3, #0xce lsl r3, r3, #2 str r0, [r4, r3] mov r0, #0x33 sub r3, #0xc str r0, [sp] mov r0, #0x68 mov r1, #0x20 mov r2, #1 add r3, r4, r3 bl FUN_02006BB0 mov r1, #0xc9 lsl r1, r1, #2 str r0, [r4, r1] mov r3, #0x33 str r3, [sp] lsl r3, r3, #4 mov r0, #0x56 mov r1, #9 mov r2, #1 add r3, r4, r3 bl FUN_02006BB0 mov r1, #0xca lsl r1, r1, #2 str r0, [r4, r1] add sp, #4 pop {r3, r4, pc} thumb_func_end MOD54_021D8E64 thumb_func_start MOD54_021D8EC8 MOD54_021D8EC8: ; 0x021D8EC8 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r6, r1, #0 ldr r0, [sp, #0x18] add r1, r3, #0 add r5, r2, #0 bl FUN_020536C8 add r4, r0, #0 ldr r0, [r6, #4] mov r2, #6 ldr r6, [r0, #0xc] ldr r0, [r7, #4] lsl r2, r2, #8 ldr r1, [r0, #0x14] add r0, r4, #0 mul r0, r2 add r0, r1, r0 ldr r1, _021D8F08 ; =0x021D9680 lsl r3, r5, #1 ldrh r1, [r1, r3] bl GX_LoadOBJ lsl r0, r4, #5 add r1, r5, #7 add r0, r6, r0 lsl r1, r1, #5 mov r2, #0x20 bl GX_LoadOBJPltt pop {r3, r4, r5, r6, r7, pc} nop _021D8F08: .word 0x021D9680 thumb_func_end MOD54_021D8EC8 thumb_func_start MOD54_021D8F0C MOD54_021D8F0C: ; 0x021D8F0C push {r4, lr} add r4, r0, #0 mov r0, #0xcd lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0xce lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0xc9 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0xca lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_end MOD54_021D8F0C thumb_func_start MOD54_021D8F3C MOD54_021D8F3C: ; 0x021D8F3C mov r0, #1 bx lr thumb_func_end MOD54_021D8F3C thumb_func_start MOD54_021D8F40 MOD54_021D8F40: ; 0x021D8F40 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_02031190 cmp r0, #0 bne _021D8F8C mov r0, #0 mvn r0, r0 cmp r4, r0 bne _021D8F5E mov r0, #1 bl FUN_02032B6C b _021D8F6E _021D8F5E: bl FUN_02030F20 add r0, r4, r0 cmp r0, #5 ble _021D8F6A mov r0, #5 _021D8F6A: bl FUN_02032B6C _021D8F6E: mov r0, #0 mvn r0, r0 cmp r4, r0 ldr r0, _021D8F90 ; =0x00004A55 bne _021D8F7E mov r1, #2 strb r1, [r5, r0] pop {r3, r4, r5, pc} _021D8F7E: cmp r4, #0 bne _021D8F88 mov r1, #1 strb r1, [r5, r0] pop {r3, r4, r5, pc} _021D8F88: mov r1, #0 strb r1, [r5, r0] _021D8F8C: pop {r3, r4, r5, pc} nop _021D8F90: .word 0x00004A55 thumb_func_end MOD54_021D8F40 thumb_func_start MOD54_021D8F94 MOD54_021D8F94: ; 0x021D8F94 push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r0, #0 add r6, r1, #0 bl MOD54_021D8C08 add r5, r0, #0 ldr r0, _021D9088 ; =0x00004A48 ldr r1, [r4, r0] cmp r5, r1 ble _021D8FBE mov r2, #1 add r0, sp, #0 strb r2, [r0] mov r0, #0x75 add r1, sp, #0 bl FUN_02030ADC mov r1, #1 ldr r0, _021D908C ; =0x00004A4C b _021D8FC2 _021D8FBE: mov r1, #0 add r0, r0, #4 _021D8FC2: str r1, [r4, r0] ldr r0, _021D9090 ; =0x00004A44 ldr r0, [r4, r0] cmp r5, r0 bne _021D8FD2 add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D8FD2: cmp r5, #5 bhi _021D9078 add r0, r5, r5 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8FE2: ; jump table .short _021D9078 - _021D8FE2 - 2 ; case 0 .short _021D8FEE - _021D8FE2 - 2 ; case 1 .short _021D9032 - _021D8FE2 - 2 ; case 2 .short _021D9032 - _021D8FE2 - 2 ; case 3 .short _021D9032 - _021D8FE2 - 2 ; case 4 .short _021D906A - _021D8FE2 - 2 ; case 5 _021D8FEE: bl FUN_02030F20 cmp r0, #1 bgt _021D8FFE bl FUN_0202CB8C cmp r0, #1 bls _021D9004 _021D8FFE: add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021D9004: mov r0, #0xd1 mov r1, #0x11 lsl r0, r0, #2 str r1, [r4, r0] add r0, r4, #0 sub r1, #0x12 bl MOD54_021D8F40 mov r0, #0x32 lsl r0, r0, #4 ldr r0, [r4, r0] cmp r0, #0 beq _021D902C mov r1, #0x33 bl FUN_020021EC mov r0, #0x32 mov r1, #0 lsl r0, r0, #4 str r1, [r4, r0] _021D902C: add sp, #4 mov r0, #2 pop {r3, r4, r5, r6, pc} _021D9032: mov r0, #2 bl FUN_02052B74 ldr r0, _021D9090 ; =0x00004A44 ldr r1, [r4, r0] cmp r5, r1 bge _021D9078 add r0, #0x11 ldrsb r0, [r4, r0] cmp r0, #0 beq _021D904E cmp r0, #1 beq _021D9058 b _021D9060 _021D904E: add r0, r4, #0 add r1, r6, #0 bl MOD54_021D8F40 b _021D9060 _021D9058: add r0, r4, #0 mov r1, #0 bl MOD54_021D8F40 _021D9060: bl FUN_02030F20 ldr r1, _021D9088 ; =0x00004A48 str r0, [r4, r1] b _021D9078 _021D906A: mov r0, #9 bl FUN_02052B74 add r0, r4, #0 add r1, r6, #0 bl MOD54_021D8F40 _021D9078: bl MOD54_021D8C08 ldr r1, _021D9090 ; =0x00004A44 str r0, [r4, r1] mov r0, #1 add sp, #4 pop {r3, r4, r5, r6, pc} nop _021D9088: .word 0x00004A48 _021D908C: .word 0x00004A4C _021D9090: .word 0x00004A44 thumb_func_end MOD54_021D8F94 thumb_func_start MOD54_021D9094 MOD54_021D9094: ; 0x021D9094 mov r0, #0x2c bx lr thumb_func_end MOD54_021D9094 thumb_func_start MOD54_021D9098 MOD54_021D9098: ; 0x021D9098 add r0, #0x2c bx lr thumb_func_end MOD54_021D9098 thumb_func_start MOD54_021D909C MOD54_021D909C: ; 0x021D909C push {r4, r5, r6, r7} add r7, r0, #0 add r6, r7, #0 mov ip, r1 mov r5, #5 add r6, #0xdc _021D90A8: add r4, r6, #0 sub r4, #0x2c add r3, r6, #0 mov r2, #5 _021D90B0: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D90B0 ldr r0, [r4] sub r5, r5, #1 sub r6, #0x2c str r0, [r3] cmp r5, #2 bgt _021D90A8 add r7, #0x58 mov r3, #5 _021D90C8: mov r2, ip ldmia r2!, {r0, r1} mov ip, r2 stmia r7!, {r0, r1} sub r3, r3, #1 bne _021D90C8 mov r0, ip ldr r0, [r0] str r0, [r7] pop {r4, r5, r6, r7} bx lr .align 2, 0 thumb_func_end MOD54_021D909C thumb_func_start MOD54_021D90E0 MOD54_021D90E0: ; 0x021D90E0 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #2 blt _021D90EE cmp r5, #5 ble _021D90F2 _021D90EE: bl ErrorHandling _021D90F2: add r2, r5, #1 cmp r2, #5 bgt _021D911A mov r0, #0x2c mul r0, r2 add r3, r4, r0 _021D90FE: add r6, r3, #0 add r7, r3, #0 sub r6, #0x2c mov r5, #5 _021D9106: ldmia r7!, {r0, r1} stmia r6!, {r0, r1} sub r5, r5, #1 bne _021D9106 ldr r0, [r7] add r2, r2, #1 add r3, #0x2c str r0, [r6] cmp r2, #5 ble _021D90FE _021D911A: ldr r0, _021D9128 ; =0x0000FFFF add r1, r4, #0 add r4, #0xdc add r1, #0xdc strh r0, [r4] strh r0, [r1, #0x10] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D9128: .word 0x0000FFFF thumb_func_end MOD54_021D90E0 thumb_func_start MOD54_021D912C MOD54_021D912C: ; 0x021D912C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 str r0, [sp] mov r0, #0 str r0, [sp, #0xc] ldr r0, [sp] add r5, r2, #0 str r1, [sp, #4] str r3, [sp, #8] cmp r0, #0 ble _021D91A6 mov r7, #0x2c _021D9144: ldr r0, [sp, #8] ldr r1, [sp, #0xc] ldr r6, [r0] ldr r0, [sp, #4] cmp r1, r0 beq _021D9194 cmp r6, #0 beq _021D9194 add r0, r6, #0 bl FUN_0202888C cmp r0, #1 beq _021D9194 add r0, r6, #0 add r1, r5, #0 bl FUN_020288AC cmp r0, #0 bne _021D9194 mov r4, #0 _021D916C: add r1, r4, #2 add r2, r1, #0 mul r2, r7 add r0, r6, #0 add r1, r5, r2 bl FUN_020288AC cmp r0, #0 beq _021D9186 add r0, r5, #0 add r1, r4, #2 bl MOD54_021D90E0 _021D9186: add r4, r4, #1 cmp r4, #4 blt _021D916C add r0, r5, #0 add r1, r6, #0 bl MOD54_021D909C _021D9194: ldr r0, [sp, #8] add r0, r0, #4 str r0, [sp, #8] ldr r0, [sp, #0xc] add r1, r0, #1 ldr r0, [sp] str r1, [sp, #0xc] cmp r1, r0 blt _021D9144 _021D91A6: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD54_021D912C thumb_func_start MOD54_021D91AC MOD54_021D91AC: ; 0x021D91AC mov r0, #0x12 lsl r0, r0, #4 bx lr .align 2, 0 thumb_func_end MOD54_021D91AC thumb_func_start MOD54_021D91B4 MOD54_021D91B4: ; 0x021D91B4 mov r0, #0x12 lsl r0, r0, #4 bx lr .align 2, 0 thumb_func_end MOD54_021D91B4 thumb_func_start MOD54_021D91BC MOD54_021D91BC: ; 0x021D91BC mov r0, #0x12 lsl r0, r0, #4 bx lr .align 2, 0 thumb_func_end MOD54_021D91BC thumb_func_start MOD54_021D91C4 MOD54_021D91C4: ; 0x021D91C4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r3, [sp, #4] add r5, r1, #0 str r2, [sp] bl FUN_020238F4 add r4, r0, #0 ldr r0, [sp, #4] mov r7, #0 cmp r0, #0 ble _021D9234 _021D91DC: mov r0, #0 add r1, r5, #0 mov r2, #0x48 bl MIi_CpuClearFast add r0, r4, #0 bl FUN_020239BC str r0, [r5] add r0, r4, #0 bl FUN_020239CC strb r0, [r5, #4] mov r0, #0xa strb r0, [r5, #5] mov r0, #2 strb r0, [r5, #6] add r0, r4, #0 bl FUN_0202398C add r1, r0, #0 add r0, r5, #0 add r0, #8 mov r2, #8 bl StringCopyN add r3, r5, #0 ldr r6, [sp] add r3, #0x18 mov r2, #6 _021D9218: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D9218 mov r0, #0 strb r0, [r5, #0x19] ldr r0, [sp] add r7, r7, #1 add r0, #0x30 str r0, [sp] ldr r0, [sp, #4] add r5, #0x48 cmp r7, r0 blt _021D91DC _021D9234: add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD54_021D91C4 thumb_func_start MOD54_021D9238 MOD54_021D9238: ; 0x021D9238 push {r3, r4, r5, r6, r7, lr} add r4, r2, #0 add r5, r0, #0 add r0, r1, #0 add r1, r4, #0 bl FUN_020169D8 add r7, r0, #0 add r0, r5, #0 bl FUN_02022504 add r6, r0, #0 add r0, r5, #0 bl MOD54_021D91AC cmp r4, r0 beq _021D925E bl ErrorHandling _021D925E: mov r2, #0x63 lsl r2, r2, #2 add r0, r5, #0 add r1, r7, #0 add r2, r6, r2 mov r3, #4 bl MOD54_021D91C4 add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD54_021D9238 thumb_func_start MOD54_021D9274 MOD54_021D9274: ; 0x021D9274 push {r3, r4, r5, r6, r7, lr} add r4, r2, #0 add r5, r0, #0 add r0, r1, #0 add r1, r4, #0 bl FUN_020169D8 add r7, r0, #0 add r0, r5, #0 bl FUN_02022504 add r6, r0, #0 add r0, r5, #0 bl MOD54_021D91B4 cmp r4, r0 beq _021D929A bl ErrorHandling _021D929A: add r6, #0xc add r0, r5, #0 add r1, r7, #0 add r2, r6, #0 mov r3, #4 bl MOD54_021D91C4 add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD54_021D9274 thumb_func_start MOD54_021D92AC MOD54_021D92AC: ; 0x021D92AC push {r3, r4, r5, r6, r7, lr} add r4, r2, #0 add r5, r0, #0 add r0, r1, #0 add r1, r4, #0 bl FUN_020169D8 add r7, r0, #0 add r0, r5, #0 bl FUN_02022504 add r6, r0, #0 add r0, r5, #0 bl MOD54_021D91BC cmp r4, r0 beq _021D92D2 bl ErrorHandling _021D92D2: add r6, #0xcc add r0, r5, #0 add r1, r7, #0 add r2, r6, #0 mov r3, #4 bl MOD54_021D91C4 add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD54_021D92AC thumb_func_start MOD54_021D92E4 MOD54_021D92E4: ; 0x021D92E4 push {r4, r5} ldrb r3, [r2, #0x18] cmp r3, #0 bne _021D92F2 mov r0, #0 pop {r4, r5} bx lr _021D92F2: mov r4, #0 cmp r1, #0 ble _021D931E add r5, r0, #0 _021D92FA: ldrb r3, [r5, #0x18] cmp r3, #0 bne _021D9316 mov r1, #0x48 mul r1, r4 add r4, r0, r1 mov r3, #9 _021D9308: ldmia r2!, {r0, r1} stmia r4!, {r0, r1} sub r3, r3, #1 bne _021D9308 mov r0, #1 pop {r4, r5} bx lr _021D9316: add r4, r4, #1 add r5, #0x48 cmp r4, r1 blt _021D92FA _021D931E: mov r5, #0 cmp r1, #0 ble _021D934A add r4, r0, #0 _021D9326: ldrb r3, [r4, #0x19] cmp r3, #3 blo _021D9342 mov r1, #0x48 mul r1, r5 add r4, r0, r1 mov r3, #9 _021D9334: ldmia r2!, {r0, r1} stmia r4!, {r0, r1} sub r3, r3, #1 bne _021D9334 mov r0, #1 pop {r4, r5} bx lr _021D9342: add r5, r5, #1 add r4, #0x48 cmp r5, r1 blt _021D9326 _021D934A: mov r0, #0 pop {r4, r5} bx lr thumb_func_end MOD54_021D92E4 thumb_func_start MOD54_021D9350 MOD54_021D9350: ; 0x021D9350 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 str r0, [sp] str r1, [sp, #4] add r7, r2, #0 add r0, sp, #0x18 mov r1, #0 mov r2, #0x10 str r3, [sp, #8] ldr r5, [sp, #0x40] bl MI_CpuFill8 mov r4, #0 add r6, r4, #0 cmp r7, #0 ble _021D93D8 str r5, [sp, #0x10] _021D9372: ldr r0, [sp, #0x10] ldr r0, [r0] cmp r0, #0 beq _021D93CC mov r0, #0 str r0, [sp, #0x14] str r0, [sp, #0xc] b _021D93C6 _021D9382: add r0, r4, #1 add r1, r7, #0 bl _s32_div_f add r4, r1, #0 _021D938C: lsl r2, r4, #2 ldr r0, [r5, r2] cmp r0, #0 beq _021D9382 cmp r4, r6 beq _021D9382 add r0, sp, #0x18 ldrb r0, [r0, r4] cmp r0, #4 beq _021D9382 add r1, r0, #1 add r0, sp, #0x18 strb r1, [r0, r4] ldr r0, [sp, #8] cmp r4, r0 beq _021D93BA ldr r3, [r5, r2] ldr r2, [sp, #0xc] ldr r0, [sp] ldr r1, [sp, #4] add r2, r3, r2 bl MOD54_021D92E4 _021D93BA: ldr r0, [sp, #0xc] add r0, #0x48 str r0, [sp, #0xc] ldr r0, [sp, #0x14] add r0, r0, #1 str r0, [sp, #0x14] _021D93C6: ldr r0, [sp, #0x14] cmp r0, #4 blt _021D938C _021D93CC: ldr r0, [sp, #0x10] add r6, r6, #1 add r0, r0, #4 str r0, [sp, #0x10] cmp r6, r7 blt _021D9372 _021D93D8: add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD54_021D9350 thumb_func_start MOD54_021D93DC MOD54_021D93DC: ; 0x021D93DC push {r3, r4, r5, lr} add r5, r1, #0 mov r1, #0x93 add r4, r2, #0 lsl r1, r1, #2 str r3, [sp] add r0, r0, r1 mov r1, #0x10 add r2, r5, #0 add r3, r4, #0 bl MOD54_021D9350 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD54_021D93DC thumb_func_start MOD54_021D93F8 MOD54_021D93F8: ; 0x021D93F8 push {r3, r4, r5, lr} add r5, r1, #0 ldr r1, _021D9410 ; =0x000006CC add r4, r2, #0 str r3, [sp] add r0, r0, r1 mov r1, #8 add r2, r5, #0 add r3, r4, #0 bl MOD54_021D9350 pop {r3, r4, r5, pc} .align 2, 0 _021D9410: .word 0x000006CC thumb_func_end MOD54_021D93F8 thumb_func_start MOD54_021D9414 MOD54_021D9414: ; 0x021D9414 push {r3, r4, r5, lr} add r5, r1, #0 ldr r1, _021D942C ; =0x0000090C add r4, r2, #0 str r3, [sp] add r0, r0, r1 mov r1, #8 add r2, r5, #0 add r3, r4, #0 bl MOD54_021D9350 pop {r3, r4, r5, pc} .align 2, 0 _021D942C: .word 0x0000090C thumb_func_end MOD54_021D9414 thumb_func_start MOD54_021D9430 MOD54_021D9430: ; 0x021D9430 push {r3, lr} bl FUN_0202881C bl MOD54_021D9094 pop {r3, pc} thumb_func_end MOD54_021D9430 thumb_func_start MOD54_021D943C MOD54_021D943C: ; 0x021D943C push {r4, r5, r6, lr} add r4, r1, #0 add r5, r2, #0 bl FUN_0202881C add r6, r0, #0 add r0, r4, #0 add r1, r5, #0 bl FUN_020169D8 add r4, r0, #0 add r0, r6, #0 bl MOD54_021D9098 add r1, r4, #0 add r2, r5, #0 bl MIi_CpuCopyFast add r0, r4, #0 pop {r4, r5, r6, pc} thumb_func_end MOD54_021D943C thumb_func_start MOD54_021D9464 MOD54_021D9464: ; 0x021D9464 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl FUN_0202881C add r2, r0, #0 ldr r0, [r4, #8] ldr r1, [r4, #0xc] ldr r3, [r4, #0x10] bl MOD54_021D912C pop {r4, pc} thumb_func_end MOD54_021D9464 thumb_func_start MOD54_021D947C MOD54_021D947C: ; 0x021D947C push {r3, lr} bl FUN_02027E24 bl FUN_02026FE0 pop {r3, pc} thumb_func_end MOD54_021D947C thumb_func_start MOD54_021D9488 MOD54_021D9488: ; 0x021D9488 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r2, #0 bl FUN_02027E24 add r6, r0, #0 add r0, r4, #0 add r1, r5, #0 bl FUN_020169D8 add r4, r0, #0 add r0, r6, #0 mov r1, #0 bl FUN_02027008 add r1, r4, #0 add r2, r5, #0 bl MIi_CpuCopyFast add r0, r4, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD54_021D9488 thumb_func_start MOD54_021D94B4 MOD54_021D94B4: ; 0x021D94B4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl FUN_02027E24 add r2, r0, #0 ldr r0, [r4, #8] ldr r1, [r4, #0xc] lsl r0, r0, #0x18 ldr r3, [r4, #0x10] lsr r0, r0, #0x18 bl FUN_02027D7C pop {r4, pc} thumb_func_end MOD54_021D94B4 thumb_func_start MOD54_021D94D0 MOD54_021D94D0: ; 0x021D94D0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl FUN_02022504 ldr r1, [r4, #8] ldr r2, [r4, #0xc] ldr r3, [r4, #0x10] bl MOD54_021D93DC pop {r4, pc} .align 2, 0 thumb_func_end MOD54_021D94D0 thumb_func_start MOD54_021D94E8 MOD54_021D94E8: ; 0x021D94E8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl FUN_02022504 ldr r1, [r4, #8] ldr r2, [r4, #0xc] ldr r3, [r4, #0x10] bl MOD54_021D93F8 pop {r4, pc} .align 2, 0 thumb_func_end MOD54_021D94E8 thumb_func_start MOD54_021D9500 MOD54_021D9500: ; 0x021D9500 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl FUN_02022504 ldr r1, [r4, #8] ldr r2, [r4, #0xc] ldr r3, [r4, #0x10] bl MOD54_021D9414 pop {r4, pc} .align 2, 0 thumb_func_end MOD54_021D9500 thumb_func_start MOD54_021D9518 MOD54_021D9518: ; 0x021D9518 ldr r3, _021D951C ; =0x0202B9ED bx r3 .align 2, 0 _021D951C: .word 0x0202B9ED thumb_func_end MOD54_021D9518 thumb_func_start MOD54_021D9520 MOD54_021D9520: ; 0x021D9520 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #4] bl FUN_0202B8E4 ldr r0, [r4] str r0, [sp] ldr r2, [r4, #8] ldr r0, [r4, #4] lsl r2, r2, #0x18 ldr r1, [r4, #0xc] ldr r3, [r4, #0x10] lsr r2, r2, #0x18 bl FUN_0202BCF4 add sp, #4 pop {r3, r4, pc} thumb_func_end MOD54_021D9520 thumb_func_start MOD54_021D9544 MOD54_021D9544: ; 0x021D9544 push {r4, r5, r6, lr} add r5, r2, #0 add r6, r0, #0 add r0, r1, #0 add r1, r5, #0 bl FUN_020169D8 add r4, r0, #0 mov r1, #0 add r2, r5, #0 bl MI_CpuFill8 add r0, r6, #0 mov r1, #0 add r2, r4, #0 bl FUN_02066840 add r0, r4, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD54_021D9544 thumb_func_start MOD54_021D956C MOD54_021D956C: ; 0x021D956C bx lr .align 2, 0 thumb_func_end MOD54_021D956C thumb_func_start MOD54_021D9570 MOD54_021D9570: ; 0x021D9570 push {r4, r5, r6, r7, lr} sub sp, #0xc str r0, [sp] mov r0, #0 ldr r6, _021D95C4 ; =0x00000BB8 ldr r5, _021D95C8 ; =0x021D9780 str r1, [sp, #4] str r0, [sp, #8] _021D9580: ldr r0, [sp] ldr r1, [r5] blx r1 add r4, r0, #0 ldr r0, [sp] ldr r3, [r5, #4] mov r1, #0x33 add r2, r4, #0 blx r3 add r7, r0, #0 cmp r6, r4 bhi _021D959C bl ErrorHandling _021D959C: ldr r1, [sp, #4] add r0, r7, #0 add r2, r4, #0 bl MIi_CpuCopyFast add r0, r7, #0 bl FUN_02016A18 ldr r0, [sp, #4] sub r6, r6, r4 add r0, r0, r4 str r0, [sp, #4] ldr r0, [sp, #8] add r5, #0xc add r0, r0, #1 str r0, [sp, #8] cmp r0, #7 blt _021D9580 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _021D95C4: .word 0x00000BB8 _021D95C8: .word 0x021D9780 thumb_func_end MOD54_021D9570 thumb_func_start MOD54_021D95CC MOD54_021D95CC: ; 0x021D95CC push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 str r0, [sp] ldr r0, _021D9670 ; =0x00000BB8 str r1, [sp, #4] str r0, [sp, #0x10] mov r0, #0x33 str r0, [sp, #0x2c] ldr r0, [sp] mov r7, #0 str r0, [sp, #0x30] bl FUN_02031190 str r0, [sp, #0x38] mov r0, #5 str r0, [sp, #0x34] add r0, sp, #0x18 str r0, [sp, #0x3c] add r0, r7, #0 str r0, [sp, #0xc] ldr r0, _021D9674 ; =0x021D9780 str r0, [sp, #8] _021D95F8: ldr r1, [sp, #8] ldr r0, [sp] ldr r1, [r1] blx r1 ldr r1, [sp, #0x10] str r0, [sp, #0x14] cmp r1, r0 bhi _021D960C bl ErrorHandling _021D960C: mov r6, #0 ldr r4, [sp, #4] add r5, r6, #0 _021D9612: add r0, r6, #0 bl FUN_0202DFA4 cmp r0, #0 beq _021D9624 ldr r0, [sp, #0x3c] add r1, r4, r7 str r1, [r0, r5] b _021D962A _021D9624: ldr r1, [sp, #0x3c] mov r0, #0 str r0, [r1, r5] _021D962A: mov r0, #0x2f lsl r0, r0, #6 add r6, r6, #1 add r4, r4, r0 add r5, r5, #4 cmp r6, #5 blt _021D9612 ldr r1, [sp, #8] add r0, sp, #0x2c ldr r1, [r1, #8] blx r1 ldr r0, [sp, #0x14] ldr r1, [sp, #0x10] add r7, r7, r0 sub r0, r1, r0 str r0, [sp, #0x10] ldr r0, [sp, #8] add r0, #0xc str r0, [sp, #8] ldr r0, [sp, #0xc] add r0, r0, #1 str r0, [sp, #0xc] cmp r0, #7 blo _021D95F8 ldr r0, [sp] bl FUN_02022504 add r4, r0, #0 bl FUN_0202B390 add r0, r4, #0 bl FUN_0202B3F8 add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D9670: .word 0x00000BB8 _021D9674: .word 0x021D9780 thumb_func_end MOD54_021D95CC .section .rodata ; 0x021D9678 .incbin "baserom.nds", 0x29E598, 0x15C .section .data ; 0x021D97E0 .incbin "baserom.nds", 0x29E700, 0x80