.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD53_021D74E0 MOD53_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 _021D7622 _021D74F4: b _021D7630 _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, _021D7638 ; =0xFFFFE0FF and r1, r0 str r1, [r2] ldr r2, _021D763C ; =0x04001000 ldr r1, [r2] and r0, r1 str r0, [r2] mov r0, #3 mov r1, #0x27 lsl r2, r2, #6 bl FUN_0201681C ldr r1, _021D7640 ; =0x0000940C add r0, r6, #0 mov r2, #0x27 bl FUN_02006268 ldr r2, _021D7640 ; =0x0000940C mov r1, #0 add r4, r0, #0 bl Call_FillMemWithValue mov r0, #0x27 bl FUN_02016B94 str r0, [r4] mov r0, #0x27 bl FUN_0200AA80 str r0, [r4, #0xc] ldr r2, _021D7644 ; =0x00000176 mov r0, #0 mov r1, #0x1a mov r3, #0x27 bl FUN_0200A86C str r0, [r4, #0x10] mov r0, #4 mov r1, #8 bl FUN_0201669C bl MOD53_021D78D0 ldr r0, [r4] bl MOD53_021D78F0 mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 mov r0, #1 mov r1, #0 bl FUN_0200E3A0 mov r0, #0x10 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x27 str r0, [sp, #8] mov r0, #0 mov r1, #0x11 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 add r0, r6, #0 bl FUN_0200628C str r0, [r4, #8] add r0, r4, #0 bl MOD53_021D7B60 bl FUN_0201CC08 mov r0, #2 bl FUN_0201CC24 ldr r0, _021D7648 ; =MOD53_021D78A8 ldr r1, [r4] bl FUN_02015F10 add r0, r4, #0 bl MOD53_021D79F8 bl MOD53_021D7C54 add r0, r4, #0 bl MOD53_021D7C84 add r0, r4, #0 bl MOD53_021D7E08 add r0, r4, #0 add r1, r6, #0 bl MOD53_021D7FDC mov r1, #0 mov r0, #0x34 add r2, r1, #0 bl FUN_0200433C ldr r2, _021D764C ; =0x04000304 ldr r0, _021D7650 ; =0xFFFF7FFF ldrh r1, [r2] and r0, r1 strh r0, [r2] add r0, r4, #0 bl FUN_02083D48 mov r0, #0 mov r1, #1 bl FUN_020334E8 bl FUN_02031190 cmp r0, #0 bne _021D7602 mov r0, #3 bl FUN_02032B6C _021D7602: bl FUN_02033E74 bl FUN_02031190 cmp r0, #0 bne _021D761A mov r0, #1 bl FUN_02052B74 mov r0, #1 bl FUN_0202EEB0 _021D761A: ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D7630 _021D7622: bl FUN_02006278 mov r0, #0 str r0, [r5] add sp, #0xc mov r0, #1 pop {r3, r4, r5, r6, pc} _021D7630: mov r0, #0 add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021D7638: .word 0xFFFFE0FF _021D763C: .word 0x04001000 _021D7640: .word 0x0000940C _021D7644: .word 0x00000176 _021D7648: .word MOD53_021D78A8 _021D764C: .word 0x04000304 _021D7650: .word 0xFFFF7FFF thumb_func_end MOD53_021D74E0 thumb_func_start MOD53_021D7654 MOD53_021D7654: ; 0x021D7654 push {r3, r4, r5, lr} add r5, r1, #0 bl FUN_02006278 add r4, r0, #0 bl FUN_02031190 cmp r0, #0 bne _021D767A ldr r0, _021D7750 ; =0x000093B4 ldr r0, [r4, r0] cmp r0, #0 beq _021D767A bl FUN_0202CB8C ldr r1, _021D7750 ; =0x000093B4 ldr r2, [r4, r1] and r0, r2 str r0, [r4, r1] _021D767A: mov r0, #3 ldr r1, [r5] lsl r0, r0, #8 str r1, [r4, r0] ldr r1, [r5] add r0, r4, #0 bl MOD53_021D93E8 ldr r1, [r5] cmp r1, #3 bhi _021D7744 add r0, r1, r1 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D769C: ; jump table .short _021D76A4 - _021D769C - 2 ; case 0 .short _021D76D2 - _021D769C - 2 ; case 1 .short _021D7718 - _021D769C - 2 ; case 2 .short _021D7738 - _021D769C - 2 ; case 3 _021D76A4: bl FUN_0200E308 cmp r0, #0 beq _021D7744 bl FUN_02031190 cmp r0, #0 beq _021D76CC bl MOD53_021D9160 cmp r0, #2 blt _021D7744 mov r1, #0 mov r0, #0x80 add r2, r1, #0 bl FUN_02030ADC mov r0, #1 str r0, [r5] b _021D7744 _021D76CC: mov r0, #1 str r0, [r5] b _021D7744 _021D76D2: mov r0, #0xc1 lsl r0, r0, #2 ldr r0, [r4, r0] lsl r2, r0, #3 ldr r0, _021D7754 ; =0x021D98A0 ldr r2, [r0, r2] cmp r2, #0 beq _021D76E8 add r0, r4, #0 blx r2 str r0, [r5] _021D76E8: mov r0, #0x9e lsl r0, r0, #2 ldr r2, _021D7758 ; =0x000E0D0F add r0, r4, r0 mov r1, #0 add r3, r4, #0 bl MOD53_021D9014 bl FUN_02031190 cmp r0, #0 bne _021D770E add r0, r4, #0 bl MOD53_021D928C ldr r1, [r5] cmp r1, #1 bne _021D770E str r0, [r5] _021D770E: ldr r0, _021D775C ; =0x00004374 add r0, r4, r0 bl MOD53_021D8FB8 b _021D7744 _021D7718: mov r0, #0xc1 lsl r0, r0, #2 ldr r0, [r4, r0] lsl r3, r0, #3 ldr r0, _021D7754 ; =0x021D98A0 ldr r2, [r0, r3] cmp r2, #0 beq _021D7744 ldr r0, _021D7760 ; =0x021D98A4 ldr r0, [r0, r3] cmp r0, #0 beq _021D7744 add r0, r4, #0 blx r2 str r0, [r5] b _021D7744 _021D7738: bl FUN_0200E308 cmp r0, #0 beq _021D7744 mov r0, #1 pop {r3, r4, r5, pc} _021D7744: ldr r0, [r4, #0x34] bl FUN_0201FDEC mov r0, #0 pop {r3, r4, r5, pc} nop _021D7750: .word 0x000093B4 _021D7754: .word 0x021D98A0 _021D7758: .word 0x000E0D0F _021D775C: .word 0x00004374 _021D7760: .word 0x021D98A4 thumb_func_end MOD53_021D7654 thumb_func_start MOD53_021D7764 MOD53_021D7764: ; 0x021D7764 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 bl FUN_02006278 add r6, r0, #0 add r0, r5, #0 bl FUN_0200628C add r4, r0, #0 ldr r0, [r7] cmp r0, #3 bls _021D7780 b _021D789E _021D7780: add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D778C: ; jump table .short _021D7794 - _021D778C - 2 ; case 0 .short _021D7820 - _021D778C - 2 ; case 1 .short _021D784E - _021D778C - 2 ; case 2 .short _021D786E - _021D778C - 2 ; case 3 _021D7794: mov r0, #0x27 bl FUN_020294A8 add r1, r0, #0 ldr r0, [r4, #4] mov r2, #4 bl FUN_02028AD4 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 mov r0, #0x17 lsl r0, r0, #4 ldr r0, [r6, r0] bl FUN_02009C0C mov r0, #6 lsl r0, r0, #6 ldr r0, [r6, r0] bl FUN_02009C0C mov r0, #0x5d lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009E04 mov r0, #0x61 lsl r0, r0, #2 ldr r0, [r6, r0] bl FUN_02009E04 mov r4, #0 add r5, r6, #0 _021D77D8: mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_02008E2C add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D77D8 ldr r0, [r6, #0x34] bl FUN_0201FD58 bl FUN_02009FA0 bl FUN_0201D12C bl FUN_0201E08C add r0, r6, #0 bl MOD53_021D8104 ldr r0, [r6] bl MOD53_021D7B24 bl FUN_0201CD04 ldr r0, [r6, #0x10] bl FUN_0200A8B8 ldr r0, [r6, #0xc] bl FUN_0200AB18 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021D789E _021D7820: mov r0, #1 bl FUN_02032B6C bl FUN_02031B50 ldr r0, [r4] bl FUN_02052F8C ldr r2, _021D78A4 ; =0x04000304 ldrh r1, [r2] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2] mov r0, #0 bl FUN_02052B74 mov r0, #0 bl FUN_0202EEB0 ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021D789E _021D784E: mov r1, #0x25 lsl r1, r1, #0xa ldr r1, [r6, r1] cmp r1, #0 beq _021D7868 bl FUN_0202CB8C cmp r0, #1 bne _021D789E ldr r0, [r7] add r0, r0, #1 str r0, [r7] b _021D789E _021D7868: add r0, r0, #1 str r0, [r7] b _021D789E _021D786E: mov r0, #2 bl FUN_02032B6C add r0, r6, #0 bl MOD53_021D7AE8 ldr r0, [r6, #8] bl FUN_02016A18 add r0, r5, #0 bl FUN_0200627C mov r0, #0 add r1, r0, #0 bl FUN_02015F10 mov r0, #0x27 bl FUN_020168D0 mov r0, #2 bl FUN_02032B6C mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D789E: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} nop _021D78A4: .word 0x04000304 thumb_func_end MOD53_021D7764 thumb_func_start MOD53_021D78A8 MOD53_021D78A8: ; 0x021D78A8 push {r4, lr} add r4, r0, #0 bl FUN_0201C30C bl FUN_02009F80 add r0, r4, #0 bl FUN_0201AB60 ldr r3, _021D78C8 ; =0x027E0000 ldr r1, _021D78CC ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r4, pc} .align 2, 0 _021D78C8: .word 0x027E0000 _021D78CC: .word 0x00003FF8 thumb_func_end MOD53_021D78A8 thumb_func_start MOD53_021D78D0 MOD53_021D78D0: ; 0x021D78D0 push {r4, lr} sub sp, #0x28 ldr r4, _021D78EC ; =0x021D95A4 add r3, sp, #0 mov r2, #5 _021D78DA: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D78DA add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D78EC: .word 0x021D95A4 thumb_func_end MOD53_021D78D0 thumb_func_start MOD53_021D78F0 MOD53_021D78F0: ; 0x021D78F0 push {r4, r5, lr} sub sp, #0x9c ldr r5, _021D79E0 ; =0x021D94F8 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, _021D79E4 ; =0x021D9518 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, #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, _021D79E8 ; =0x021D9550 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, #1 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #1 bl FUN_02018744 ldr r5, _021D79EC ; =0x021D956C 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, #2 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 ldr r5, _021D79F0 ; =0x021D9588 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, #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, _021D79F4 ; =0x021D9534 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, #5 mov r3, #0 bl FUN_02016C18 mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x27 bl FUN_02017F18 mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0x27 bl FUN_02017F18 add sp, #0x9c pop {r4, r5, pc} nop _021D79E0: .word 0x021D94F8 _021D79E4: .word 0x021D9518 _021D79E8: .word 0x021D9550 _021D79EC: .word 0x021D956C _021D79F0: .word 0x021D9588 _021D79F4: .word 0x021D9534 thumb_func_end MOD53_021D78F0 thumb_func_start MOD53_021D79F8 MOD53_021D79F8: ; 0x021D79F8 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r7, r0, #0 mov r0, #0 str r0, [sp] ldr r0, _021D7ACC ; =0x0000438A add r6, r7, #0 add r4, r7, r0 mov r0, #0x38 add r5, r7, #0 str r0, [sp, #4] _021D7A0E: mov r0, #8 mov r1, #0x27 bl FUN_020219F4 str r0, [r6, #0x14] ldrb r1, [r4] ldr r0, [sp, #4] bic r1, r0 strb r1, [r4] ldr r0, _021D7AD0 ; =0x000043B6 mov r1, #0 strh r1, [r6, r0] mov r0, #0xcd lsl r0, r0, #2 str r1, [r5, r0] add r0, r0, #4 str r1, [r5, r0] ldr r0, [sp] add r6, r6, #4 add r0, r0, #1 add r4, #0xa add r5, #8 str r0, [sp] cmp r0, #5 blt _021D7A0E mov r0, #0xa mov r1, #0x27 bl FUN_020219F4 str r0, [r7, #0x28] mov r0, #0x50 mov r1, #0x27 bl FUN_020219F4 str r0, [r7, #0x2c] ldr r0, _021D7AD4 ; =0x00004376 mov r2, #0 strb r2, [r7, r0] mov r1, #1 add r0, r0, #1 strb r1, [r7, r0] ldr r0, _021D7AD8 ; =0x000093F4 str r1, [r7, r0] add r0, r0, #4 str r2, [r7, r0] mov r0, #0xc6 mov r1, #2 lsl r0, r0, #2 str r1, [r7, r0] bl FUN_0202CB8C mov r1, #0xc7 lsl r1, r1, #2 str r0, [r7, r1] ldr r2, _021D7ADC ; =0x000093FC mov r3, #0 str r3, [r7, r2] add r0, r2, #4 str r3, [r7, r0] add r0, r2, #0 sub r1, #0x18 str r3, [r7, r1] add r0, #8 str r3, [r7, r0] add r2, #0xc str r3, [r7, r2] bl FUN_02031190 add r0, r7, #0 mov r1, #4 bl MOD53_021D93E0 ldr r0, [r7, #0x10] ldr r2, [r7, #0x28] mov r1, #7 bl FUN_0200A8E0 mov r1, #0xf mov r0, #0x27 lsl r1, r1, #0xa bl FUN_02016998 ldr r1, _021D7AE0 ; =0x000043C8 str r0, [r7, r1] mov r0, #0x27 bl FUN_02014590 ldr r1, _021D7AE4 ; =0x000093F0 str r0, [r7, r1] mov r0, #0xc5 mov r1, #0 lsl r0, r0, #2 str r1, [r7, r0] add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D7ACC: .word 0x0000438A _021D7AD0: .word 0x000043B6 _021D7AD4: .word 0x00004376 _021D7AD8: .word 0x000093F4 _021D7ADC: .word 0x000093FC _021D7AE0: .word 0x000043C8 _021D7AE4: .word 0x000093F0 thumb_func_end MOD53_021D79F8 thumb_func_start MOD53_021D7AE8 MOD53_021D7AE8: ; 0x021D7AE8 push {r4, r5, r6, lr} add r6, r0, #0 ldr r0, _021D7B1C ; =0x000043C8 ldr r0, [r6, r0] bl FUN_02016A18 ldr r0, _021D7B20 ; =0x000093F0 ldr r0, [r6, r0] bl FUN_020145A8 mov r4, #0 add r5, r6, #0 _021D7B00: ldr r0, [r5, #0x14] bl FUN_02021A20 add r4, r4, #1 add r5, r5, #4 cmp r4, #5 blt _021D7B00 ldr r0, [r6, #0x2c] bl FUN_02021A20 ldr r0, [r6, #0x28] bl FUN_02021A20 pop {r4, r5, r6, pc} .align 2, 0 _021D7B1C: .word 0x000043C8 _021D7B20: .word 0x000093F0 thumb_func_end MOD53_021D7AE8 thumb_func_start MOD53_021D7B24 MOD53_021D7B24: ; 0x021D7B24 push {r4, lr} add r4, r0, #0 mov r1, #5 bl FUN_020178A0 add r0, r4, #0 mov r1, #4 bl FUN_020178A0 add r0, r4, #0 mov r1, #3 bl FUN_020178A0 add r0, r4, #0 mov r1, #2 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 MOD53_021D7B24 thumb_func_start MOD53_021D7B60 MOD53_021D7B60: ; 0x021D7B60 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 ldr r4, [r5] mov r0, #0x40 mov r1, #0 str r0, [sp] mov r0, #0x27 str r0, [sp, #4] mov r0, #0x4e add r2, r1, #0 add r3, r1, #0 bl FUN_02006930 mov r0, #0x40 str r0, [sp] mov r0, #0x27 str r0, [sp, #4] mov r0, #0x4e mov r1, #1 mov r2, #4 mov r3, #0 bl FUN_02006930 mov r1, #0x1a mov r0, #0 lsl r1, r1, #4 mov r2, #0x27 bl FUN_02002EEC mov r1, #0x1a mov r0, #4 lsl r1, r1, #4 mov r2, #0x27 bl FUN_02002EEC mov r0, #0 str r0, [sp] mov r0, #2 lsl r0, r0, #0xc str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x27 mov r1, #2 str r0, [sp, #0xc] mov r0, #0x4e add r2, r4, #0 add r3, r1, #0 bl FUN_0200687C mov r0, #0 str r0, [sp] mov r0, #6 lsl r0, r0, #8 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x27 str r0, [sp, #0xc] mov r0, #0x4e mov r1, #4 add r2, r4, #0 mov r3, #2 bl FUN_020068C8 mov r0, #0 str r0, [sp] mov r0, #2 lsl r0, r0, #0xc str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x27 str r0, [sp, #0xc] mov r0, #0x4e mov r1, #3 add r2, r4, #0 mov r3, #5 bl FUN_0200687C mov r0, #0 str r0, [sp] mov r0, #6 lsl r0, r0, #8 str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x27 mov r1, #5 str r0, [sp, #0xc] mov r0, #0x4e add r2, r4, #0 add r3, r1, #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, #0x27 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, #0x27 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} thumb_func_end MOD53_021D7B60 thumb_func_start MOD53_021D7C54 MOD53_021D7C54: ; 0x021D7C54 push {r4, lr} sub sp, #0x10 ldr r4, _021D7C80 ; =0x021D9508 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, #0x27 bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x10 pop {r4, pc} .align 2, 0 _021D7C80: .word 0x021D9508 thumb_func_end MOD53_021D7C54 thumb_func_start MOD53_021D7C84 MOD53_021D7C84: ; 0x021D7C84 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, 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, #0x27 str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC add r1, r5, #0 mov r0, #0x35 add r1, #0x38 mov r2, #0x27 bl FUN_02008C9C str r0, [r5, #0x34] add r0, r5, #0 mov r2, #1 add r0, #0x38 mov r1, #0 lsl r2, r2, #0x14 bl FUN_02008D24 mov r7, #0x16 mov r6, #0 add r4, r5, #0 lsl r7, r7, #4 _021D7CCA: mov r0, #2 add r1, r6, #0 mov r2, #0x27 bl FUN_02008DEC str r0, [r4, r7] add r6, r6, #1 add r4, r4, #4 cmp r6, #4 blt _021D7CCA mov r0, #0 str r0, [sp] mov r3, #1 str r3, [sp, #4] mov r0, #0x27 str r0, [sp, #8] mov r0, #0x16 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0x4e mov r2, #6 bl FUN_02008F34 mov r1, #0x17 lsl r1, r1, #4 str r0, [r5, r1] mov r2, #0 str r2, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #7 str r0, [sp, #8] mov r0, #0x27 sub r1, #0xc str r0, [sp, #0xc] ldr r0, [r5, r1] mov r1, #0x4e add r3, r2, #0 bl FUN_02008FEC mov r1, #0x5d lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x27 sub r1, #0xc str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x4e mov r2, #7 mov r3, #1 bl FUN_020090AC mov r1, #0x5e lsl r1, r1, #2 str r0, [r5, r1] mov r0, #0 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x27 sub r1, #0xc str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x4e mov r2, #8 mov r3, #1 bl FUN_020090AC mov r1, #0x5f lsl r1, r1, #2 str r0, [r5, r1] mov r3, #1 str r3, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x27 sub r1, #0x1c str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x4e mov r2, #6 bl FUN_02008F34 mov r1, #6 lsl r1, r1, #6 str r0, [r5, r1] mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] mov r0, #0x27 mov r2, #0 sub r1, #0x1c str r0, [sp, #0xc] ldr r0, [r5, r1] mov r1, #0x4e add r3, r2, #0 bl FUN_02008FEC mov r1, #0x61 lsl r1, r1, #2 str r0, [r5, r1] mov r3, #1 str r3, [sp] mov r0, #2 str r0, [sp, #4] mov r0, #0x27 sub r1, #0x1c str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x4e mov r2, #7 bl FUN_020090AC mov r1, #0x62 lsl r1, r1, #2 str r0, [r5, r1] mov r3, #1 str r3, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0x27 sub r1, #0x1c str r0, [sp, #8] ldr r0, [r5, r1] mov r1, #0x4e mov r2, #8 bl FUN_020090AC mov r1, #0x63 lsl r1, r1, #2 str r0, [r5, r1] sub r1, #0x1c ldr r0, [r5, r1] bl FUN_02009A50 mov r0, #6 lsl r0, r0, #6 ldr r0, [r5, r0] bl FUN_02009A50 mov r0, #0x5d lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009CF0 mov r0, #0x61 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02009CF0 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD53_021D7C84 thumb_func_start MOD53_021D7E08 MOD53_021D7E08: ; 0x021D7E08 push {r4, r5, r6, r7, lr} sub sp, #0x64 mov r1, #0 add r5, r0, #0 str r1, [sp] sub r0, r1, #1 str r0, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] mov r2, #0x16 str r1, [sp, #0x10] lsl r2, r2, #4 ldr r0, [r5, r2] add r3, r1, #0 str r0, [sp, #0x14] add r0, r2, #4 ldr r0, [r5, r0] str r0, [sp, #0x18] add r0, r2, #0 add r0, #8 ldr r0, [r5, r0] str r0, [sp, #0x1c] add r0, r2, #0 add r0, #0xc ldr r0, [r5, r0] add r2, #0x30 str r0, [sp, #0x20] str r1, [sp, #0x24] add r0, r5, r2 add r2, r1, #0 str r1, [sp, #0x28] bl FUN_02008AA4 mov r1, #1 mov r3, #0x16 str r1, [sp] sub r0, r1, #2 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] lsl r3, r3, #4 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, #0x54 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, #0x34] mov r6, #0 str r0, [sp, #0x34] mov r0, #0x19 lsl r0, r0, #4 add r0, r5, r0 str r0, [sp, #0x38] mov r0, #1 lsl r0, r0, #0xc str r6, [sp, #0x44] str r0, [sp, #0x48] str r0, [sp, #0x4c] str r0, [sp, #0x50] add r0, sp, #0x34 strh r6, [r0, #0x20] mov r0, #1 str r0, [sp, #0x58] str r0, [sp, #0x5c] mov r0, #0x27 str r0, [sp, #0x60] mov r0, #0x6d lsl r0, r0, #2 add r0, r5, r0 mov r7, #0x18 add r4, r5, #0 str r0, [sp, #0x2c] _021D7EBC: ldr r0, [sp, #0x2c] str r0, [sp, #0x38] lsl r0, r7, #0xc str r0, [sp, #0x3c] mov r0, #1 lsl r0, r0, #0x12 str r0, [sp, #0x40] mov r0, #2 str r0, [sp, #0x5c] add r0, sp, #0x34 bl FUN_0201FE94 mov r1, #0x76 lsl r1, r1, #2 str r0, [r4, r1] add r0, r1, #0 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200BC mov r0, #0x76 lsl r0, r0, #2 ldr r0, [r4, r0] add r1, r6, #0 bl FUN_02020130 mov r0, #0x76 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl FUN_020200A0 add r6, r6, #1 add r7, #0x28 add r4, r4, #4 cmp r6, #5 blt _021D7EBC mov r0, #0x6d lsl r0, r0, #2 add r0, r5, r0 ldr r6, _021D7FD8 ; =0x021D9600 mov r7, #0 add r4, r5, #0 str r0, [sp, #0x30] _021D7F14: ldr r0, [sp, #0x30] str r0, [sp, #0x38] ldrh r0, [r6] lsl r0, r0, #0xc str r0, [sp, #0x3c] ldrh r0, [r6, #2] lsl r0, r0, #0xc str r0, [sp, #0x40] add r0, sp, #0x34 bl FUN_0201FE94 mov r1, #0x92 lsl r1, r1, #2 str r0, [r4, r1] add r0, r1, #0 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200BC mov r0, #0x92 lsl r0, r0, #2 ldrh r1, [r6, #4] ldr r0, [r4, r0] bl FUN_02020130 cmp r7, #8 blt _021D7F56 mov r0, #0x92 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #2 bl FUN_02020238 _021D7F56: add r7, r7, #1 add r6, r6, #6 add r4, r4, #4 cmp r7, #0xc blt _021D7F14 mov r0, #0x92 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #6 bl FUN_02020130 mov r7, #6 mov r6, #0 mov r4, #0x20 lsl r7, r7, #0xe _021D7F74: mov r0, #1 lsl r1, r4, #0xc lsl r0, r0, #0x14 add r0, r1, r0 str r0, [sp, #0x40] add r0, sp, #0x34 str r7, [sp, #0x3c] bl FUN_0201FE94 mov r1, #0x21 lsl r1, r1, #4 str r0, [r5, r1] add r0, r1, #0 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200BC mov r0, #0x21 lsl r0, r0, #4 ldr r0, [r5, r0] add r1, r6, #0 bl FUN_02020130 mov r0, #0x21 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #1 bl FUN_02020310 mov r0, #0x21 lsl r0, r0, #4 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 add r6, r6, #1 add r4, #0x20 add r5, r5, #4 cmp r6, #5 blt _021D7F74 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C add sp, #0x64 pop {r4, r5, r6, r7, pc} .align 2, 0 _021D7FD8: .word 0x021D9600 thumb_func_end MOD53_021D7E08 thumb_func_start MOD53_021D7FDC MOD53_021D7FDC: ; 0x021D7FDC push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r7, r0, #0 mov r0, #1 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, #0xb6 str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r7] add r1, r7, r1 mov r2, #0 mov r3, #2 bl FUN_02019064 mov r0, #0xb6 lsl r0, r0, #2 add r0, r7, r0 mov r1, #0xf bl FUN_02019620 mov r0, #2 str r0, [sp] mov r0, #0x1e str r0, [sp, #4] mov r0, #0xf str r0, [sp, #8] mov r0, #0 mov r2, #1 str r0, [sp, #0xc] str r2, [sp, #0x10] mov r1, #0xb2 lsl r1, r1, #2 ldr r0, [r7] add r1, r7, r1 add r3, r2, #0 bl FUN_02019064 mov r0, #0xb2 lsl r0, r0, #2 add r0, r7, r0 mov r1, #2 bl FUN_02019620 mov r0, #0x15 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, _021D80F8 ; =0x000001C3 mov r1, #0xba str r0, [sp, #0x10] lsl r1, r1, #2 ldr r0, [r7] add r1, r7, r1 mov r2, #1 mov r3, #0x19 bl FUN_02019064 mov r0, #0xba lsl r0, r0, #2 add r0, r7, r0 mov r1, #0 bl FUN_02019620 ldr r1, [r7, #0x28] mov r0, #1 mov r2, #0 mov r3, #0x30 bl FUN_02002F40 add r3, r0, #0 mov r1, #0 str r1, [sp] ldr r0, _021D80FC ; =0x00070100 str r1, [sp, #4] str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #0xba lsl r0, r0, #2 ldr r2, [r7, #0x28] add r0, r7, r0 mov r1, #1 add r3, r3, #2 bl FUN_0201BDE0 mov r0, #0 str r0, [sp, #0x14] mov r0, #0x9e lsl r0, r0, #2 mov r6, #1 mov r4, #3 add r5, r7, r0 _021D80A8: lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0xa str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xd str r0, [sp, #0xc] lsl r0, r6, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] ldr r0, [r7] add r1, r5, #0 mov r2, #4 mov r3, #5 bl FUN_02019064 add r0, r5, #0 mov r1, #0 bl FUN_02019620 ldr r0, [sp, #0x14] add r6, #0x14 add r0, r0, #1 add r4, r4, #4 add r5, #0x10 str r0, [sp, #0x14] cmp r0, #5 blt _021D80A8 mov r0, #0x9e lsl r0, r0, #2 ldr r2, _021D8100 ; =0x000E0D0F add r0, r7, r0 mov r1, #0 add r3, r7, #0 bl MOD53_021D9014 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D80F8: .word 0x000001C3 _021D80FC: .word 0x00070100 _021D8100: .word 0x000E0D0F thumb_func_end MOD53_021D7FDC thumb_func_start MOD53_021D8104 MOD53_021D8104: ; 0x021D8104 push {r4, r5, r6, lr} add r6, r0, #0 mov r0, #0x9e lsl r0, r0, #2 mov r4, #0 add r5, r6, r0 _021D8110: add r0, r5, #0 bl FUN_02019178 add r4, r4, #1 add r5, #0x10 cmp r4, #5 blt _021D8110 mov r0, #0xba lsl r0, r0, #2 add r0, r6, r0 bl FUN_02019178 mov r0, #0xb2 lsl r0, r0, #2 add r0, r6, r0 bl FUN_02019178 mov r0, #0xb6 lsl r0, r0, #2 add r0, r6, r0 bl FUN_02019178 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD53_021D8104 thumb_func_start MOD53_021D8140 MOD53_021D8140: ; 0x021D8140 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 add r5, r2, #0 cmp r1, #0 ble _021D815E lsl r0, r1, #0xc bl _fflt add r1, r0, #0 mov r0, #0x3f lsl r0, r0, #0x18 bl _fadd b _021D816C _021D815E: lsl r0, r1, #0xc bl _fflt mov r1, #0x3f lsl r1, r1, #0x18 bl _fsub _021D816C: bl _ffix sub r5, #8 str r0, [sp] cmp r5, #0 ble _021D818A lsl r0, r5, #0xc bl _fflt add r1, r0, #0 mov r0, #0x3f lsl r0, r0, #0x18 bl _fadd b _021D8198 _021D818A: lsl r0, r5, #0xc bl _fflt mov r1, #0x3f lsl r1, r1, #0x18 bl _fsub _021D8198: bl _ffix str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] add r0, r4, #0 add r1, sp, #0 bl FUN_02020044 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD53_021D8140 thumb_func_start MOD53_021D81B0 MOD53_021D81B0: ; 0x021D81B0 push {r4, r5, r6, r7, lr} sub sp, #0x54 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, _021D83AC ; =0x021D95CC bl FUN_02020988 mov r1, #0 mvn r1, r1 str r0, [sp, #8] cmp r0, r1 beq _021D81FE cmp r0, #0xb bhi _021D81FE add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D81DA: ; jump table .short _021D81F2 - _021D81DA - 2 ; case 0 .short _021D81F2 - _021D81DA - 2 ; case 1 .short _021D81F2 - _021D81DA - 2 ; case 2 .short _021D81F2 - _021D81DA - 2 ; case 3 .short _021D81F2 - _021D81DA - 2 ; case 4 .short _021D81F2 - _021D81DA - 2 ; case 5 .short _021D81F2 - _021D81DA - 2 ; case 6 .short _021D81F2 - _021D81DA - 2 ; case 7 .short _021D821A - _021D81DA - 2 ; case 8 .short _021D82BE - _021D81DA - 2 ; case 9 .short _021D82BE - _021D81DA - 2 ; case 10 .short _021D82BE - _021D81DA - 2 ; case 11 _021D81F2: ldr r2, _021D83B0 ; =0x00004376 ldr r0, [sp] ldrb r1, [r0, r2] ldr r0, [sp, #8] cmp r1, r0 bne _021D8200 _021D81FE: b _021D8316 _021D8200: add r1, r0, #0 ldr r0, [sp] strb r1, [r0, r2] mov r1, #0x92 lsl r1, r1, #2 add r0, r0, r1 ldr r1, [sp, #8] bl MOD53_021D83DC ldr r0, _021D83B4 ; =0x000005DC bl FUN_020054C8 b _021D8316 _021D821A: mov r1, #0xc1 ldr r0, [sp] lsl r1, r1, #2 ldr r0, [r0, r1] cmp r0, #4 bne _021D8316 bl FUN_02031190 cmp r0, #0 bne _021D8280 bl FUN_0202CB8C mov r2, #0xc7 ldr r1, [sp] lsl r2, r2, #2 ldr r1, [r1, r2] cmp r1, r0 beq _021D8246 ldr r0, _021D83B8 ; =0x000005F2 bl FUN_020054C8 b _021D8316 _021D8246: bl FUN_02030F20 bl FUN_02032B6C ldr r1, _021D83BC ; =0x000093F4 ldr r0, [sp] mov r2, #2 str r2, [r0, r1] mov r1, #1 add r2, r1, #0 bl MOD53_021D91C8 ldr r0, [sp] mov r1, #5 bl MOD53_021D93E0 mov r1, #0x92 ldr r0, [sp] lsl r1, r1, #2 add r0, r0, r1 mov r1, #1 bl MOD53_021D840C mov r0, #1 str r0, [sp, #4] ldr r0, _021D83B4 ; =0x000005DC bl FUN_020054C8 b _021D8316 _021D8280: ldr r1, _021D83C0 ; =0x0000438B ldr r0, [sp] ldrb r0, [r0, r1] cmp r0, #2 bne _021D8292 ldr r0, _021D83B8 ; =0x000005F2 bl FUN_020054C8 b _021D8316 _021D8292: mov r1, #1 ldr r0, [sp] add r2, r1, #0 bl MOD53_021D91C8 ldr r0, [sp] mov r1, #5 bl MOD53_021D93E0 mov r1, #0x92 ldr r0, [sp] lsl r1, r1, #2 add r0, r0, r1 mov r1, #1 bl MOD53_021D840C mov r0, #1 str r0, [sp, #4] ldr r0, _021D83B4 ; =0x000005DC bl FUN_020054C8 b _021D8316 _021D82BE: ldr r0, [sp, #8] ldr r5, [sp] str r0, [sp, #0xc] sub r0, #9 mov r4, #0 mov r7, #0x1e mov r6, #0x1d str r0, [sp, #0xc] _021D82CE: ldr r0, [sp, #0xc] cmp r0, r4 bne _021D82E2 mov r0, #0x9b lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r7, #0 bl FUN_02020130 b _021D82EE _021D82E2: mov r0, #0x9b lsl r0, r0, #2 ldr r0, [r5, r0] add r1, r6, #0 bl FUN_02020130 _021D82EE: add r4, r4, #1 add r7, r7, #2 add r5, r5, #4 add r6, r6, #2 cmp r4, #3 blt _021D82CE ldr r2, _021D83C4 ; =0x00004377 ldr r0, [sp] ldrb r1, [r0, r2] ldr r0, [sp, #8] sub r0, #9 str r0, [sp, #8] cmp r1, r0 beq _021D8316 add r1, r0, #0 ldr r0, [sp] strb r1, [r0, r2] ldr r0, _021D83C8 ; =0x000005E5 bl FUN_020054C8 _021D8316: ldr r0, _021D83CC ; =0x021D94F0 bl FUN_02020968 add r4, r0, #0 bl FUN_02031190 lsl r1, r0, #2 ldr r0, [sp] add r1, r0, r1 mov r0, #0x76 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #0 bl FUN_020200A0 mov r0, #0 mvn r0, r0 cmp r4, r0 beq _021D836C bl FUN_02031190 lsl r1, r0, #2 ldr r0, [sp] ldr r2, _021D83D0 ; =0x021C48F8 add r1, r0, r1 mov r0, #0x76 lsl r0, r0, #2 ldr r0, [r1, r0] ldrh r1, [r2, #0x1c] ldrh r2, [r2, #0x1e] bl MOD53_021D8140 bl FUN_02031190 lsl r1, r0, #2 ldr r0, [sp] add r1, r0, r1 mov r0, #0x76 lsl r0, r0, #2 ldr r0, [r1, r0] mov r1, #1 bl FUN_020200A0 _021D836C: add r0, sp, #0x10 mov r1, #4 mov r2, #0x40 bl FUN_0201CD38 cmp r0, #1 bne _021D83A6 ldr r3, _021D83D4 ; =0x00004378 ldr r0, [sp] ldr r2, [sp] sub r4, r3, #2 ldrb r2, [r2, r4] add r0, r0, r3 sub r4, r3, #1 ldr r3, [sp] add r1, sp, #0x10 ldrb r3, [r3, r4] bl MOD53_021D947C ldr r0, [sp, #4] cmp r0, #1 bne _021D83A6 ldr r1, _021D83D8 ; =0x00004380 ldr r0, [sp] ldrb r2, [r0, r1] mov r0, #0x38 bic r2, r0 ldr r0, [sp] strb r2, [r0, r1] _021D83A6: add sp, #0x54 pop {r4, r5, r6, r7, pc} nop _021D83AC: .word 0x021D95CC _021D83B0: .word 0x00004376 _021D83B4: .word 0x000005DC _021D83B8: .word 0x000005F2 _021D83BC: .word 0x000093F4 _021D83C0: .word 0x0000438B _021D83C4: .word 0x00004377 _021D83C8: .word 0x000005E5 _021D83CC: .word 0x021D94F0 _021D83D0: .word 0x021C48F8 _021D83D4: .word 0x00004378 _021D83D8: .word 0x00004380 thumb_func_end MOD53_021D81B0 thumb_func_start MOD53_021D83DC MOD53_021D83DC: ; 0x021D83DC push {r3, r4, r5, r6, r7, lr} ldr r4, _021D8408 ; =0x021D9600 add r5, r0, #0 add r7, r1, #0 mov r6, #0 _021D83E6: cmp r6, r7 ldr r0, [r5] bne _021D83F6 ldrh r1, [r4, #4] add r1, r1, #1 bl FUN_02020130 b _021D83FC _021D83F6: ldrh r1, [r4, #4] bl FUN_02020130 _021D83FC: add r6, r6, #1 add r4, r4, #6 add r5, r5, #4 cmp r6, #8 blt _021D83E6 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8408: .word 0x021D9600 thumb_func_end MOD53_021D83DC thumb_func_start MOD53_021D840C MOD53_021D840C: ; 0x021D840C push {r3, lr} cmp r1, #1 ldr r0, [r0, #0x20] bne _021D841C mov r1, #0x16 bl FUN_02020130 pop {r3, pc} _021D841C: mov r1, #0x15 bl FUN_02020130 pop {r3, pc} thumb_func_end MOD53_021D840C thumb_func_start MOD53_021D8424 MOD53_021D8424: ; 0x021D8424 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl MOD53_021D81B0 bl FUN_02031190 cmp r0, #0 bne _021D8446 bl MOD53_021D8FF8 cmp r0, #1 beq _021D844C add r0, r5, #0 bl MOD53_021D90F8 b _021D844C _021D8446: add r0, r5, #0 bl MOD53_021D90F8 _021D844C: add r0, r5, #0 bl MOD53_021D8F50 ldr r2, _021D846C ; =0x00004382 mov r0, #0xb2 lsl r0, r0, #2 add r1, r5, r2 add r2, #0x32 add r0, r5, r0 add r2, r5, r2 mov r3, #1 bl MOD53_021D8E84 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D846C: .word 0x00004382 thumb_func_end MOD53_021D8424 thumb_func_start MOD53_021D8470 MOD53_021D8470: ; 0x021D8470 push {r4, lr} add r4, r0, #0 bl MOD53_021D8F50 ldr r2, _021D8490 ; =0x00004382 mov r0, #0xb2 lsl r0, r0, #2 add r1, r4, r2 add r2, #0x32 add r0, r4, r0 add r2, r4, r2 mov r3, #0 bl MOD53_021D8E84 pop {r4, pc} nop _021D8490: .word 0x00004382 thumb_func_end MOD53_021D8470 thumb_func_start MOD53_021D8494 MOD53_021D8494: ; 0x021D8494 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_02031190 mov r1, #0x32 lsl r1, r1, #4 ldr r1, [r5, r1] cmp r1, r0 bne _021D84B4 add r0, r5, #0 mov r1, #0xd mov r2, #0 bl MOD53_021D91C8 b _021D84BE _021D84B4: mov r1, #0 add r0, r5, #0 add r2, r1, #0 bl MOD53_021D91C8 _021D84BE: add r0, r5, #0 mov r1, #2 bl MOD53_021D93E0 ldr r0, _021D84E4 ; =0x000005E4 bl FUN_020054C8 mov r1, #0x1e add r2, r1, #0 ldr r0, _021D84E8 ; =0x04000050 sub r2, #0x24 bl G2x_SetBlendBrightness_ add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D84E4: .word 0x000005E4 _021D84E8: .word 0x04000050 thumb_func_end MOD53_021D8494 thumb_func_start MOD53_021D84EC MOD53_021D84EC: ; 0x021D84EC push {r4, lr} add r4, r1, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r4, pc} thumb_func_end MOD53_021D84EC thumb_func_start MOD53_021D84F8 MOD53_021D84F8: ; 0x021D84F8 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, _021D8524 ; =0x04000050 mov r2, #0 strh r2, [r1] add r5, r0, #0 mov r1, #1 bl MOD53_021D926C add r0, r5, #0 mov r1, #4 bl MOD53_021D93E0 add r0, r5, #0 bl MOD53_021D8470 ldr r0, _021D8528 ; =0x00009404 mov r1, #0 str r1, [r5, r0] add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D8524: .word 0x04000050 _021D8528: .word 0x00009404 thumb_func_end MOD53_021D84F8 thumb_func_start MOD53_021D852C MOD53_021D852C: ; 0x021D852C push {r4, r5, lr} sub sp, #0x14 add r5, r0, #0 ldr r0, [r5, #0x30] add r4, r1, #0 bl MOD53_021D923C cmp r0, #0 beq _021D8570 ldr r0, [r5] mov r1, #0x19 str r0, [sp] mov r0, #0 str r0, [sp, #4] mov r0, #0xb4 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] add r0, sp, #0 strb r1, [r0, #0x10] mov r1, #6 strb r1, [r0, #0x11] add r0, r5, #0 add r1, sp, #0 bl MOD53_021D941C cmp r0, #0 bne _021D8568 bl ErrorHandling _021D8568: add r0, r5, #0 mov r1, #6 bl MOD53_021D93E0 _021D8570: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 add sp, #0x14 pop {r4, r5, pc} thumb_func_end MOD53_021D852C thumb_func_start MOD53_021D857C MOD53_021D857C: ; 0x021D857C push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r1, #0 add r5, r0, #0 ldr r1, _021D86C8 ; =0x00004380 mov r0, #0x38 ldrb r2, [r5, r1] bic r2, r0 strb r2, [r5, r1] add r1, #0xb ldrb r0, [r5, r1] cmp r0, #2 bne _021D85BA bl FUN_02031190 cmp r0, #0 beq _021D85BA add r0, r5, #0 bl MOD53_021D8470 add r0, r5, #0 bl MOD53_021D9460 cmp r0, #0 beq _021D85B4 ldr r0, _021D86CC ; =0x000005F2 bl FUN_020054C8 _021D85B4: add sp, #4 add r0, r4, #0 pop {r3, r4, r5, r6, pc} _021D85BA: bl FUN_02031190 cmp r0, #0 bne _021D85D6 ldr r0, _021D86D0 ; =0x000093B4 ldr r0, [r5, r0] cmp r0, #0 beq _021D85D6 add r0, r5, #0 bl MOD53_021D8470 add sp, #4 add r0, r4, #0 pop {r3, r4, r5, r6, pc} _021D85D6: bl MOD53_021D9160 add r6, r0, #0 bl FUN_02030F20 cmp r6, r0 beq _021D85F0 add r0, r5, #0 bl MOD53_021D8470 add sp, #4 add r0, r4, #0 pop {r3, r4, r5, r6, pc} _021D85F0: ldr r0, _021D86D4 ; =0x000093F0 ldr r0, [r5, r0] bl FUN_0201466C cmp r0, #1 beq _021D8602 cmp r0, #2 beq _021D8672 b _021D86BA _021D8602: bl FUN_02031190 cmp r0, #0 bne _021D861E add r0, r5, #0 mov r1, #0xd bl MOD53_021D93E0 add r0, r5, #0 mov r1, #4 mov r2, #1 bl MOD53_021D91C8 b _021D8660 _021D861E: 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, _021D86D8 ; =0x000093BC mov r1, #1 strb r1, [r5, r0] mov r1, #0 sub r0, r0, #2 strh r1, [r5, r0] add r0, r5, #0 mov r1, #7 bl MOD53_021D93E0 mov r0, #0x7e add r1, sp, #0 mov r2, #4 bl FUN_02030ADC mov r0, #0xb6 lsl r0, r0, #2 add r0, r5, r0 mov r1, #1 bl FUN_0200D0E0 _021D8660: add r0, r5, #0 bl MOD53_021D9440 mov r0, #0xb2 lsl r0, r0, #2 add r0, r5, r0 bl FUN_020191D0 b _021D86BA _021D8672: add r0, r5, #0 mov r1, #4 bl MOD53_021D93E0 mov r0, #0x92 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl MOD53_021D840C mov r0, #0xb6 lsl r0, r0, #2 add r0, r5, r0 mov r1, #1 bl FUN_0200D0E0 add r0, r5, #0 bl MOD53_021D9440 mov r0, #0xb2 lsl r0, r0, #2 add r0, r5, r0 bl FUN_020191D0 bl FUN_02031190 cmp r0, #0 bne _021D86BA bl FUN_02030F20 add r0, r0, #1 bl FUN_02032B6C ldr r0, _021D86DC ; =0x000093F4 mov r1, #1 str r1, [r5, r0] _021D86BA: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 add sp, #4 pop {r3, r4, r5, r6, pc} nop _021D86C8: .word 0x00004380 _021D86CC: .word 0x000005F2 _021D86D0: .word 0x000093B4 _021D86D4: .word 0x000093F0 _021D86D8: .word 0x000093BC _021D86DC: .word 0x000093F4 thumb_func_end MOD53_021D857C thumb_func_start MOD53_021D86E0 MOD53_021D86E0: ; 0x021D86E0 push {r4, lr} ldr r2, _021D86FC ; =0x00004380 add r4, r1, #0 ldrb r3, [r0, r2] mov r1, #0x38 bic r3, r1 strb r3, [r0, r2] ldr r1, _021D8700 ; =0x000093BA mov r2, #0 strh r2, [r0, r1] bl MOD53_021D8470 add r0, r4, #0 pop {r4, pc} .align 2, 0 _021D86FC: .word 0x00004380 _021D8700: .word 0x000093BA thumb_func_end MOD53_021D86E0 thumb_func_start MOD53_021D8704 MOD53_021D8704: ; 0x021D8704 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r1, _021D8790 ; =0x00004380 mov r0, #0x38 ldrb r2, [r5, r1] bic r2, r0 strb r2, [r5, r1] bl FUN_02030F20 ldr r1, _021D8794 ; =0x000093B8 ldrh r1, [r5, r1] cmp r1, r0 bne _021D872C bl MOD53_021D9160 ldr r1, _021D8794 ; =0x000093B8 ldrh r2, [r5, r1] cmp r2, r0 beq _021D8744 _021D872C: ldr r0, _021D8798 ; =0x000093BA mov r1, #0 strh r1, [r5, r0] add r0, r5, #0 mov r1, #9 bl MOD53_021D93E0 add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} _021D8744: 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 _021D8784 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, #0x7e add r1, sp, #0 mov r2, #4 bl FUN_02030ADC ldr r0, _021D8798 ; =0x000093BA mov r1, #0 strh r1, [r5, r0] add r0, r5, #0 mov r1, #0xa bl MOD53_021D93E0 _021D8784: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D8790: .word 0x00004380 _021D8794: .word 0x000093B8 _021D8798: .word 0x000093BA thumb_func_end MOD53_021D8704 thumb_func_start MOD53_021D879C MOD53_021D879C: ; 0x021D879C push {r3, r4, r5, lr} ldr r2, _021D87D0 ; =0x00004380 add r5, r0, #0 ldrb r3, [r5, r2] add r4, r1, #0 mov r1, #0x38 bic r3, r1 strb r3, [r5, r2] ldr r1, _021D87D4 ; =0x000093BC mov r2, #0 strb r2, [r5, r1] mov r1, #4 bl MOD53_021D93E0 mov r0, #0x92 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl MOD53_021D840C add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D87D0: .word 0x00004380 _021D87D4: .word 0x000093BC thumb_func_end MOD53_021D879C thumb_func_start MOD53_021D87D8 MOD53_021D87D8: ; 0x021D87D8 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 mov r1, #6 mov r2, #1 bl MOD53_021D91C8 add r0, r5, #0 mov r1, #0xb bl MOD53_021D93E0 add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD53_021D87D8 thumb_func_start MOD53_021D87F8 MOD53_021D87F8: ; 0x021D87F8 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x30] add r4, r1, #0 bl MOD53_021D923C cmp r0, #0 beq _021D8818 mov r0, #0x31 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] add r0, r5, #0 mov r1, #0xc bl MOD53_021D93E0 _021D8818: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD53_021D87F8 thumb_func_start MOD53_021D8824 MOD53_021D8824: ; 0x021D8824 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0x31 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 _021D8854 mov r1, #0x10 str r1, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x27 str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r4, #3 _021D8854: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 add sp, #0xc pop {r4, r5, pc} thumb_func_end MOD53_021D8824 thumb_func_start MOD53_021D8860 MOD53_021D8860: ; 0x021D8860 push {r4, r5, lr} sub sp, #0x14 add r5, r0, #0 ldr r0, [r5, #0x30] add r4, r1, #0 bl MOD53_021D923C cmp r0, #0 beq _021D88A4 ldr r0, [r5] mov r1, #0x19 str r0, [sp] mov r0, #0 str r0, [sp, #4] mov r0, #0xb4 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] add r0, sp, #0 strb r1, [r0, #0x10] mov r1, #6 strb r1, [r0, #0x11] add r0, r5, #0 add r1, sp, #0 bl MOD53_021D941C cmp r0, #0 bne _021D889C bl ErrorHandling _021D889C: add r0, r5, #0 mov r1, #0xe bl MOD53_021D93E0 _021D88A4: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 add sp, #0x14 pop {r4, r5, pc} thumb_func_end MOD53_021D8860 thumb_func_start MOD53_021D88B0 MOD53_021D88B0: ; 0x021D88B0 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, _021D8960 ; =0x000093F0 add r6, r1, #0 ldr r0, [r5, r0] bl FUN_0201466C add r4, r0, #0 bl MOD53_021D9160 mov r1, #0xc6 lsl r1, r1, #2 ldr r1, [r5, r1] cmp r1, r0 bne _021D88D6 ldr r0, _021D8964 ; =0x000093B4 ldr r0, [r5, r0] cmp r0, #0 beq _021D88E0 _021D88D6: add r0, r5, #0 bl MOD53_021D8470 add r0, r6, #0 pop {r4, r5, r6, pc} _021D88E0: cmp r4, #1 beq _021D88EA cmp r4, #2 beq _021D8916 b _021D8954 _021D88EA: add r0, r5, #0 mov r1, #0xf bl MOD53_021D93E0 mov r1, #0 mov r0, #0x7f add r2, r1, #0 bl FUN_02030BC4 mov r0, #0 bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r5, #0xc] mov r1, #0 bl FUN_0200ABC0 add r0, r5, #0 mov r6, #2 bl MOD53_021D9440 b _021D8954 _021D8916: add r0, r5, #0 mov r1, #4 bl MOD53_021D93E0 mov r0, #0x92 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 bl MOD53_021D840C mov r0, #0xb6 lsl r0, r0, #2 add r0, r5, r0 mov r1, #1 bl FUN_0200D0E0 add r0, r5, #0 bl MOD53_021D9440 bl FUN_02031190 cmp r0, #0 bne _021D8954 bl FUN_02030F20 add r0, r0, #1 bl FUN_02032B6C ldr r0, _021D8968 ; =0x000093F4 mov r1, #1 str r1, [r5, r0] _021D8954: add r0, r5, #0 bl MOD53_021D8470 add r0, r6, #0 pop {r4, r5, r6, pc} nop _021D8960: .word 0x000093F0 _021D8964: .word 0x000093B4 _021D8968: .word 0x000093F4 thumb_func_end MOD53_021D88B0 thumb_func_start MOD53_021D896C MOD53_021D896C: ; 0x021D896C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0 add r4, r1, #0 bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r5, #0xc] mov r1, #0 bl FUN_0200ABC0 add r0, r5, #0 mov r1, #3 mov r2, #1 bl MOD53_021D91C8 add r0, r5, #0 mov r1, #0x10 bl MOD53_021D93E0 add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD53_021D896C thumb_func_start MOD53_021D89A0 MOD53_021D89A0: ; 0x021D89A0 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x30] add r4, r1, #0 bl MOD53_021D923C cmp r0, #0 beq _021D89BE add r0, r5, #0 mov r1, #0x11 bl MOD53_021D93E0 mov r0, #0xc8 bl FUN_02031588 _021D89BE: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD53_021D89A0 thumb_func_start MOD53_021D89C8 MOD53_021D89C8: ; 0x021D89C8 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 mov r0, #0xc8 add r5, r1, #0 bl FUN_020315D8 cmp r0, #0 bne _021D89E2 bl FUN_02030F20 cmp r0, #1 bne _021D89FA _021D89E2: mov r1, #0x10 str r1, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x27 str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r5, #3 _021D89FA: add r0, r4, #0 bl MOD53_021D8470 add r0, r5, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD53_021D89C8 thumb_func_start MOD53_021D8A08 MOD53_021D8A08: ; 0x021D8A08 add r0, r1, #0 bx lr thumb_func_end MOD53_021D8A08 thumb_func_start MOD53_021D8A0C MOD53_021D8A0C: ; 0x021D8A0C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 mov r1, #5 mov r2, #1 bl MOD53_021D91C8 add r0, r5, #0 mov r1, #0x14 bl MOD53_021D93E0 add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD53_021D8A0C thumb_func_start MOD53_021D8A2C MOD53_021D8A2C: ; 0x021D8A2C push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x30] add r4, r1, #0 bl MOD53_021D923C cmp r0, #0 beq _021D8A44 add r0, r5, #0 mov r1, #0xc bl MOD53_021D93E0 _021D8A44: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD53_021D8A2C thumb_func_start MOD53_021D8A50 MOD53_021D8A50: ; 0x021D8A50 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x30] add r4, r1, #0 cmp r0, #0xff beq _021D8A6E bl MOD53_021D923C cmp r0, #0 bne _021D8A6E ldr r0, [r5, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD7C _021D8A6E: add r0, r5, #0 mov r1, #2 mov r2, #1 bl MOD53_021D91C8 add r0, r5, #0 mov r1, #0x16 bl MOD53_021D93E0 ldr r0, _021D8AA8 ; =0x000005E4 bl FUN_020054C8 bl FUN_02031190 cmp r0, #0 bne _021D8A96 add r0, r5, #0 mov r1, #0 bl MOD53_021D926C _021D8A96: bl FUN_02030F20 ldr r1, _021D8AAC ; =0x000093B0 str r0, [r5, r1] add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D8AA8: .word 0x000005E4 _021D8AAC: .word 0x000093B0 thumb_func_end MOD53_021D8A50 thumb_func_start MOD53_021D8AB0 MOD53_021D8AB0: ; 0x021D8AB0 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D8AF4 ; =0x000093B0 add r4, r1, #0 ldr r0, [r5, r0] cmp r0, #0 beq _021D8ACE bl FUN_02030F20 ldr r1, _021D8AF4 ; =0x000093B0 ldr r2, [r5, r1] cmp r2, r0 beq _021D8ACE mov r0, #0 str r0, [r5, r1] _021D8ACE: ldr r0, [r5, #0x30] bl MOD53_021D923C cmp r0, #0 beq _021D8AE8 add r0, r5, #0 mov r1, #0x17 bl MOD53_021D93E0 mov r0, #0x31 mov r1, #0 lsl r0, r0, #4 str r1, [r5, r0] _021D8AE8: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D8AF4: .word 0x000093B0 thumb_func_end MOD53_021D8AB0 thumb_func_start MOD53_021D8AF8 MOD53_021D8AF8: ; 0x021D8AF8 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D8B5C ; =0x000093B0 add r4, r1, #0 ldr r0, [r5, r0] cmp r0, #0 beq _021D8B16 bl FUN_02030F20 ldr r1, _021D8B5C ; =0x000093B0 ldr r2, [r5, r1] cmp r2, r0 beq _021D8B16 mov r0, #0 str r0, [r5, r1] _021D8B16: mov r0, #0x31 lsl r0, r0, #4 ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] ldr r0, [r5, r0] cmp r0, #0x3c ble _021D8B50 ldr r0, _021D8B5C ; =0x000093B0 ldr r0, [r5, r0] cmp r0, #0 bne _021D8B50 add r0, r5, #0 bl MOD53_021D925C add r0, r5, #0 mov r1, #4 bl MOD53_021D93E0 bl FUN_02031190 cmp r0, #0 bne _021D8B50 ldr r0, _021D8B60 ; =0x000093F4 mov r1, #1 str r1, [r5, r0] add r0, r5, #0 bl MOD53_021D926C _021D8B50: add r0, r5, #0 bl MOD53_021D8470 add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D8B5C: .word 0x000093B0 _021D8B60: .word 0x000093F4 thumb_func_end MOD53_021D8AF8 thumb_func_start MOD53_021D8B64 MOD53_021D8B64: ; 0x021D8B64 push {r4, r5, r6, lr} add r5, r1, #0 add r4, r0, #0 add r6, r2, #0 cmp r5, #0xf bgt _021D8B96 bge _021D8C42 cmp r5, #9 bhi _021D8C4A add r1, r5, r5 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D8B82: ; jump table .short _021D8C40 - _021D8B82 - 2 ; case 0 .short _021D8B9C - _021D8B82 - 2 ; case 1 .short _021D8C40 - _021D8B82 - 2 ; case 2 .short _021D8BDA - _021D8B82 - 2 ; case 3 .short _021D8C40 - _021D8B82 - 2 ; case 4 .short _021D8C40 - _021D8B82 - 2 ; case 5 .short _021D8C40 - _021D8B82 - 2 ; case 6 .short _021D8C40 - _021D8B82 - 2 ; case 7 .short _021D8C42 - _021D8B82 - 2 ; case 8 .short _021D8C42 - _021D8B82 - 2 ; case 9 _021D8B96: cmp r5, #0x15 beq _021D8BE0 pop {r4, r5, r6, pc} _021D8B9C: mov r0, #0xc1 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #6 beq _021D8BAA cmp r0, #0xe bne _021D8BB0 _021D8BAA: add r0, r4, #0 bl MOD53_021D9440 _021D8BB0: mov r0, #0x92 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl MOD53_021D840C add r0, r6, #0 bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r4, #0xc] mov r1, #0 bl FUN_0200ABC0 mov r0, #0x32 lsl r0, r0, #4 str r6, [r4, r0] ldr r0, _021D8C4C ; =0x000093B4 mov r1, #0 str r1, [r4, r0] b _021D8C42 _021D8BDA: bl MOD53_021D925C b _021D8C42 _021D8BE0: ldr r0, _021D8C50 ; =0x000093BC ldrb r0, [r4, r0] cmp r0, #1 beq _021D8C4A add r0, r6, #0 bl FUN_0202DFA4 add r2, r0, #0 ldr r0, [r4, #0xc] mov r1, #0 bl FUN_0200ABC0 bl FUN_02031190 cmp r6, r0 beq _021D8C4A bl FUN_02031190 cmp r0, #0 bne _021D8C14 ldr r1, _021D8C4C ; =0x000093B4 ldr r0, _021D8C54 ; =0x0000FFFF ldr r2, [r4, r1] eor r0, r6 and r0, r2 str r0, [r4, r1] _021D8C14: mov r0, #0xc1 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #6 beq _021D8C22 cmp r0, #0xe bne _021D8C32 _021D8C22: add r0, r4, #0 bl MOD53_021D9440 mov r0, #0xb2 lsl r0, r0, #2 add r0, r4, r0 bl FUN_020191D0 _021D8C32: mov r0, #0x92 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl MOD53_021D840C b _021D8C42 _021D8C40: pop {r4, r5, r6, pc} _021D8C42: add r0, r4, #0 add r1, r5, #0 bl MOD53_021D93E0 _021D8C4A: pop {r4, r5, r6, pc} .align 2, 0 _021D8C4C: .word 0x000093B4 _021D8C50: .word 0x000093BC _021D8C54: .word 0x0000FFFF thumb_func_end MOD53_021D8B64 thumb_func_start MOD53_021D8C58 MOD53_021D8C58: ; 0x021D8C58 push {r4, r5, r6, r7, lr} sub sp, #0x1c ldr r4, [sp, #0x38] mov ip, r1 add r6, r2, #0 add r7, r3, #0 str r0, [sp, #0x18] ldr r3, [sp, #0x3c] ldr r2, [sp, #0x40] ldr r1, [sp, #0x44] cmp r4, #0 bge _021D8C84 neg r0, r4 cmp r0, r2 ble _021D8C78 add r0, r2, #0 _021D8C78: ldr r5, [sp, #0x30] mov r4, #0 sub r5, r5, r0 add r6, r6, r0 str r5, [sp, #0x30] sub r2, r2, r0 _021D8C84: cmp r3, #0 bge _021D8C9C neg r0, r3 cmp r0, r1 ble _021D8C90 add r0, r1, #0 _021D8C90: ldr r5, [sp, #0x34] mov r3, #0 sub r5, r5, r0 add r7, r7, r0 str r5, [sp, #0x34] sub r1, r1, r0 _021D8C9C: ldr r0, [sp, #0x30] lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp] ldr r0, [sp, #0x34] lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #4] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #8] lsl r0, r3, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] lsl r0, r2, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] lsl r2, r6, #0x10 lsl r3, r7, #0x10 ldr r0, [sp, #0x18] mov r1, ip lsr r2, r2, #0x10 lsr r3, r3, #0x10 bl FUN_02019658 add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_end MOD53_021D8C58 thumb_func_start MOD53_021D8CD8 MOD53_021D8CD8: ; 0x021D8CD8 push {r4, r5, r6, r7, lr} sub sp, #0x3c str r0, [sp, #0x18] ldr r0, [sp, #0x50] str r1, [sp, #0x1c] str r0, [sp, #0x50] ldr r0, [sp, #0x54] str r2, [sp, #0x20] str r0, [sp, #0x54] ldr r0, [sp, #0x50] str r3, [sp, #0x24] ldr r4, [r0] ldr r0, [sp, #0x54] ldr r5, [r0] add r0, r2, #0 str r0, [sp, #0x38] add r0, r3, #0 str r0, [sp, #0x30] ldr r0, [sp, #0x58] cmp r0, #0 bne _021D8D18 ldr r0, [sp, #0x5c] cmp r0, #0 bne _021D8D18 ldr r0, [sp, #0x50] add r1, r2, #0 str r1, [r0] ldr r0, [sp, #0x54] add r1, r3, #0 str r1, [r0] add sp, #0x3c pop {r4, r5, r6, r7, pc} _021D8D18: ldr r0, [sp, #0x20] sub r0, r0, r4 str r0, [sp, #0x34] bpl _021D8D24 neg r0, r0 str r0, [sp, #0x34] _021D8D24: ldr r0, [sp, #0x24] sub r7, r0, r5 bpl _021D8D2C neg r7, r7 _021D8D2C: ldr r0, [sp, #0x34] cmp r0, r7 ble _021D8DBA ldr r0, [sp, #0x20] cmp r4, r0 ble _021D8D52 ldr r0, [sp, #0x24] cmp r5, r0 ble _021D8D44 mov r0, #1 str r0, [sp, #0x2c] b _021D8D4A _021D8D44: mov r0, #0 mvn r0, r0 str r0, [sp, #0x2c] _021D8D4A: str r4, [sp, #0x38] ldr r4, [sp, #0x20] ldr r5, [sp, #0x24] b _021D8D64 _021D8D52: ldr r0, [sp, #0x24] cmp r5, r0 bge _021D8D5E mov r0, #1 str r0, [sp, #0x2c] b _021D8D64 _021D8D5E: mov r0, #0 mvn r0, r0 str r0, [sp, #0x2c] _021D8D64: mov r0, #6 str r0, [sp] str r0, [sp, #4] str r4, [sp, #8] str r5, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] mov r2, #0 ldr r0, [sp, #0x18] ldr r1, [sp, #0x1c] add r3, r2, #0 bl MOD53_021D8C58 ldr r0, [sp, #0x34] add r4, r4, #1 asr r6, r0, #1 ldr r0, [sp, #0x38] cmp r4, r0 bgt _021D8E3E _021D8D8A: sub r6, r6, r7 bpl _021D8D96 ldr r0, [sp, #0x34] add r6, r6, r0 ldr r0, [sp, #0x2c] add r5, r5, r0 _021D8D96: mov r0, #6 str r0, [sp] str r0, [sp, #4] str r4, [sp, #8] str r5, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] mov r2, #0 ldr r0, [sp, #0x18] ldr r1, [sp, #0x1c] add r3, r2, #0 bl MOD53_021D8C58 ldr r0, [sp, #0x38] add r4, r4, #1 cmp r4, r0 ble _021D8D8A b _021D8E3E _021D8DBA: ldr r0, [sp, #0x24] cmp r5, r0 ble _021D8DDA ldr r0, [sp, #0x20] cmp r4, r0 ble _021D8DCC mov r0, #1 str r0, [sp, #0x28] b _021D8DD2 _021D8DCC: mov r0, #0 mvn r0, r0 str r0, [sp, #0x28] _021D8DD2: str r5, [sp, #0x30] ldr r5, [sp, #0x24] ldr r4, [sp, #0x20] b _021D8DEC _021D8DDA: ldr r0, [sp, #0x20] cmp r4, r0 bge _021D8DE6 mov r0, #1 str r0, [sp, #0x28] b _021D8DEC _021D8DE6: mov r0, #0 mvn r0, r0 str r0, [sp, #0x28] _021D8DEC: mov r0, #6 str r0, [sp] str r0, [sp, #4] str r4, [sp, #8] str r5, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] mov r2, #0 ldr r0, [sp, #0x18] ldr r1, [sp, #0x1c] add r3, r2, #0 bl MOD53_021D8C58 ldr r0, [sp, #0x30] add r5, r5, #1 asr r6, r7, #1 cmp r5, r0 bgt _021D8E3E _021D8E10: ldr r0, [sp, #0x34] sub r6, r6, r0 bpl _021D8E1C ldr r0, [sp, #0x28] add r6, r6, r7 add r4, r4, r0 _021D8E1C: mov r0, #6 str r0, [sp] str r0, [sp, #4] str r4, [sp, #8] str r5, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] mov r2, #0 ldr r0, [sp, #0x18] ldr r1, [sp, #0x1c] add r3, r2, #0 bl MOD53_021D8C58 ldr r0, [sp, #0x30] add r5, r5, #1 cmp r5, r0 ble _021D8E10 _021D8E3E: ldr r1, [sp, #0x20] ldr r0, [sp, #0x50] str r1, [r0] ldr r1, [sp, #0x24] ldr r0, [sp, #0x54] str r1, [r0] add sp, #0x3c pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD53_021D8CD8 thumb_func_start MOD53_021D8E50 MOD53_021D8E50: ; 0x021D8E50 mov r2, #0 _021D8E52: ldrb r3, [r0, #8] lsl r3, r3, #0x1a lsr r3, r3, #0x1d strh r3, [r1, #2] ldrb r3, [r0, #8] lsl r3, r3, #0x1a lsr r3, r3, #0x1d beq _021D8E76 add r3, r0, r3 sub r3, r3, #1 ldrb r3, [r3] strb r3, [r1] ldrb r3, [r0, #8] lsl r3, r3, #0x1a lsr r3, r3, #0x1d add r3, r0, r3 ldrb r3, [r3, #3] strb r3, [r1, #1] _021D8E76: add r2, r2, #1 add r0, #0xa add r1, r1, #4 cmp r2, #5 blt _021D8E52 bx lr .align 2, 0 thumb_func_end MOD53_021D8E50 thumb_func_start MOD53_021D8E84 MOD53_021D8E84: ; 0x021D8E84 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 str r0, [sp, #0x10] mov r0, #0 str r1, [sp, #0x14] str r2, [sp, #0x18] str r3, [sp, #0x1c] str r0, [sp, #0x20] str r0, [sp, #0x24] add r5, r1, #0 add r7, r2, #0 _021D8E9A: ldrb r0, [r5, #8] lsl r0, r0, #0x1a lsr r0, r0, #0x1d beq _021D8F0A ldrh r0, [r7, #2] cmp r0, #0 beq _021D8EB4 ldrb r0, [r7] sub r0, #9 str r0, [sp, #0x2c] ldrb r0, [r7, #1] sub r0, #0x11 str r0, [sp, #0x28] _021D8EB4: ldrb r0, [r5, #8] mov r4, #0 lsl r0, r0, #0x1a lsr r1, r0, #0x1d cmp r1, #0 ble _021D8F0A mov r0, #1 str r0, [sp, #0x20] cmp r1, #0 ble _021D8F0A _021D8EC8: add r0, sp, #0x2c str r0, [sp] add r0, sp, #0x28 str r0, [sp, #4] str r4, [sp, #8] ldrh r0, [r7, #2] mov r6, #0xc0 add r3, r5, r4 str r0, [sp, #0xc] ldrb r1, [r5, #8] ldrb r3, [r3, #4] ldr r0, [sp, #0x10] lsl r2, r1, #0x18 lsr r2, r2, #0x1e mul r6, r2 ldr r2, _021D8F4C ; =0x021D9648 lsl r1, r1, #0x1d add r2, r2, r6 lsr r6, r1, #0x1d mov r1, #0x18 mul r1, r6 add r1, r2, r1 ldrb r2, [r5, r4] sub r3, #0x11 sub r2, #9 bl MOD53_021D8CD8 ldrb r0, [r5, #8] add r4, r4, #1 lsl r0, r0, #0x1a lsr r0, r0, #0x1d cmp r4, r0 blt _021D8EC8 _021D8F0A: ldr r0, [sp, #0x24] add r5, #0xa add r0, r0, #1 add r7, r7, #4 str r0, [sp, #0x24] cmp r0, #5 blt _021D8E9A ldr r0, [sp, #0x20] cmp r0, #0 beq _021D8F2A ldr r0, [sp, #0x1c] cmp r0, #0 beq _021D8F2A ldr r0, [sp, #0x10] bl FUN_020191D0 _021D8F2A: ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] bl MOD53_021D8E50 mov r3, #0 mov r1, #0x38 _021D8F36: ldr r0, [sp, #0x14] add r3, r3, #1 ldrb r2, [r0, #8] bic r2, r1 strb r2, [r0, #8] add r0, #0xa str r0, [sp, #0x14] cmp r3, #5 blt _021D8F36 add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8F4C: .word 0x021D9648 thumb_func_end MOD53_021D8E84 thumb_func_start MOD53_021D8F50 MOD53_021D8F50: ; 0x021D8F50 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, _021D8FB4 ; =0x00004382 mov r7, #0x76 mov r6, #0 add r4, r5, r0 lsl r7, r7, #2 _021D8F5E: bl FUN_02031190 cmp r6, r0 beq _021D8FA6 ldrb r0, [r4, #8] lsl r0, r0, #0x1a lsr r0, r0, #0x1d beq _021D8F9A add r0, r6, #0 bl FUN_0202DFA4 cmp r0, #0 beq _021D8F9A mov r0, #0x76 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #1 bl FUN_020200A0 ldrb r0, [r4, #8] lsl r0, r0, #0x1a lsr r0, r0, #0x1d add r2, r4, r0 sub r1, r2, #1 ldrb r1, [r1] ldrb r2, [r2, #3] ldr r0, [r5, r7] bl MOD53_021D8140 b _021D8FA6 _021D8F9A: mov r0, #0x76 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0 bl FUN_020200A0 _021D8FA6: add r6, r6, #1 add r4, #0xa add r5, r5, #4 cmp r6, #5 blt _021D8F5E pop {r3, r4, r5, r6, r7, pc} nop _021D8FB4: .word 0x00004382 thumb_func_end MOD53_021D8F50 thumb_func_start MOD53_021D8FB8 MOD53_021D8FB8: ; 0x021D8FB8 push {r3, lr} ldrh r1, [r0] add r1, #0x14 strh r1, [r0] ldrh r2, [r0] mov r1, #0x5a lsl r1, r1, #2 cmp r2, r1 bls _021D8FCE mov r1, #0 strh r1, [r0] _021D8FCE: ldrh r0, [r0] bl FUN_0201B970 mov r1, #0xa mul r1, r0 asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc add r0, #0xf lsl r1, r0, #5 mov r0, #0x1d orr r1, r0 add r0, sp, #0 strh r1, [r0] add r0, sp, #0 mov r1, #0x18 mov r2, #2 bl GX_LoadOBJPltt pop {r3, pc} thumb_func_end MOD53_021D8FB8 thumb_func_start MOD53_021D8FF8 MOD53_021D8FF8: ; 0x021D8FF8 push {r3, r4, r5, lr} mov r5, #0 add r4, r5, #0 _021D8FFE: add r0, r4, #0 bl FUN_0202DFA4 cmp r0, #0 beq _021D900A add r5, r5, #1 _021D900A: add r4, r4, #1 cmp r4, #5 blt _021D8FFE add r0, r5, #0 pop {r3, r4, r5, pc} thumb_func_end MOD53_021D8FF8 thumb_func_start MOD53_021D9014 MOD53_021D9014: ; 0x021D9014 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r7, r3, #0 add r5, r0, #0 str r2, [sp, #0x10] bl FUN_02031190 str r0, [sp, #0x14] add r0, r7, #0 bl MOD53_021D9184 cmp r0, #0 beq _021D90EE mov r0, #0 str r0, [sp, #0x18] add r6, r7, #0 add r4, r7, #0 _021D9036: mov r0, #0xcd lsl r0, r0, #2 ldr r0, [r6, r0] cmp r0, #0 bne _021D904E mov r0, #0x21 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl FUN_020200A0 b _021D905A _021D904E: mov r0, #0x21 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl FUN_020200A0 _021D905A: ldr r0, [sp, #0x18] add r6, #8 add r0, r0, #1 add r4, r4, #4 str r0, [sp, #0x18] cmp r0, #5 blt _021D9036 mov r6, #0 add r4, r5, #0 _021D906C: mov r0, #0x50 mov r1, #0 str r0, [sp] mov r0, #0x10 str r0, [sp, #4] add r0, r4, #0 add r2, r1, #0 add r3, r1, #0 bl FUN_020196F4 add r6, r6, #1 add r4, #0x10 cmp r6, #5 blt _021D906C mov r6, #0 add r4, r7, #0 _021D908C: mov r0, #0xcd lsl r0, r0, #2 ldr r0, [r7, r0] cmp r0, #0 beq _021D90DC ldr r1, [r4, #0x14] bl FUN_02023990 ldr r0, [sp, #0x14] cmp r0, r6 bne _021D90C0 mov r0, #0 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D90F4 ; =0x0003040F mov r1, #1 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r2, [r4, #0x14] add r0, r5, #0 mov r3, #0 bl FUN_0201BDE0 b _021D90DC _021D90C0: mov r0, #0 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0x10] mov r1, #1 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r2, [r4, #0x14] add r0, r5, #0 mov r3, #0 bl FUN_0201BDE0 _021D90DC: add r0, r5, #0 bl FUN_020191D0 add r6, r6, #1 add r7, #8 add r4, r4, #4 add r5, #0x10 cmp r6, #5 blt _021D908C _021D90EE: add sp, #0x1c pop {r4, r5, r6, r7, pc} nop _021D90F4: .word 0x0003040F thumb_func_end MOD53_021D9014 thumb_func_start MOD53_021D90F8 MOD53_021D90F8: ; 0x021D90F8 push {r4, lr} add r4, r0, #0 bl FUN_02031190 cmp r0, #0 bne _021D9138 bl FUN_02031370 cmp r0, #0 beq _021D914C ldr r1, _021D9150 ; =0x000093F4 ldr r0, _021D9154 ; =0x00004381 ldr r2, [r4, r1] sub r1, #0x37 strb r2, [r4, r0] sub r0, #9 add r2, r4, r1 add r3, r4, r0 mov r1, #0xa _021D911E: ldrb r0, [r3] add r3, r3, #1 strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 bne _021D911E ldr r1, _021D9158 ; =0x000093BD mov r0, #0x78 add r1, r4, r1 mov r2, #0x32 bl FUN_02030BC4 pop {r4, pc} _021D9138: bl FUN_02031388 cmp r0, #0 beq _021D914C ldr r1, _021D915C ; =0x00004378 mov r0, #0x77 add r1, r4, r1 mov r2, #0xa bl FUN_02030ADC _021D914C: pop {r4, pc} nop _021D9150: .word 0x000093F4 _021D9154: .word 0x00004381 _021D9158: .word 0x000093BD _021D915C: .word 0x00004378 thumb_func_end MOD53_021D90F8 thumb_func_start MOD53_021D9160 MOD53_021D9160: ; 0x021D9160 push {r3, r4, r5, lr} mov r5, #0 add r4, r5, #0 _021D9166: add r0, r4, #0 bl FUN_0202DFA4 cmp r0, #0 beq _021D9172 add r5, r5, #1 _021D9172: add r4, r4, #1 cmp r4, #5 blt _021D9166 add r0, r5, #0 pop {r3, r4, r5, pc} thumb_func_end MOD53_021D9160 thumb_func_start MOD53_021D917C MOD53_021D917C: ; 0x021D917C ldr r3, _021D9180 ; =MOD53_021D9160 bx r3 .align 2, 0 _021D9180: .word MOD53_021D9160 thumb_func_end MOD53_021D917C thumb_func_start MOD53_021D9184 MOD53_021D9184: ; 0x021D9184 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r7, #0 add r6, r7, #0 add r4, r5, #0 _021D918E: mov r0, #0xcd lsl r0, r0, #2 ldr r1, [r4, r0] add r0, r0, #4 str r1, [r4, r0] add r0, r6, #0 bl FUN_0202DFA4 mov r1, #0xcd lsl r1, r1, #2 str r0, [r4, r1] add r6, r6, #1 add r4, #8 cmp r6, #5 blt _021D918E mov r6, #0 mov r2, #1 add r0, r1, #4 _021D91B2: ldr r4, [r5, r0] ldr r3, [r5, r1] cmp r4, r3 beq _021D91BC add r7, r2, #0 _021D91BC: add r6, r6, #1 add r5, #8 cmp r6, #5 blt _021D91B2 add r0, r7, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD53_021D9184 thumb_func_start MOD53_021D91C8 MOD53_021D91C8: ; 0x021D91C8 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 add r7, r1, #0 mov r0, #0x50 mov r1, #0x27 add r4, r2, #0 bl FUN_020219F4 add r6, r0, #0 ldr r0, [r5, #0x10] add r1, r7, #0 add r2, r6, #0 bl FUN_0200A8E0 ldr r0, [r5, #0xc] ldr r1, [r5, #0x2c] add r2, r6, #0 bl FUN_0200B7B8 add r0, r6, #0 bl FUN_02021A20 mov r0, #0xb6 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0xf bl FUN_02019620 mov r0, #0xb6 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 mov r2, #1 mov r3, #0xa bl FUN_0200D0BC cmp r4, #0 bne _021D9218 mov r4, #0 _021D9218: mov r3, #0 str r3, [sp] str r4, [sp, #4] str r3, [sp, #8] mov r0, #0xb6 lsl r0, r0, #2 ldr r2, [r5, #0x2c] add r0, r5, r0 mov r1, #1 bl FUN_0201BD84 str r0, [r5, #0x30] cmp r4, #0 bne _021D9238 mov r0, #0xff str r0, [r5, #0x30] _021D9238: add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_end MOD53_021D91C8 thumb_func_start MOD53_021D923C MOD53_021D923C: ; 0x021D923C push {r3, lr} cmp r0, #0xff bne _021D9246 mov r0, #1 pop {r3, pc} _021D9246: lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021D9256 mov r0, #1 pop {r3, pc} _021D9256: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD53_021D923C thumb_func_start MOD53_021D925C MOD53_021D925C: ; 0x021D925C mov r1, #0xb6 lsl r1, r1, #2 add r0, r0, r1 ldr r3, _021D9268 ; =FUN_0200D0E0 mov r1, #0 bx r3 .align 2, 0 _021D9268: .word FUN_0200D0E0 thumb_func_end MOD53_021D925C thumb_func_start MOD53_021D926C MOD53_021D926C: ; 0x021D926C push {r4, lr} add r4, r1, #0 bl FUN_02031190 cmp r0, #0 bne _021D9288 bl FUN_02030F20 add r0, r4, r0 cmp r0, #5 ble _021D9284 mov r0, #5 _021D9284: bl FUN_02032B6C _021D9288: pop {r4, pc} .align 2, 0 thumb_func_end MOD53_021D926C thumb_func_start MOD53_021D928C MOD53_021D928C: ; 0x021D928C push {r3, r4, r5, lr} add r4, r0, #0 bl MOD53_021D9160 add r5, r0, #0 cmp r5, #5 bhi _021D932A add r0, r5, r5 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D92A6: ; jump table .short _021D932A - _021D92A6 - 2 ; case 0 .short _021D92B2 - _021D92A6 - 2 ; case 1 .short _021D92F8 - _021D92A6 - 2 ; case 2 .short _021D92F8 - _021D92A6 - 2 ; case 3 .short _021D92F8 - _021D92A6 - 2 ; case 4 .short _021D9324 - _021D92A6 - 2 ; case 5 _021D92B2: mov r0, #0xc1 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0xe bgt _021D932A bl FUN_0202CB8C cmp r0, #1 beq _021D92CC mov r0, #0x25 mov r1, #1 lsl r0, r0, #0xa str r1, [r4, r0] _021D92CC: mov r0, #0xc2 mov r1, #0x13 lsl r0, r0, #2 str r1, [r4, r0] mov r0, #1 bl FUN_02032B6C ldr r0, _021D93CC ; =0x000093F8 ldr r0, [r4, r0] cmp r0, #0 beq _021D92F4 add r0, r4, #0 bl MOD53_021D9440 mov r0, #0x9a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0x15 bl FUN_02020130 _021D92F4: mov r0, #2 pop {r3, r4, r5, pc} _021D92F8: mov r0, #1 bl FUN_02052B74 mov r0, #0xc5 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r5, r0 bge _021D932A ldr r0, _021D93D0 ; =0x000093F4 ldr r0, [r4, r0] cmp r0, #2 bne _021D931A add r0, r4, #0 mov r1, #0 bl MOD53_021D926C b _021D932A _021D931A: add r0, r4, #0 mov r1, #1 bl MOD53_021D926C b _021D932A _021D9324: mov r0, #8 bl FUN_02052B74 _021D932A: mov r0, #0xc5 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r5, r0 bge _021D9374 bl FUN_02030F20 mov r1, #0xc6 lsl r1, r1, #2 str r0, [r4, r1] bl FUN_0202CB8C mov r1, #0xc7 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, _021D93D4 ; =0x00009404 ldr r2, [r4, r0] cmp r2, #0 beq _021D9374 add r0, r0, #4 ldr r1, [r4, r1] ldr r0, [r4, r0] tst r0, r1 bne _021D9374 add r0, r4, #0 mov r1, #1 bl MOD53_021D926C ldr r1, _021D93D0 ; =0x000093F4 mov r0, #1 str r0, [r4, r1] add r0, r1, #0 mov r2, #0 add r0, #0x10 str r2, [r4, r0] add r1, #0x14 str r2, [r4, r1] _021D9374: bl MOD53_021D9160 mov r1, #0xc5 lsl r1, r1, #2 str r0, [r4, r1] bl FUN_02030F20 mov r1, #0xc6 lsl r1, r1, #2 ldr r1, [r4, r1] cmp r1, r0 bge _021D93C8 ldr r0, _021D93D0 ; =0x000093F4 mov r1, #2 str r1, [r4, r0] mov r1, #1 add r0, #0x10 str r1, [r4, r0] bl FUN_0202CB8C mov r1, #0xc7 lsl r1, r1, #2 ldr r1, [r4, r1] eor r0, r1 ldr r1, _021D93D8 ; =0x00009408 str r0, [r4, r1] ldr r1, [r4, r1] mov r0, #0 sub r1, r1, #2 cmp r1, #0xe bhi _021D93C0 mov r2, #1 add r3, r2, #0 lsl r3, r1 ldr r1, _021D93DC ; =0x00004045 tst r1, r3 beq _021D93C0 add r0, r2, #0 _021D93C0: cmp r0, #0 bne _021D93C8 bl ErrorHandling _021D93C8: mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 _021D93CC: .word 0x000093F8 _021D93D0: .word 0x000093F4 _021D93D4: .word 0x00009404 _021D93D8: .word 0x00009408 _021D93DC: .word 0x00004045 thumb_func_end MOD53_021D928C thumb_func_start MOD53_021D93E0 MOD53_021D93E0: ; 0x021D93E0 mov r2, #0xc2 lsl r2, r2, #2 str r1, [r0, r2] bx lr thumb_func_end MOD53_021D93E0 thumb_func_start MOD53_021D93E8 MOD53_021D93E8: ; 0x021D93E8 push {r3, r4} mov r3, #0xc2 lsl r3, r3, #2 sub r4, r3, #4 ldr r2, [r0, r3] ldr r4, [r0, r4] cmp r4, r2 beq _021D9412 cmp r1, #2 beq _021D9404 sub r1, r3, #4 str r2, [r0, r1] pop {r3, r4} bx lr _021D9404: ldr r1, _021D9418 ; =0x021D98A4 lsl r4, r2, #3 ldr r1, [r1, r4] cmp r1, #0 beq _021D9412 sub r1, r3, #4 str r2, [r0, r1] _021D9412: pop {r3, r4} bx lr nop _021D9418: .word 0x021D98A4 thumb_func_end MOD53_021D93E8 thumb_func_start MOD53_021D941C MOD53_021D941C: ; 0x021D941C push {r4, lr} add r4, r0, #0 ldr r0, _021D943C ; =0x000093F8 ldr r2, [r4, r0] cmp r2, #0 bne _021D9438 sub r0, #8 ldr r0, [r4, r0] bl FUN_020145C8 ldr r1, _021D943C ; =0x000093F8 mov r0, #1 str r0, [r4, r1] pop {r4, pc} _021D9438: mov r0, #0 pop {r4, pc} .align 2, 0 _021D943C: .word 0x000093F8 thumb_func_end MOD53_021D941C thumb_func_start MOD53_021D9440 MOD53_021D9440: ; 0x021D9440 push {r4, lr} add r4, r0, #0 ldr r0, _021D945C ; =0x000093F8 ldr r1, [r4, r0] cmp r1, #0 beq _021D945A sub r0, #8 ldr r0, [r4, r0] bl FUN_020146C4 ldr r0, _021D945C ; =0x000093F8 mov r1, #0 str r1, [r4, r0] _021D945A: pop {r4, pc} .align 2, 0 _021D945C: .word 0x000093F8 thumb_func_end MOD53_021D9440 thumb_func_start MOD53_021D9460 MOD53_021D9460: ; 0x021D9460 push {r3, lr} ldr r0, _021D9478 ; =0x021D94E8 bl FUN_02020988 mov r1, #0 mvn r1, r1 cmp r0, r1 beq _021D9474 mov r0, #1 pop {r3, pc} _021D9474: mov r0, #0 pop {r3, pc} .align 2, 0 _021D9478: .word 0x021D94E8 thumb_func_end MOD53_021D9460 thumb_func_start MOD53_021D947C MOD53_021D947C: ; 0x021D947C push {r4, r5} ldrh r4, [r1] cmp r4, #0 beq _021D949C ldrh r4, [r1, #2] strb r4, [r0] ldrh r4, [r1, #4] strb r4, [r0, #4] ldrh r4, [r1] sub r4, r4, #1 lsl r4, r4, #3 add r5, r1, r4 ldrh r4, [r5, #2] strb r4, [r0, #1] ldrh r4, [r5, #4] strb r4, [r0, #5] _021D949C: ldrh r5, [r1] cmp r5, #2 blo _021D94AC ldrb r4, [r0, #8] mov r1, #0x38 bic r4, r1 mov r1, #0x10 b _021D94BA _021D94AC: ldrb r1, [r0, #8] mov r4, #0x38 bic r1, r4 lsl r4, r5, #0x18 lsr r4, r4, #0x18 lsl r4, r4, #0x1d lsr r4, r4, #0x1a _021D94BA: orr r1, r4 strb r1, [r0, #8] ldrb r1, [r0, #8] mov r4, #7 lsl r2, r2, #0x18 bic r1, r4 lsr r4, r2, #0x18 mov r2, #7 and r2, r4 orr r1, r2 strb r1, [r0, #8] ldrb r2, [r0, #8] mov r1, #0xc0 bic r2, r1 lsl r1, r3, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1e lsr r1, r1, #0x18 orr r1, r2 strb r1, [r0, #8] pop {r4, r5} bx lr .align 2, 0 thumb_func_end MOD53_021D947C .section .rodata ; 0x021D94E8 .incbin "baserom.nds", 0x29BE08, 0x3A0 .section .data ; 0x021D98A0 .incbin "baserom.nds", 0x29C1C0, 0xC0