.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD15_021D74E0 MOD15_021D74E0: ; 0x021D74E0 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4] add r5, r0, #0 cmp r1, #0 beq _021D74F2 cmp r1, #1 beq _021D752A b _021D7552 _021D74F2: mov r1, #0 mov r0, #0x3e add r2, r1, #0 bl FUN_0200433C mov r2, #2 mov r0, #3 mov r1, #0x22 lsl r2, r2, #0xe bl FUN_0201681C mov r2, #0xa mov r0, #3 mov r1, #0x23 lsl r2, r2, #0xe bl FUN_0201681C add r0, r5, #0 bl MOD15_021D7628 ldr r0, [r0, #0x14] mov r1, #0 bl MOD15_021D8900 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D7552 _021D752A: bl FUN_02006278 add r4, r0, #0 ldr r0, [r4, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D7552 ldr r0, [r4, #4] cmp r0, #2 bne _021D7548 ldr r0, [r4, #0x14] bl MOD15_021D9538 b _021D754A _021D7548: mov r0, #0 _021D754A: add r4, #0x64 strb r0, [r4] mov r0, #1 pop {r3, r4, r5, pc} _021D7552: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D7558 MOD15_021D7558: ; 0x021D7558 push {r4, lr} bl FUN_02006278 add r4, r0, #0 ldr r0, _021D7594 ; =0x021C48B8 ldr r1, [r0, #0x48] strh r1, [r4, #0x30] ldr r1, [r0, #0x44] strh r1, [r4, #0x32] ldr r0, [r0, #0x4c] strh r0, [r4, #0x34] ldr r0, [r4, #0x40] bl FUN_02022144 ldr r2, [r4, #0x2c] cmp r2, #0 beq _021D7586 add r0, r4, #0 add r4, #0x28 add r1, r4, #0 blx r2 mov r0, #0 pop {r4, pc} _021D7586: add r1, r4, #0 ldr r2, [r4, #0x20] add r0, r4, #0 add r1, #0x1c blx r2 pop {r4, pc} nop _021D7594: .word 0x021C48B8 thumb_func_start MOD15_021D7598 MOD15_021D7598: ; 0x021D7598 push {r4, lr} add r4, r2, #0 cmp r1, #3 bhi _021D7600 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D75AC: ; jump table .short _021D75B4 - _021D75AC - 2 ; case 0 .short _021D75D4 - _021D75AC - 2 ; case 1 .short _021D75F6 - _021D75AC - 2 ; case 2 .short _021D75D4 - _021D75AC - 2 ; case 3 _021D75B4: str r0, [r4, #0x38] cmp r0, #2 beq _021D75C0 cmp r0, #3 beq _021D75CA pop {r4, pc} _021D75C0: ldr r0, [r4, #0x14] mov r1, #0x19 bl MOD15_021D8900 pop {r4, pc} _021D75CA: ldr r0, [r4, #0x14] mov r1, #0x1a bl MOD15_021D8900 pop {r4, pc} _021D75D4: cmp r0, #2 beq _021D75DE cmp r0, #3 beq _021D75E8 b _021D75F0 _021D75DE: ldr r0, [r4, #0x14] mov r1, #0x1b bl MOD15_021D8900 b _021D75F0 _021D75E8: ldr r0, [r4, #0x14] mov r1, #0x1c bl MOD15_021D8900 _021D75F0: mov r0, #4 str r0, [r4, #0x38] pop {r4, pc} _021D75F6: sub r1, r0, #2 cmp r1, #1 bhi _021D7604 str r0, [r4, #0x38] pop {r4, pc} _021D7600: mov r0, #4 str r0, [r4, #0x38] _021D7604: pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021D7608 MOD15_021D7608: ; 0x021D7608 push {r4, lr} add r4, r0, #0 bl FUN_02006278 add r1, r4, #0 bl MOD15_021D7774 mov r0, #0x22 bl FUN_020168D0 mov r0, #0x23 bl FUN_020168D0 mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021D7628 MOD15_021D7628: ; 0x021D7628 push {r3, r4, r5, lr} add r5, r0, #0 mov r1, #0x68 mov r2, #0x22 bl FUN_02006268 add r4, r0, #0 add r0, r5, #0 bl FUN_0200628C str r0, [r4] bl FUN_0208540C str r0, [r4, #4] add r1, r4, #0 add r2, r4, #0 ldr r0, [r4] add r1, #0x10 add r2, #8 bl FUN_02085428 ldr r0, [r4, #4] cmp r0, #2 bne _021D7664 add r0, r4, #0 add r1, r4, #0 add r0, #0x60 add r1, #8 bl MOD15_021D76C4 _021D7664: ldr r1, [r4] mov r0, #0x22 bl FUN_02088F0C str r0, [r4, #0x18] ldr r1, [r4, #0x18] add r0, r4, #0 bl MOD15_021D87F8 str r0, [r4, #0x14] mov r0, #0x22 str r0, [sp] ldr r0, _021D76B4 ; =0x021DB880 ldr r2, _021D76B8 ; =MOD15_021D7598 mov r1, #5 add r3, r4, #0 bl FUN_020220C4 str r0, [r4, #0x40] mov r1, #0 str r1, [r4, #0x44] add r0, r4, #0 str r1, [r4, #0x48] add r0, #0x65 strb r1, [r0] str r1, [r4, #0x2c] ldr r0, _021D76BC ; =MOD15_021D779C str r1, [r4, #0x28] str r0, [r4, #0x20] add r0, r4, #0 str r1, [r4, #0x1c] add r0, #0x4e strh r1, [r0] ldr r1, _021D76C0 ; =MOD15_021D83BC add r0, r4, #0 bl MOD15_021D83AC add r0, r4, #0 pop {r3, r4, r5, pc} nop _021D76B4: .word 0x021DB880 _021D76B8: .word MOD15_021D7598 _021D76BC: .word MOD15_021D779C _021D76C0: .word MOD15_021D83BC thumb_func_start MOD15_021D76C4 MOD15_021D76C4: ; 0x021D76C4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 bl FUN_02013920 strh r0, [r5] mov r0, #0 ldrsh r0, [r5, r0] bl FUN_02013974 strb r0, [r5, #3] add r0, r4, #0 bl FUN_02013924 strb r0, [r5, #2] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D76E8 MOD15_021D76E8: ; 0x021D76E8 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #2 add r4, r1, #0 ldrsb r1, [r5, r0] add r1, r1, #1 strb r1, [r5, #2] ldrsb r1, [r5, r0] mov r0, #3 ldrsb r0, [r5, r0] cmp r1, r0 blt _021D771C mov r1, #0 strb r1, [r5, #2] ldrsh r0, [r5, r1] add r0, r0, #1 strh r0, [r5] ldrsh r0, [r5, r1] cmp r0, #5 blt _021D7712 strh r1, [r5] _021D7712: mov r0, #0 ldrsh r0, [r5, r0] bl FUN_02013974 strb r0, [r5, #3] _021D771C: mov r1, #0 mov r2, #2 ldrsh r1, [r5, r1] ldrsb r2, [r5, r2] add r0, r4, #0 bl FUN_02013980 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D772C MOD15_021D772C: ; 0x021D772C push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #2 add r4, r1, #0 ldrsb r1, [r5, r0] sub r1, r1, #1 strb r1, [r5, #2] ldrsb r0, [r5, r0] cmp r0, #0 bge _021D7764 mov r0, #0 ldrsh r1, [r5, r0] sub r1, r1, #1 strh r1, [r5] ldrsh r0, [r5, r0] cmp r0, #0 bge _021D7752 mov r0, #4 strh r0, [r5] _021D7752: mov r0, #0 ldrsh r0, [r5, r0] bl FUN_02013974 strb r0, [r5, #3] mov r0, #3 ldrsb r0, [r5, r0] sub r0, r0, #1 strb r0, [r5, #2] _021D7764: mov r1, #0 mov r2, #2 ldrsh r1, [r5, r1] ldrsb r2, [r5, r2] add r0, r4, #0 bl FUN_02013980 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D7774 MOD15_021D7774: ; 0x021D7774 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x40] add r4, r1, #0 bl FUN_0202212C ldr r0, [r5, #0x14] bl MOD15_021D8888 ldr r0, [r5, #0x18] bl FUN_02088F4C add r0, r4, #0 bl FUN_0200627C pop {r3, r4, r5, pc} thumb_func_start MOD15_021D7794 MOD15_021D7794: ; 0x021D7794 str r1, [r0, #0x20] mov r1, #0 str r1, [r0, #0x1c] bx lr thumb_func_start MOD15_021D779C MOD15_021D779C: ; 0x021D779C push {r3, lr} ldr r2, [r0, #4] lsl r3, r2, #2 ldr r2, _021D77AC ; =0x021DB874 ldr r2, [r2, r3] blx r2 pop {r3, pc} nop _021D77AC: .word 0x021DB874 thumb_func_start MOD15_021D77B0 MOD15_021D77B0: ; 0x021D77B0 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021D77C6 cmp r0, #1 beq _021D7850 cmp r0, #2 beq _021D7864 b _021D7876 _021D77C6: ldr r1, [r5, #0x38] cmp r1, #0 bne _021D77D6 add r0, r5, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #0 bne _021D77EC _021D77D6: cmp r1, #1 bne _021D77E4 add r0, r5, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #1 bne _021D77EC _021D77E4: ldrh r0, [r5, #0x30] mov r1, #4 tst r1, r0 beq _021D77F6 _021D77EC: ldr r1, _021D787C ; =MOD15_021D8698 add r0, r5, #0 bl MOD15_021D83AC b _021D7876 _021D77F6: mov r1, #0x88 tst r1, r0 beq _021D7818 ldr r0, _021D7880 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 mov r1, #0 add r0, #0x4c strh r1, [r0] ldr r0, [r5, #0x14] mov r1, #4 bl MOD15_021D8900 mov r0, #1 str r0, [r4] b _021D7876 _021D7818: mov r1, #2 tst r1, r0 beq _021D782E ldr r0, _021D7880 ; =0x000005DC bl FUN_020054C8 ldr r1, _021D7884 ; =MOD15_021D851C add r0, r5, #0 bl MOD15_021D83AC b _021D7876 _021D782E: mov r1, #1 tst r0, r1 beq _021D7876 ldr r0, _021D7880 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 mov r1, #0 add r0, #0x50 strh r1, [r0] ldr r0, [r5, #0x14] mov r1, #6 bl MOD15_021D8900 mov r0, #2 str r0, [r4] b _021D7876 _021D7850: ldr r0, [r5, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D7876 ldr r1, _021D7888 ; =MOD15_021D7BC8 add r0, r5, #0 bl MOD15_021D7794 b _021D7876 _021D7864: ldr r0, [r5, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D7876 ldr r1, _021D788C ; =MOD15_021D7D00 add r0, r5, #0 bl MOD15_021D7794 _021D7876: mov r0, #0 pop {r3, r4, r5, pc} nop _021D787C: .word MOD15_021D8698 _021D7880: .word 0x000005DC _021D7884: .word MOD15_021D851C _021D7888: .word MOD15_021D7BC8 _021D788C: .word MOD15_021D7D00 thumb_func_start MOD15_021D7890 MOD15_021D7890: ; 0x021D7890 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021D78A6 cmp r0, #1 beq _021D7980 cmp r0, #2 beq _021D7994 b _021D79A6 _021D78A6: ldr r1, [r5, #0x38] cmp r1, #0 bne _021D78B6 add r0, r5, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #0 bne _021D78CC _021D78B6: cmp r1, #1 bne _021D78C4 add r0, r5, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #1 bne _021D78CC _021D78C4: ldrh r0, [r5, #0x30] mov r1, #4 tst r1, r0 beq _021D78D6 _021D78CC: ldr r1, _021D79AC ; =MOD15_021D8698 add r0, r5, #0 bl MOD15_021D83AC b _021D79A6 _021D78D6: mov r1, #0x88 tst r1, r0 beq _021D78F8 ldr r0, _021D79B0 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 mov r1, #0 add r0, #0x4c strh r1, [r0] ldr r0, [r5, #0x14] mov r1, #4 bl MOD15_021D8900 mov r0, #1 str r0, [r4] b _021D79A6 _021D78F8: mov r1, #0x20 tst r1, r0 beq _021D7920 add r0, r5, #0 add r0, #0x4e ldrh r0, [r0] cmp r0, #0 beq _021D79A6 ldr r0, _021D79B0 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 mov r1, #0 add r0, #0x4e strh r1, [r0] ldr r0, [r5, #0x14] mov r1, #0xc bl MOD15_021D8900 b _021D79A6 _021D7920: mov r1, #0x10 tst r1, r0 beq _021D7948 add r0, r5, #0 add r0, #0x4e ldrh r0, [r0] cmp r0, #0 bne _021D79A6 ldr r0, _021D79B0 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 mov r1, #1 add r0, #0x4e strh r1, [r0] ldr r0, [r5, #0x14] mov r1, #0xc bl MOD15_021D8900 b _021D79A6 _021D7948: mov r1, #2 tst r1, r0 beq _021D795E ldr r0, _021D79B0 ; =0x000005DC bl FUN_020054C8 ldr r1, _021D79B4 ; =MOD15_021D851C add r0, r5, #0 bl MOD15_021D83AC b _021D79A6 _021D795E: mov r1, #1 tst r0, r1 beq _021D79A6 ldr r0, _021D79B0 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 mov r1, #0 add r0, #0x50 strh r1, [r0] ldr r0, [r5, #0x14] mov r1, #6 bl MOD15_021D8900 mov r0, #2 str r0, [r4] b _021D79A6 _021D7980: ldr r0, [r5, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D79A6 ldr r1, _021D79B8 ; =MOD15_021D7BC8 add r0, r5, #0 bl MOD15_021D7794 b _021D79A6 _021D7994: ldr r0, [r5, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D79A6 ldr r1, _021D79BC ; =MOD15_021D7D00 add r0, r5, #0 bl MOD15_021D7794 _021D79A6: mov r0, #0 pop {r3, r4, r5, pc} nop _021D79AC: .word MOD15_021D8698 _021D79B0: .word 0x000005DC _021D79B4: .word MOD15_021D851C _021D79B8: .word MOD15_021D7BC8 _021D79BC: .word MOD15_021D7D00 thumb_func_start MOD15_021D79C0 MOD15_021D79C0: ; 0x021D79C0 push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 ldr r0, [r5] cmp r0, #4 bhi _021D7A3C add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D79D8: ; jump table .short _021D79E2 - _021D79D8 - 2 ; case 0 .short _021D79F2 - _021D79D8 - 2 ; case 1 .short _021D7B76 - _021D79D8 - 2 ; case 2 .short _021D7B88 - _021D79D8 - 2 ; case 3 .short _021D7B9C - _021D79D8 - 2 ; case 4 _021D79E2: ldr r0, [r4, #0x14] bl MOD15_021D9538 add r1, r4, #0 add r1, #0x64 strb r0, [r1] mov r0, #1 str r0, [r5] _021D79F2: ldr r1, [r4, #0x38] cmp r1, #0 bne _021D7A02 add r0, r4, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #0 bne _021D7A18 _021D7A02: cmp r1, #1 bne _021D7A10 add r0, r4, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #1 bne _021D7A18 _021D7A10: ldrh r0, [r4, #0x30] mov r1, #4 tst r1, r0 beq _021D7A22 _021D7A18: ldr r1, _021D7BB4 ; =MOD15_021D8698 add r0, r4, #0 bl MOD15_021D83AC b _021D7BAE _021D7A22: mov r1, #0x40 tst r1, r0 beq _021D7A5C add r0, r4, #0 add r0, #0x64 ldrb r0, [r0] cmp r0, #0 beq _021D7A3C add r0, r4, #0 add r0, #0x4e ldrh r0, [r0] cmp r0, #0 bne _021D7A3E _021D7A3C: b _021D7BAE _021D7A3E: ldr r0, _021D7BB8 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 add r0, #0x4e ldrh r0, [r0] sub r1, r0, #1 add r0, r4, #0 add r0, #0x4e strh r1, [r0] ldr r0, [r4, #0x14] mov r1, #0xc bl MOD15_021D8900 b _021D7BAE _021D7A5C: mov r1, #0x80 tst r0, r1 beq _021D7AAC ldr r0, _021D7BB8 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 add r0, #0x64 ldrb r2, [r0] cmp r2, #0 beq _021D7A96 add r0, r4, #0 add r0, #0x4e ldrh r1, [r0] sub r0, r2, #1 cmp r1, r0 bge _021D7A96 add r0, r4, #0 add r0, #0x4e ldrh r0, [r0] add r1, r0, #1 add r0, r4, #0 add r0, #0x4e strh r1, [r0] ldr r0, [r4, #0x14] mov r1, #0xc bl MOD15_021D8900 b _021D7AAC _021D7A96: add r0, r4, #0 mov r1, #0 add r0, #0x4c strh r1, [r0] ldr r0, [r4, #0x14] mov r1, #4 bl MOD15_021D8900 mov r0, #3 str r0, [r5] b _021D7BAE _021D7AAC: ldrh r1, [r4, #0x30] mov r0, #8 tst r0, r1 bne _021D7AC6 mov r0, #1 add r2, r1, #0 and r2, r0 beq _021D7AE2 add r0, r4, #0 add r0, #0x64 ldrb r0, [r0] cmp r0, #0 bne _021D7AE2 _021D7AC6: ldr r0, _021D7BB8 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 mov r1, #0 add r0, #0x4c strh r1, [r0] ldr r0, [r4, #0x14] mov r1, #4 bl MOD15_021D8900 mov r0, #3 str r0, [r5] b _021D7BAE _021D7AE2: ldrh r0, [r4, #0x34] mov r3, #0x20 tst r3, r0 beq _021D7B12 ldr r0, _021D7BB8 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 mov r1, #0 add r0, #0x4e strh r1, [r0] add r0, r4, #0 add r1, r4, #0 add r0, #0x60 add r1, #8 bl MOD15_021D772C ldr r0, [r4, #0x14] mov r1, #3 bl MOD15_021D8900 mov r0, #2 str r0, [r5] b _021D7BAE _021D7B12: mov r3, #0x10 tst r0, r3 beq _021D7B40 ldr r0, _021D7BB8 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 mov r1, #0 add r0, #0x4e strh r1, [r0] add r0, r4, #0 add r1, r4, #0 add r0, #0x60 add r1, #8 bl MOD15_021D76E8 ldr r0, [r4, #0x14] mov r1, #3 bl MOD15_021D8900 mov r0, #2 str r0, [r5] b _021D7BAE _021D7B40: mov r0, #2 tst r0, r1 beq _021D7B56 ldr r0, _021D7BB8 ; =0x000005DC bl FUN_020054C8 ldr r1, _021D7BBC ; =MOD15_021D851C add r0, r4, #0 bl MOD15_021D83AC b _021D7BAE _021D7B56: cmp r2, #0 beq _021D7BAE ldr r0, _021D7BB8 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 mov r1, #0 add r0, #0x50 strh r1, [r0] ldr r0, [r4, #0x14] mov r1, #6 bl MOD15_021D8900 mov r0, #4 str r0, [r5] b _021D7BAE _021D7B76: ldr r0, [r4, #0x14] mov r1, #3 bl MOD15_021D8970 cmp r0, #0 beq _021D7BAE mov r0, #0 str r0, [r5] b _021D7BAE _021D7B88: ldr r0, [r4, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D7BAE ldr r1, _021D7BC0 ; =MOD15_021D7BC8 add r0, r4, #0 bl MOD15_021D7794 b _021D7BAE _021D7B9C: ldr r0, [r4, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D7BAE ldr r1, _021D7BC4 ; =MOD15_021D7D00 add r0, r4, #0 bl MOD15_021D7794 _021D7BAE: mov r0, #0 pop {r3, r4, r5, pc} nop _021D7BB4: .word MOD15_021D8698 _021D7BB8: .word 0x000005DC _021D7BBC: .word MOD15_021D851C _021D7BC0: .word MOD15_021D7BC8 _021D7BC4: .word MOD15_021D7D00 thumb_func_start MOD15_021D7BC8 MOD15_021D7BC8: ; 0x021D7BC8 push {r3, r4, r5, lr} add r5, r1, #0 ldr r1, [r5] add r4, r0, #0 cmp r1, #5 bls _021D7BD6 b _021D7CE8 _021D7BD6: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D7BE2: ; jump table .short _021D7BEE - _021D7BE2 - 2 ; case 0 .short _021D7CB8 - _021D7BE2 - 2 ; case 1 .short _021D7CC4 - _021D7BE2 - 2 ; case 2 .short _021D7CD0 - _021D7BE2 - 2 ; case 3 .short _021D7CD0 - _021D7BE2 - 2 ; case 4 .short _021D7CD6 - _021D7BE2 - 2 ; case 5 _021D7BEE: ldr r0, [r4, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D7CE8 ldr r1, [r4, #0x38] cmp r1, #0 bne _021D7C08 add r0, r4, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #0 bne _021D7C1E _021D7C08: cmp r1, #1 bne _021D7C16 add r0, r4, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #1 bne _021D7C1E _021D7C16: ldrh r0, [r4, #0x30] mov r1, #4 tst r1, r0 beq _021D7C28 _021D7C1E: ldr r1, _021D7CEC ; =MOD15_021D8698 add r0, r4, #0 bl MOD15_021D83AC b _021D7CE8 _021D7C28: mov r1, #0x30 tst r1, r0 beq _021D7C4E ldr r0, _021D7CF0 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 add r0, #0x4c ldrh r1, [r0] mov r0, #1 eor r1, r0 add r0, r4, #0 add r0, #0x4c strh r1, [r0] ldr r0, [r4, #0x14] mov r1, #0xd bl MOD15_021D8900 b _021D7CE8 _021D7C4E: mov r1, #8 tst r1, r0 beq _021D7C6C ldr r0, _021D7CF0 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 mov r1, #0 add r0, #0x4c strh r1, [r0] ldr r0, [r4, #0x14] mov r1, #0xd bl MOD15_021D8900 b _021D7CE8 _021D7C6C: mov r1, #0x40 tst r1, r0 beq _021D7C86 ldr r0, _021D7CF0 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x14] mov r1, #5 bl MOD15_021D8900 mov r0, #5 str r0, [r5] b _021D7CE8 _021D7C86: mov r1, #1 tst r1, r0 beq _021D7CA6 ldr r0, _021D7CF0 ; =0x000005DC bl FUN_020054C8 add r4, #0x4c ldrh r0, [r4] cmp r0, #0 bne _021D7CA0 mov r0, #1 str r0, [r5] b _021D7CE8 _021D7CA0: mov r0, #2 str r0, [r5] b _021D7CE8 _021D7CA6: mov r1, #2 tst r0, r1 beq _021D7CE8 ldr r0, _021D7CF0 ; =0x000005DC bl FUN_020054C8 mov r0, #2 str r0, [r5] b _021D7CE8 _021D7CB8: mov r1, #3 str r1, [r5] ldr r1, _021D7CF4 ; =MOD15_021D83F0 bl MOD15_021D83AC b _021D7CE8 _021D7CC4: mov r1, #4 str r1, [r5] ldr r1, _021D7CF8 ; =MOD15_021D851C bl MOD15_021D83AC b _021D7CE8 _021D7CD0: mov r0, #0 str r0, [r5] b _021D7CE8 _021D7CD6: ldr r0, [r4, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D7CE8 ldr r1, _021D7CFC ; =MOD15_021D779C add r0, r4, #0 bl MOD15_021D7794 _021D7CE8: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D7CEC: .word MOD15_021D8698 _021D7CF0: .word 0x000005DC _021D7CF4: .word MOD15_021D83F0 _021D7CF8: .word MOD15_021D851C _021D7CFC: .word MOD15_021D779C thumb_func_start MOD15_021D7D00 MOD15_021D7D00: ; 0x021D7D00 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021D7D18 cmp r0, #1 beq _021D7E0C cmp r0, #2 bne _021D7D16 b _021D7E20 _021D7D16: b _021D7E30 _021D7D18: ldr r0, [r5, #0x14] mov r1, #0xf bl MOD15_021D8970 cmp r0, #0 bne _021D7D26 b _021D7E30 _021D7D26: ldr r1, [r5, #0x38] cmp r1, #0 bne _021D7D36 add r0, r5, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #0 bne _021D7D4C _021D7D36: cmp r1, #1 bne _021D7D44 add r0, r5, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #1 bne _021D7D4C _021D7D44: ldrh r0, [r5, #0x30] mov r1, #4 tst r1, r0 beq _021D7D78 _021D7D4C: ldr r0, _021D7E34 ; =0x000005E4 bl FUN_020054C8 add r0, r5, #0 add r0, #0x65 ldrb r1, [r0] mov r0, #1 eor r1, r0 add r0, r5, #0 add r0, #0x65 strb r1, [r0] add r0, r5, #0 mov r1, #0 add r0, #0x50 strh r1, [r0] ldr r0, [r5, #0x14] mov r1, #0x18 bl MOD15_021D8900 mov r0, #2 str r0, [r4] b _021D7E30 _021D7D78: mov r1, #2 tst r1, r0 beq _021D7D96 ldr r0, _021D7E38 ; =0x000005DC bl FUN_020054C8 ldr r0, [r5, #0x14] mov r1, #7 bl MOD15_021D8900 ldr r0, _021D7E3C ; =MOD15_021D779C str r0, [r5, #0x24] mov r0, #1 str r0, [r4] b _021D7E30 _021D7D96: mov r1, #1 tst r0, r1 beq _021D7DF2 add r0, r5, #0 add r0, #0x50 ldrh r0, [r0] cmp r0, #0xfe bne _021D7DBE ldr r0, _021D7E38 ; =0x000005DC bl FUN_020054C8 ldr r0, [r5, #0x14] mov r1, #7 bl MOD15_021D8900 ldr r0, _021D7E3C ; =MOD15_021D779C str r0, [r5, #0x24] mov r0, #1 str r0, [r4] b _021D7E30 _021D7DBE: add r0, r5, #0 bl MOD15_021D7E48 cmp r0, #0 beq _021D7DEA ldr r0, _021D7E38 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0 add r0, #0x54 add r1, r5, #0 bl MOD15_021D7FE4 ldr r0, _021D7E40 ; =MOD15_021D8044 mov r1, #8 str r0, [r5, #0x24] ldr r0, [r5, #0x14] bl MOD15_021D8900 mov r0, #1 str r0, [r4] b _021D7E30 _021D7DEA: ldr r0, _021D7E44 ; =0x000005F2 bl FUN_020054C8 b _021D7E30 _021D7DF2: add r0, r5, #0 bl MOD15_021D7E80 cmp r0, #0 beq _021D7E30 ldr r0, _021D7E38 ; =0x000005DC bl FUN_020054C8 ldr r0, [r5, #0x14] mov r1, #0xe bl MOD15_021D8900 b _021D7E30 _021D7E0C: ldr r0, [r5, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D7E30 ldr r1, [r5, #0x24] add r0, r5, #0 bl MOD15_021D7794 b _021D7E30 _021D7E20: ldr r0, [r5, #0x14] mov r1, #0x18 bl MOD15_021D8970 cmp r0, #0 beq _021D7E30 mov r0, #0 str r0, [r4] _021D7E30: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D7E34: .word 0x000005E4 _021D7E38: .word 0x000005DC _021D7E3C: .word MOD15_021D779C _021D7E40: .word MOD15_021D8044 _021D7E44: .word 0x000005F2 thumb_func_start MOD15_021D7E48 MOD15_021D7E48: ; 0x021D7E48 push {r3, lr} add r1, r0, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #0 ldr r0, [r1, #0x18] bne _021D7E6A add r1, #0x50 ldrh r1, [r1] bl FUN_020892C4 cmp r0, #0 beq _021D7E66 mov r0, #1 pop {r3, pc} _021D7E66: mov r0, #0 pop {r3, pc} _021D7E6A: add r1, #0x50 ldrh r1, [r1] bl FUN_02089300 cmp r0, #0 beq _021D7E7A mov r0, #1 pop {r3, pc} _021D7E7A: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_start MOD15_021D7E80 MOD15_021D7E80: ; 0x021D7E80 push {r3, lr} add r1, r0, #0 add r1, #0x65 ldrb r1, [r1] lsl r2, r1, #2 ldr r1, _021D7E94 ; =0x021DB86C ldr r1, [r1, r2] blx r1 pop {r3, pc} nop _021D7E94: .word 0x021DB86C thumb_func_start MOD15_021D7E98 MOD15_021D7E98: ; 0x021D7E98 push {r4, lr} add r4, r0, #0 add r0, #0x50 ldrh r2, [r0] add r1, r2, #0 cmp r2, #0xfe bne _021D7EA8 mov r1, #0xc _021D7EA8: cmp r2, #0xfe beq _021D7F04 add r0, r4, #0 add r0, #0x52 strh r2, [r0] ldrh r0, [r4, #0x34] mov r2, #0x40 tst r2, r0 beq _021D7EC8 ldr r0, _021D7F40 ; =0x021DB894 lsl r1, r1, #2 ldrb r0, [r0, r1] add r4, #0x50 strh r0, [r4] mov r0, #1 pop {r4, pc} _021D7EC8: mov r2, #0x80 tst r2, r0 beq _021D7EDC ldr r0, _021D7F44 ; =0x021DB895 lsl r1, r1, #2 ldrb r0, [r0, r1] add r4, #0x50 strh r0, [r4] mov r0, #1 pop {r4, pc} _021D7EDC: mov r2, #0x20 tst r2, r0 beq _021D7EF0 ldr r0, _021D7F48 ; =0x021DB896 lsl r1, r1, #2 ldrb r0, [r0, r1] add r4, #0x50 strh r0, [r4] mov r0, #1 pop {r4, pc} _021D7EF0: mov r2, #0x10 tst r0, r2 beq _021D7F3C ldr r0, _021D7F4C ; =0x021DB897 lsl r1, r1, #2 ldrb r0, [r0, r1] add r4, #0x50 strh r0, [r4] mov r0, #1 pop {r4, pc} _021D7F04: ldrh r1, [r4, #0x34] mov r0, #0x40 tst r0, r1 beq _021D7F22 add r0, r4, #0 add r0, #0x52 ldrh r0, [r0] mov r1, #3 bl _s32_div_f add r1, #9 add r4, #0x50 strh r1, [r4] mov r0, #1 pop {r4, pc} _021D7F22: mov r0, #0x80 tst r0, r1 beq _021D7F3C add r0, r4, #0 add r0, #0x52 ldrh r0, [r0] mov r1, #3 bl _s32_div_f add r4, #0x50 strh r1, [r4] mov r0, #1 pop {r4, pc} _021D7F3C: mov r0, #0 pop {r4, pc} .align 2, 0 _021D7F40: .word 0x021DB894 _021D7F44: .word 0x021DB895 _021D7F48: .word 0x021DB896 _021D7F4C: .word 0x021DB897 thumb_func_start MOD15_021D7F50 MOD15_021D7F50: ; 0x021D7F50 push {r4, lr} add r4, r0, #0 add r0, #0x50 ldrh r0, [r0] cmp r0, #0xfe beq _021D7FAE ldrh r1, [r4, #0x34] mov r3, #0x40 mov r2, #0xff tst r3, r1 beq _021D7F6E bl MOD15_021DB7C4 add r2, r0, #0 b _021D7F96 _021D7F6E: mov r3, #0x80 tst r3, r1 beq _021D7F7C bl MOD15_021DB7E0 add r2, r0, #0 b _021D7F96 _021D7F7C: mov r3, #0x10 tst r3, r1 beq _021D7F8A bl MOD15_021DB818 add r2, r0, #0 b _021D7F96 _021D7F8A: mov r3, #0x20 tst r1, r3 beq _021D7F96 bl MOD15_021DB7FC add r2, r0, #0 _021D7F96: cmp r2, #0xff beq _021D7FE0 add r0, r4, #0 add r0, #0x50 ldrh r1, [r0] add r0, r4, #0 add r0, #0x52 strh r1, [r0] add r4, #0x50 strh r2, [r4] mov r0, #1 pop {r4, pc} _021D7FAE: ldrh r1, [r4, #0x34] mov r0, #0x40 tst r0, r1 beq _021D7FC8 add r0, r4, #0 add r0, #0x52 ldrh r0, [r0] bl MOD15_021DB850 add r4, #0x50 strh r0, [r4] mov r0, #1 pop {r4, pc} _021D7FC8: mov r0, #0x80 tst r0, r1 beq _021D7FE0 add r0, r4, #0 add r0, #0x52 ldrh r0, [r0] bl MOD15_021DB834 add r4, #0x50 strh r0, [r4] mov r0, #1 pop {r4, pc} _021D7FE0: mov r0, #0 pop {r4, pc} thumb_func_start MOD15_021D7FE4 MOD15_021D7FE4: ; 0x021D7FE4 push {r4, lr} add r4, r0, #0 mov r0, #0 strh r0, [r4] strb r0, [r4, #6] strb r0, [r4, #7] add r0, r1, #0 bl MOD15_021D8744 strh r0, [r4, #4] mov r0, #0 str r0, [r4, #8] ldrh r2, [r4, #4] cmp r2, #0xa bls _021D8016 add r1, r2, #0 sub r1, #0xa lsr r0, r1, #0x1f add r0, r1, r0 asr r1, r0, #1 mov r0, #1 and r0, r2 add r0, r1, r0 strh r0, [r4, #2] pop {r4, pc} _021D8016: strh r0, [r4, #2] pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021D801C MOD15_021D801C: ; 0x021D801C ldrb r1, [r0, #6] ldrb r0, [r0, #7] lsl r0, r0, #1 add r0, r1, r0 bx lr .align 2, 0 thumb_func_start MOD15_021D8028 MOD15_021D8028: ; 0x021D8028 push {r4, lr} add r4, r0, #0 bl MOD15_021D801C ldrh r1, [r4] lsl r1, r1, #1 add r0, r1, r0 pop {r4, pc} thumb_func_start MOD15_021D8038 MOD15_021D8038: ; 0x021D8038 ldr r0, [r0, #8] bx lr thumb_func_start MOD15_021D803C MOD15_021D803C: ; 0x021D803C ldrh r0, [r0] bx lr thumb_func_start MOD15_021D8040 MOD15_021D8040: ; 0x021D8040 ldrh r0, [r0, #2] bx lr thumb_func_start MOD15_021D8044 MOD15_021D8044: ; 0x021D8044 push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 ldr r0, [r5] cmp r0, #3 bls _021D8052 b _021D81B4 _021D8052: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D805E: ; jump table .short _021D8066 - _021D805E - 2 ; case 0 .short _021D8172 - _021D805E - 2 ; case 1 .short _021D8184 - _021D805E - 2 ; case 2 .short _021D819E - _021D805E - 2 ; case 3 _021D8066: ldr r0, [r4, #0x38] cmp r0, #0 bne _021D8076 add r1, r4, #0 add r1, #0x65 ldrb r1, [r1] cmp r1, #0 bne _021D808C _021D8076: cmp r0, #1 bne _021D8084 add r1, r4, #0 add r1, #0x65 ldrb r1, [r1] cmp r1, #1 bne _021D808C _021D8084: ldrh r2, [r4, #0x30] mov r1, #4 tst r1, r2 beq _021D80BC _021D808C: ldr r0, _021D81B8 ; =0x000005E4 bl FUN_020054C8 add r0, r4, #0 mov r1, #0 add r0, #0x50 strh r1, [r0] add r0, r4, #0 add r0, #0x65 ldrb r1, [r0] mov r0, #1 eor r1, r0 add r0, r4, #0 add r0, #0x65 strb r1, [r0] ldr r0, [r4, #0x14] mov r1, #9 bl MOD15_021D8900 ldr r0, _021D81BC ; =MOD15_021D7D00 str r0, [r4, #0x24] mov r0, #3 str r0, [r5] b _021D81B4 _021D80BC: cmp r0, #2 bne _021D80CA add r0, r4, #0 add r0, #0x54 bl MOD15_021D82A8 b _021D80E2 _021D80CA: cmp r0, #3 bne _021D80D8 add r0, r4, #0 add r0, #0x54 bl MOD15_021D82D0 b _021D80E2 _021D80D8: ldrh r1, [r4, #0x34] add r0, r4, #0 add r0, #0x54 bl MOD15_021D81C8 _021D80E2: cmp r0, #1 beq _021D80F0 cmp r0, #2 beq _021D8102 cmp r0, #3 beq _021D8118 b _021D812E _021D80F0: ldr r0, _021D81C0 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x14] mov r1, #0xf bl MOD15_021D8900 mov r0, #0 pop {r3, r4, r5, pc} _021D8102: ldr r0, _021D81C0 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x14] mov r1, #0x10 bl MOD15_021D8900 mov r0, #1 str r0, [r5] mov r0, #0 pop {r3, r4, r5, pc} _021D8118: ldr r0, _021D81C0 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x14] mov r1, #0x10 bl MOD15_021D8900 mov r0, #2 str r0, [r5] mov r0, #0 pop {r3, r4, r5, pc} _021D812E: ldrh r1, [r4, #0x30] mov r0, #2 tst r0, r1 beq _021D814E ldr r0, _021D81C0 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x14] mov r1, #9 bl MOD15_021D8900 ldr r0, _021D81BC ; =MOD15_021D7D00 str r0, [r4, #0x24] mov r0, #3 str r0, [r5] b _021D81B4 _021D814E: mov r0, #1 tst r0, r1 beq _021D81B4 ldr r0, _021D81C0 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0 bl MOD15_021D8310 ldr r0, _021D81C4 ; =MOD15_021D779C mov r1, #0xa str r0, [r4, #0x24] ldr r0, [r4, #0x14] bl MOD15_021D8900 mov r0, #3 str r0, [r5] b _021D81B4 _021D8172: ldr r0, [r4, #0x14] mov r1, #0x10 bl MOD15_021D8970 cmp r0, #0 beq _021D81B4 mov r0, #0 str r0, [r5] b _021D81B4 _021D8184: ldr r0, [r4, #0x14] mov r1, #0x10 bl MOD15_021D8970 cmp r0, #0 beq _021D81B4 ldr r0, [r4, #0x14] mov r1, #0xf bl MOD15_021D8900 mov r0, #0 str r0, [r5] b _021D81B4 _021D819E: ldr r0, [r4, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D81B4 ldr r1, [r4, #0x24] add r0, r4, #0 bl MOD15_021D7794 mov r0, #0 str r0, [r5] _021D81B4: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D81B8: .word 0x000005E4 _021D81BC: .word MOD15_021D7D00 _021D81C0: .word 0x000005DC _021D81C4: .word MOD15_021D779C thumb_func_start MOD15_021D81C8 MOD15_021D81C8: ; 0x021D81C8 push {r3, r4, r5, lr} mov r2, #0x80 add r4, r0, #0 tst r2, r1 beq _021D8232 ldrb r1, [r4, #7] cmp r1, #4 bhs _021D8206 add r1, r1, #1 strb r1, [r4, #7] bl MOD15_021D8028 ldrh r1, [r4, #4] cmp r0, r1 bhs _021D81EA mov r0, #1 pop {r3, r4, r5, pc} _021D81EA: cmp r0, r1 bne _021D81FC mov r1, #1 tst r0, r1 beq _021D81FC mov r0, #0 strb r0, [r4, #6] add r0, r1, #0 pop {r3, r4, r5, pc} _021D81FC: ldrb r0, [r4, #7] sub r0, r0, #1 strb r0, [r4, #7] mov r0, #4 pop {r3, r4, r5, pc} _021D8206: ldrh r2, [r4] ldrh r1, [r4, #2] cmp r2, r1 bhs _021D822E mov r1, #1 str r1, [r4, #8] ldrh r1, [r4] add r1, r1, #1 strh r1, [r4] bl MOD15_021D8028 ldrh r1, [r4, #4] cmp r0, r1 bhs _021D8226 mov r0, #2 pop {r3, r4, r5, pc} _021D8226: mov r0, #0 strb r0, [r4, #6] mov r0, #3 pop {r3, r4, r5, pc} _021D822E: mov r0, #4 pop {r3, r4, r5, pc} _021D8232: mov r5, #0x40 add r2, r1, #0 tst r2, r5 beq _021D8260 ldrb r0, [r4, #7] cmp r0, #0 beq _021D8248 sub r0, r0, #1 strb r0, [r4, #7] mov r0, #1 pop {r3, r4, r5, pc} _021D8248: ldrh r0, [r4] cmp r0, #0 beq _021D825C sub r5, #0x41 str r5, [r4, #8] ldrh r0, [r4] sub r0, r0, #1 strh r0, [r4] mov r0, #2 pop {r3, r4, r5, pc} _021D825C: mov r0, #4 pop {r3, r4, r5, pc} _021D8260: mov r3, #0x30 add r2, r1, #0 tst r2, r3 beq _021D828A ldrb r2, [r4, #6] mov r1, #1 eor r1, r2 strb r1, [r4, #6] bl MOD15_021D8028 ldrh r1, [r4, #4] cmp r0, r1 bhs _021D827E mov r0, #1 pop {r3, r4, r5, pc} _021D827E: ldrb r1, [r4, #6] mov r0, #1 eor r0, r1 strb r0, [r4, #6] mov r0, #4 pop {r3, r4, r5, pc} _021D828A: lsl r2, r5, #3 tst r2, r1 beq _021D8296 bl MOD15_021D82A8 pop {r3, r4, r5, pc} _021D8296: add r3, #0xd0 tst r1, r3 beq _021D82A2 bl MOD15_021D82D0 pop {r3, r4, r5, pc} _021D82A2: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D82A8 MOD15_021D82A8: ; 0x021D82A8 ldrh r1, [r0] cmp r1, #0 beq _021D82CA cmp r1, #5 blo _021D82BE sub r1, r1, #5 strh r1, [r0] mov r1, #4 mvn r1, r1 str r1, [r0, #8] b _021D82C6 _021D82BE: neg r1, r1 str r1, [r0, #8] mov r1, #0 strh r1, [r0] _021D82C6: mov r0, #2 bx lr _021D82CA: mov r0, #4 bx lr .align 2, 0 thumb_func_start MOD15_021D82D0 MOD15_021D82D0: ; 0x021D82D0 push {r4, lr} add r4, r0, #0 ldrh r2, [r4, #2] ldrh r1, [r4] cmp r1, r2 bhs _021D830C add r0, r1, #5 cmp r0, r2 bgt _021D82EC mov r0, #5 str r0, [r4, #8] ldrh r0, [r4] add r0, r0, #5 b _021D82F2 _021D82EC: sub r0, r2, r1 str r0, [r4, #8] ldrh r0, [r4, #2] _021D82F2: strh r0, [r4] add r0, r4, #0 bl MOD15_021D8028 ldrh r1, [r4, #4] cmp r0, r1 bhs _021D8304 mov r0, #2 pop {r4, pc} _021D8304: mov r0, #0 strb r0, [r4, #6] mov r0, #3 pop {r4, pc} _021D830C: mov r0, #4 pop {r4, pc} thumb_func_start MOD15_021D8310 MOD15_021D8310: ; 0x021D8310 push {r4, lr} add r4, r0, #0 add r0, #0x54 bl MOD15_021D8028 add r2, r0, #0 add r0, r4, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #0 ldr r0, [r4, #0x18] bne _021D8334 add r1, r4, #0 add r1, #0x50 ldrh r1, [r1] bl FUN_020892EC b _021D833E _021D8334: add r1, r4, #0 add r1, #0x50 ldrh r1, [r1] bl FUN_02089338 _021D833E: add r2, r0, #0 ldr r0, [r4, #4] cmp r0, #0 beq _021D8350 cmp r0, #1 beq _021D8354 cmp r0, #2 beq _021D8362 b _021D8370 _021D8350: strh r2, [r4, #0x10] b _021D8370 _021D8354: add r0, r4, #0 add r0, #0x4e ldrh r0, [r0] lsl r0, r0, #1 add r0, r4, r0 strh r2, [r0, #0x10] b _021D8370 _021D8362: add r1, r4, #0 add r1, #0x4e ldrh r1, [r1] add r0, r4, #0 add r0, #8 bl FUN_02013998 _021D8370: add r0, r4, #0 bl MOD15_021D85EC pop {r4, pc} thumb_func_start MOD15_021D8378 MOD15_021D8378: ; 0x021D8378 push {r4, lr} add r4, r1, #0 ldr r1, [r4] cmp r1, #0 beq _021D8388 cmp r1, #1 beq _021D8398 b _021D83A6 _021D8388: ldr r0, [r0, #0x14] mov r1, #1 bl MOD15_021D8900 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D83A6 _021D8398: ldr r0, [r0, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D83A6 mov r0, #1 pop {r4, pc} _021D83A6: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021D83AC MOD15_021D83AC: ; 0x021D83AC str r1, [r0, #0x2c] mov r1, #0 str r1, [r0, #0x28] bx lr thumb_func_start MOD15_021D83B4 MOD15_021D83B4: ; 0x021D83B4 mov r1, #0 str r1, [r0, #0x2c] bx lr .align 2, 0 thumb_func_start MOD15_021D83BC MOD15_021D83BC: ; 0x021D83BC push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021D83CE cmp r0, #1 beq _021D83DE pop {r3, r4, r5, pc} _021D83CE: ldr r0, [r5, #0x14] mov r1, #2 bl MOD15_021D8900 ldr r0, [r4] add r0, r0, #1 str r0, [r4] pop {r3, r4, r5, pc} _021D83DE: ldr r0, [r5, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D83EE add r0, r5, #0 bl MOD15_021D83B4 _021D83EE: pop {r3, r4, r5, pc} thumb_func_start MOD15_021D83F0 MOD15_021D83F0: ; 0x021D83F0 push {r3, r4, r5, lr} add r5, r1, #0 ldr r1, [r5] add r4, r0, #0 cmp r1, #3 bls _021D83FE b _021D850C _021D83FE: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D840A: ; jump table .short _021D8412 - _021D840A - 2 ; case 0 .short _021D8460 - _021D840A - 2 ; case 1 .short _021D84E6 - _021D840A - 2 ; case 2 .short _021D84FC - _021D840A - 2 ; case 3 _021D8412: bl MOD15_021D85D0 cmp r0, #0 bne _021D8424 ldr r0, [r4] bl FUN_02085424 cmp r0, #0 beq _021D8456 _021D8424: add r0, r4, #0 bl MOD15_021D85EC cmp r0, #0 beq _021D8448 add r0, r4, #0 add r0, #0x66 mov r1, #1 mov r2, #0 bl MOD15_021D8634 ldr r0, [r4, #0x14] mov r1, #0x12 bl MOD15_021D8900 mov r0, #1 str r0, [r5] pop {r3, r4, r5, pc} _021D8448: ldr r0, [r4, #0x14] mov r1, #0x14 bl MOD15_021D8900 mov r0, #2 str r0, [r5] pop {r3, r4, r5, pc} _021D8456: ldr r1, _021D8510 ; =MOD15_021D851C add r0, r4, #0 bl MOD15_021D83AC pop {r3, r4, r5, pc} _021D8460: ldr r0, [r4, #0x14] mov r1, #0x15 bl MOD15_021D8970 cmp r0, #0 beq _021D850C ldrh r1, [r4, #0x30] add r0, r4, #0 add r0, #0x66 bl MOD15_021D863C add r0, r0, #3 cmp r0, #4 bhi _021D850C add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8488: ; jump table .short _021D8492 - _021D8488 - 2 ; case 0 .short _021D84A2 - _021D8488 - 2 ; case 1 .short _021D850C - _021D8488 - 2 ; case 2 .short _021D84B6 - _021D8488 - 2 ; case 3 .short _021D84A2 - _021D8488 - 2 ; case 4 _021D8492: ldr r0, _021D8514 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x14] mov r1, #0x15 bl MOD15_021D8900 pop {r3, r4, r5, pc} _021D84A2: ldr r0, _021D8514 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x14] mov r1, #0x16 bl MOD15_021D8900 mov r0, #3 str r0, [r5] pop {r3, r4, r5, pc} _021D84B6: ldr r0, _021D8514 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #4] cmp r0, #2 bne _021D84CA add r0, r4, #0 add r0, #8 bl FUN_020139B0 _021D84CA: add r1, r4, #0 add r2, r4, #0 ldr r0, [r4] add r1, #0x10 add r2, #8 bl FUN_020854A0 ldr r1, _021D8518 ; =MOD15_021D8378 add r0, r4, #0 bl MOD15_021D7794 mov r0, #3 str r0, [r5] pop {r3, r4, r5, pc} _021D84E6: ldrh r1, [r4, #0x30] mov r0, #0xf3 tst r0, r1 beq _021D850C ldr r0, [r4, #0x14] mov r1, #0x11 bl MOD15_021D8900 mov r0, #3 str r0, [r5] pop {r3, r4, r5, pc} _021D84FC: ldr r0, [r4, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D850C add r0, r4, #0 bl MOD15_021D83B4 _021D850C: pop {r3, r4, r5, pc} nop _021D8510: .word MOD15_021D851C _021D8514: .word 0x000005DC _021D8518: .word MOD15_021D8378 thumb_func_start MOD15_021D851C MOD15_021D851C: ; 0x021D851C push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 ldr r0, [r5] cmp r0, #0 beq _021D8532 cmp r0, #1 beq _021D854C cmp r0, #2 beq _021D85B6 pop {r3, r4, r5, pc} _021D8532: add r0, r4, #0 mov r1, #1 add r0, #0x66 add r2, r1, #0 bl MOD15_021D8634 ldr r0, [r4, #0x14] mov r1, #0x13 bl MOD15_021D8900 mov r0, #1 str r0, [r5] pop {r3, r4, r5, pc} _021D854C: ldr r0, [r4, #0x14] mov r1, #0x15 bl MOD15_021D8970 cmp r0, #0 beq _021D85C6 ldrh r1, [r4, #0x30] add r0, r4, #0 add r0, #0x66 bl MOD15_021D863C add r0, r0, #3 cmp r0, #4 bhi _021D85C6 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8574: ; jump table .short _021D857E - _021D8574 - 2 ; case 0 .short _021D858E - _021D8574 - 2 ; case 1 .short _021D85C6 - _021D8574 - 2 ; case 2 .short _021D85A2 - _021D8574 - 2 ; case 3 .short _021D858E - _021D8574 - 2 ; case 4 _021D857E: ldr r0, _021D85C8 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x14] mov r1, #0x15 bl MOD15_021D8900 pop {r3, r4, r5, pc} _021D858E: ldr r0, _021D85C8 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x14] mov r1, #0x16 bl MOD15_021D8900 mov r0, #2 str r0, [r5] pop {r3, r4, r5, pc} _021D85A2: ldr r0, _021D85C8 ; =0x000005DC bl FUN_020054C8 ldr r1, _021D85CC ; =MOD15_021D8378 add r0, r4, #0 bl MOD15_021D7794 mov r0, #2 str r0, [r5] pop {r3, r4, r5, pc} _021D85B6: ldr r0, [r4, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D85C6 add r0, r4, #0 bl MOD15_021D83B4 _021D85C6: pop {r3, r4, r5, pc} .align 2, 0 _021D85C8: .word 0x000005DC _021D85CC: .word MOD15_021D8378 thumb_func_start MOD15_021D85D0 MOD15_021D85D0: ; 0x021D85D0 push {r3, lr} add r2, r0, #0 add r1, r2, #0 ldr r0, [r2] add r1, #0x10 add r2, #8 bl FUN_0208545C cmp r0, #0 bne _021D85E8 mov r0, #1 pop {r3, pc} _021D85E8: mov r0, #0 pop {r3, pc} thumb_func_start MOD15_021D85EC MOD15_021D85EC: ; 0x021D85EC push {r3, lr} ldr r1, [r0, #4] cmp r1, #0 beq _021D85FE cmp r1, #1 beq _021D860E cmp r1, #2 beq _021D8624 b _021D862C _021D85FE: ldrh r1, [r0, #0x10] ldr r0, _021D8630 ; =0x0000FFFF cmp r1, r0 beq _021D860A mov r0, #1 pop {r3, pc} _021D860A: mov r0, #0 pop {r3, pc} _021D860E: ldrh r2, [r0, #0x10] ldr r1, _021D8630 ; =0x0000FFFF cmp r2, r1 beq _021D8620 ldrh r0, [r0, #0x12] cmp r0, r1 beq _021D8620 mov r0, #1 pop {r3, pc} _021D8620: mov r0, #0 pop {r3, pc} _021D8624: add r0, #8 bl FUN_02013870 pop {r3, pc} _021D862C: mov r0, #0 pop {r3, pc} .align 2, 0 _021D8630: .word 0x0000FFFF thumb_func_start MOD15_021D8634 MOD15_021D8634: ; 0x021D8634 strb r2, [r0] strb r1, [r0, #1] bx lr .align 2, 0 thumb_func_start MOD15_021D863C MOD15_021D863C: ; 0x021D863C mov r2, #0x40 add r3, r1, #0 tst r3, r2 beq _021D865A ldrb r1, [r0] cmp r1, #0 bne _021D8650 sub r2, #0x44 add r0, r2, #0 bx lr _021D8650: sub r1, r1, #1 sub r2, #0x43 strb r1, [r0] add r0, r2, #0 bx lr _021D865A: mov r2, #0x80 add r3, r1, #0 tst r3, r2 beq _021D867A ldrb r3, [r0] ldrb r1, [r0, #1] cmp r3, r1 bne _021D8670 sub r2, #0x84 add r0, r2, #0 bx lr _021D8670: add r1, r3, #1 sub r2, #0x83 strb r1, [r0] add r0, r2, #0 bx lr _021D867A: mov r2, #1 tst r2, r1 beq _021D8684 ldrb r0, [r0] bx lr _021D8684: mov r0, #2 tst r1, r0 beq _021D868E sub r0, r0, #4 bx lr _021D868E: sub r0, r0, #3 bx lr .align 2, 0 thumb_func_start MOD15_021D8694 MOD15_021D8694: ; 0x021D8694 ldrb r0, [r0] bx lr thumb_func_start MOD15_021D8698 MOD15_021D8698: ; 0x021D8698 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] cmp r0, #0 beq _021D86AA cmp r0, #1 beq _021D86CE pop {r3, r4, r5, pc} _021D86AA: ldr r0, _021D86E0 ; =0x000005E4 bl FUN_020054C8 add r0, r5, #0 add r0, #0x65 ldrb r1, [r0] mov r0, #1 eor r1, r0 add r0, r5, #0 add r0, #0x65 strb r1, [r0] ldr r0, [r5, #0x14] mov r1, #0x17 bl MOD15_021D8900 mov r0, #1 str r0, [r4] pop {r3, r4, r5, pc} _021D86CE: ldr r0, [r5, #0x14] bl MOD15_021D8958 cmp r0, #0 beq _021D86DE add r0, r5, #0 bl MOD15_021D83B4 _021D86DE: pop {r3, r4, r5, pc} .align 2, 0 _021D86E0: .word 0x000005E4 thumb_func_start MOD15_021D86E4 MOD15_021D86E4: ; 0x021D86E4 ldr r0, [r0, #4] bx lr thumb_func_start MOD15_021D86E8 MOD15_021D86E8: ; 0x021D86E8 ldr r3, _021D86F0 ; =0x02085411 ldr r0, [r0] bx r3 nop _021D86F0: .word 0x02085411 thumb_func_start MOD15_021D86F4 MOD15_021D86F4: ; 0x021D86F4 add r0, #0x65 ldrb r0, [r0] bx lr .align 2, 0 thumb_func_start MOD15_021D86FC MOD15_021D86FC: ; 0x021D86FC ldr r3, _021D8704 ; =0x02013921 add r0, #8 bx r3 nop _021D8704: .word 0x02013921 thumb_func_start MOD15_021D8708 MOD15_021D8708: ; 0x021D8708 push {r3, lr} ldr r2, [r0, #4] cmp r2, #2 bne _021D8718 add r0, #8 bl FUN_02013918 pop {r3, pc} _021D8718: lsl r1, r1, #1 add r0, r0, r1 ldrh r0, [r0, #0x10] pop {r3, pc} thumb_func_start MOD15_021D8720 MOD15_021D8720: ; 0x021D8720 ldr r3, _021D8728 ; =0x02013841 add r0, #8 bx r3 nop _021D8728: .word 0x02013841 thumb_func_start MOD15_021D872C MOD15_021D872C: ; 0x021D872C add r0, #0x4e ldrh r0, [r0] bx lr .align 2, 0 thumb_func_start MOD15_021D8734 MOD15_021D8734: ; 0x021D8734 add r0, #0x4c ldrh r0, [r0] bx lr .align 2, 0 thumb_func_start MOD15_021D873C MOD15_021D873C: ; 0x021D873C add r0, #0x50 ldrh r0, [r0] bx lr .align 2, 0 thumb_func_start MOD15_021D8744 MOD15_021D8744: ; 0x021D8744 push {r3, lr} add r1, r0, #0 add r0, #0x65 ldrb r0, [r0] cmp r0, #0 ldr r0, [r1, #0x18] bne _021D875C add r1, #0x50 ldrh r1, [r1] bl FUN_020892C4 pop {r3, pc} _021D875C: add r1, #0x50 ldrh r1, [r1] bl FUN_02089300 pop {r3, pc} .align 2, 0 thumb_func_start MOD15_021D8768 MOD15_021D8768: ; 0x021D8768 push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0x65 ldrb r0, [r0] add r4, r1, #0 add r3, r2, #0 cmp r0, #0 ldr r0, [r5, #0x18] bne _021D8786 add r5, #0x50 ldrh r1, [r5] add r2, r4, #0 bl FUN_020892CC pop {r3, r4, r5, pc} _021D8786: add r5, #0x50 ldrh r1, [r5] add r2, r4, #0 bl FUN_02089310 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D8794 MOD15_021D8794: ; 0x021D8794 ldr r3, _021D879C ; =MOD15_021D801C add r0, #0x54 bx r3 nop _021D879C: .word MOD15_021D801C thumb_func_start MOD15_021D87A0 MOD15_021D87A0: ; 0x021D87A0 ldr r3, _021D87A8 ; =MOD15_021D8038 add r0, #0x54 bx r3 nop _021D87A8: .word MOD15_021D8038 thumb_func_start MOD15_021D87AC MOD15_021D87AC: ; 0x021D87AC push {r3, lr} add r0, #0x54 bl MOD15_021D803C cmp r0, #0 beq _021D87BC mov r0, #1 pop {r3, pc} _021D87BC: mov r0, #0 pop {r3, pc} thumb_func_start MOD15_021D87C0 MOD15_021D87C0: ; 0x021D87C0 push {r3, r4, r5, lr} add r5, r0, #0 add r0, #0x54 bl MOD15_021D803C add r5, #0x54 add r4, r0, #0 add r0, r5, #0 bl MOD15_021D8040 cmp r4, r0 bge _021D87DC mov r0, #1 pop {r3, r4, r5, pc} _021D87DC: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D87E0 MOD15_021D87E0: ; 0x021D87E0 ldr r3, _021D87E8 ; =0x02085415 ldr r0, [r0] bx r3 nop _021D87E8: .word 0x02085415 thumb_func_start MOD15_021D87EC MOD15_021D87EC: ; 0x021D87EC ldr r3, _021D87F4 ; =MOD15_021D8694 add r0, #0x66 bx r3 nop _021D87F4: .word MOD15_021D8694 thumb_func_start MOD15_021D87F8 MOD15_021D87F8: ; 0x021D87F8 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r6, r1, #0 mov r1, #0x7d add r5, r0, #0 mov r0, #0x23 lsl r1, r1, #2 bl FUN_02016998 add r4, r0, #0 beq _021D8878 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C str r5, [r4, #0x18] str r6, [r4, #0x1c] bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x80 str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x20 str r3, [sp, #0xc] mov r2, #0x23 str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC add r1, r4, #0 mov r0, #0x80 add r1, #0x28 mov r2, #0x23 bl FUN_02008C9C str r0, [r4, #0x24] mov r0, #0x23 bl FUN_02016B94 str r0, [r4, #0x20] ldr r0, _021D8880 ; =MOD15_021D88D8 add r1, r4, #0 mov r2, #2 bl FUN_0200CA44 str r0, [r4] ldr r0, _021D8884 ; =MOD15_021D88DC add r1, r4, #0 mov r2, #1 bl MOD15_021D88D0 mov r1, #0 str r0, [r4, #4] add r2, r4, #0 add r0, r1, #0 _021D886E: add r1, r1, #1 str r0, [r2, #8] add r2, r2, #4 cmp r1, #4 blt _021D886E _021D8878: add r0, r4, #0 add sp, #0x14 pop {r3, r4, r5, r6, pc} nop _021D8880: .word MOD15_021D88D8 _021D8884: .word MOD15_021D88DC thumb_func_start MOD15_021D8888 MOD15_021D8888: ; 0x021D8888 push {r4, r5, r6, lr} add r6, r0, #0 beq _021D88CE mov r0, #0 add r1, r0, #0 bl FUN_02015F10 mov r4, #0 add r5, r6, #0 _021D889A: ldr r0, [r5, #8] cmp r0, #0 beq _021D88A4 bl FUN_0200CAB4 _021D88A4: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D889A ldr r0, [r6] bl FUN_0200CAB4 ldr r0, [r6, #4] bl FUN_0200CAB4 bl FUN_02009FA0 ldr r0, [r6, #0x24] bl FUN_0201FD58 ldr r0, [r6, #0x20] bl FUN_02016A18 add r0, r6, #0 bl FUN_02016A18 _021D88CE: pop {r4, r5, r6, pc} thumb_func_start MOD15_021D88D0 MOD15_021D88D0: ; 0x021D88D0 ldr r3, _021D88D4 ; =0x0200CA61 bx r3 .align 2, 0 _021D88D4: .word 0x0200CA61 thumb_func_start MOD15_021D88D8 MOD15_021D88D8: ; 0x021D88D8 bx lr .align 2, 0 thumb_func_start MOD15_021D88DC MOD15_021D88DC: ; 0x021D88DC push {r3, lr} ldr r0, [r1, #0x24] bl FUN_0201FDEC bl FUN_02009F80 ldr r3, _021D88F8 ; =0x027E0000 ldr r1, _021D88FC ; =0x00003FF8 mov r0, #1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r3, pc} nop _021D88F8: .word 0x027E0000 _021D88FC: .word 0x00003FF8 thumb_func_start MOD15_021D8900 MOD15_021D8900: ; 0x021D8900 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 cmp r6, #0x1d bhs _021D894E mov r0, #0x23 mov r1, #0x18 bl FUN_02016998 add r1, r0, #0 beq _021D8952 mov r4, #0 str r4, [r1, #0x14] str r6, [r1, #0xc] str r5, [r1] ldr r0, [r5, #0x18] add r2, r5, #0 str r0, [r1, #4] ldr r0, [r5, #0x1c] str r0, [r1, #8] _021D8928: ldr r0, [r2, #8] cmp r0, #0 bne _021D8944 ldr r0, _021D8954 ; =0x021DB98C lsl r2, r6, #2 ldr r0, [r0, r2] mov r2, #1 str r4, [r1, #0x10] bl FUN_0200CA44 lsl r1, r4, #2 add r1, r5, r1 str r0, [r1, #8] pop {r4, r5, r6, pc} _021D8944: add r4, r4, #1 add r2, r2, #4 cmp r4, #4 blt _021D8928 pop {r4, r5, r6, pc} _021D894E: bl ErrorHandling _021D8952: pop {r4, r5, r6, pc} .align 2, 0 _021D8954: .word 0x021DB98C thumb_func_start MOD15_021D8958 MOD15_021D8958: ; 0x021D8958 mov r2, #0 _021D895A: ldr r1, [r0, #8] cmp r1, #0 beq _021D8964 mov r0, #0 bx lr _021D8964: add r2, r2, #1 add r0, r0, #4 cmp r2, #4 blt _021D895A mov r0, #1 bx lr thumb_func_start MOD15_021D8970 MOD15_021D8970: ; 0x021D8970 push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r4, #0 _021D8978: ldr r0, [r5, #8] cmp r0, #0 beq _021D898C bl FUN_0201B6C8 ldr r0, [r0, #0xc] cmp r0, r6 bne _021D898C mov r0, #0 pop {r4, r5, r6, pc} _021D898C: add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D8978 mov r0, #1 pop {r4, r5, r6, pc} thumb_func_start MOD15_021D8998 MOD15_021D8998: ; 0x021D8998 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] ldr r1, [r4] lsl r0, r0, #2 add r0, r1, r0 ldr r0, [r0, #8] bl FUN_0200CAB4 ldr r0, [r4, #0x10] ldr r1, [r4] lsl r0, r0, #2 mov r2, #0 add r0, r1, r0 str r2, [r0, #8] add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021D89C0 MOD15_021D89C0: ; 0x021D89C0 push {r3, r4, r5, lr} add r4, r1, #0 bl FUN_0201E6D8 bl FUN_0201E740 mov r1, #1 lsl r1, r1, #0x1a ldr r0, [r1] ldr r2, _021D8AA4 ; =0xFFFFE0FF and r0, r2 str r0, [r1] ldr r0, _021D8AA8 ; =0x04001000 ldr r3, [r0] and r2, r3 str r2, [r0] ldr r2, [r1] ldr r3, _021D8AAC ; =0xFFCFFFEF add r5, r2, #0 ldr r2, _021D8AB0 ; =0x00100010 and r5, r3 orr r2, r5 str r2, [r1] ldr r1, [r0] add r2, r1, #0 and r2, r3 mov r1, #0x10 orr r1, r2 str r1, [r0] add r0, r4, #0 bl MOD15_021D8C30 add r0, r4, #0 bl MOD15_021D8AB4 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] bl MOD15_021D95E8 mov r1, #0x1e ldr r2, [r4] lsl r1, r1, #4 str r0, [r2, r1] ldr r0, [r4] ldr r0, [r0, r1] bl MOD15_021D9694 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] bl MOD15_021D9FA0 mov r1, #0x79 ldr r2, [r4] lsl r1, r1, #2 str r0, [r2, r1] ldr r0, [r4] ldr r0, [r0, r1] bl MOD15_021D9FD4 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] bl MOD15_021DA18C mov r1, #0x7a ldr r2, [r4] lsl r1, r1, #2 str r0, [r2, r1] ldr r0, [r4] ldr r0, [r0, r1] bl MOD15_021DA1D0 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] bl MOD15_021DA828 mov r1, #0x7b ldr r2, [r4] lsl r1, r1, #2 str r0, [r2, r1] ldr r0, [r4] ldr r0, [r0, r1] bl MOD15_021DA8E8 ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] bl MOD15_021DAE68 mov r1, #0x1f ldr r2, [r4] lsl r1, r1, #4 str r0, [r2, r1] ldr r0, [r4] ldr r0, [r0, r1] bl MOD15_021DAEB4 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E74C bl GX_DispOn add r0, r4, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} .align 2, 0 _021D8AA4: .word 0xFFFFE0FF _021D8AA8: .word 0x04001000 _021D8AAC: .word 0xFFCFFFEF _021D8AB0: .word 0x00100010 thumb_func_start MOD15_021D8AB4 MOD15_021D8AB4: ; 0x021D8AB4 push {r3, r4, lr} sub sp, #0x14 ldr r4, [r0] mov r0, #0x66 lsl r0, r0, #2 add r0, r4, r0 bl FUN_020B19DC mov r0, #0x6b lsl r0, r0, #2 add r0, r4, r0 bl FUN_020B19DC mov r0, #0x15 lsl r0, r0, #4 add r0, r4, r0 bl FUN_020B1A24 mov r0, #0x5d lsl r0, r0, #2 add r0, r4, r0 bl FUN_020B1A24 mov r3, #0 str r3, [sp] mov r2, #1 str r2, [sp, #4] str r3, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] mov r0, #0x15 lsl r0, r0, #4 add r0, r4, r0 str r0, [sp, #0x10] mov r0, #0x4c mov r1, #9 bl FUN_02006AE4 mov r0, #0x23 str r0, [sp] mov r0, #0x66 lsl r0, r0, #2 add r0, r4, r0 str r0, [sp, #4] mov r0, #0x4c mov r1, #0xa mov r2, #1 mov r3, #0 bl FUN_02006A8C mov r1, #7 mov r0, #0x23 lsl r3, r1, #6 str r0, [sp] mov r0, #0x4c mov r2, #1 add r3, r4, r3 bl FUN_02006C30 mov r3, #0x1d lsl r3, r3, #4 str r0, [r4, r3] mov r0, #0x23 sub r3, #8 str r0, [sp] mov r0, #0x4c mov r1, #8 mov r2, #1 add r3, r4, r3 bl FUN_02006C5C mov r1, #0x76 lsl r1, r1, #2 str r0, [r4, r1] mov r2, #0 sub r0, r1, #4 str r2, [r4, r0] add r0, r1, #4 str r2, [r4, r0] add sp, #0x14 pop {r3, r4, pc} .align 2, 0 thumb_func_start MOD15_021D8B58 MOD15_021D8B58: ; 0x021D8B58 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r1, #0 ldr r0, [r6, #0x14] ldr r7, [r6] cmp r0, #0 beq _021D8B6E cmp r0, #1 beq _021D8B90 add sp, #0xc pop {r4, r5, r6, r7, pc} _021D8B6E: mov r0, #5 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x23 str r0, [sp, #8] mov r0, #0 add r1, r0, #0 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 ldr r0, [r6, #0x14] add sp, #0xc add r0, r0, #1 str r0, [r6, #0x14] pop {r4, r5, r6, r7, pc} _021D8B90: bl FUN_0200E308 cmp r0, #0 beq _021D8C2A mov r0, #0x1e ldr r1, [r6] lsl r0, r0, #4 ldr r0, [r1, r0] bl MOD15_021D9634 mov r0, #0x79 ldr r1, [r6] lsl r0, r0, #2 ldr r0, [r1, r0] bl MOD15_021D9FBC mov r0, #0x7a ldr r1, [r6] lsl r0, r0, #2 ldr r0, [r1, r0] bl MOD15_021DA1B8 mov r0, #0x7b ldr r1, [r6] lsl r0, r0, #2 ldr r0, [r1, r0] bl MOD15_021DA8A4 mov r0, #0x1f ldr r1, [r6] lsl r0, r0, #4 ldr r0, [r1, r0] bl MOD15_021DAEA4 mov r4, #0 add r5, r7, #0 _021D8BD8: mov r0, #0x1d lsl r0, r0, #4 ldr r0, [r5, r0] cmp r0, #0 beq _021D8BE6 bl FUN_02016A18 _021D8BE6: mov r0, #0x76 lsl r0, r0, #2 ldr r0, [r5, r0] cmp r0, #0 beq _021D8BF4 bl FUN_02016A18 _021D8BF4: add r4, r4, #1 add r5, r5, #4 cmp r4, #2 blt _021D8BD8 ldr r0, [r7, #0x20] mov r1, #0 bl FUN_020178A0 ldr r0, [r7, #0x20] mov r1, #1 bl FUN_020178A0 ldr r0, [r7, #0x20] mov r1, #2 bl FUN_020178A0 ldr r0, [r7, #0x20] mov r1, #3 bl FUN_020178A0 ldr r0, [r7, #0x20] mov r1, #4 bl FUN_020178A0 add r0, r6, #0 bl MOD15_021D8998 _021D8C2A: add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD15_021D8C30 MOD15_021D8C30: ; 0x021D8C30 push {r4, lr} ldr r2, _021D8C94 ; =0x04000304 ldr r4, [r0] ldrh r1, [r2] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2] mov r0, #1 mov r1, #0 add r2, r0, #0 bl GX_SetGraphicsMode ldr r0, _021D8C98 ; =0x021DB964 bl FUN_0201E66C ldr r0, _021D8C9C ; =0x021DB8C8 bl FUN_02016BBC mov r1, #0 ldr r0, [r4, #0x20] ldr r2, _021D8CA0 ; =0x021DB910 add r3, r1, #0 bl FUN_02016C18 ldr r0, [r4, #0x20] ldr r2, _021D8CA4 ; =0x021DB8D8 mov r1, #1 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #0x20] ldr r2, _021D8CA8 ; =0x021DB948 mov r1, #2 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #0x20] ldr r2, _021D8CAC ; =0x021DB8F4 mov r1, #3 mov r3, #0 bl FUN_02016C18 ldr r0, [r4, #0x20] ldr r2, _021D8CB0 ; =0x021DB92C mov r1, #4 mov r3, #0 bl FUN_02016C18 pop {r4, pc} nop _021D8C94: .word 0x04000304 _021D8C98: .word 0x021DB964 _021D8C9C: .word 0x021DB8C8 _021D8CA0: .word 0x021DB910 _021D8CA4: .word 0x021DB8D8 _021D8CA8: .word 0x021DB948 _021D8CAC: .word 0x021DB8F4 _021D8CB0: .word 0x021DB92C thumb_func_start MOD15_021D8CB4 MOD15_021D8CB4: ; 0x021D8CB4 push {r3, r4, lr} sub sp, #0xc add r4, r1, #0 ldr r0, [r4, #0x14] cmp r0, #0 beq _021D8CC6 cmp r0, #1 beq _021D8CE6 b _021D8CF8 _021D8CC6: mov r0, #5 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x23 str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 ldr r0, [r4, #0x14] add sp, #0xc add r0, r0, #1 str r0, [r4, #0x14] pop {r3, r4, pc} _021D8CE6: bl FUN_0200E308 cmp r0, #0 beq _021D8CFE ldr r0, [r4, #0x14] add sp, #0xc add r0, r0, #1 str r0, [r4, #0x14] pop {r3, r4, pc} _021D8CF8: add r0, r4, #0 bl MOD15_021D8998 _021D8CFE: add sp, #0xc pop {r3, r4, pc} .align 2, 0 thumb_func_start MOD15_021D8D04 MOD15_021D8D04: ; 0x021D8D04 push {r3, r4, r5, lr} add r5, r1, #0 mov r0, #0x1e ldr r4, [r5] lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9964 ldr r0, [r5, #4] bl MOD15_021D872C add r1, r0, #0 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9E3C add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D8D30 MOD15_021D8D30: ; 0x021D8D30 push {r3, r4, r5, lr} add r5, r1, #0 mov r0, #0x1e ldr r4, [r5] lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021D9DD8 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9DEC mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021DA10C ldr r0, [r4, #0x18] bl MOD15_021D8734 add r1, r0, #0 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA124 add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D8D74 MOD15_021D8D74: ; 0x021D8D74 push {r3, r4, r5, lr} add r5, r1, #0 mov r0, #0x79 ldr r4, [r5] lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DA10C mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9E0C mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021D9DD8 add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D8DA4 MOD15_021D8DA4: ; 0x021D8DA4 push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x14] ldr r4, [r5] cmp r0, #0 beq _021D8DB6 cmp r0, #1 beq _021D8DDC pop {r3, r4, r5, pc} _021D8DB6: mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9DC0 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9DEC mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA638 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D8DDC: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA650 cmp r0, #0 beq _021D8E18 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA164 ldr r0, [r4, #0x18] bl MOD15_021D873C add r1, r0, #0 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA5B4 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021DA588 add r0, r5, #0 bl MOD15_021D8998 _021D8E18: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D8E1C MOD15_021D8E1C: ; 0x021D8E1C push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x14] ldr r4, [r5] cmp r0, #0 beq _021D8E32 cmp r0, #1 beq _021D8E44 cmp r0, #2 beq _021D8E56 pop {r3, r4, r5, pc} _021D8E32: mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021DB2D0 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D8E44: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA7E8 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D8E56: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA81C cmp r0, #0 beq _021D8E82 mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021DB358 cmp r0, #0 beq _021D8E82 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA7C4 add r0, r5, #0 bl MOD15_021D8998 _021D8E82: pop {r3, r4, r5, pc} thumb_func_start MOD15_021D8E84 MOD15_021D8E84: ; 0x021D8E84 push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x14] ldr r4, [r5] cmp r0, #3 bhi _021D8F26 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D8E9C: ; jump table .short _021D8EA4 - _021D8E9C - 2 ; case 0 .short _021D8EB6 - _021D8E9C - 2 ; case 1 .short _021D8ED4 - _021D8E9C - 2 ; case 2 .short _021D8EF4 - _021D8E9C - 2 ; case 3 _021D8EA4: mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021DB2D0 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D8EB6: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DA588 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA7E8 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D8ED4: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA81C cmp r0, #0 beq _021D8F26 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA7C4 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D8EF4: mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021DB358 cmp r0, #0 beq _021D8F26 ldr r0, [r4, #0x18] bl MOD15_021D873C add r1, r0, #0 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA5B4 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021DA588 add r0, r5, #0 bl MOD15_021D8998 _021D8F26: pop {r3, r4, r5, pc} thumb_func_start MOD15_021D8F28 MOD15_021D8F28: ; 0x021D8F28 push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x14] ldr r4, [r5] cmp r0, #0 beq _021D8F3A cmp r0, #1 beq _021D8F62 pop {r3, r4, r5, pc} _021D8F3A: mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA178 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DA588 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA6A0 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D8F62: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA6C4 cmp r0, #0 beq _021D8F8A mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9E0C mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9DCC add r0, r5, #0 bl MOD15_021D8998 _021D8F8A: pop {r3, r4, r5, pc} thumb_func_start MOD15_021D8F8C MOD15_021D8F8C: ; 0x021D8F8C push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x14] ldr r4, [r5] cmp r0, #0 beq _021D8FA2 cmp r0, #1 beq _021D8FCA cmp r0, #2 beq _021D8FEA pop {r3, r4, r5, pc} _021D8FA2: mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA9D4 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DA588 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA744 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D8FCA: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA760 cmp r0, #0 beq _021D9028 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DAA24 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D8FEA: mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DAAD0 cmp r0, #0 beq _021D9028 ldr r0, [r4, #0x18] bl MOD15_021D8794 add r1, r0, #0 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DABC0 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021DAB80 mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021DB4E8 add r0, r5, #0 bl MOD15_021D8998 _021D9028: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D902C MOD15_021D902C: ; 0x021D902C push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x14] ldr r4, [r5] cmp r0, #4 bhi _021D90FC add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9044: ; jump table .short _021D904E - _021D9044 - 2 ; case 0 .short _021D9060 - _021D9044 - 2 ; case 1 .short _021D908A - _021D9044 - 2 ; case 2 .short _021D90AA - _021D9044 - 2 ; case 3 .short _021D90BC - _021D9044 - 2 ; case 4 _021D904E: mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021DB2D0 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D9060: mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DAB80 mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DB4E8 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DAAF4 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D908A: mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DAB18 cmp r0, #0 beq _021D90FC mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA7C4 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D90AA: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA77C ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D90BC: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA7B8 cmp r0, #0 beq _021D90FC mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021DB358 cmp r0, #0 beq _021D90FC ldr r0, [r4, #0x18] bl MOD15_021D873C add r1, r0, #0 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA5B4 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021DA588 add r0, r5, #0 bl MOD15_021D8998 _021D90FC: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D9100 MOD15_021D9100: ; 0x021D9100 push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x14] ldr r4, [r5] cmp r0, #3 bhi _021D91DC add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9118: ; jump table .short _021D9120 - _021D9118 - 2 ; case 0 .short _021D9154 - _021D9118 - 2 ; case 1 .short _021D917E - _021D9118 - 2 ; case 2 .short _021D919E - _021D9118 - 2 ; case 3 _021D9120: mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA178 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DAB80 mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DB4E8 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DAAF4 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D9154: mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DAB18 cmp r0, #0 beq _021D91DC mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA710 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA77C ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D917E: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA7B8 cmp r0, #0 beq _021D91DC mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA720 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D919E: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA738 cmp r0, #0 beq _021D91DC mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9964 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021D9DD8 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9E0C mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9DCC add r0, r5, #0 bl MOD15_021D8998 _021D91DC: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D91E0 MOD15_021D91E0: ; 0x021D91E0 push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x14] ldr r4, [r5] cmp r0, #3 bhi _021D92B4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D91F8: ; jump table .short _021D9200 - _021D91F8 - 2 ; case 0 .short _021D9234 - _021D91F8 - 2 ; case 1 .short _021D925E - _021D91F8 - 2 ; case 2 .short _021D927E - _021D91F8 - 2 ; case 3 _021D9200: mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA178 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DAB80 mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021DB4E8 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DAAF4 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D9234: mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DAB18 cmp r0, #0 beq _021D92B4 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA710 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA77C ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D925E: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA7B8 cmp r0, #0 beq _021D92B4 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA720 ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D927E: mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA738 cmp r0, #0 beq _021D92B4 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9964 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021D9DD8 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021DA10C add r0, r5, #0 bl MOD15_021D8998 _021D92B4: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D92B8 MOD15_021D92B8: ; 0x021D92B8 push {r3, r4, r5, lr} add r5, r1, #0 ldr r4, [r5] ldr r0, [r4, #0x18] bl MOD15_021D872C add r1, r0, #0 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9E3C add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D92D8 MOD15_021D92D8: ; 0x021D92D8 push {r3, r4, r5, lr} add r5, r1, #0 ldr r4, [r5] ldr r0, [r4, #0x18] bl MOD15_021D8734 add r1, r0, #0 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA124 add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D92F8 MOD15_021D92F8: ; 0x021D92F8 push {r3, r4, r5, lr} add r5, r1, #0 ldr r4, [r5] ldr r0, [r4, #0x18] bl MOD15_021D873C add r1, r0, #0 mov r0, #0x7a lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA5B4 add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D9318 MOD15_021D9318: ; 0x021D9318 push {r3, r4, r5, lr} add r5, r1, #0 ldr r4, [r5] ldr r0, [r4, #0x18] bl MOD15_021D8794 add r1, r0, #0 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DABC0 add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D9338 MOD15_021D9338: ; 0x021D9338 push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #0x14] ldr r4, [r5] cmp r0, #0 beq _021D934A cmp r0, #1 beq _021D9364 pop {r3, r4, r5, pc} _021D934A: ldr r0, [r4, #0x18] bl MOD15_021D87A0 add r1, r0, #0 mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DABFC ldr r0, [r5, #0x14] add r0, r0, #1 str r0, [r5, #0x14] pop {r3, r4, r5, pc} _021D9364: mov r0, #0x7b lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DACB8 cmp r0, #0 beq _021D9384 mov r0, #0x1f lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl MOD15_021DB4E8 add r0, r5, #0 bl MOD15_021D8998 _021D9384: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D9388 MOD15_021D9388: ; 0x021D9388 push {r4, lr} add r4, r1, #0 mov r0, #0x1e ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #0 bl MOD15_021D9CB4 add r0, r4, #0 bl MOD15_021D8998 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021D93A4 MOD15_021D93A4: ; 0x021D93A4 push {r3, r4, r5, lr} add r5, r1, #0 mov r0, #0x1e ldr r4, [r5] lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #2 bl MOD15_021D9CB4 ldr r0, [r5, #4] bl MOD15_021D87EC add r1, r0, #0 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9ECC mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA118 cmp r0, #0 beq _021D93E2 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA0F4 b _021D93EC _021D93E2: mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9DC0 _021D93EC: add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D93F4 MOD15_021D93F4: ; 0x021D93F4 push {r3, r4, r5, lr} add r5, r1, #0 mov r0, #0x1e ldr r4, [r5] lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #3 bl MOD15_021D9CB4 ldr r0, [r5, #4] bl MOD15_021D87EC add r1, r0, #0 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9ECC mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA118 cmp r0, #0 beq _021D9432 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA0F4 b _021D943C _021D9432: mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9DC0 _021D943C: add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D9444 MOD15_021D9444: ; 0x021D9444 push {r4, lr} add r4, r1, #0 mov r0, #0x1e ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #1 bl MOD15_021D9CB4 add r0, r4, #0 bl MOD15_021D8998 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021D9460 MOD15_021D9460: ; 0x021D9460 push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5, #4] ldr r4, [r5] bl MOD15_021D87EC add r1, r0, #0 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9F58 add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D9480 MOD15_021D9480: ; 0x021D9480 push {r3, r4, r5, lr} add r5, r1, #0 mov r0, #0x1e ldr r4, [r5] lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD15_021D9CB4 mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9F88 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA118 cmp r0, #0 beq _021D94B6 mov r0, #0x79 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD15_021DA100 b _021D94C0 _021D94B6: mov r0, #0x1e lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD15_021D9DCC _021D94C0: add r0, r5, #0 bl MOD15_021D8998 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D94C8 MOD15_021D94C8: ; 0x021D94C8 push {r4, lr} add r4, r1, #0 mov r0, #0x1f ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #0 mov r2, #1 bl MOD15_021DB520 add r0, r4, #0 bl MOD15_021D8998 pop {r4, pc} thumb_func_start MOD15_021D94E4 MOD15_021D94E4: ; 0x021D94E4 push {r4, lr} add r4, r1, #0 mov r0, #0x1f ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #1 add r2, r1, #0 bl MOD15_021DB520 add r0, r4, #0 bl MOD15_021D8998 pop {r4, pc} thumb_func_start MOD15_021D9500 MOD15_021D9500: ; 0x021D9500 push {r4, lr} add r4, r1, #0 mov r0, #0x1f ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #0 add r2, r1, #0 bl MOD15_021DB520 add r0, r4, #0 bl MOD15_021D8998 pop {r4, pc} thumb_func_start MOD15_021D951C MOD15_021D951C: ; 0x021D951C push {r4, lr} add r4, r1, #0 mov r0, #0x1f ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #1 mov r2, #0 bl MOD15_021DB520 add r0, r4, #0 bl MOD15_021D8998 pop {r4, pc} thumb_func_start MOD15_021D9538 MOD15_021D9538: ; 0x021D9538 mov r1, #0x1e lsl r1, r1, #4 ldr r3, _021D9544 ; =MOD15_021D9CB0 ldr r0, [r0, r1] bx r3 nop _021D9544: .word MOD15_021D9CB0 thumb_func_start MOD15_021D9548 MOD15_021D9548: ; 0x021D9548 ldr r0, [r0, #0x20] bx lr thumb_func_start MOD15_021D954C MOD15_021D954C: ; 0x021D954C ldr r0, [r0, #0x24] bx lr thumb_func_start MOD15_021D9550 MOD15_021D9550: ; 0x021D9550 push {r3, r4, r5, r6} mov r4, #0x15 lsl r4, r4, #4 mov r5, #0x24 add r6, r0, r4 mul r5, r2 add r5, r6, r5 str r5, [r1] add r5, r4, #0 add r5, #0x48 add r6, r0, r5 mov r5, #0x14 mul r5, r2 lsl r2, r2, #2 add r5, r6, r5 add r2, r0, r2 add r0, r4, #0 str r5, [r1, #8] add r0, #0x70 ldr r0, [r2, r0] add r4, #0x78 str r0, [r1, #0xc] ldr r0, [r2, r4] str r0, [r1, #0x10] add r0, r1, #0 add r0, #0x20 strb r3, [r0] mov r0, #0 str r0, [r1, #4] str r0, [r1, #0x14] str r0, [r1, #0x18] str r0, [r1, #0x1c] pop {r3, r4, r5, r6} bx lr thumb_func_start MOD15_021D9594 MOD15_021D9594: ; 0x021D9594 push {r3, r4, r5, lr} sub sp, #0x20 ldr r0, [r0, #0x24] str r0, [sp] lsl r0, r2, #0xc str r0, [sp, #8] lsl r0, r3, #0xc str r0, [sp, #0xc] mov r0, #0 str r0, [sp, #0x10] ldr r0, [sp, #0x30] str r1, [sp, #4] str r0, [sp, #0x14] ldr r0, [sp, #0x34] str r0, [sp, #0x18] mov r0, #0x23 str r0, [sp, #0x1c] bl OS_DisableInterrupts add r4, r0, #0 add r0, sp, #0 bl FUN_0201FF84 add r5, r0, #0 add r0, r4, #0 bl OS_RestoreInterrupts cmp r5, #0 beq _021D95E0 add r0, r5, #0 mov r1, #1 bl FUN_020200BC mov r1, #1 add r0, r5, #0 lsl r1, r1, #0xc bl FUN_020200D8 _021D95E0: add r0, r5, #0 add sp, #0x20 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D95E8 MOD15_021D95E8: ; 0x021D95E8 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 mov r1, #0x1b add r5, r0, #0 mov r0, #0x23 lsl r1, r1, #4 add r7, r2, #0 bl FUN_02016998 add r4, r0, #0 str r5, [r4] str r6, [r4, #4] str r7, [r4, #8] mov r0, #0 str r0, [r4, #0x3c] str r0, [r4, #0x40] str r0, [r4, #0x44] mov r0, #0x80 mov r1, #0x23 bl FUN_020219F4 str r0, [r4, #0x4c] ldr r2, _021D9630 ; =0x00000182 mov r0, #0 mov r1, #0x1a mov r3, #0x23 bl FUN_0200A86C str r0, [r4, #0x48] mov r0, #0x23 bl FUN_02013690 str r0, [r4, #0x50] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} nop _021D9630: .word 0x00000182 thumb_func_start MOD15_021D9634 MOD15_021D9634: ; 0x021D9634 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x50] cmp r0, #0 beq _021D9642 bl FUN_020136C0 _021D9642: ldr r0, [r4, #0x3c] cmp r0, #0 beq _021D964C bl FUN_0201FFC8 _021D964C: ldr r0, [r4, #0x40] cmp r0, #0 beq _021D9656 bl FUN_0201FFC8 _021D9656: ldr r0, [r4, #0x44] cmp r0, #0 beq _021D9660 bl FUN_0201FFC8 _021D9660: ldr r0, [r4, #0x48] cmp r0, #0 beq _021D966A bl FUN_0200A8B8 _021D966A: ldr r0, [r4, #0x4c] cmp r0, #0 beq _021D9674 bl FUN_02021A20 _021D9674: add r0, r4, #0 add r0, #0xc bl FUN_02019178 add r0, r4, #0 add r0, #0x1c bl FUN_02019178 add r0, r4, #0 add r0, #0x2c bl FUN_02019178 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} thumb_func_start MOD15_021D9694 MOD15_021D9694: ; 0x021D9694 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r5, r0, #0 ldr r0, [r5] bl MOD15_021D9548 add r6, r0, #0 add r0, r5, #0 bl MOD15_021D97E4 mov r1, #0 str r1, [sp] str r1, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] mov r0, #0x4c add r2, r6, #0 add r3, r1, #0 bl FUN_020068C8 mov r3, #0 str r3, [sp] str r3, [sp, #4] mov r1, #1 str r1, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] mov r0, #0x4c add r2, r6, #0 bl FUN_0200687C lsr r4, r0, #5 mov r0, #1 str r0, [sp] mov r0, #0x1b str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r2, #0 lsl r0, r4, #0x10 add r1, r5, #0 str r2, [sp, #0xc] lsr r0, r0, #0x10 str r0, [sp, #0x10] add r0, r6, #0 add r1, #0xc mov r3, #3 bl FUN_02019064 mov r0, #0x15 str r0, [sp] mov r0, #0x1b str r0, [sp, #4] mov r3, #2 add r1, r5, #0 str r3, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] add r0, r4, #0 add r0, #0x6c lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] add r0, r6, #0 add r1, #0x1c mov r2, #0 bl FUN_02019064 mov r0, #0xf str r0, [sp] mov r0, #8 str r0, [sp, #4] mov r0, #4 str r0, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] add r0, r4, #0 add r0, #0xa2 lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r5, #0 str r0, [sp, #0x10] add r0, r6, #0 add r1, #0x2c mov r2, #0 mov r3, #0x17 bl FUN_02019064 add r0, r4, #0 add r0, #0xc2 str r0, [sp] mov r1, #0 str r1, [sp, #4] str r1, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] mov r0, #0x26 add r2, r6, #0 add r3, r1, #0 bl FUN_0200687C add r0, r4, #0 add r0, #0xc2 str r0, [r5, #0x60] mov r0, #0x20 str r0, [sp] mov r0, #0x23 mov r3, #7 str r0, [sp, #4] mov r0, #0x26 mov r1, #0x18 mov r2, #0 lsl r3, r3, #6 bl FUN_02006930 ldr r0, [r5, #4] bl MOD15_021D87E0 lsl r0, r0, #0x18 add r2, r4, #0 lsr r0, r0, #0x18 add r2, #0xcb str r0, [sp] mov r0, #0x23 lsl r2, r2, #0x10 str r0, [sp, #4] add r0, r6, #0 mov r1, #0 lsr r2, r2, #0x10 mov r3, #0xf bl FUN_0200CD68 add r0, r5, #0 add r4, #0xcb add r0, #0x1c add r1, r4, #0 mov r2, #0xf bl FUN_0200D06C add r0, r5, #0 add r0, #0xc bl FUN_02019270 add r0, r5, #0 add r0, #0x1c bl FUN_02019270 add r0, r5, #0 bl MOD15_021D9868 add r0, r5, #0 bl MOD15_021D9964 add r0, r5, #0 mov r1, #0 bl MOD15_021D9CB4 add r0, r5, #0 bl MOD15_021D98C0 add r0, r6, #0 mov r1, #0 bl FUN_02017CD0 add sp, #0x14 pop {r3, r4, r5, r6, pc} thumb_func_start MOD15_021D97E4 MOD15_021D97E4: ; 0x021D97E4 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 mov r0, #7 lsl r0, r0, #6 str r0, [sp] mov r0, #0x23 mov r2, #0 str r0, [sp, #4] mov r0, #0x4c mov r1, #6 add r3, r2, #0 bl FUN_02006930 mov r0, #0x4c mov r1, #6 add r2, sp, #8 mov r3, #0x23 bl FUN_02006C08 add r4, r0, #0 ldr r0, [sp, #8] add r1, r5, #0 mov r2, #5 ldr r0, [r0, #0xc] add r1, #0x70 lsl r2, r2, #6 bl MIi_CpuCopy16 add r5, #0x70 mov r1, #5 add r0, r5, #0 lsl r1, r1, #6 bl DC_FlushRange add r0, r4, #0 bl FUN_02016A18 add sp, #0xc pop {r4, r5, pc} thumb_func_start MOD15_021D9834 MOD15_021D9834: ; 0x021D9834 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl MOD15_021D86E4 cmp r0, #2 bne _021D985A ldr r0, [r4, #4] bl MOD15_021D86FC add r0, r0, #1 add r4, #0x70 lsl r0, r0, #5 add r0, r4, r0 mov r1, #0 mov r2, #0x20 bl GX_LoadBGPltt pop {r4, pc} _021D985A: add r4, #0x70 add r0, r4, #0 mov r1, #0 mov r2, #0x20 bl GX_LoadBGPltt pop {r4, pc} thumb_func_start MOD15_021D9868 MOD15_021D9868: ; 0x021D9868 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl MOD15_021D86E4 cmp r0, #0 beq _021D9880 cmp r0, #1 beq _021D9896 cmp r0, #2 beq _021D98BA pop {r4, pc} _021D9880: add r0, r4, #0 mov r1, #0x68 add r0, #0x54 strh r1, [r0] add r0, r4, #0 mov r1, #0x10 add r0, #0x56 strh r1, [r0] mov r0, #1 str r0, [r4, #0x5c] pop {r4, pc} _021D9896: add r0, r4, #0 mov r1, #0x30 add r0, #0x54 strh r1, [r0] add r0, r4, #0 mov r2, #0x10 add r0, #0x56 strh r2, [r0] add r0, r4, #0 mov r1, #0xa0 add r0, #0x58 strh r1, [r0] add r0, r4, #0 add r0, #0x5a strh r2, [r0] mov r0, #2 str r0, [r4, #0x5c] pop {r4, pc} _021D98BA: mov r0, #0 str r0, [r4, #0x5c] pop {r4, pc} thumb_func_start MOD15_021D98C0 MOD15_021D98C0: ; 0x021D98C0 push {r3, r4, r5, lr} sub sp, #0x30 add r4, r0, #0 ldr r0, [r4, #0x5c] cmp r0, #0 beq _021D98D8 add r0, r4, #0 add r0, #0x54 add r1, sp, #8 bl MOD15_021D9C1C b _021D98E2 _021D98D8: mov r1, #0x80 add r0, sp, #8 strh r1, [r0] mov r1, #0x18 strh r1, [r0, #2] _021D98E2: mov r2, #0 ldr r0, [r4] add r1, sp, #0xc add r3, r2, #0 bl MOD15_021D9550 mov r2, #0 str r2, [sp] mov r0, #1 str r0, [sp, #4] add r5, sp, #8 mov r3, #2 ldrsh r2, [r5, r2] ldrsh r3, [r5, r3] ldr r0, [r4] add r1, sp, #0xc bl MOD15_021D9594 str r0, [r4, #0x3c] add r0, r4, #0 mov r1, #1 bl MOD15_021D9E98 mov r0, #1 str r0, [sp] str r0, [sp, #4] ldr r0, [r4] add r1, sp, #0xc mov r2, #6 mov r3, #0x18 bl MOD15_021D9594 mov r1, #0xd str r0, [r4, #0x40] bl FUN_02020130 mov r0, #1 str r0, [sp] str r0, [sp, #4] ldr r0, [r4] add r1, sp, #0xc mov r2, #0xfa mov r3, #0x18 bl MOD15_021D9594 str r0, [r4, #0x44] mov r1, #0xc bl FUN_02020130 ldr r0, [r4, #4] bl MOD15_021D86E4 cmp r0, #2 beq _021D995E ldr r0, [r4, #0x44] mov r1, #0 bl FUN_020200A0 ldr r0, [r4, #0x40] mov r1, #0 bl FUN_020200A0 _021D995E: add sp, #0x30 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021D9964 MOD15_021D9964: ; 0x021D9964 push {r4, lr} add r4, r0, #0 bl MOD15_021D9834 add r0, r4, #0 add r0, #0xc mov r1, #0xd bl FUN_02019620 ldr r0, [r4, #4] bl MOD15_021D86E4 cmp r0, #0 beq _021D998A cmp r0, #1 beq _021D99B0 cmp r0, #2 beq _021D99FA b _021D9A02 _021D998A: add r0, r4, #0 add r1, r4, #0 add r0, #0xc add r1, #0x54 bl MOD15_021D9C30 ldr r0, [r4, #4] mov r1, #0 bl MOD15_021D8708 add r1, r4, #0 add r2, r4, #0 add r3, r0, #0 add r0, r4, #0 add r1, #0xc add r2, #0x54 bl MOD15_021D9C58 b _021D9A02 _021D99B0: add r0, r4, #0 add r1, r4, #0 add r0, #0xc add r1, #0x54 bl MOD15_021D9C30 add r0, r4, #0 add r1, r4, #0 add r0, #0xc add r1, #0x58 bl MOD15_021D9C30 ldr r0, [r4, #4] mov r1, #0 bl MOD15_021D8708 add r1, r4, #0 add r2, r4, #0 add r3, r0, #0 add r0, r4, #0 add r1, #0xc add r2, #0x54 bl MOD15_021D9C58 ldr r0, [r4, #4] mov r1, #1 bl MOD15_021D8708 add r1, r4, #0 add r2, r4, #0 add r3, r0, #0 add r0, r4, #0 add r1, #0xc add r2, #0x58 bl MOD15_021D9C58 b _021D9A02 _021D99FA: add r0, r4, #0 bl MOD15_021D9A0C str r0, [r4, #0x5c] _021D9A02: add r4, #0xc add r0, r4, #0 bl FUN_02019548 pop {r4, pc} thumb_func_start MOD15_021D9A0C MOD15_021D9A0C: ; 0x021D9A0C push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 str r0, [sp, #0x10] ldr r0, [r0, #4] mov r1, #0x23 bl MOD15_021D8720 mov r4, #0 str r0, [sp, #0x1c] mov r0, #1 str r0, [sp, #0x14] ldr r0, [sp, #0x10] ldr r1, [sp, #0x10] add r0, #0x64 str r4, [sp, #0x18] add r5, r4, #0 bl MOD15_021D9B04 ldr r7, [sp, #0x10] add r0, r7, #0 str r0, [sp, #0x24] add r0, #0xc str r0, [sp, #0x24] add r0, r7, #0 add r6, r7, #0 str r0, [sp, #0x20] add r0, #0x64 add r6, #0x54 str r0, [sp, #0x20] _021D9A46: ldr r0, [sp, #0x20] ldr r1, [sp, #0x1c] bl MOD15_021D9B3C cmp r0, #3 bhi _021D9ADE add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9A5E: ; jump table .short _021D9A66 - _021D9A5E - 2 ; case 0 .short _021D9A8E - _021D9A5E - 2 ; case 1 .short _021D9AD4 - _021D9A5E - 2 ; case 2 .short _021D9ADA - _021D9A5E - 2 ; case 3 _021D9A66: str r4, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9AFC ; =0x0003040D ldr r2, [sp, #0x1c] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r0, [sp, #0x24] mov r1, #1 add r3, r5, #0 bl FUN_0201BDE0 ldr r1, [sp, #0x1c] mov r0, #1 mov r2, #0 bl FUN_02002E14 add r5, r5, r0 b _021D9ADE _021D9A8E: add r1, r5, #0 add r0, r7, #0 add r1, #0x32 add r0, #0x54 strh r1, [r0] add r1, r4, #0 add r0, r7, #0 add r1, #8 add r0, #0x56 strh r1, [r0] ldr r0, [sp, #0x24] add r1, r6, #0 bl MOD15_021D9C30 ldr r0, [sp, #0x10] ldr r1, [sp, #0x18] ldr r0, [r0, #4] bl MOD15_021D8708 add r3, r0, #0 ldr r0, _021D9B00 ; =0x0000FFFF cmp r3, r0 beq _021D9AC6 ldr r0, [sp, #0x10] ldr r1, [sp, #0x24] add r2, r6, #0 bl MOD15_021D9C58 _021D9AC6: ldr r0, [sp, #0x18] add r7, r7, #4 add r0, r0, #1 add r6, r6, #4 str r0, [sp, #0x18] add r5, #0x64 b _021D9ADE _021D9AD4: add r4, #0x10 mov r5, #0 b _021D9ADE _021D9ADA: mov r0, #0 str r0, [sp, #0x14] _021D9ADE: ldr r0, [sp, #0x14] cmp r0, #0 bne _021D9A46 ldr r0, [sp, #0x10] add r0, #0x64 str r0, [sp, #0x10] bl MOD15_021D9B30 ldr r0, [sp, #0x1c] bl FUN_02021A20 ldr r0, [sp, #0x18] add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop _021D9AFC: .word 0x0003040D _021D9B00: .word 0x0000FFFF thumb_func_start MOD15_021D9B04 MOD15_021D9B04: ; 0x021D9B04 push {r4, lr} add r4, r0, #0 ldr r0, [r1, #4] mov r1, #0x23 bl MOD15_021D8720 str r0, [r4] bl FUN_02021F2C str r0, [r4, #4] ldrh r1, [r0] ldr r0, _021D9B2C ; =0x0000FFFE cmp r1, r0 bne _021D9B26 mov r0, #1 str r0, [r4, #8] pop {r4, pc} _021D9B26: mov r0, #0 str r0, [r4, #8] pop {r4, pc} .align 2, 0 _021D9B2C: .word 0x0000FFFE thumb_func_start MOD15_021D9B30 MOD15_021D9B30: ; 0x021D9B30 ldr r3, _021D9B38 ; =0x02021A21 ldr r0, [r0] bx r3 nop _021D9B38: .word 0x02021A21 thumb_func_start MOD15_021D9B3C MOD15_021D9B3C: ; 0x021D9B3C push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 ldr r0, [r4, #4] str r1, [sp] mov ip, r0 ldr r0, [r4, #8] cmp r0, #3 bhi _021D9BCC add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D9B58: ; jump table .short _021D9B60 - _021D9B58 - 2 ; case 0 .short _021D9BB6 - _021D9B58 - 2 ; case 1 .short _021D9BC2 - _021D9B58 - 2 ; case 2 .short _021D9BCC - _021D9B58 - 2 ; case 3 _021D9B60: cmp r0, #0 bne _021D9B9C ldr r6, _021D9C04 ; =0x0000FFFE mov r3, #0xe mov r0, #1 mov r1, #3 mov r2, #2 add r7, r6, #1 lsl r3, r3, #0xc _021D9B72: ldr r5, [r4, #4] ldrh r5, [r5] cmp r5, r3 beq _021D9B84 cmp r5, r6 beq _021D9B8C cmp r5, r7 beq _021D9B88 b _021D9B90 _021D9B84: str r2, [r4, #8] b _021D9B96 _021D9B88: str r1, [r4, #8] b _021D9B96 _021D9B8C: str r0, [r4, #8] b _021D9B96 _021D9B90: ldr r5, [r4, #4] add r5, r5, #2 str r5, [r4, #4] _021D9B96: ldr r5, [r4, #8] cmp r5, #0 beq _021D9B72 _021D9B9C: ldr r3, [r4, #4] mov r2, ip sub r3, r3, r2 lsr r2, r3, #0x1f add r2, r3, r2 asr r2, r2, #1 ldr r0, [sp] mov r1, ip add r2, r2, #1 bl FUN_02021E8C mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D9BB6: mov r0, ip bl FUN_0201B8B8 str r0, [r4, #4] mov r0, #1 b _021D9BD0 _021D9BC2: mov r0, ip add r0, r0, #2 str r0, [r4, #4] mov r0, #2 b _021D9BD0 _021D9BCC: mov r0, #3 pop {r3, r4, r5, r6, r7, pc} _021D9BD0: ldr r1, [r4, #4] ldrh r2, [r1] mov r1, #0xe lsl r1, r1, #0xc cmp r2, r1 beq _021D9BEA ldr r1, _021D9C04 ; =0x0000FFFE cmp r2, r1 beq _021D9BF6 add r1, r1, #1 cmp r2, r1 beq _021D9BF0 b _021D9BFC _021D9BEA: mov r1, #2 str r1, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _021D9BF0: mov r1, #3 str r1, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _021D9BF6: mov r1, #1 str r1, [r4, #8] pop {r3, r4, r5, r6, r7, pc} _021D9BFC: mov r1, #0 str r1, [r4, #8] pop {r3, r4, r5, r6, r7, pc} nop _021D9C04: .word 0x0000FFFE thumb_func_start MOD15_021D9C08 MOD15_021D9C08: ; 0x021D9C08 mov r2, #0 ldrsh r2, [r0, r2] sub r2, #0x30 strh r2, [r1] mov r2, #2 ldrsh r0, [r0, r2] sub r0, #8 strh r0, [r1, #2] bx lr .align 2, 0 thumb_func_start MOD15_021D9C1C MOD15_021D9C1C: ; 0x021D9C1C mov r2, #0 ldrsh r2, [r0, r2] add r2, #0x18 strh r2, [r1] mov r2, #2 ldrsh r0, [r0, r2] add r0, #8 strh r0, [r1, #2] bx lr .align 2, 0 thumb_func_start MOD15_021D9C30 MOD15_021D9C30: ; 0x021D9C30 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 add r0, r1, #0 add r1, sp, #8 bl MOD15_021D9C08 mov r0, #0x60 str r0, [sp] mov r0, #0x10 str r0, [sp, #4] add r3, sp, #8 ldrh r2, [r3] ldrh r3, [r3, #2] add r0, r4, #0 mov r1, #0xe bl FUN_020196F4 add sp, #0xc pop {r3, r4, pc} thumb_func_start MOD15_021D9C58 MOD15_021D9C58: ; 0x021D9C58 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r5, r0, #0 ldr r0, _021D9CA8 ; =0x0000FFFF add r6, r3, #0 add r4, r1, #0 cmp r6, r0 beq _021D9CA2 add r0, r2, #0 add r1, sp, #0x10 bl MOD15_021D9C08 ldr r1, [r5, #0x4c] add r0, r6, #0 bl FUN_02013A58 ldr r1, [r5, #0x4c] mov r0, #1 mov r2, #0 bl FUN_02002E14 add r3, sp, #0x10 mov r0, #2 ldrsh r0, [r3, r0] mov r6, #0 mov r1, #1 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9CAC ; =0x0005060E str r0, [sp, #8] str r6, [sp, #0xc] ldrsh r3, [r3, r6] ldr r2, [r5, #0x4c] add r0, r4, #0 bl FUN_0201BDE0 _021D9CA2: add sp, #0x14 pop {r3, r4, r5, r6, pc} nop _021D9CA8: .word 0x0000FFFF _021D9CAC: .word 0x0005060E thumb_func_start MOD15_021D9CB0 MOD15_021D9CB0: ; 0x021D9CB0 ldr r0, [r0, #0x5c] bx lr thumb_func_start MOD15_021D9CB4 MOD15_021D9CB4: ; 0x021D9CB4 push {r4, r5, r6, lr} sub sp, #0x10 add r4, r0, #0 add r5, r1, #0 add r0, #0x1c mov r1, #9 bl FUN_02019620 cmp r5, #3 bhi _021D9DB0 add r0, r5, r5 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9CD4: ; jump table .short _021D9CDC - _021D9CD4 - 2 ; case 0 .short _021D9D66 - _021D9CD4 - 2 ; case 1 .short _021D9D40 - _021D9CD4 - 2 ; case 2 .short _021D9D8C - _021D9CD4 - 2 ; case 3 _021D9CDC: mov r0, #2 mov r1, #0x3c mov r2, #0 bl FUN_0200AA90 add r5, r0, #0 mov r0, #0x4b lsl r0, r0, #2 mov r1, #0 bl FUN_020219F4 mov r1, #0 add r6, r0, #0 add r0, r5, #0 add r2, r1, #0 bl FUN_0200AEE0 ldr r0, [r4, #4] bl MOD15_021D86E8 add r1, r0, #0 ldr r0, [r4, #0x48] ldr r2, [r4, #0x4c] bl FUN_0200A8E0 ldr r2, [r4, #0x4c] add r0, r5, #0 add r1, r6, #0 bl FUN_0200B7B8 mov r3, #0 str r3, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9DBC ; =0x00010209 mov r1, #1 str r0, [sp, #8] add r0, r4, #0 add r0, #0x1c add r2, r6, #0 str r3, [sp, #0xc] bl FUN_0201BDE0 add r0, r6, #0 bl FUN_02021A20 add r0, r5, #0 bl FUN_0200AB18 b _021D9DB0 _021D9D40: ldr r0, [r4, #0x48] ldr r2, [r4, #0x4c] mov r1, #6 bl FUN_0200A8E0 mov r3, #0 str r3, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9DBC ; =0x00010209 mov r1, #1 str r0, [sp, #8] str r3, [sp, #0xc] add r0, r4, #0 ldr r2, [r4, #0x4c] add r0, #0x1c bl FUN_0201BDE0 b _021D9DB0 _021D9D66: ldr r0, [r4, #0x48] ldr r2, [r4, #0x4c] mov r1, #7 bl FUN_0200A8E0 mov r3, #0 str r3, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9DBC ; =0x00010209 mov r1, #1 str r0, [sp, #8] str r3, [sp, #0xc] add r0, r4, #0 ldr r2, [r4, #0x4c] add r0, #0x1c bl FUN_0201BDE0 b _021D9DB0 _021D9D8C: ldr r0, [r4, #0x48] ldr r2, [r4, #0x4c] mov r1, #8 bl FUN_0200A8E0 mov r3, #0 str r3, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9DBC ; =0x00010209 mov r1, #1 str r0, [sp, #8] str r3, [sp, #0xc] add r0, r4, #0 ldr r2, [r4, #0x4c] add r0, #0x1c bl FUN_0201BDE0 _021D9DB0: add r4, #0x1c add r0, r4, #0 bl FUN_02019548 add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 _021D9DBC: .word 0x00010209 thumb_func_start MOD15_021D9DC0 MOD15_021D9DC0: ; 0x021D9DC0 ldr r3, _021D9DC8 ; =MOD15_021D9E98 mov r1, #0 bx r3 nop _021D9DC8: .word MOD15_021D9E98 thumb_func_start MOD15_021D9DCC MOD15_021D9DCC: ; 0x021D9DCC ldr r3, _021D9DD4 ; =MOD15_021D9E98 mov r1, #1 bx r3 nop _021D9DD4: .word MOD15_021D9E98 thumb_func_start MOD15_021D9DD8 MOD15_021D9DD8: ; 0x021D9DD8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x3c] bl FUN_020200A0 add r0, r4, #0 mov r1, #1 bl MOD15_021D9E98 pop {r4, pc} thumb_func_start MOD15_021D9DEC MOD15_021D9DEC: ; 0x021D9DEC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl MOD15_021D86E4 cmp r0, #2 bne _021D9E0A ldr r0, [r4, #0x40] mov r1, #0 bl FUN_020200A0 ldr r0, [r4, #0x44] mov r1, #0 bl FUN_020200A0 _021D9E0A: pop {r4, pc} thumb_func_start MOD15_021D9E0C MOD15_021D9E0C: ; 0x021D9E0C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl MOD15_021D86E4 cmp r0, #2 bne _021D9E3A ldr r0, [r4, #0x40] mov r1, #1 bl FUN_020200A0 ldr r0, [r4, #0x44] mov r1, #1 bl FUN_020200A0 ldr r0, [r4, #0x40] mov r1, #0xd bl FUN_02020130 ldr r0, [r4, #0x44] mov r1, #0xc bl FUN_02020130 _021D9E3A: pop {r4, pc} thumb_func_start MOD15_021D9E3C MOD15_021D9E3C: ; 0x021D9E3C push {r4, lr} sub sp, #0x10 add r4, r0, #0 ldr r0, [r4, #0x5c] cmp r0, #0 beq _021D9E6C add r2, r4, #0 lsl r0, r1, #2 add r2, #0x54 add r0, r2, r0 add r1, sp, #0 bl MOD15_021D9C1C add r1, sp, #0 mov r2, #0 ldrsh r0, [r1, r2] lsl r0, r0, #0xc str r0, [sp, #4] mov r0, #2 ldrsh r0, [r1, r0] lsl r0, r0, #0xc str r0, [sp, #8] str r2, [sp, #0xc] b _021D9E84 _021D9E6C: mov r0, #2 lsl r0, r0, #0x12 str r0, [sp, #4] mov r0, #6 lsl r0, r0, #0xe str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r0, [r4, #0x3c] add r1, sp, #4 bl FUN_02020044 _021D9E84: ldr r0, [r4, #0x3c] add r1, sp, #4 bl FUN_02020044 add r0, r4, #0 mov r1, #1 bl MOD15_021D9E98 add sp, #0x10 pop {r4, pc} thumb_func_start MOD15_021D9E98 MOD15_021D9E98: ; 0x021D9E98 push {r3, lr} ldr r2, [r0, #0x5c] cmp r2, #0 beq _021D9EB6 cmp r1, #0 ldr r0, [r0, #0x3c] beq _021D9EAE mov r1, #0 bl FUN_02020130 pop {r3, pc} _021D9EAE: mov r1, #1 bl FUN_02020130 pop {r3, pc} _021D9EB6: cmp r1, #0 ldr r0, [r0, #0x3c] beq _021D9EC4 mov r1, #0xe bl FUN_02020130 pop {r3, pc} _021D9EC4: mov r1, #0xf bl FUN_02020130 pop {r3, pc} thumb_func_start MOD15_021D9ECC MOD15_021D9ECC: ; 0x021D9ECC push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 add r4, r1, #0 add r0, #0x2c mov r1, #9 bl FUN_02019620 ldr r0, [r5, #0x48] ldr r2, [r5, #0x4c] mov r1, #9 bl FUN_0200A8E0 mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9F54 ; =0x00010209 mov r3, #0xe str r0, [sp, #8] str r1, [sp, #0xc] add r0, r5, #0 ldr r2, [r5, #0x4c] add r0, #0x2c bl FUN_0201BDE0 ldr r0, [r5, #0x48] ldr r2, [r5, #0x4c] mov r1, #0xa bl FUN_0200A8E0 mov r0, #0x10 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D9F54 ; =0x00010209 mov r1, #0 str r0, [sp, #8] str r1, [sp, #0xc] add r0, r5, #0 ldr r2, [r5, #0x4c] add r0, #0x2c mov r3, #0xe bl FUN_0201BDE0 ldr r2, [r5, #0x60] add r0, r5, #0 lsl r2, r2, #0x10 add r0, #0x2c mov r1, #0 lsr r2, r2, #0x10 mov r3, #0xe bl FUN_0200CCA4 add r1, r5, #0 ldr r0, [r5, #0x50] add r1, #0x2c mov r2, #0 lsl r3, r4, #4 bl FUN_020136F8 add r5, #0x2c add r0, r5, #0 bl FUN_020191D0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021D9F54: .word 0x00010209 thumb_func_start MOD15_021D9F58 MOD15_021D9F58: ; 0x021D9F58 push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 mov r0, #0xe str r0, [sp] mov r0, #0x20 str r0, [sp, #4] add r0, r5, #0 mov r2, #0 add r4, r1, #0 add r0, #0x2c mov r1, #9 add r3, r2, #0 bl FUN_020196F4 ldr r0, [r5, #0x50] add r5, #0x2c add r1, r5, #0 mov r2, #0 lsl r3, r4, #4 bl FUN_020136F8 add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD15_021D9F88 MOD15_021D9F88: ; 0x021D9F88 push {r4, lr} add r4, r0, #0 add r0, #0x2c mov r1, #0 bl FUN_0200CCF8 add r4, #0x2c add r0, r4, #0 bl FUN_02019570 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021D9FA0 MOD15_021D9FA0: ; 0x021D9FA0 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #0x23 mov r1, #0x10 add r6, r2, #0 bl FUN_02016998 str r5, [r0] str r4, [r0, #4] str r6, [r0, #8] mov r1, #0 str r1, [r0, #0xc] pop {r4, r5, r6, pc} thumb_func_start MOD15_021D9FBC MOD15_021D9FBC: ; 0x021D9FBC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] cmp r0, #0 beq _021D9FCA bl FUN_0201FFC8 _021D9FCA: add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021D9FD4 MOD15_021D9FD4: ; 0x021D9FD4 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 ldr r0, [r5] bl MOD15_021D9548 add r4, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] mov r0, #0x4c mov r1, #4 add r2, r4, #0 mov r3, #3 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] mov r0, #0x4c mov r1, #5 add r2, r4, #0 mov r3, #3 bl FUN_0200687C ldr r1, _021DA03C ; =0x021DBA00 add r0, r4, #0 mov r2, #0 bl MOD15_021DA044 ldr r1, _021DA040 ; =0x021DBA08 add r0, r4, #0 mov r2, #1 bl MOD15_021DA044 add r0, r5, #0 bl MOD15_021DA0B8 add r0, r4, #0 mov r1, #3 bl FUN_02017CD0 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _021DA03C: .word 0x021DBA00 _021DA040: .word 0x021DBA08 thumb_func_start MOD15_021DA044 MOD15_021DA044: ; 0x021DA044 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r1, #0 add r4, r2, #0 add r1, sp, #0x10 add r2, r5, #0 bl FUN_02019150 add r0, sp, #0x10 bl FUN_02019270 add r0, sp, #0x10 mov r1, #0xe bl FUN_02019620 ldr r1, _021DA0B0 ; =0x00000183 mov r0, #0x1a add r2, r4, #0 mov r3, #0x23 bl FUN_0200A738 add r4, r0, #0 mov r0, #0 add r1, r4, #0 add r2, r0, #0 bl FUN_02002E14 ldrb r1, [r5, #3] add r2, r4, #0 lsl r1, r1, #3 sub r0, r1, r0 mov r1, #0 lsr r3, r0, #1 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021DA0B4 ; =0x0001020E str r0, [sp, #8] add r0, sp, #0x10 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, sp, #0x10 bl FUN_02019548 add r0, r4, #0 bl FUN_02021A20 add r0, sp, #0x10 bl FUN_02019178 add sp, #0x20 pop {r3, r4, r5, pc} nop _021DA0B0: .word 0x00000183 _021DA0B4: .word 0x0001020E thumb_func_start MOD15_021DA0B8 MOD15_021DA0B8: ; 0x021DA0B8 push {r3, r4, lr} sub sp, #0x2c add r4, r0, #0 ldr r0, [r4] add r1, sp, #8 mov r2, #0 mov r3, #3 bl MOD15_021D9550 mov r0, #5 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4] add r1, sp, #8 mov r2, #0x40 mov r3, #0x38 bl MOD15_021D9594 str r0, [r4, #0xc] mov r1, #2 bl FUN_02020130 ldr r0, [r4, #0xc] mov r1, #0 bl FUN_020200A0 add sp, #0x2c pop {r3, r4, pc} .align 2, 0 thumb_func_start MOD15_021DA0F4 MOD15_021DA0F4: ; 0x021DA0F4 ldr r3, _021DA0FC ; =0x02020131 ldr r0, [r0, #0xc] mov r1, #3 bx r3 .align 2, 0 _021DA0FC: .word 0x02020131 thumb_func_start MOD15_021DA100 MOD15_021DA100: ; 0x021DA100 ldr r3, _021DA108 ; =0x02020131 ldr r0, [r0, #0xc] mov r1, #2 bx r3 .align 2, 0 _021DA108: .word 0x02020131 thumb_func_start MOD15_021DA10C MOD15_021DA10C: ; 0x021DA10C ldr r3, _021DA114 ; =0x020200A1 ldr r0, [r0, #0xc] bx r3 nop _021DA114: .word 0x020200A1 thumb_func_start MOD15_021DA118 MOD15_021DA118: ; 0x021DA118 ldr r3, _021DA120 ; =0x02020129 ldr r0, [r0, #0xc] bx r3 nop _021DA120: .word 0x02020129 thumb_func_start MOD15_021DA124 MOD15_021DA124: ; 0x021DA124 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 mov r0, #0 str r0, [sp, #8] cmp r1, #0 beq _021DA136 cmp r1, #1 beq _021DA144 _021DA136: mov r0, #1 lsl r0, r0, #0x12 str r0, [sp] mov r0, #0xe lsl r0, r0, #0xe str r0, [sp, #4] b _021DA150 _021DA144: mov r0, #3 lsl r0, r0, #0x12 str r0, [sp] mov r0, #0xe lsl r0, r0, #0xe str r0, [sp, #4] _021DA150: ldr r0, [r4, #0xc] add r1, sp, #0 bl FUN_02020044 ldr r0, [r4, #0xc] mov r1, #2 bl FUN_02020130 add sp, #0xc pop {r3, r4, pc} thumb_func_start MOD15_021DA164 MOD15_021DA164: ; 0x021DA164 push {r3, lr} ldr r0, [r0] bl MOD15_021D9548 mov r1, #3 add r2, r1, #0 mov r3, #0x40 bl FUN_020179E0 pop {r3, pc} thumb_func_start MOD15_021DA178 MOD15_021DA178: ; 0x021DA178 push {r3, lr} ldr r0, [r0] bl MOD15_021D9548 mov r1, #3 add r2, r1, #0 mov r3, #0 bl FUN_020179E0 pop {r3, pc} thumb_func_start MOD15_021DA18C MOD15_021DA18C: ; 0x021DA18C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 mov r0, #0x23 mov r1, #0x60 add r7, r2, #0 bl FUN_02016998 add r4, r0, #0 str r5, [r4] str r6, [r4, #4] str r7, [r4, #8] add r0, r5, #0 bl MOD15_021D9548 str r0, [r4, #0xc] mov r0, #0 str r0, [r4, #0x10] str r0, [r4, #0x18] str r0, [r4, #0x5c] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD15_021DA1B8 MOD15_021DA1B8: ; 0x021DA1B8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x5c] cmp r0, #0 beq _021DA1C6 bl FUN_0201FFC8 _021DA1C6: add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021DA1D0 MOD15_021DA1D0: ; 0x021DA1D0 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 ldr r0, [r5] bl MOD15_021D9548 add r4, r0, #0 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r3, #1 str r3, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] mov r0, #0x4c mov r1, #2 add r2, r4, #0 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r3, #1 str r3, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] mov r0, #0x4c mov r1, #3 add r2, r4, #0 bl FUN_0200687C add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 lsr r2, r2, #5 bl MOD15_021DA2AC add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD15_021DA3B4 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD15_021DA480 mov r2, #0 add r0, r4, #0 mov r1, #1 sub r3, r2, #4 bl FUN_020179E0 add r0, r4, #0 mov r1, #1 mov r2, #3 mov r3, #2 bl FUN_020179E0 add r0, r5, #0 bl MOD15_021DA54C mov r1, #2 add r2, r1, #0 ldr r0, _021DA2A0 ; =0x04000050 sub r2, #0xc bl G2x_SetBlendBrightness_ ldr r0, _021DA2A4 ; =0x04000048 mov r2, #0x3f ldrh r3, [r0] mov r1, #0x1f bic r3, r2 orr r3, r1 mov r1, #0x20 orr r3, r1 strh r3, [r0] ldrh r3, [r0, #2] bic r3, r2 mov r2, #0x1d orr r2, r3 orr r2, r1 strh r2, [r0, #2] add r2, r0, #0 mov r3, #0xff sub r2, #8 strh r3, [r2] mov r2, #0xa0 sub r0, r0, #4 strh r2, [r0] lsl r3, r1, #0x15 ldr r2, [r3] ldr r0, _021DA2A8 ; =0xFFFF1FFF and r2, r0 lsl r0, r1, #8 orr r0, r2 str r0, [r3] add r0, r4, #0 mov r1, #1 bl FUN_02017CD0 add sp, #0x10 pop {r3, r4, r5, pc} nop _021DA2A0: .word 0x04000050 _021DA2A4: .word 0x04000048 _021DA2A8: .word 0xFFFF1FFF thumb_func_start MOD15_021DA2AC MOD15_021DA2AC: ; 0x021DA2AC push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 add r6, r2, #0 str r0, [sp, #0x14] str r1, [sp, #0x18] ldr r2, _021DA3A4 ; =0x00000181 mov r0, #1 mov r1, #0x1a mov r3, #0x23 bl FUN_0200A86C str r0, [sp, #0x20] mov r0, #9 mov r7, #1 str r0, [sp, #0x24] mov r4, #0 _021DA2CC: cmp r4, #0 beq _021DA2E4 add r0, r4, #0 mov r1, #3 bl _s32_div_f cmp r1, #0 bne _021DA2E4 ldr r0, [sp, #0x24] mov r7, #1 add r0, r0, #3 str r0, [sp, #0x24] _021DA2E4: ldr r0, [sp, #0x14] add r1, r4, #0 ldr r0, [r0, #8] bl FUN_020892C4 cmp r0, #0 beq _021DA302 ldr r0, [sp, #0x20] add r1, r4, #0 bl FUN_0200A914 add r5, r0, #0 ldr r0, _021DA3A8 ; =0x0001020F str r0, [sp, #0x1c] b _021DA310 _021DA302: ldr r0, [sp, #0x20] mov r1, #0xc bl FUN_0200A914 add r5, r0, #0 ldr r0, _021DA3AC ; =0x0003040F str r0, [sp, #0x1c] _021DA310: ldr r0, _021DA3B0 ; =0x000003EE cmp r6, r0 blo _021DA31A bl ErrorHandling _021DA31A: ldr r0, [sp, #0x24] lsl r3, r7, #0x18 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #9 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] lsl r0, r6, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] ldr r0, [sp, #0x18] add r1, sp, #0x28 mov r2, #1 lsr r3, r3, #0x18 bl FUN_02019064 add r0, sp, #0x28 mov r1, #0xf bl FUN_02019620 mov r0, #0 add r1, r5, #0 add r2, r0, #0 bl FUN_02002E14 mov r1, #0x48 sub r0, r1, r0 lsr r3, r0, #1 mov r0, #0 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, [sp, #0x1c] mov r1, #0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] add r0, sp, #0x28 add r2, r5, #0 bl FUN_0201BDE0 add r0, sp, #0x28 bl FUN_02019270 add r0, sp, #0x28 bl FUN_02019548 add r0, r5, #0 bl FUN_02021A20 add r0, sp, #0x28 bl FUN_02019178 add r4, r4, #1 add r6, #0x12 add r7, #0xa cmp r4, #0xc blt _021DA2CC ldr r0, [sp, #0x20] bl FUN_0200A8B8 add r0, r6, #0 add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} nop _021DA3A4: .word 0x00000181 _021DA3A8: .word 0x0001020F _021DA3AC: .word 0x0003040F _021DA3B0: .word 0x000003EE thumb_func_start MOD15_021DA3B4 MOD15_021DA3B4: ; 0x021DA3B4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 add r4, r1, #0 mov r1, #0xce add r6, r0, #0 lsl r1, r1, #2 add r0, r2, #0 str r2, [sp, #0x14] cmp r0, r1 blo _021DA3CC bl ErrorHandling _021DA3CC: mov r0, #0xa str r0, [sp] mov r0, #0x19 str r0, [sp, #4] mov r0, #8 str r0, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] ldr r0, [sp, #0x14] add r1, sp, #0x20 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] add r0, r4, #0 mov r2, #1 mov r3, #0x22 bl FUN_02019064 mov r0, #4 mov r1, #0x23 bl FUN_020219F4 add r4, r0, #0 add r0, sp, #0x20 mov r1, #0xf bl FUN_02019620 bl MOD15_021DB770 add r7, r0, #0 ldr r5, _021DA474 ; =0x00000000 beq _021DA452 _021DA40C: add r0, r5, #0 add r1, r4, #0 bl MOD15_021DB774 add r0, r5, #0 add r1, sp, #0x1c add r2, sp, #0x18 bl MOD15_021DB798 ldr r0, [r6, #8] add r1, r5, #0 bl FUN_02089300 cmp r0, #0 beq _021DA42E ldr r1, _021DA478 ; =0x0001020F b _021DA430 _021DA42E: ldr r1, _021DA47C ; =0x0003040F _021DA430: ldr r0, [sp, #0x18] add r2, r4, #0 str r0, [sp] mov r0, #0xff str r0, [sp, #4] str r1, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r3, [sp, #0x1c] add r0, sp, #0x20 mov r1, #0 add r3, r3, #3 bl FUN_0201BDE0 add r5, r5, #1 cmp r5, r7 blo _021DA40C _021DA452: add r0, sp, #0x20 bl FUN_02019548 add r0, sp, #0x20 bl FUN_02019270 add r0, r4, #0 bl FUN_02021A20 add r0, sp, #0x20 bl FUN_02019178 ldr r0, [sp, #0x14] add r0, #0xc8 str r0, [sp, #0x14] add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DA474: .word 0x00000000 _021DA478: .word 0x0001020F _021DA47C: .word 0x0003040F thumb_func_start MOD15_021DA480 MOD15_021DA480: ; 0x021DA480 push {r4, r5, r6, r7, lr} sub sp, #0x34 add r5, r2, #0 str r1, [sp, #0x14] ldr r2, _021DA540 ; =0x00000181 mov r0, #1 mov r1, #0x1a mov r3, #0x23 bl FUN_0200A86C mov r1, #0xd str r0, [sp, #0x20] bl FUN_0200A914 str r0, [sp, #0x1c] mov r0, #0 ldr r1, [sp, #0x1c] add r2, r0, #0 bl FUN_02002E14 mov r1, #0x40 sub r0, r1, r0 lsr r0, r0, #1 ldr r4, _021DA544 ; =0x021DBA10 str r0, [sp, #0x18] mov r7, #0 add r6, sp, #0x24 _021DA4B6: mov r0, #0x3f lsl r0, r0, #4 cmp r5, r0 blo _021DA4C2 bl ErrorHandling _021DA4C2: ldrh r0, [r4, #2] add r1, r6, #0 mov r2, #1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #8 str r0, [sp, #4] mov r0, #2 str r0, [sp, #8] mov r0, #0xb str r0, [sp, #0xc] lsl r0, r5, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] ldrh r3, [r4] ldr r0, [sp, #0x14] lsl r3, r3, #0x18 lsr r3, r3, #0x18 bl FUN_02019064 add r0, r6, #0 mov r1, #0xf bl FUN_02019620 mov r0, #0 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021DA548 ; =0x0001020F ldr r2, [sp, #0x1c] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r3, [sp, #0x18] add r0, r6, #0 mov r1, #0 bl FUN_0201BDE0 add r0, r6, #0 bl FUN_02019270 add r0, r6, #0 bl FUN_02019548 add r0, r6, #0 bl FUN_02019178 add r7, r7, #1 add r5, #0x10 add r4, r4, #4 cmp r7, #2 blo _021DA4B6 ldr r0, [sp, #0x1c] bl FUN_02021A20 ldr r0, [sp, #0x20] bl FUN_0200A8B8 add r0, r5, #0 add sp, #0x34 pop {r4, r5, r6, r7, pc} nop _021DA540: .word 0x00000181 _021DA544: .word 0x021DBA10 _021DA548: .word 0x0001020F thumb_func_start MOD15_021DA54C MOD15_021DA54C: ; 0x021DA54C push {r3, r4, lr} sub sp, #0x2c add r4, r0, #0 ldr r0, [r4] add r1, sp, #8 mov r2, #0 mov r3, #1 bl MOD15_021D9550 mov r0, #2 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4] add r1, sp, #8 mov r2, #0x30 mov r3, #0x36 bl MOD15_021D9594 str r0, [r4, #0x5c] mov r1, #4 bl FUN_02020130 ldr r0, [r4, #0x5c] mov r1, #0 bl FUN_020200A0 add sp, #0x2c pop {r3, r4, pc} .align 2, 0 thumb_func_start MOD15_021DA588 MOD15_021DA588: ; 0x021DA588 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x5c] add r4, r1, #0 bl FUN_020200A0 cmp r4, #0 beq _021DA5B2 ldr r0, [r5, #4] bl MOD15_021D86F4 cmp r0, #0 ldr r0, [r5, #0x5c] bne _021DA5AC mov r1, #4 bl FUN_02020130 pop {r3, r4, r5, pc} _021DA5AC: mov r1, #6 bl FUN_02020130 _021DA5B2: pop {r3, r4, r5, pc} thumb_func_start MOD15_021DA5B4 MOD15_021DA5B4: ; 0x021DA5B4 push {r4, r5, lr} sub sp, #0x14 add r4, r0, #0 ldr r0, [r4, #4] add r5, r1, #0 bl MOD15_021D86F4 mov r1, #0 str r1, [sp, #0x10] cmp r5, #0xfe bne _021DA5D6 mov r0, #0x84 str r0, [sp, #8] mov r0, #0x96 str r0, [sp, #0xc] mov r5, #0x10 b _021DA616 _021DA5D6: cmp r0, #0 bne _021DA5FE add r0, r5, #0 mov r1, #3 bl _u32_div_f mov r0, #0x50 mul r0, r1 add r0, #0x30 str r0, [sp, #8] add r0, r5, #0 mov r1, #3 bl _u32_div_f mov r1, #0x18 mul r1, r0 add r1, #0x36 str r1, [sp, #0xc] mov r5, #4 b _021DA616 _021DA5FE: add r0, r5, #0 add r1, sp, #4 add r2, sp, #0 bl MOD15_021DB798 ldr r0, [sp, #4] mov r5, #6 add r0, #0x1a str r0, [sp, #8] ldr r0, [sp] add r0, #0x3e str r0, [sp, #0xc] _021DA616: ldr r0, [sp, #8] add r1, sp, #8 lsl r0, r0, #0xc str r0, [sp, #8] ldr r0, [sp, #0xc] lsl r0, r0, #0xc str r0, [sp, #0xc] ldr r0, [r4, #0x5c] bl FUN_02020044 ldr r0, [r4, #0x5c] add r1, r5, #0 bl FUN_02020130 add sp, #0x14 pop {r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021DA638 MOD15_021DA638: ; 0x021DA638 push {r3, lr} mov r3, #0 str r3, [r0, #0x14] mov r1, #0x10 str r1, [sp] mov r1, #2 add r2, r1, #0 add r0, #0x1c sub r2, #0xc bl MOD15_021DB6DC pop {r3, pc} thumb_func_start MOD15_021DA650 MOD15_021DA650: ; 0x021DA650 push {r4, lr} sub sp, #8 add r4, r0, #0 ldr r0, [r4, #0x14] cmp r0, #0 beq _021DA662 cmp r0, #1 beq _021DA68C b _021DA698 _021DA662: add r0, r4, #0 add r0, #0x1c bl MOD15_021DB71C cmp r0, #0 beq _021DA698 mov r0, #0x18 str r0, [sp] mov r0, #6 str r0, [sp, #4] add r0, r4, #0 mov r2, #1 ldr r1, [r4, #0xc] add r0, #0x3c add r3, r2, #0 bl MOD15_021DB564 ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] b _021DA698 _021DA68C: add r4, #0x3c add r0, r4, #0 bl MOD15_021DB5B8 add sp, #8 pop {r4, pc} _021DA698: mov r0, #0 add sp, #8 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021DA6A0 MOD15_021DA6A0: ; 0x021DA6A0 push {r3, lr} sub sp, #8 add r1, r0, #0 mov r0, #0 str r0, [r1, #0x14] sub r0, #0x18 str r0, [sp] mov r0, #6 str r0, [sp, #4] add r0, r1, #0 mov r2, #1 ldr r1, [r1, #0xc] add r0, #0x3c add r3, r2, #0 bl MOD15_021DB564 add sp, #8 pop {r3, pc} thumb_func_start MOD15_021DA6C4 MOD15_021DA6C4: ; 0x021DA6C4 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, [r4, #0x14] cmp r0, #0 beq _021DA6D6 cmp r0, #1 beq _021DA6FE b _021DA70A _021DA6D6: add r0, r4, #0 add r0, #0x3c bl MOD15_021DB5B8 cmp r0, #0 beq _021DA70A mov r0, #0x10 mov r2, #0 str r0, [sp] add r0, r4, #0 add r3, r2, #0 add r0, #0x1c mov r1, #2 sub r3, #0xa bl MOD15_021DB6DC ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] b _021DA70A _021DA6FE: add r4, #0x1c add r0, r4, #0 bl MOD15_021DB71C add sp, #4 pop {r3, r4, pc} _021DA70A: mov r0, #0 add sp, #4 pop {r3, r4, pc} thumb_func_start MOD15_021DA710 MOD15_021DA710: ; 0x021DA710 push {r3, lr} ldr r0, [r0, #0xc] mov r1, #1 mov r2, #3 mov r3, #2 bl FUN_020179E0 pop {r3, pc} thumb_func_start MOD15_021DA720 MOD15_021DA720: ; 0x021DA720 push {r3, lr} mov r2, #0 mov r1, #0x10 add r3, r2, #0 str r1, [sp] add r0, #0x1c mov r1, #2 sub r3, #0xa bl MOD15_021DB6DC pop {r3, pc} .align 2, 0 thumb_func_start MOD15_021DA738 MOD15_021DA738: ; 0x021DA738 ldr r3, _021DA740 ; =MOD15_021DB71C add r0, #0x1c bx r3 nop _021DA740: .word MOD15_021DB71C thumb_func_start MOD15_021DA744 MOD15_021DA744: ; 0x021DA744 push {r3, lr} sub sp, #8 mov r1, #0 str r1, [sp] mov r1, #0xc str r1, [sp, #4] add r0, #0x1c mov r1, #2 mov r2, #0x3f mov r3, #0x7c bl MOD15_021DB648 add sp, #8 pop {r3, pc} thumb_func_start MOD15_021DA760 MOD15_021DA760: ; 0x021DA760 push {r3, lr} add r0, #0x1c bl MOD15_021DB678 cmp r0, #0 beq _021DA778 mov r0, #1 mov r1, #0 bl FUN_0201797C mov r0, #1 pop {r3, pc} _021DA778: mov r0, #0 pop {r3, pc} thumb_func_start MOD15_021DA77C MOD15_021DA77C: ; 0x021DA77C push {r4, lr} sub sp, #8 add r4, r0, #0 mov r0, #0x10 str r0, [sp] ldr r0, _021DA7B4 ; =0x04000050 mov r1, #2 mov r2, #0x3f mov r3, #0 bl G2x_SetBlendAlpha_ mov r0, #1 add r1, r0, #0 bl FUN_0201797C mov r0, #0x7c str r0, [sp] mov r0, #0xc add r4, #0x1c str r0, [sp, #4] add r0, r4, #0 mov r1, #2 mov r2, #0x3f mov r3, #0 bl MOD15_021DB648 add sp, #8 pop {r4, pc} .align 2, 0 _021DA7B4: .word 0x04000050 thumb_func_start MOD15_021DA7B8 MOD15_021DA7B8: ; 0x021DA7B8 ldr r3, _021DA7C0 ; =MOD15_021DB678 add r0, #0x1c bx r3 nop _021DA7C0: .word MOD15_021DB678 thumb_func_start MOD15_021DA7C4 MOD15_021DA7C4: ; 0x021DA7C4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #4] bl MOD15_021D86F4 cmp r0, #0 bne _021DA7D8 mov r3, #3 mvn r3, r3 b _021DA7DA _021DA7D8: mov r3, #0xfc _021DA7DA: ldr r0, [r4, #0xc] mov r1, #1 mov r2, #0 bl FUN_020179E0 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021DA7E8 MOD15_021DA7E8: ; 0x021DA7E8 push {r4, lr} sub sp, #8 add r4, r0, #0 ldr r0, [r4, #4] bl MOD15_021D86F4 cmp r0, #0 bne _021DA7FE mov r0, #0xff mvn r0, r0 b _021DA802 _021DA7FE: mov r0, #1 lsl r0, r0, #8 _021DA802: str r0, [sp] mov r0, #0x10 str r0, [sp, #4] add r0, r4, #0 ldr r1, [r4, #0xc] add r0, #0x3c mov r2, #1 mov r3, #0 bl MOD15_021DB564 add sp, #8 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021DA81C MOD15_021DA81C: ; 0x021DA81C ldr r3, _021DA824 ; =MOD15_021DB5B8 add r0, #0x3c bx r3 nop _021DA824: .word MOD15_021DB5B8 thumb_func_start MOD15_021DA828 MOD15_021DA828: ; 0x021DA828 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r6, r1, #0 mov r0, #0x23 mov r1, #0x94 add r7, r2, #0 bl FUN_02016998 add r4, r0, #0 str r5, [r4] str r6, [r4, #4] str r7, [r4, #8] add r0, r5, #0 bl MOD15_021D9548 str r0, [r4, #0xc] mov r0, #0x20 mov r1, #0x23 bl FUN_020219F4 str r0, [r4, #0x3c] mov r0, #0 str r0, [sp] mov r0, #0x1a str r0, [sp, #4] mov r0, #0x20 str r0, [sp, #8] mov r0, #0xc str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] add r1, r4, #0 ldr r0, [r4, #0xc] add r1, #0x10 mov r2, #2 mov r3, #4 bl FUN_02019064 mov r3, #0 str r3, [sp] mov r1, #0xc str r1, [sp, #4] mov r0, #4 str r0, [sp, #8] str r1, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] add r1, r4, #0 ldr r0, [r4, #0xc] add r1, #0x20 mov r2, #2 bl FUN_02019064 mov r0, #0 str r0, [r4, #0x30] str r0, [r4, #0x34] str r0, [r4, #0x38] add r0, r4, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD15_021DA8A4 MOD15_021DA8A4: ; 0x021DA8A4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] cmp r0, #0 beq _021DA8B2 bl FUN_0201FFC8 _021DA8B2: ldr r0, [r4, #0x34] cmp r0, #0 beq _021DA8BC bl FUN_0201FFC8 _021DA8BC: ldr r0, [r4, #0x38] cmp r0, #0 beq _021DA8C6 bl FUN_0201FFC8 _021DA8C6: ldr r0, [r4, #0x3c] cmp r0, #0 beq _021DA8D0 bl FUN_02021A20 _021DA8D0: add r0, r4, #0 add r0, #0x20 bl FUN_02019178 add r0, r4, #0 add r0, #0x10 bl FUN_02019178 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} thumb_func_start MOD15_021DA8E8 MOD15_021DA8E8: ; 0x021DA8E8 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 ldr r0, [r5] bl MOD15_021D9548 add r4, r0, #0 mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0x23 bl FUN_02017F18 mov r2, #0 str r2, [sp] mov r0, #0x20 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0xc str r0, [sp, #0xc] add r0, r4, #0 mov r1, #2 add r3, r2, #0 bl FUN_02018540 add r0, r5, #0 add r0, #0x10 mov r1, #0 bl FUN_02019620 add r0, r5, #0 add r0, #0x10 bl FUN_02019270 add r0, r5, #0 add r0, #0x10 bl FUN_02019548 add r0, r4, #0 mov r1, #2 bl FUN_02017CD0 add r0, r5, #0 bl MOD15_021DA950 mov r0, #2 mov r1, #0 bl FUN_0201797C add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_start MOD15_021DA950 MOD15_021DA950: ; 0x021DA950 push {r3, r4, lr} sub sp, #0x2c add r4, r0, #0 ldr r0, [r4] add r1, sp, #8 mov r2, #0 mov r3, #2 bl MOD15_021D9550 mov r0, #3 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4] add r1, sp, #8 mov r2, #0x48 mov r3, #0x38 bl MOD15_021D9594 str r0, [r4, #0x30] mov r1, #8 bl FUN_02020130 ldr r0, [r4, #0x30] mov r1, #0 bl FUN_020200A0 mov r0, #4 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4] add r1, sp, #8 mov r2, #0xf0 mov r3, #0x40 bl MOD15_021D9594 str r0, [r4, #0x34] mov r1, #0xb bl FUN_02020130 ldr r0, [r4, #0x34] mov r1, #0 bl FUN_020200A0 mov r0, #4 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4] add r1, sp, #8 mov r2, #0xf0 mov r3, #0x90 bl MOD15_021D9594 str r0, [r4, #0x38] mov r1, #0xa bl FUN_02020130 ldr r0, [r4, #0x38] mov r1, #0 bl FUN_020200A0 add sp, #0x2c pop {r3, r4, pc} .align 2, 0 thumb_func_start MOD15_021DA9D4 MOD15_021DA9D4: ; 0x021DA9D4 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r0, #0x10 mov r1, #0 bl FUN_02019620 add r0, r6, #0 bl MOD15_021DAD78 ldr r0, [r6, #4] bl MOD15_021D8744 add r7, r0, #0 cmp r7, #0xa bls _021DA9F4 mov r7, #0xa _021DA9F4: add r0, r6, #0 add r0, #0x8c mov r5, #0 ldr r4, [r0] cmp r7, #0 bls _021DAA18 _021DAA00: add r0, r6, #0 add r1, r5, #0 add r2, r4, #0 bl MOD15_021DAD98 mov r0, #1 tst r0, r5 beq _021DAA12 add r4, #0x18 _021DAA12: add r5, r5, #1 cmp r5, r7 blo _021DAA00 _021DAA18: add r6, #0x10 add r0, r6, #0 bl FUN_02019548 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD15_021DAA24 MOD15_021DAA24: ; 0x021DAA24 push {r3, r4, r5, lr} sub sp, #8 add r4, r0, #0 mov r0, #0x10 str r0, [sp] ldr r0, _021DAABC ; =0x04000050 mov r1, #4 mov r2, #0x3f mov r3, #0 bl G2x_SetBlendAlpha_ mov r0, #2 mov r1, #1 bl FUN_0201797C ldr r1, _021DAAC0 ; =0x04000048 ldr r0, _021DAAC4 ; =0xFFFFC0FF ldrh r2, [r1] mov r5, #0xff and r2, r0 mov r0, #0x1f lsl r0, r0, #8 orr r2, r0 lsr r0, r1, #0xd orr r0, r2 strh r0, [r1] add r0, r4, #0 ldrb r2, [r1, #2] add r0, #0x84 strb r2, [r0] add r0, r1, #0 sub r0, #0x48 mov r2, #0xe ldr r3, [r0] lsl r2, r2, #0xc and r2, r3 lsr r3, r2, #0xd add r2, r4, #0 add r2, #0x88 str r3, [r2] ldrh r3, [r1, #2] mov r2, #0x3f bic r3, r2 mov r2, #0x1b orr r3, r2 mov r2, #0x20 orr r3, r2 strh r3, [r1, #2] sub r3, r1, #6 strh r5, [r3] ldr r3, _021DAAC8 ; =0x00002EB0 sub r1, r1, #2 strh r3, [r1] ldr r3, [r0] ldr r1, _021DAACC ; =0xFFFF1FFF and r3, r1 lsl r1, r2, #9 orr r1, r3 str r1, [r0] add r0, r4, #0 mov r3, #0 add r0, #0x80 str r3, [r0] mov r0, #0x7c str r0, [sp] mov r0, #0xc add r4, #0x40 str r0, [sp, #4] add r0, r4, #0 mov r1, #4 mov r2, #0x3f bl MOD15_021DB648 add sp, #8 pop {r3, r4, r5, pc} nop _021DAABC: .word 0x04000050 _021DAAC0: .word 0x04000048 _021DAAC4: .word 0xFFFFC0FF _021DAAC8: .word 0x00002EB0 _021DAACC: .word 0xFFFF1FFF thumb_func_start MOD15_021DAAD0 MOD15_021DAAD0: ; 0x021DAAD0 push {r3, lr} add r1, r0, #0 add r1, #0x80 ldr r1, [r1] cmp r1, #0 bne _021DAAEE add r0, #0x40 bl MOD15_021DB678 cmp r0, #0 beq _021DAAEA mov r0, #1 pop {r3, pc} _021DAAEA: mov r0, #0 pop {r3, pc} _021DAAEE: mov r0, #1 pop {r3, pc} .align 2, 0 thumb_func_start MOD15_021DAAF4 MOD15_021DAAF4: ; 0x021DAAF4 push {r3, lr} sub sp, #8 add r1, r0, #0 mov r2, #0 add r1, #0x80 str r2, [r1] str r2, [sp] mov r1, #0xc str r1, [sp, #4] add r0, #0x40 mov r1, #4 mov r2, #0x3f mov r3, #0x7c bl MOD15_021DB648 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_start MOD15_021DAB18 MOD15_021DAB18: ; 0x021DAB18 push {r4, lr} add r4, r0, #0 add r0, #0x80 ldr r0, [r0] cmp r0, #0 bne _021DAB70 add r0, r4, #0 add r0, #0x40 bl MOD15_021DB678 cmp r0, #0 beq _021DAB74 mov r0, #2 mov r1, #0 bl FUN_0201797C ldr r0, _021DAB78 ; =0x0400004A ldrh r2, [r0] mov r0, #0x3f bic r2, r0 add r0, r4, #0 add r0, #0x84 ldrb r0, [r0] lsl r1, r0, #0x1b lsr r1, r1, #0x1b lsl r0, r0, #0x1a orr r1, r2 lsr r0, r0, #0x1f beq _021DAB56 mov r0, #0x20 orr r1, r0 _021DAB56: ldr r2, _021DAB78 ; =0x0400004A ldr r0, _021DAB7C ; =0xFFFF1FFF strh r1, [r2] sub r2, #0x4a ldr r1, [r2] add r4, #0x88 and r1, r0 ldr r0, [r4] lsl r0, r0, #0xd orr r0, r1 str r0, [r2] mov r0, #1 pop {r4, pc} _021DAB70: mov r0, #1 pop {r4, pc} _021DAB74: mov r0, #0 pop {r4, pc} .align 2, 0 _021DAB78: .word 0x0400004A _021DAB7C: .word 0xFFFF1FFF thumb_func_start MOD15_021DAB80 MOD15_021DAB80: ; 0x021DAB80 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x30] add r4, r1, #0 bl FUN_020200A0 cmp r4, #0 beq _021DABAE ldr r0, [r5, #4] bl MOD15_021D87AC add r1, r0, #0 ldr r0, [r5, #0x34] bl FUN_020200A0 ldr r0, [r5, #4] bl MOD15_021D87C0 add r1, r0, #0 ldr r0, [r5, #0x38] bl FUN_020200A0 pop {r3, r4, r5, pc} _021DABAE: ldr r0, [r5, #0x34] mov r1, #0 bl FUN_020200A0 ldr r0, [r5, #0x38] mov r1, #0 bl FUN_020200A0 pop {r3, r4, r5, pc} thumb_func_start MOD15_021DABC0 MOD15_021DABC0: ; 0x021DABC0 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 add r2, r1, #0 mov r0, #1 and r2, r0 mov r0, #0x70 mul r0, r2 add r0, #0x48 lsl r0, r0, #0xc str r0, [sp] lsr r1, r1, #1 mov r0, #0x18 mul r0, r1 add r0, #0x38 lsl r0, r0, #0xc str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] ldr r0, [r4, #0x30] add r1, sp, #0 bl FUN_02020044 ldr r0, [r4, #0x30] mov r1, #8 bl FUN_02020130 add sp, #0xc pop {r3, r4, pc} .align 2, 0 thumb_func_start MOD15_021DABFC MOD15_021DABFC: ; 0x021DABFC push {r4, r5, r6, r7, lr} sub sp, #0x1c add r7, r0, #0 add r4, r1, #0 bl MOD15_021DACEC add r0, r7, #0 add r0, #0x90 ldr r0, [r0] lsl r6, r4, #1 str r0, [sp, #0x10] add r0, r0, r6 str r0, [sp, #0x14] mov r0, #0x18 mul r0, r4 str r0, [sp, #8] add r0, r7, #0 add r0, #0x8c ldr r0, [r0] ldr r1, [sp, #8] add r1, r0, r1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x18] cmp r4, #0 bge _021DAC40 ldr r0, [sp, #0x14] add r5, r1, #0 str r0, [sp, #0x10] lsl r0, r4, #2 neg r0, r0 neg r6, r6 str r0, [sp, #0xc] b _021DAC60 _021DAC40: add r0, #0x78 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r0, [sp, #0x10] add r0, #0xa str r0, [sp, #0x10] ldr r0, [r7, #4] bl MOD15_021D8744 ldr r1, [sp, #0x10] add r1, r6, r1 cmp r1, r0 bls _021DAC5C sub r6, r6, #1 _021DAC5C: lsl r0, r4, #2 str r0, [sp, #0xc] _021DAC60: mov r4, #0 cmp r6, #0 ble _021DAC84 _021DAC66: ldr r1, [sp, #0x10] add r0, r7, #0 add r1, r1, r4 add r2, r5, #0 bl MOD15_021DAD98 mov r0, #1 tst r0, r4 beq _021DAC7E add r5, #0x18 lsl r0, r5, #0x18 lsr r5, r0, #0x18 _021DAC7E: add r4, r4, #1 cmp r4, r6 blt _021DAC66 _021DAC84: add r1, r7, #0 ldr r0, [sp, #0x18] add r1, #0x8c str r0, [r1] add r1, r7, #0 ldr r0, [sp, #0x14] add r1, #0x90 str r0, [r1] add r0, r7, #0 add r0, #0x10 bl FUN_02019548 ldr r0, [sp, #8] mov r2, #2 str r0, [sp] ldr r0, [sp, #0xc] mov r3, #1 str r0, [sp, #4] add r0, r7, #0 ldr r1, [r7, #0xc] add r0, #0x60 bl MOD15_021DB564 add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start MOD15_021DACB8 MOD15_021DACB8: ; 0x021DACB8 push {r4, lr} add r4, r0, #0 add r0, #0x60 bl MOD15_021DB5B8 cmp r0, #0 beq _021DACE6 ldr r0, [r4, #4] bl MOD15_021D87AC add r1, r0, #0 ldr r0, [r4, #0x34] bl FUN_020200A0 ldr r0, [r4, #4] bl MOD15_021D87C0 add r1, r0, #0 ldr r0, [r4, #0x38] bl FUN_020200A0 mov r0, #1 pop {r4, pc} _021DACE6: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021DACEC MOD15_021DACEC: ; 0x021DACEC push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 cmp r1, #0 ble _021DAD0C add r0, #0x8c ldr r0, [r0] add r0, #0x78 lsl r0, r0, #0x18 lsr r3, r0, #0x18 mov r0, #0x18 mul r0, r1 add r0, r3, r0 lsl r0, r0, #0x18 lsr r4, r0, #0x18 b _021DAD1A _021DAD0C: add r0, #0x8c ldr r4, [r0] mov r0, #0x18 mul r0, r1 add r0, r4, r0 lsl r0, r0, #0x18 lsr r3, r0, #0x18 _021DAD1A: cmp r3, r4 bge _021DAD3E mov r0, #0xd0 str r0, [sp] sub r0, r4, r3 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0 lsl r3, r3, #0x10 add r5, #0x10 str r0, [sp, #4] add r0, r5, #0 add r2, r1, #0 lsr r3, r3, #0x10 bl FUN_020196F4 add sp, #8 pop {r3, r4, r5, pc} _021DAD3E: mov r0, #0xd0 str r0, [sp] add r0, #0x30 sub r0, r0, r3 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #4] add r0, r5, #0 mov r1, #0 lsl r3, r3, #0x10 add r0, #0x10 add r2, r1, #0 lsr r3, r3, #0x10 bl FUN_020196F4 mov r1, #0 mov r0, #0xd0 str r0, [sp] lsl r0, r4, #0x10 lsr r0, r0, #0x10 add r5, #0x10 str r0, [sp, #4] add r0, r5, #0 add r2, r1, #0 add r3, r1, #0 bl FUN_020196F4 add sp, #8 pop {r3, r4, r5, pc} thumb_func_start MOD15_021DAD78 MOD15_021DAD78: ; 0x021DAD78 push {r3, lr} add r1, r0, #0 mov r2, #0x30 add r1, #0x8c str r2, [r1] add r1, r0, #0 mov r3, #0 add r1, #0x90 str r3, [r1] ldr r0, [r0, #0xc] mov r1, #2 mov r2, #3 bl FUN_020179E0 pop {r3, pc} .align 2, 0 thumb_func_start MOD15_021DAD98 MOD15_021DAD98: ; 0x021DAD98 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 add r4, r2, #0 ldr r0, [r5, #4] ldr r2, [r5, #0x3c] add r7, r1, #0 bl MOD15_021D8768 cmp r4, #0xf0 bhi _021DADD4 str r4, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021DAE64 ; =0x00010200 mov r1, #0 str r0, [sp, #8] str r1, [sp, #0xc] add r0, r5, #0 mov r3, #1 add r4, r7, #0 and r4, r3 mov r3, #0x70 ldr r2, [r5, #0x3c] add r0, #0x10 mul r3, r4 bl FUN_0201BDE0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _021DADD4: mov r0, #1 lsl r0, r0, #8 sub r6, r0, r4 add r0, r5, #0 add r0, #0x20 mov r1, #0 bl FUN_02019620 mov r1, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021DAE64 ; =0x00010200 add r3, r1, #0 str r0, [sp, #8] str r1, [sp, #0xc] add r0, r5, #0 ldr r2, [r5, #0x3c] add r0, #0x20 bl FUN_0201BDE0 mov r2, #0 mov r0, #1 add r1, r7, #0 and r1, r0 add r7, r1, #0 mov r0, #0x70 mul r7, r0 mov r0, #0x60 str r0, [sp] mov r1, #0x10 str r1, [sp, #4] lsl r1, r7, #0x10 lsr r1, r1, #0x10 str r1, [sp, #8] lsl r1, r4, #0x10 lsr r1, r1, #0x10 str r1, [sp, #0xc] str r0, [sp, #0x10] lsl r0, r6, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] add r0, r5, #0 ldr r1, [r5, #0x2c] add r0, #0x10 add r3, r2, #0 bl FUN_02019658 mov r1, #0x60 lsl r2, r7, #0x10 lsl r3, r6, #0x10 str r1, [sp] mov r0, #0x10 str r0, [sp, #4] lsr r2, r2, #0x10 str r2, [sp, #8] mov r2, #0 sub r0, r0, r6 str r2, [sp, #0xc] lsl r0, r0, #0x10 str r1, [sp, #0x10] lsr r0, r0, #0x10 str r0, [sp, #0x14] add r0, r5, #0 ldr r1, [r5, #0x2c] add r0, #0x10 lsr r3, r3, #0x10 bl FUN_02019658 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021DAE64: .word 0x00010200 thumb_func_start MOD15_021DAE68 MOD15_021DAE68: ; 0x021DAE68 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 mov r1, #5 add r5, r0, #0 mov r0, #0x23 lsl r1, r1, #8 add r7, r2, #0 bl FUN_02016998 add r4, r0, #0 str r5, [r4] str r6, [r4, #4] str r7, [r4, #8] add r0, r5, #0 bl MOD15_021D9548 str r0, [r4, #0xc] add r0, r5, #0 bl MOD15_021D954C str r0, [r4, #0x10] mov r1, #0 str r1, [r4, #0x14] ldr r0, _021DAEA0 ; =0x000004FC str r1, [r4, #0x18] str r1, [r4, r0] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DAEA0: .word 0x000004FC thumb_func_start MOD15_021DAEA4 MOD15_021DAEA4: ; 0x021DAEA4 push {r4, lr} add r4, r0, #0 bl MOD15_021DB200 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} thumb_func_start MOD15_021DAEB4 MOD15_021DAEB4: ; 0x021DAEB4 push {r3, r4, lr} sub sp, #0x1c add r4, r0, #0 mov r0, #0x40 str r0, [sp] mov r0, #0x23 str r0, [sp, #4] mov r0, #0x4c mov r1, #0x15 mov r2, #4 mov r3, #0 bl FUN_02006930 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] ldr r2, [r4, #0xc] mov r0, #0x4c mov r1, #0xb mov r3, #4 bl FUN_020068C8 add r0, r4, #0 bl MOD15_021DAFAC add r0, r4, #0 bl MOD15_021DAFF8 ldr r0, [r4, #4] bl MOD15_021D86F4 cmp r0, #0 bne _021DAF4A mov r2, #0xb ldr r0, _021DAFA4 ; =0x000001FA str r2, [sp] mov r1, #7 str r1, [sp, #4] add r0, r4, r0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r2, [sp, #0x14] str r1, [sp, #0x18] mov r2, #3 ldr r0, [r4, #0xc] mov r1, #4 add r3, r2, #0 bl FUN_02018170 mov r2, #0xb mov r0, #0xa5 lsl r0, r0, #2 str r2, [sp] mov r1, #7 str r1, [sp, #4] add r0, r4, r0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r2, [sp, #0x14] str r1, [sp, #0x18] ldr r0, [r4, #0xc] mov r1, #4 mov r2, #3 mov r3, #0xe bl FUN_02018170 b _021DAF92 _021DAF4A: mov r2, #0xb add r0, r4, #0 str r2, [sp] mov r1, #7 str r1, [sp, #4] add r0, #0x2c str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r2, [sp, #0x14] str r1, [sp, #0x18] mov r2, #3 ldr r0, [r4, #0xc] mov r1, #4 add r3, r2, #0 bl FUN_02018170 mov r2, #0xb ldr r0, _021DAFA8 ; =0x00000462 str r2, [sp] mov r1, #7 str r1, [sp, #4] add r0, r4, r0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r2, [sp, #0x14] str r1, [sp, #0x18] ldr r0, [r4, #0xc] mov r1, #4 mov r2, #3 mov r3, #0xe bl FUN_02018170 _021DAF92: add r0, r4, #0 bl MOD15_021DB154 ldr r0, [r4, #0xc] mov r1, #4 bl FUN_02017CD0 add sp, #0x1c pop {r3, r4, pc} .align 2, 0 _021DAFA4: .word 0x000001FA _021DAFA8: .word 0x00000462 thumb_func_start MOD15_021DAFAC MOD15_021DAFAC: ; 0x021DAFAC push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r4, _021DAFF4 ; =0x021DBA20 mov r6, #0 add r5, #0x2c _021DAFB8: mov r0, #0x23 str r0, [sp] ldrh r1, [r4] mov r0, #0x4c mov r2, #1 add r3, sp, #4 bl FUN_02006BDC add r7, r0, #0 beq _021DAFE6 ldr r0, [sp, #4] add r1, r5, #0 add r0, #0xc mov r2, #0x9a bl MIi_CpuCopy16 add r0, r5, #0 mov r1, #0x9a bl DC_FlushRange add r0, r7, #0 bl FUN_02016A18 _021DAFE6: add r6, r6, #1 add r4, r4, #2 add r5, #0x9a cmp r6, #8 blo _021DAFB8 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DAFF4: .word 0x021DBA20 thumb_func_start MOD15_021DAFF8 MOD15_021DAFF8: ; 0x021DAFF8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r0, #0 mov r0, #2 mov r1, #0 bl FUN_02002C50 ldr r1, _021DB0F8 ; =0x00000182 mov r0, #0x1a mov r2, #0xb mov r3, #0x23 bl FUN_0200A738 str r0, [sp, #4] ldr r1, _021DB0F8 ; =0x00000182 mov r0, #0x1a mov r2, #0xc mov r3, #0x23 bl FUN_0200A738 add r7, r0, #0 ldr r1, _021DB0F8 ; =0x00000182 mov r0, #0x1a mov r2, #0xd mov r3, #0x23 bl FUN_0200A738 add r6, r0, #0 ldr r1, _021DB0F8 ; =0x00000182 mov r0, #0x1a mov r2, #0xe mov r3, #0x23 bl FUN_0200A738 add r4, r0, #0 mov r0, #0x23 str r0, [sp] mov r0, #0x4c mov r1, #0x14 mov r2, #1 add r3, sp, #0xc bl FUN_02006BB0 str r0, [sp, #8] cmp r0, #0 beq _021DB0D4 add r0, sp, #0x10 bl FUN_0201901C ldr r0, [r5, #0xc] add r1, sp, #0xc str r0, [sp, #0x10] mov r0, #0xb strb r0, [r1, #0xb] mov r0, #0x39 strb r0, [r1, #0xc] ldrh r2, [r1, #0xe] ldr r0, _021DB0FC ; =0xFFFF7FFF mov r3, #0 and r0, r2 strh r0, [r1, #0xe] ldr r0, [sp, #0xc] ldr r2, [sp, #4] ldr r0, [r0, #0x14] str r0, [sp, #0x1c] ldr r1, [r5, #0xc] add r0, sp, #0x10 bl MOD15_021DB100 ldr r1, [r5, #0xc] add r0, sp, #0x10 add r2, r7, #0 mov r3, #0x10 bl MOD15_021DB100 ldr r0, [sp, #0xc] add r2, r6, #0 ldr r1, [r0, #0x14] mov r0, #0x9a lsl r0, r0, #6 add r0, r1, r0 str r0, [sp, #0x1c] ldr r1, [r5, #0xc] add r0, sp, #0x10 mov r3, #0 bl MOD15_021DB100 ldr r1, [r5, #0xc] add r0, sp, #0x10 add r2, r4, #0 mov r3, #0x10 bl MOD15_021DB100 ldr r1, [sp, #0xc] ldr r0, [r1, #0x14] ldr r1, [r1, #0x10] bl DC_FlushRange ldr r3, [sp, #0xc] mov r0, #0 str r0, [sp] ldr r2, [r3, #0x14] ldr r0, [r5, #0xc] ldr r3, [r3, #0x10] mov r1, #4 bl FUN_02017E14 ldr r0, [sp, #8] bl FUN_02016A18 _021DB0D4: add r0, r6, #0 bl FUN_02021A20 add r0, r4, #0 bl FUN_02021A20 ldr r0, [sp, #4] bl FUN_02021A20 add r0, r7, #0 bl FUN_02021A20 mov r0, #2 bl FUN_02002CF8 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop _021DB0F8: .word 0x00000182 _021DB0FC: .word 0xFFFF7FFF thumb_func_start MOD15_021DB100 MOD15_021DB100: ; 0x021DB100 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r6, r2, #0 str r0, [sp, #0x10] mov r0, #2 add r1, r6, #0 mov r2, #0 add r7, r3, #0 bl FUN_02002F08 mov r1, #0x58 sub r0, r1, r0 lsr r0, r0, #1 ldr r5, _021DB14C ; =0x021DBA18 str r0, [sp, #0x14] mov r4, #0 _021DB120: mov r0, #0 ldrsh r0, [r5, r0] ldr r3, [sp, #0x14] mov r1, #2 add r0, r7, r0 str r0, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021DB150 ; =0x00010203 add r2, r6, #0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r0, [sp, #0x10] bl FUN_0201BDE0 add r4, r4, #1 add r5, r5, #2 cmp r4, #4 blo _021DB120 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DB14C: .word 0x021DBA18 _021DB150: .word 0x00010203 thumb_func_start MOD15_021DB154 MOD15_021DB154: ; 0x021DB154 push {r3, r4, lr} sub sp, #0x4c add r4, r0, #0 add r0, sp, #0x38 bl FUN_020B19DC add r0, sp, #0x14 bl FUN_020B1A24 mov r0, #0x23 str r0, [sp] add r0, sp, #0x38 str r0, [sp, #4] mov r0, #0x4c mov r1, #0x19 mov r2, #2 mov r3, #0 bl FUN_02006A8C mov r3, #0 str r3, [sp] mov r0, #2 str r0, [sp, #4] str r3, [sp, #8] mov r0, #0x23 str r0, [sp, #0xc] add r0, sp, #0x14 str r0, [sp, #0x10] mov r0, #0x4c mov r1, #0x18 mov r2, #1 bl FUN_02006AE4 add r0, r4, #0 add r0, #0x1c mov r1, #0x4c mov r2, #0x16 mov r3, #0x17 bl MOD15_021DB224 mov r0, #0xc0 str r0, [sp] mov r0, #0x38 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] add r3, r4, #0 str r0, [sp, #0xc] add r0, r4, #0 add r1, sp, #0x14 add r2, sp, #0x38 add r3, #0x1c bl MOD15_021DB26C str r0, [r4, #0x14] mov r1, #0 bl FUN_02020130 ldr r0, [r4, #0x14] mov r1, #0 bl FUN_020200A0 mov r0, #0xc0 str r0, [sp] mov r0, #0x88 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] add r3, r4, #0 str r0, [sp, #0xc] add r0, r4, #0 add r1, sp, #0x14 add r2, sp, #0x38 add r3, #0x1c bl MOD15_021DB26C mov r1, #2 str r0, [r4, #0x18] bl FUN_02020130 ldr r0, [r4, #0x18] mov r1, #0 bl FUN_020200A0 add sp, #0x4c pop {r3, r4, pc} thumb_func_start MOD15_021DB200 MOD15_021DB200: ; 0x021DB200 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x14] cmp r0, #0 beq _021DB20E bl FUN_0201FFC8 _021DB20E: ldr r0, [r4, #0x18] cmp r0, #0 beq _021DB218 bl FUN_0201FFC8 _021DB218: add r4, #0x1c add r0, r4, #0 bl MOD15_021DB258 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021DB224 MOD15_021DB224: ; 0x021DB224 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 add r4, r1, #0 mov r0, #0x23 add r6, r3, #0 str r0, [sp] add r1, r2, #0 add r0, r4, #0 mov r2, #1 add r3, r5, #4 bl FUN_02006C30 str r0, [r5] mov r0, #0x23 add r3, r5, #0 str r0, [sp] add r0, r4, #0 add r1, r6, #0 mov r2, #1 add r3, #0xc bl FUN_02006C5C str r0, [r5, #8] add sp, #4 pop {r3, r4, r5, r6, pc} thumb_func_start MOD15_021DB258 MOD15_021DB258: ; 0x021DB258 push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_02016A18 ldr r0, [r4, #8] bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_start MOD15_021DB26C MOD15_021DB26C: ; 0x021DB26C push {r3, r4, lr} sub sp, #0x44 str r2, [sp, #0x28] str r1, [sp, #0x20] ldr r1, [r3, #4] ldr r2, [sp, #0x58] str r1, [sp, #0x2c] ldr r1, [r3, #0xc] str r1, [sp, #0x30] add r1, sp, #0x40 strb r2, [r1] mov r1, #0 str r1, [sp, #0x24] str r1, [sp, #0x34] str r1, [sp, #0x38] str r1, [sp, #0x3c] ldr r0, [r0, #0x10] str r0, [sp] add r0, sp, #0x20 str r0, [sp, #4] ldr r0, [sp, #0x50] str r1, [sp, #0x10] lsl r0, r0, #0xc str r0, [sp, #8] ldr r0, [sp, #0x54] add r0, #0xc0 lsl r0, r0, #0xc str r0, [sp, #0xc] ldr r0, [sp, #0x5c] str r0, [sp, #0x14] mov r0, #2 str r0, [sp, #0x18] mov r0, #0x23 str r0, [sp, #0x1c] add r0, sp, #0 bl FUN_0201FF84 add r4, r0, #0 beq _021DB2CA mov r1, #1 bl FUN_020200BC mov r1, #1 add r0, r4, #0 lsl r1, r1, #0xc bl FUN_020200D8 _021DB2CA: add r0, r4, #0 add sp, #0x44 pop {r3, r4, pc} thumb_func_start MOD15_021DB2D0 MOD15_021DB2D0: ; 0x021DB2D0 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x23 mov r1, #0x18 bl FUN_02016998 add r4, r0, #0 beq _021DB32C ldr r0, [r5, #4] bl MOD15_021D86F4 str r5, [r4] mov r1, #0 str r1, [r4, #4] strh r1, [r4, #8] mov r1, #0xe mul r1, r0 ldr r0, _021DB334 ; =0x021DBA30 mov r2, #1 ldrh r0, [r0, r1] strh r0, [r4, #0xa] ldr r0, _021DB338 ; =0x021DBA32 ldrh r0, [r0, r1] strh r0, [r4, #0xc] ldr r0, _021DB33C ; =0x021DBA34 ldrh r0, [r0, r1] strh r0, [r4, #0xe] ldr r0, _021DB340 ; =0x021DBA36 ldrh r0, [r0, r1] strh r0, [r4, #0x10] ldr r0, _021DB344 ; =0x021DBA38 ldrh r0, [r0, r1] strh r0, [r4, #0x12] ldr r0, _021DB348 ; =0x021DBA3A ldrh r0, [r0, r1] strh r0, [r4, #0x14] ldr r0, _021DB34C ; =0x021DBA3C ldrh r0, [r0, r1] add r1, r4, #0 strh r0, [r4, #0x16] ldr r0, _021DB350 ; =MOD15_021DB36C bl FUN_0200CA44 ldr r1, _021DB354 ; =0x000004FC str r0, [r5, r1] pop {r3, r4, r5, pc} _021DB32C: ldr r0, _021DB354 ; =0x000004FC mov r1, #0 str r1, [r5, r0] pop {r3, r4, r5, pc} .align 2, 0 _021DB334: .word 0x021DBA30 _021DB338: .word 0x021DBA32 _021DB33C: .word 0x021DBA34 _021DB340: .word 0x021DBA36 _021DB344: .word 0x021DBA38 _021DB348: .word 0x021DBA3A _021DB34C: .word 0x021DBA3C _021DB350: .word MOD15_021DB36C _021DB354: .word 0x000004FC thumb_func_start MOD15_021DB358 MOD15_021DB358: ; 0x021DB358 ldr r1, _021DB368 ; =0x000004FC ldr r0, [r0, r1] cmp r0, #0 bne _021DB364 mov r0, #1 bx lr _021DB364: mov r0, #0 bx lr .align 2, 0 _021DB368: .word 0x000004FC thumb_func_start MOD15_021DB36C MOD15_021DB36C: ; 0x021DB36C push {r3, r4, r5, r6, lr} sub sp, #0x1c add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #4] cmp r0, #3 bls _021DB37C b _021DB4E0 _021DB37C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DB388: ; jump table .short _021DB390 - _021DB388 - 2 ; case 0 .short _021DB416 - _021DB388 - 2 ; case 1 .short _021DB476 - _021DB388 - 2 ; case 2 .short _021DB4CC - _021DB388 - 2 ; case 3 _021DB390: ldr r3, [r4] mov r2, #0xb str r2, [sp] mov r1, #7 str r1, [sp, #4] ldrh r6, [r4, #0xa] add r0, r3, #0 mov r5, #0x9a add r0, #0x2c mul r5, r6 add r0, r0, r5 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r2, [sp, #0x14] str r1, [sp, #0x18] ldr r0, [r3, #0xc] ldrh r2, [r4, #0xe] ldrh r3, [r4, #0x10] mov r1, #4 lsl r2, r2, #0x18 lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02018170 ldr r3, [r4] mov r2, #0xb add r0, r3, #0 str r2, [sp] mov r1, #7 str r1, [sp, #4] ldrh r6, [r4, #0x12] mov r5, #0x9a add r0, #0x2c mul r5, r6 add r0, r0, r5 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r2, [sp, #0x14] str r1, [sp, #0x18] ldr r0, [r3, #0xc] ldrh r2, [r4, #0x14] ldrh r3, [r4, #0x16] mov r1, #4 lsl r2, r2, #0x18 lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02018170 ldr r0, [r4] mov r1, #4 ldr r0, [r0, #0xc] bl FUN_02017CD0 ldrh r0, [r4, #0xa] add sp, #0x1c add r0, r0, #1 strh r0, [r4, #0xa] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, r5, r6, pc} _021DB416: ldrh r0, [r4, #8] add r0, r0, #1 strh r0, [r4, #8] ldrh r0, [r4, #8] cmp r0, #2 blo _021DB4E0 ldr r3, [r4] mov r2, #0xb str r2, [sp] mov r1, #7 str r1, [sp, #4] ldrh r6, [r4, #0xa] add r0, r3, #0 mov r5, #0x9a add r0, #0x2c mul r5, r6 add r0, r0, r5 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r2, [sp, #0x14] str r1, [sp, #0x18] ldr r0, [r3, #0xc] ldrh r2, [r4, #0xe] ldrh r3, [r4, #0x10] mov r1, #4 lsl r2, r2, #0x18 lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02018170 ldr r0, [r4] mov r1, #4 ldr r0, [r0, #0xc] bl FUN_02017CD0 mov r0, #0 strh r0, [r4, #8] ldrh r0, [r4, #0xa] add sp, #0x1c add r0, r0, #1 strh r0, [r4, #0xa] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, r5, r6, pc} _021DB476: ldrh r0, [r4, #8] add r0, r0, #1 strh r0, [r4, #8] ldrh r0, [r4, #8] cmp r0, #4 blo _021DB4E0 ldr r3, [r4] mov r2, #0xb str r2, [sp] mov r1, #7 str r1, [sp, #4] ldrh r6, [r4, #0xa] add r0, r3, #0 mov r5, #0x9a add r0, #0x2c mul r5, r6 add r0, r0, r5 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r2, [sp, #0x14] str r1, [sp, #0x18] ldr r0, [r3, #0xc] ldrh r2, [r4, #0xe] ldrh r3, [r4, #0x10] mov r1, #4 lsl r2, r2, #0x18 lsl r3, r3, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02018170 ldr r0, [r4] mov r1, #4 ldr r0, [r0, #0xc] bl FUN_02017CD0 ldr r0, [r4, #4] add sp, #0x1c add r0, r0, #1 str r0, [r4, #4] pop {r3, r4, r5, r6, pc} _021DB4CC: ldr r1, [r4] ldr r0, _021DB4E4 ; =0x000004FC mov r2, #0 str r2, [r1, r0] add r0, r4, #0 bl FUN_02016A18 add r0, r5, #0 bl FUN_0200CAB4 _021DB4E0: add sp, #0x1c pop {r3, r4, r5, r6, pc} .align 2, 0 _021DB4E4: .word 0x000004FC thumb_func_start MOD15_021DB4E8 MOD15_021DB4E8: ; 0x021DB4E8 push {r4, lr} add r4, r0, #0 cmp r1, #0 beq _021DB50E ldr r0, [r4, #4] bl MOD15_021D87AC add r1, r0, #0 ldr r0, [r4, #0x14] bl FUN_020200A0 ldr r0, [r4, #4] bl MOD15_021D87C0 add r1, r0, #0 ldr r0, [r4, #0x18] bl FUN_020200A0 pop {r4, pc} _021DB50E: ldr r0, [r4, #0x14] mov r1, #0 bl FUN_020200A0 ldr r0, [r4, #0x18] mov r1, #0 bl FUN_020200A0 pop {r4, pc} thumb_func_start MOD15_021DB520 MOD15_021DB520: ; 0x021DB520 push {r3, lr} cmp r1, #0 beq _021DB52C cmp r1, #1 beq _021DB548 pop {r3, pc} _021DB52C: cmp r2, #0 beq _021DB53E cmp r2, #1 bne _021DB562 ldr r0, [r0, #0x14] mov r1, #1 bl FUN_02020130 pop {r3, pc} _021DB53E: ldr r0, [r0, #0x14] mov r1, #0 bl FUN_02020130 pop {r3, pc} _021DB548: cmp r2, #0 beq _021DB55A cmp r2, #1 bne _021DB562 ldr r0, [r0, #0x18] mov r1, #3 bl FUN_02020130 pop {r3, pc} _021DB55A: ldr r0, [r0, #0x18] mov r1, #2 bl FUN_02020130 _021DB562: pop {r3, pc} thumb_func_start MOD15_021DB564 MOD15_021DB564: ; 0x021DB564 push {r4, lr} add r4, r0, #0 str r1, [r4] str r2, [r4, #4] cmp r3, #0 bne _021DB57E add r0, r1, #0 add r1, r2, #0 bl FUN_02017B48 str r0, [r4, #0xc] mov r0, #0 b _021DB58A _021DB57E: add r0, r1, #0 add r1, r2, #0 bl FUN_02017B54 str r0, [r4, #0xc] mov r0, #3 _021DB58A: str r0, [r4, #8] ldr r0, [sp, #8] ldr r1, [r4, #0xc] add r2, r1, r0 ldr r1, _021DB5B4 ; =0x000001FF lsl r0, r0, #0xc and r1, r2 str r1, [r4, #0x10] ldr r1, [r4, #0xc] lsl r1, r1, #0xc str r1, [r4, #0xc] ldr r1, [sp, #0xc] bl _s32_div_f str r0, [r4, #0x14] ldr r0, [sp, #0xc] strh r0, [r4, #0x18] mov r0, #0 strh r0, [r4, #0x1a] pop {r4, pc} nop _021DB5B4: .word 0x000001FF thumb_func_start MOD15_021DB5B8 MOD15_021DB5B8: ; 0x021DB5B8 push {r4, lr} add r4, r0, #0 ldrh r0, [r4, #0x1a] cmp r0, #0 beq _021DB5CC cmp r0, #1 beq _021DB5E0 cmp r0, #2 beq _021DB5F6 b _021DB5FA _021DB5CC: ldr r0, _021DB600 ; =MOD15_021DB604 add r1, r4, #0 mov r2, #0 bl MOD15_021D88D0 str r0, [r4, #0x1c] ldrh r0, [r4, #0x1a] add r0, r0, #1 strh r0, [r4, #0x1a] b _021DB5FA _021DB5E0: ldrh r0, [r4, #0x18] cmp r0, #0 bne _021DB5FA ldr r0, [r4, #0x1c] bl FUN_0200CAB4 ldrh r0, [r4, #0x1a] add r0, r0, #1 strh r0, [r4, #0x1a] mov r0, #1 pop {r4, pc} _021DB5F6: mov r0, #1 pop {r4, pc} _021DB5FA: mov r0, #0 pop {r4, pc} nop _021DB600: .word MOD15_021DB604 thumb_func_start MOD15_021DB604 MOD15_021DB604: ; 0x021DB604 push {r4, lr} add r4, r1, #0 ldrh r0, [r4, #0x18] cmp r0, #0 beq _021DB632 ldr r1, [r4, #0xc] ldr r0, [r4, #0x14] add r3, r1, r0 str r3, [r4, #0xc] ldr r1, [r4, #4] ldr r2, [r4, #8] lsl r1, r1, #0x18 lsl r2, r2, #0x18 ldr r0, [r4] lsr r1, r1, #0x18 lsr r2, r2, #0x18 asr r3, r3, #0xc bl FUN_020179E0 ldrh r0, [r4, #0x18] sub r0, r0, #1 strh r0, [r4, #0x18] pop {r4, pc} _021DB632: ldr r1, [r4, #4] ldr r2, [r4, #8] lsl r1, r1, #0x18 lsl r2, r2, #0x18 ldr r0, [r4] ldr r3, [r4, #0x10] lsr r1, r1, #0x18 lsr r2, r2, #0x18 bl FUN_020179E0 pop {r4, pc} thumb_func_start MOD15_021DB648 MOD15_021DB648: ; 0x021DB648 push {r4, lr} add r4, r0, #0 str r1, [r4] ldr r0, [sp, #8] ldr r1, [sp, #0xc] str r2, [r4, #4] str r1, [r4, #0x14] str r3, [r4, #8] sub r0, r0, r3 bl _s32_div_f str r0, [r4, #0x10] ldr r0, [sp, #8] mov r2, #0 str r0, [r4, #0xc] ldr r0, _021DB674 ; =MOD15_021DB6A0 add r1, r4, #0 str r2, [r4, #0x18] bl MOD15_021D88D0 str r0, [r4, #0x1c] pop {r4, pc} .align 2, 0 _021DB674: .word MOD15_021DB6A0 thumb_func_start MOD15_021DB678 MOD15_021DB678: ; 0x021DB678 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x18] cmp r0, #0 bne _021DB698 ldr r0, [r4, #0x14] cmp r0, #0 bne _021DB69C ldr r0, [r4, #0x1c] bl FUN_0200CAB4 ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] mov r0, #1 pop {r4, pc} _021DB698: mov r0, #1 pop {r4, pc} _021DB69C: mov r0, #0 pop {r4, pc} thumb_func_start MOD15_021DB6A0 MOD15_021DB6A0: ; 0x021DB6A0 push {r3, lr} add r2, r1, #0 ldr r0, [r2, #0x14] cmp r0, #0 beq _021DB6BC ldr r1, [r2, #8] ldr r0, [r2, #0x10] add r0, r1, r0 str r0, [r2, #8] asr r3, r0, #3 ldr r0, [r2, #0x14] sub r0, r0, #1 str r0, [r2, #0x14] b _021DB6C0 _021DB6BC: ldr r0, [r2, #0xc] asr r3, r0, #3 _021DB6C0: cmp r3, #0x10 ble _021DB6C6 mov r3, #0x10 _021DB6C6: mov r0, #0x10 sub r0, r0, r3 str r0, [sp] ldr r0, _021DB6D8 ; =0x04000050 ldmia r2!, {r1, r2} bl G2x_SetBlendAlpha_ pop {r3, pc} nop _021DB6D8: .word 0x04000050 thumb_func_start MOD15_021DB6DC MOD15_021DB6DC: ; 0x021DB6DC push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, _021DB714 ; =0x04000050 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 bl G2x_SetBlendBrightness_ ldr r1, [sp, #0x18] str r4, [r5] str r1, [r5, #0x14] lsl r0, r6, #0xc str r0, [r5, #8] lsl r2, r7, #0xc str r2, [r5, #0xc] ldr r0, [r5, #8] sub r0, r2, r0 bl _s32_div_f str r0, [r5, #0x10] mov r2, #0 ldr r0, _021DB718 ; =MOD15_021DB744 add r1, r5, #0 str r2, [r5, #0x18] bl MOD15_021D88D0 str r0, [r5, #0x1c] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DB714: .word 0x04000050 _021DB718: .word MOD15_021DB744 thumb_func_start MOD15_021DB71C MOD15_021DB71C: ; 0x021DB71C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x18] cmp r0, #0 bne _021DB73C ldr r0, [r4, #0x14] cmp r0, #0 bne _021DB740 ldr r0, [r4, #0x1c] bl FUN_0200CAB4 ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] mov r0, #1 pop {r4, pc} _021DB73C: mov r0, #1 pop {r4, pc} _021DB740: mov r0, #0 pop {r4, pc} thumb_func_start MOD15_021DB744 MOD15_021DB744: ; 0x021DB744 ldr r0, [r1, #0x14] cmp r0, #0 beq _021DB75C ldr r2, [r1, #8] ldr r0, [r1, #0x10] add r0, r2, r0 str r0, [r1, #8] asr r2, r0, #0xc ldr r0, [r1, #0x14] sub r0, r0, #1 str r0, [r1, #0x14] b _021DB760 _021DB75C: ldr r0, [r1, #0xc] asr r2, r0, #0xc _021DB760: ldr r3, _021DB768 ; =0x020C74B8 ldr r0, _021DB76C ; =0x04000050 ldr r1, [r1] bx r3 .align 2, 0 _021DB768: .word 0x020C74B8 _021DB76C: .word 0x04000050 thumb_func_start MOD15_021DB770 MOD15_021DB770: ; 0x021DB770 mov r0, #0x1b bx lr thumb_func_start MOD15_021DB774 MOD15_021DB774: ; 0x021DB774 push {r3, r4, r5, lr} add r4, r0, #0 add r5, r1, #0 cmp r4, #0x1b blo _021DB782 bl ErrorHandling _021DB782: mov r1, #0xa ldr r2, _021DB794 ; =0x021DBA4C mul r1, r4 add r1, r2, r1 add r0, r5, #0 mov r2, #2 bl FUN_02021E8C pop {r3, r4, r5, pc} .align 2, 0 _021DB794: .word 0x021DBA4C thumb_func_start MOD15_021DB798 MOD15_021DB798: ; 0x021DB798 push {r4, r5, r6, lr} add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 cmp r5, #0x1b blo _021DB7A8 bl ErrorHandling _021DB7A8: mov r0, #0xa add r1, r5, #0 mul r1, r0 ldr r0, _021DB7BC ; =0x021DBA4E ldrb r0, [r0, r1] str r0, [r4] ldr r0, _021DB7C0 ; =0x021DBA4F ldrb r0, [r0, r1] str r0, [r6] pop {r4, r5, r6, pc} .align 2, 0 _021DB7BC: .word 0x021DBA4E _021DB7C0: .word 0x021DBA4F thumb_func_start MOD15_021DB7C4 MOD15_021DB7C4: ; 0x021DB7C4 push {r4, lr} add r4, r0, #0 cmp r4, #0x1b blo _021DB7D0 bl ErrorHandling _021DB7D0: mov r0, #0xa add r1, r4, #0 mul r1, r0 ldr r0, _021DB7DC ; =0x021DBA50 ldrb r0, [r0, r1] pop {r4, pc} .align 2, 0 _021DB7DC: .word 0x021DBA50 thumb_func_start MOD15_021DB7E0 MOD15_021DB7E0: ; 0x021DB7E0 push {r4, lr} add r4, r0, #0 cmp r4, #0x1b blo _021DB7EC bl ErrorHandling _021DB7EC: mov r0, #0xa add r1, r4, #0 mul r1, r0 ldr r0, _021DB7F8 ; =0x021DBA51 ldrb r0, [r0, r1] pop {r4, pc} .align 2, 0 _021DB7F8: .word 0x021DBA51 thumb_func_start MOD15_021DB7FC MOD15_021DB7FC: ; 0x021DB7FC push {r4, lr} add r4, r0, #0 cmp r4, #0x1b blo _021DB808 bl ErrorHandling _021DB808: mov r0, #0xa add r1, r4, #0 mul r1, r0 ldr r0, _021DB814 ; =0x021DBA52 ldrb r0, [r0, r1] pop {r4, pc} .align 2, 0 _021DB814: .word 0x021DBA52 thumb_func_start MOD15_021DB818 MOD15_021DB818: ; 0x021DB818 push {r4, lr} add r4, r0, #0 cmp r4, #0x1b blo _021DB824 bl ErrorHandling _021DB824: mov r0, #0xa add r1, r4, #0 mul r1, r0 ldr r0, _021DB830 ; =0x021DBA53 ldrb r0, [r0, r1] pop {r4, pc} .align 2, 0 _021DB830: .word 0x021DBA53 thumb_func_start MOD15_021DB834 MOD15_021DB834: ; 0x021DB834 push {r4, lr} add r4, r0, #0 cmp r4, #0x1b blo _021DB840 bl ErrorHandling _021DB840: mov r0, #0xa add r1, r4, #0 mul r1, r0 ldr r0, _021DB84C ; =0x021DBA54 ldrb r0, [r0, r1] pop {r4, pc} .align 2, 0 _021DB84C: .word 0x021DBA54 thumb_func_start MOD15_021DB850 MOD15_021DB850: ; 0x021DB850 push {r4, lr} add r4, r0, #0 cmp r4, #0x1b blo _021DB85C bl ErrorHandling _021DB85C: mov r0, #0xa add r1, r4, #0 mul r1, r0 ldr r0, _021DB868 ; =0x021DBA55 ldrb r0, [r0, r1] pop {r4, pc} .align 2, 0 _021DB868: .word 0x021DBA55 .section .rodata ; 0x021DB86C .incbin "baserom.nds", 0x23B78C, 0x2F0